aboutsummaryrefslogtreecommitdiffstats
path: root/support/ld
diff options
context:
space:
mode:
Diffstat (limited to 'support/ld')
-rw-r--r--support/ld/common.inc53
1 files changed, 23 insertions, 30 deletions
diff --git a/support/ld/common.inc b/support/ld/common.inc
index 926f9eb..f749b19 100644
--- a/support/ld/common.inc
+++ b/support/ld/common.inc
@@ -102,29 +102,6 @@ SECTIONS
} > REGION_TEXT
/*
- * Read-only data
- */
- .rodata :
- {
- *(.rodata .rodata.* .gnu.linkonce.r.*)
-
- /* ROM image configuration; for C startup */
- . = ALIGN(4);
- _lm_rom_img_cfgp = .;
- LONG(LOADADDR(.data));
- } > REGION_RODATA
-
- /*
- * .ARM.exidx exception unwinding; mandated by ARM's C++ ABI
- */
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > REGION_RODATA
- __exidx_end = .;
-
- /*
* End of text
*/
.text.align :
@@ -134,12 +111,14 @@ SECTIONS
} > REGION_TEXT
/*
- * .USER_FLASH: We allow users to allocate into Flash here
+ * .ARM.exidx exception unwinding; mandated by ARM's C++ ABI
*/
- .USER_FLASH :
+ __exidx_start = .;
+ .ARM.exidx :
{
- *(.USER_FLASH)
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > REGION_RODATA
+ __exidx_end = .;
/*
* .data
@@ -152,6 +131,22 @@ SECTIONS
*(.got.plt) *(.got)
*(.data .data.* .gnu.linkonce.d.*)
+ . = ALIGN(8);
+ _edata = .;
+ } > REGION_DATA AT> REGION_RODATA
+
+ /*
+ * Read-only data
+ */
+ .rodata :
+ {
+ *(.rodata .rodata.* .gnu.linkonce.r.*)
+ /* .USER_FLASH: We allow users to allocate into Flash here */
+ *(.USER_FLASH)
+ /* ROM image configuration; for C startup */
+ . = ALIGN(4);
+ _lm_rom_img_cfgp = .;
+ LONG(LOADADDR(.data));
/*
* Heap: Linker scripts may choose a custom heap by overriding
* _lm_heap_start and _lm_heap_end. Otherwise, the heap is in
@@ -163,9 +158,7 @@ SECTIONS
*/
_lm_heap_start = DEFINED(_lm_heap_start) ? _lm_heap_start : _end;
_lm_heap_end = DEFINED(_lm_heap_end) ? _lm_heap_end : __msp_init;
- . = ALIGN (8);
- _edata = .;
- } > REGION_DATA AT> REGION_TEXT
+ } > REGION_RODATA
/*
* .bss
@@ -179,7 +172,7 @@ SECTIONS
. = ALIGN (8);
_ebss = .;
_end = _ebss;
- } > REGION_BSS AT> REGION_TEXT
+ } > REGION_BSS
/*
* Debugging sections