CoreValidation: Aligned GNU linker scripts with templates.

Change-Id: I06f65b96dfffdb1970d5cb22e66e45721154c70a
diff --git a/CMSIS/CoreValidation/Tests/bootloader/config/core_m/rtebuild.ld b/CMSIS/CoreValidation/Tests/bootloader/config/core_m/rtebuild.ld
index 5f7fee7..88bfa8a 100644
--- a/CMSIS/CoreValidation/Tests/bootloader/config/core_m/rtebuild.ld
+++ b/CMSIS/CoreValidation/Tests/bootloader/config/core_m/rtebuild.ld
@@ -2,7 +2,7 @@
  * @file     gcc_arm.ld
  * @brief    GNU Linker Script for Cortex-M based device
  * @version  V2.0.0
- * @date     20. May 2019
+ * @date     21. May 2019
  ******************************************************************************/
 /*
  * Copyright (c) 2009-2019 Arm Limited. All rights reserved.
@@ -21,41 +21,41 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
-/*
-;-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
-*/
 
-/*--------------------- Flash Configuration ----------------------------------
-; <h> Flash Configuration
-;   <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
-;   <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*
+ *-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
+ */
+
+/*---------------------- Flash Configuration ----------------------------------
+  <h> Flash Configuration
+    <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
+    <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __ROM_BASE = 0x00000000;
 __ROM_SIZE = 0x00200000;
 
-/*--------------------- Embedded RAM Configuration ---------------------------
-; <h> RAM Configuration
-;   <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
-;   <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
+/*--------------------- Embedded RAM Configuration ----------------------------
+  <h> RAM Configuration
+    <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
+    <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
  -----------------------------------------------------------------------------*/
 __RAM_BASE = 0x20000000;
 __RAM_SIZE = 0x00200000;
 
-/*--------------------- Stack / Heap Configuration ---------------------------
-; <h> Stack / Heap Configuration
-;   <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-;   <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*--------------------- Stack / Heap Configuration ----------------------------
+  <h> Stack / Heap Configuration
+    <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+    <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __STACK_SIZE = 0x00000400;
 __HEAP_SIZE  = 0x00000C00;
 
 /*
-;-------------------- <<< end of configuration section >>> --------------------
-*/
+ *-------------------- <<< end of configuration section >>> -------------------
+ */
 
 MEMORY
 {
@@ -97,196 +97,199 @@
 
 SECTIONS
 {
-	.text :
-	{
-		KEEP(*(.vectors))
-		*(.text*)
+  .text :
+  {
+    KEEP(*(.vectors))
+    *(.text*)
 
-		KEEP(*(.init))
-		KEEP(*(.fini))
+    KEEP(*(.init))
+    KEEP(*(.fini))
 
-		/* .ctors */
-		*crtbegin.o(.ctors)
-		*crtbegin?.o(.ctors)
-		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-		*(SORT(.ctors.*))
-		*(.ctors)
+    /* .ctors */
+    *crtbegin.o(.ctors)
+    *crtbegin?.o(.ctors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+    *(SORT(.ctors.*))
+    *(.ctors)
 
-		/* .dtors */
- 		*crtbegin.o(.dtors)
- 		*crtbegin?.o(.dtors)
- 		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- 		*(SORT(.dtors.*))
- 		*(.dtors)
+    /* .dtors */
+    *crtbegin.o(.dtors)
+    *crtbegin?.o(.dtors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+    *(SORT(.dtors.*))
+    *(.dtors)
 
-		*(.rodata*)
+    *(.rodata*)
 
-		KEEP(*(.eh_frame*))
-	} > FLASH
+    KEEP(*(.eh_frame*))
+  } > FLASH
 
-/* SG veneers:
-   All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
-   must be set, either with the command line option ‘--section-start’ or in a linker script,
-   to indicate where to place these veneers in memory.
- */
+  /*
+   * SG veneers:
+   * All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
+   * must be set, either with the command line option ‘--section-start’ or in a linker script,
+   * to indicate where to place these veneers in memory.
+   */
 /*
-    .gnu.sgstubs :
-    {
-        . = ALIGN(32);
-    } > FLASH
+  .gnu.sgstubs :
+  {
+    . = ALIGN(32);
+  } > FLASH
 */
-	.ARM.extab :
-	{
-		*(.ARM.extab* .gnu.linkonce.armextab.*)
-	} > FLASH
+  .ARM.extab :
+  {
+    *(.ARM.extab* .gnu.linkonce.armextab.*)
+  } > FLASH
 
-	__exidx_start = .;
-	.ARM.exidx :
-	{
-		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
-	} > FLASH
-	__exidx_end = .;
+  __exidx_start = .;
+  .ARM.exidx :
+  {
+    *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+  } > FLASH
+  __exidx_end = .;
 
-	.copy.table :
-	{
-		. = ALIGN(4);
-		__copy_table_start__ = .;
-		LONG (__etext)
-		LONG (__data_start__)
-		LONG (__data_end__ - __data_start__)
-    /** Add each additional data section here */
-    /*
-		LONG (__etext2)
-		LONG (__data2_start__)
-		LONG (__data2_end__ - __data2_start__)
-    */
-		__copy_table_end__ = .;
-	} > FLASH
+  .copy.table :
+  {
+    . = ALIGN(4);
+    __copy_table_start__ = .;
+    LONG (__etext)
+    LONG (__data_start__)
+    LONG (__data_end__ - __data_start__)
+    /* Add each additional data section here */
+/*
+    LONG (__etext2)
+    LONG (__data2_start__)
+    LONG (__data2_end__ - __data2_start__)
+*/
+    __copy_table_end__ = .;
+  } > FLASH
 
-	.zero.table :
-	{
-		. = ALIGN(4);
-		__zero_table_start__ = .;
-    /** Add each additional bss section here */
-    /* 
+  .zero.table :
+  {
+    . = ALIGN(4);
+    __zero_table_start__ = .;
+    /* Add each additional bss section here */
+/*
     LONG (__bss2_start__)
-		LONG (__bss2_end__ - __bss2_start__) 
-    */
-		__zero_table_end__ = .;
-	} > FLASH
+    LONG (__bss2_end__ - __bss2_start__)
+*/
+    __zero_table_end__ = .;
+  } > FLASH
 
-	/* Location counter can end up 2byte aligned with narrow Thumb code but
-	   __etext is assumed by startup code to be the LMA of a section in RAM
-	   which must be 4byte aligned */
-	__etext = ALIGN (4);
+  /**
+   * Location counter can end up 2byte aligned with narrow Thumb code but
+   * __etext is assumed by startup code to be the LMA of a section in RAM
+   * which must be 4byte aligned 
+   */
+  __etext = ALIGN (4);
 
-	.data : AT (__etext)
-	{
-		__data_start__ = .;
-		*(vtable)
-		*(.data)
+  .data : AT (__etext)
+  {
+    __data_start__ = .;
+    *(vtable)
+    *(.data)
     *(.data.*)
-        
-		. = ALIGN(4);
-		/* preinit data */
-		PROVIDE_HIDDEN (__preinit_array_start = .);
-		KEEP(*(.preinit_array))
-		PROVIDE_HIDDEN (__preinit_array_end = .);
 
-		. = ALIGN(4);
-		/* init data */
-		PROVIDE_HIDDEN (__init_array_start = .);
-		KEEP(*(SORT(.init_array.*)))
-		KEEP(*(.init_array))
-		PROVIDE_HIDDEN (__init_array_end = .);
+    . = ALIGN(4);
+    /* preinit data */
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP(*(.preinit_array))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+
+    . = ALIGN(4);
+    /* init data */
+    PROVIDE_HIDDEN (__init_array_start = .);
+    KEEP(*(SORT(.init_array.*)))
+    KEEP(*(.init_array))
+    PROVIDE_HIDDEN (__init_array_end = .);
 
 
-		. = ALIGN(4);
-		/* finit data */
-		PROVIDE_HIDDEN (__fini_array_start = .);
-		KEEP(*(SORT(.fini_array.*)))
-		KEEP(*(.fini_array))
-		PROVIDE_HIDDEN (__fini_array_end = .);
+    . = ALIGN(4);
+    /* finit data */
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP(*(SORT(.fini_array.*)))
+    KEEP(*(.fini_array))
+    PROVIDE_HIDDEN (__fini_array_end = .);
 
-		KEEP(*(.jcr*))
-		. = ALIGN(4);
-		/* All data end */
-		__data_end__ = .;
+    KEEP(*(.jcr*))
+    . = ALIGN(4);
+    /* All data end */
+    __data_end__ = .;
 
-	} > RAM
+  } > RAM
 
-  /** 
-   * Secondary data section, optional 
-   * 
+  /*
+   * Secondary data section, optional
+   *
    * Remember to add each additional data section
    * to the .copy.table above to asure proper
    * initialization during startup.
    */
-  /*
+/*
   __etext2 = ALIGN (4);
 
-	.data2 : AT (__etext2)
-	{
+  .data2 : AT (__etext2)
+  {
     . = ALIGN(4);
-		__data2_start__ = .;
+    __data2_start__ = .;
     *(.data2)
     *(.data2.*)
-		. = ALIGN(4);
-		__data2_end__ = .;
+    . = ALIGN(4);
+    __data2_end__ = .;
 
-	} > RAM 
-  */
-  
-	.bss (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss_start__ = .;
+  } > RAM2
+*/
+
+  .bss :
+  {
+    . = ALIGN(4);
+    __bss_start__ = .;
     *(.bss)
-		*(.bss.*)
-		*(COMMON)
-		. = ALIGN(4);
-		__bss_end__ = .;
-	} > RAM
+    *(.bss.*)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+  } > RAM AT > RAM
 
-  /**
-   * Secondary bss section, optional 
+  /*
+   * Secondary bss section, optional
    *
    * Remember to add each additional bss section
    * to the .zero.table above to asure proper
    * initialization during startup.
    */
-  /*
-	.bss2 (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss2_start__ = .;
+/*
+  .bss2 :
+  {
+    . = ALIGN(4);
+    __bss2_start__ = .;
     *(.bss2)
-		*(.bss2.*)
-		. = ALIGN(4);
-		__bss2_end__ = .;
-	} > RAM2
-  */
+    *(.bss2.*)
+    . = ALIGN(4);
+    __bss2_end__ = .;
+  } > RAM2 AT > RAM2
+*/
 
-	.heap (COPY) : 
-	{
+  .heap (COPY) :
+  {
     . = ALIGN(8);
-		__end__ = .;
-		PROVIDE(end = .);
-		. = . + __HEAP_SIZE;
+    __end__ = .;
+    PROVIDE(end = .);
+    . = . + __HEAP_SIZE;
     . = ALIGN(8);
-		__HeapLimit = .;
-	} > RAM
+    __HeapLimit = .;
+  } > RAM
 
-	.stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
-	{
+  .stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
+  {
     . = ALIGN(8);
     __StackLimit = .;
     . = . + __STACK_SIZE;
     . = ALIGN(8);
     __StackTop = .;
-	} > RAM
+  } > RAM
   PROVIDE(__stack = __StackTop);
 
-	/* Check if data + heap + stack exceeds RAM limit */
-	ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+  /* Check if data + heap + stack exceeds RAM limit */
+  ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 }
diff --git a/CMSIS/CoreValidation/Tests/config/core_m/rtebuild.ld b/CMSIS/CoreValidation/Tests/config/core_m/rtebuild.ld
index 624e305..88bfa8a 100644
--- a/CMSIS/CoreValidation/Tests/config/core_m/rtebuild.ld
+++ b/CMSIS/CoreValidation/Tests/config/core_m/rtebuild.ld
@@ -2,7 +2,7 @@
  * @file     gcc_arm.ld
  * @brief    GNU Linker Script for Cortex-M based device
  * @version  V2.0.0
- * @date     20. May 2019
+ * @date     21. May 2019
  ******************************************************************************/
 /*
  * Copyright (c) 2009-2019 Arm Limited. All rights reserved.
@@ -21,41 +21,41 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
-/*
-;-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
-*/
 
-/*--------------------- Flash Configuration ----------------------------------
-; <h> Flash Configuration
-;   <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
-;   <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*
+ *-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
+ */
+
+/*---------------------- Flash Configuration ----------------------------------
+  <h> Flash Configuration
+    <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
+    <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __ROM_BASE = 0x00000000;
 __ROM_SIZE = 0x00200000;
 
-/*--------------------- Embedded RAM Configuration ---------------------------
-; <h> RAM Configuration
-;   <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
-;   <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
+/*--------------------- Embedded RAM Configuration ----------------------------
+  <h> RAM Configuration
+    <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
+    <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
  -----------------------------------------------------------------------------*/
 __RAM_BASE = 0x20000000;
 __RAM_SIZE = 0x00200000;
 
-/*--------------------- Stack / Heap Configuration ---------------------------
-; <h> Stack / Heap Configuration
-;   <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-;   <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*--------------------- Stack / Heap Configuration ----------------------------
+  <h> Stack / Heap Configuration
+    <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+    <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __STACK_SIZE = 0x00000400;
 __HEAP_SIZE  = 0x00000C00;
 
 /*
-;-------------------- <<< end of configuration section >>> --------------------
-*/
+ *-------------------- <<< end of configuration section >>> -------------------
+ */
 
 MEMORY
 {
@@ -97,196 +97,199 @@
 
 SECTIONS
 {
-	.text :
-	{
-		KEEP(*(.vectors))
-		*(.text*)
+  .text :
+  {
+    KEEP(*(.vectors))
+    *(.text*)
 
-		KEEP(*(.init))
-		KEEP(*(.fini))
+    KEEP(*(.init))
+    KEEP(*(.fini))
 
-		/* .ctors */
-		*crtbegin.o(.ctors)
-		*crtbegin?.o(.ctors)
-		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-		*(SORT(.ctors.*))
-		*(.ctors)
+    /* .ctors */
+    *crtbegin.o(.ctors)
+    *crtbegin?.o(.ctors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+    *(SORT(.ctors.*))
+    *(.ctors)
 
-		/* .dtors */
- 		*crtbegin.o(.dtors)
- 		*crtbegin?.o(.dtors)
- 		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- 		*(SORT(.dtors.*))
- 		*(.dtors)
+    /* .dtors */
+    *crtbegin.o(.dtors)
+    *crtbegin?.o(.dtors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+    *(SORT(.dtors.*))
+    *(.dtors)
 
-		*(.rodata*)
+    *(.rodata*)
 
-		KEEP(*(.eh_frame*))
-	} > FLASH
+    KEEP(*(.eh_frame*))
+  } > FLASH
 
-/* SG veneers:
-   All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
-   must be set, either with the command line option ‘--section-start’ or in a linker script,
-   to indicate where to place these veneers in memory.
- */
+  /*
+   * SG veneers:
+   * All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
+   * must be set, either with the command line option ‘--section-start’ or in a linker script,
+   * to indicate where to place these veneers in memory.
+   */
 /*
-    .gnu.sgstubs :
-    {
-        . = ALIGN(32);
-    } > FLASH
+  .gnu.sgstubs :
+  {
+    . = ALIGN(32);
+  } > FLASH
 */
-	.ARM.extab :
-	{
-		*(.ARM.extab* .gnu.linkonce.armextab.*)
-	} > FLASH
+  .ARM.extab :
+  {
+    *(.ARM.extab* .gnu.linkonce.armextab.*)
+  } > FLASH
 
-	__exidx_start = .;
-	.ARM.exidx :
-	{
-		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
-	} > FLASH
-	__exidx_end = .;
+  __exidx_start = .;
+  .ARM.exidx :
+  {
+    *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+  } > FLASH
+  __exidx_end = .;
 
-	.copy.table :
-	{
-		. = ALIGN(4);
-		__copy_table_start__ = .;
-		LONG (__etext)
-		LONG (__data_start__)
-		LONG (__data_end__ - __data_start__)
-    /** Add each additional data section here */
-    /*
-		LONG (__etext2)
-		LONG (__data2_start__)
-		LONG (__data2_end__ - __data2_start__)
-    */
-		__copy_table_end__ = .;
-	} > FLASH
+  .copy.table :
+  {
+    . = ALIGN(4);
+    __copy_table_start__ = .;
+    LONG (__etext)
+    LONG (__data_start__)
+    LONG (__data_end__ - __data_start__)
+    /* Add each additional data section here */
+/*
+    LONG (__etext2)
+    LONG (__data2_start__)
+    LONG (__data2_end__ - __data2_start__)
+*/
+    __copy_table_end__ = .;
+  } > FLASH
 
-	.zero.table :
-	{
-		. = ALIGN(4);
-		__zero_table_start__ = .;
-    /** Add each additional bss section here */
-    /* 
+  .zero.table :
+  {
+    . = ALIGN(4);
+    __zero_table_start__ = .;
+    /* Add each additional bss section here */
+/*
     LONG (__bss2_start__)
-		LONG (__bss2_end__ - __bss2_start__) 
-    */
-		__zero_table_end__ = .;
-	} > FLASH
+    LONG (__bss2_end__ - __bss2_start__)
+*/
+    __zero_table_end__ = .;
+  } > FLASH
 
-	/* Location counter can end up 2byte aligned with narrow Thumb code but
-	   __etext is assumed by startup code to be the LMA of a section in RAM
-	   which must be 4byte aligned */
-	__etext = ALIGN (4);
+  /**
+   * Location counter can end up 2byte aligned with narrow Thumb code but
+   * __etext is assumed by startup code to be the LMA of a section in RAM
+   * which must be 4byte aligned 
+   */
+  __etext = ALIGN (4);
 
-	.data : AT (__etext)
-	{
-		__data_start__ = .;
-		*(vtable)
-		*(.data)
+  .data : AT (__etext)
+  {
+    __data_start__ = .;
+    *(vtable)
+    *(.data)
     *(.data.*)
-        
-		. = ALIGN(4);
-		/* preinit data */
-		PROVIDE_HIDDEN (__preinit_array_start = .);
-		KEEP(*(.preinit_array))
-		PROVIDE_HIDDEN (__preinit_array_end = .);
 
-		. = ALIGN(4);
-		/* init data */
-		PROVIDE_HIDDEN (__init_array_start = .);
-		KEEP(*(SORT(.init_array.*)))
-		KEEP(*(.init_array))
-		PROVIDE_HIDDEN (__init_array_end = .);
+    . = ALIGN(4);
+    /* preinit data */
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP(*(.preinit_array))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+
+    . = ALIGN(4);
+    /* init data */
+    PROVIDE_HIDDEN (__init_array_start = .);
+    KEEP(*(SORT(.init_array.*)))
+    KEEP(*(.init_array))
+    PROVIDE_HIDDEN (__init_array_end = .);
 
 
-		. = ALIGN(4);
-		/* finit data */
-		PROVIDE_HIDDEN (__fini_array_start = .);
-		KEEP(*(SORT(.fini_array.*)))
-		KEEP(*(.fini_array))
-		PROVIDE_HIDDEN (__fini_array_end = .);
+    . = ALIGN(4);
+    /* finit data */
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP(*(SORT(.fini_array.*)))
+    KEEP(*(.fini_array))
+    PROVIDE_HIDDEN (__fini_array_end = .);
 
-		KEEP(*(.jcr*))
-		. = ALIGN(4);
-		/* All data end */
-		__data_end__ = .;
+    KEEP(*(.jcr*))
+    . = ALIGN(4);
+    /* All data end */
+    __data_end__ = .;
 
-	} > RAM
+  } > RAM
 
-  /** 
-   * Secondary data section, optional 
-   * 
+  /*
+   * Secondary data section, optional
+   *
    * Remember to add each additional data section
    * to the .copy.table above to asure proper
    * initialization during startup.
    */
-  /*
+/*
   __etext2 = ALIGN (4);
 
-	.data2 : AT (__etext2)
-	{
+  .data2 : AT (__etext2)
+  {
     . = ALIGN(4);
-		__data2_start__ = .;
+    __data2_start__ = .;
     *(.data2)
     *(.data2.*)
-		. = ALIGN(4);
-		__data2_end__ = .;
+    . = ALIGN(4);
+    __data2_end__ = .;
 
-	} > RAM 
-  */
-  
-	.bss (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss_start__ = .;
+  } > RAM2
+*/
+
+  .bss :
+  {
+    . = ALIGN(4);
+    __bss_start__ = .;
     *(.bss)
-		*(.bss.*)
-		*(COMMON)
-		. = ALIGN(4);
-		__bss_end__ = .;
-	} > RAM
+    *(.bss.*)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+  } > RAM AT > RAM
 
-  /**
-   * Secondary bss section, optional 
+  /*
+   * Secondary bss section, optional
    *
    * Remember to add each additional bss section
    * to the .zero.table above to asure proper
    * initialization during startup.
    */
-  /*
-	.bss2 (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss2_start__ = .;
+/*
+  .bss2 :
+  {
+    . = ALIGN(4);
+    __bss2_start__ = .;
     *(.bss2)
-		*(.bss2.*)
-		. = ALIGN(4);
-		__bss2_end__ = .;
-	} > RAM2
-  */
+    *(.bss2.*)
+    . = ALIGN(4);
+    __bss2_end__ = .;
+  } > RAM2 AT > RAM2
+*/
 
-	.heap (COPY) :
-	{
+  .heap (COPY) :
+  {
     . = ALIGN(8);
-		__end__ = .;
-		PROVIDE(end = .);
-		. = . + __HEAP_SIZE;
+    __end__ = .;
+    PROVIDE(end = .);
+    . = . + __HEAP_SIZE;
     . = ALIGN(8);
-		__HeapLimit = .;
-	} > RAM
+    __HeapLimit = .;
+  } > RAM
 
-	.stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
-	{
+  .stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
+  {
     . = ALIGN(8);
     __StackLimit = .;
     . = . + __STACK_SIZE;
     . = ALIGN(8);
     __StackTop = .;
-	} > RAM
+  } > RAM
   PROVIDE(__stack = __StackTop);
 
-	/* Check if data + heap + stack exceeds RAM limit */
-	ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+  /* Check if data + heap + stack exceeds RAM limit */
+  ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 }
diff --git a/CMSIS/CoreValidation/Tests/config/core_m/rtebuild_ns.ld b/CMSIS/CoreValidation/Tests/config/core_m/rtebuild_ns.ld
index d868cb0..780ef81 100644
--- a/CMSIS/CoreValidation/Tests/config/core_m/rtebuild_ns.ld
+++ b/CMSIS/CoreValidation/Tests/config/core_m/rtebuild_ns.ld
@@ -2,7 +2,7 @@
  * @file     gcc_arm.ld
  * @brief    GNU Linker Script for Cortex-M based device
  * @version  V2.0.0
- * @date     20. May 2019
+ * @date     21. May 2019
  ******************************************************************************/
 /*
  * Copyright (c) 2009-2019 Arm Limited. All rights reserved.
@@ -21,41 +21,41 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
-/*
-;-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
-*/
 
-/*--------------------- Flash Configuration ----------------------------------
-; <h> Flash Configuration
-;   <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
-;   <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*
+ *-------- <<< Use Configuration Wizard in Context Menu >>> -------------------
+ */
+
+/*---------------------- Flash Configuration ----------------------------------
+  <h> Flash Configuration
+    <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
+    <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __ROM_BASE = 0x00200000;
 __ROM_SIZE = 0x00200000;
 
-/*--------------------- Embedded RAM Configuration ---------------------------
-; <h> RAM Configuration
-;   <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
-;   <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
+/*--------------------- Embedded RAM Configuration ----------------------------
+  <h> RAM Configuration
+    <o0> RAM Base Address    <0x0-0xFFFFFFFF:8>
+    <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
  -----------------------------------------------------------------------------*/
 __RAM_BASE = 0x20200000;
 __RAM_SIZE = 0x00200000;
 
-/*--------------------- Stack / Heap Configuration ---------------------------
-; <h> Stack / Heap Configuration
-;   <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-;   <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
- -----------------------------------------------------------------------------*/
+/*--------------------- Stack / Heap Configuration ----------------------------
+  <h> Stack / Heap Configuration
+    <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+    <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+  </h>
+  -----------------------------------------------------------------------------*/
 __STACK_SIZE = 0x00000400;
 __HEAP_SIZE  = 0x00000C00;
 
 /*
-;-------------------- <<< end of configuration section >>> --------------------
-*/
+ *-------------------- <<< end of configuration section >>> -------------------
+ */
 
 MEMORY
 {
@@ -97,196 +97,199 @@
 
 SECTIONS
 {
-	.text :
-	{
-		KEEP(*(.vectors))
-		*(.text*)
+  .text :
+  {
+    KEEP(*(.vectors))
+    *(.text*)
 
-		KEEP(*(.init))
-		KEEP(*(.fini))
+    KEEP(*(.init))
+    KEEP(*(.fini))
 
-		/* .ctors */
-		*crtbegin.o(.ctors)
-		*crtbegin?.o(.ctors)
-		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-		*(SORT(.ctors.*))
-		*(.ctors)
+    /* .ctors */
+    *crtbegin.o(.ctors)
+    *crtbegin?.o(.ctors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+    *(SORT(.ctors.*))
+    *(.ctors)
 
-		/* .dtors */
- 		*crtbegin.o(.dtors)
- 		*crtbegin?.o(.dtors)
- 		*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- 		*(SORT(.dtors.*))
- 		*(.dtors)
+    /* .dtors */
+    *crtbegin.o(.dtors)
+    *crtbegin?.o(.dtors)
+    *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+    *(SORT(.dtors.*))
+    *(.dtors)
 
-		*(.rodata*)
+    *(.rodata*)
 
-		KEEP(*(.eh_frame*))
-	} > FLASH
+    KEEP(*(.eh_frame*))
+  } > FLASH
 
-/* SG veneers:
-   All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
-   must be set, either with the command line option ‘--section-start’ or in a linker script,
-   to indicate where to place these veneers in memory.
- */
+  /*
+   * SG veneers:
+   * All SG veneers are placed in the special output section .gnu.sgstubs. Its start address
+   * must be set, either with the command line option ‘--section-start’ or in a linker script,
+   * to indicate where to place these veneers in memory.
+   */
 /*
-    .gnu.sgstubs :
-    {
-        . = ALIGN(32);
-    } > FLASH
+  .gnu.sgstubs :
+  {
+    . = ALIGN(32);
+  } > FLASH
 */
-	.ARM.extab :
-	{
-		*(.ARM.extab* .gnu.linkonce.armextab.*)
-	} > FLASH
+  .ARM.extab :
+  {
+    *(.ARM.extab* .gnu.linkonce.armextab.*)
+  } > FLASH
 
-	__exidx_start = .;
-	.ARM.exidx :
-	{
-		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
-	} > FLASH
-	__exidx_end = .;
+  __exidx_start = .;
+  .ARM.exidx :
+  {
+    *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+  } > FLASH
+  __exidx_end = .;
 
-	.copy.table :
-	{
-		. = ALIGN(4);
-		__copy_table_start__ = .;
-		LONG (__etext)
-		LONG (__data_start__)
-		LONG (__data_end__ - __data_start__)
-    /** Add each additional data section here */
-    /*
-		LONG (__etext2)
-		LONG (__data2_start__)
-		LONG (__data2_end__ - __data2_start__)
-    */
-		__copy_table_end__ = .;
-	} > FLASH
+  .copy.table :
+  {
+    . = ALIGN(4);
+    __copy_table_start__ = .;
+    LONG (__etext)
+    LONG (__data_start__)
+    LONG (__data_end__ - __data_start__)
+    /* Add each additional data section here */
+/*
+    LONG (__etext2)
+    LONG (__data2_start__)
+    LONG (__data2_end__ - __data2_start__)
+*/
+    __copy_table_end__ = .;
+  } > FLASH
 
-	.zero.table :
-	{
-		. = ALIGN(4);
-		__zero_table_start__ = .;
-    /** Add each additional bss section here */
-    /* 
+  .zero.table :
+  {
+    . = ALIGN(4);
+    __zero_table_start__ = .;
+    /* Add each additional bss section here */
+/*
     LONG (__bss2_start__)
-		LONG (__bss2_end__ - __bss2_start__) 
-    */
-		__zero_table_end__ = .;
-	} > FLASH
+    LONG (__bss2_end__ - __bss2_start__)
+*/
+    __zero_table_end__ = .;
+  } > FLASH
 
-	/* Location counter can end up 2byte aligned with narrow Thumb code but
-	   __etext is assumed by startup code to be the LMA of a section in RAM
-	   which must be 4byte aligned */
-	__etext = ALIGN (4);
+  /**
+   * Location counter can end up 2byte aligned with narrow Thumb code but
+   * __etext is assumed by startup code to be the LMA of a section in RAM
+   * which must be 4byte aligned 
+   */
+  __etext = ALIGN (4);
 
-	.data : AT (__etext)
-	{
-		__data_start__ = .;
-		*(vtable)
-		*(.data)
+  .data : AT (__etext)
+  {
+    __data_start__ = .;
+    *(vtable)
+    *(.data)
     *(.data.*)
-        
-		. = ALIGN(4);
-		/* preinit data */
-		PROVIDE_HIDDEN (__preinit_array_start = .);
-		KEEP(*(.preinit_array))
-		PROVIDE_HIDDEN (__preinit_array_end = .);
 
-		. = ALIGN(4);
-		/* init data */
-		PROVIDE_HIDDEN (__init_array_start = .);
-		KEEP(*(SORT(.init_array.*)))
-		KEEP(*(.init_array))
-		PROVIDE_HIDDEN (__init_array_end = .);
+    . = ALIGN(4);
+    /* preinit data */
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP(*(.preinit_array))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+
+    . = ALIGN(4);
+    /* init data */
+    PROVIDE_HIDDEN (__init_array_start = .);
+    KEEP(*(SORT(.init_array.*)))
+    KEEP(*(.init_array))
+    PROVIDE_HIDDEN (__init_array_end = .);
 
 
-		. = ALIGN(4);
-		/* finit data */
-		PROVIDE_HIDDEN (__fini_array_start = .);
-		KEEP(*(SORT(.fini_array.*)))
-		KEEP(*(.fini_array))
-		PROVIDE_HIDDEN (__fini_array_end = .);
+    . = ALIGN(4);
+    /* finit data */
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP(*(SORT(.fini_array.*)))
+    KEEP(*(.fini_array))
+    PROVIDE_HIDDEN (__fini_array_end = .);
 
-		KEEP(*(.jcr*))
-		. = ALIGN(4);
-		/* All data end */
-		__data_end__ = .;
+    KEEP(*(.jcr*))
+    . = ALIGN(4);
+    /* All data end */
+    __data_end__ = .;
 
-	} > RAM
+  } > RAM
 
-  /** 
-   * Secondary data section, optional 
-   * 
+  /*
+   * Secondary data section, optional
+   *
    * Remember to add each additional data section
    * to the .copy.table above to asure proper
    * initialization during startup.
    */
-  /*
+/*
   __etext2 = ALIGN (4);
 
-	.data2 : AT (__etext2)
-	{
+  .data2 : AT (__etext2)
+  {
     . = ALIGN(4);
-		__data2_start__ = .;
+    __data2_start__ = .;
     *(.data2)
     *(.data2.*)
-		. = ALIGN(4);
-		__data2_end__ = .;
+    . = ALIGN(4);
+    __data2_end__ = .;
 
-	} > RAM 
-  */
-  
-	.bss (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss_start__ = .;
+  } > RAM2
+*/
+
+  .bss :
+  {
+    . = ALIGN(4);
+    __bss_start__ = .;
     *(.bss)
-		*(.bss.*)
-		*(COMMON)
-		. = ALIGN(4);
-		__bss_end__ = .;
-	} > RAM
+    *(.bss.*)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+  } > RAM AT > RAM
 
-  /**
-   * Secondary bss section, optional 
+  /*
+   * Secondary bss section, optional
    *
    * Remember to add each additional bss section
    * to the .zero.table above to asure proper
    * initialization during startup.
    */
-  /*
-	.bss2 (NOLOAD) :
-	{
-		. = ALIGN(4);
-		__bss2_start__ = .;
+/*
+  .bss2 :
+  {
+    . = ALIGN(4);
+    __bss2_start__ = .;
     *(.bss2)
-		*(.bss2.*)
-		. = ALIGN(4);
-		__bss2_end__ = .;
-	} > RAM2
-  */
+    *(.bss2.*)
+    . = ALIGN(4);
+    __bss2_end__ = .;
+  } > RAM2 AT > RAM2
+*/
 
-	.heap (COPY) :
-	{
+  .heap (COPY) :
+  {
     . = ALIGN(8);
-		__end__ = .;
-		PROVIDE(end = .);
-		. = . + __HEAP_SIZE;
+    __end__ = .;
+    PROVIDE(end = .);
+    . = . + __HEAP_SIZE;
     . = ALIGN(8);
-		__HeapLimit = .;
-	} > RAM
+    __HeapLimit = .;
+  } > RAM
 
-	.stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
-	{
+  .stack (ORIGIN(RAM) + LENGTH(RAM) - __STACK_SIZE) (COPY) :
+  {
     . = ALIGN(8);
     __StackLimit = .;
     . = . + __STACK_SIZE;
     . = ALIGN(8);
     __StackTop = .;
-	} > RAM
+  } > RAM
   PROVIDE(__stack = __StackTop);
 
-	/* Check if data + heap + stack exceeds RAM limit */
-	ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+  /* Check if data + heap + stack exceeds RAM limit */
+  ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
 }