.text : {
_text = .;
KEEP(*(.isr_vectors))
- *(.init*)
- *(.fini*)
*(.text*)
*(.rodata*)
- _text_end = .;
} > flash
+ /* .ARM.exidx is sorted, so has to go in its own output section.
+*/
+ .ARM.exidx : {
+ __exidx_start = .;
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ __exidx_end = .;
+ } > flash
+
+ . = ALIGN(4);
+ .ARM.extab : {
+ __extab_start = .;
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ __extab_end = .;
+ } > flash
+
+ . = ALIGN(4);
- .data : AT ( ADDR(.text) + SIZEOF(.text) ) {
+ _text_end = .;
+ .data : AT ( ADDR(.ARM.extab) + SIZEOF(.ARM.extab) ) {
_data = .;
*(.data*)
_data_end = .;
.bss : AT ( ADDR(.data) + SIZEOF(.data) ) {
_bss = .;
- __bss_start__ = .;
*(.bss*)
*(COMMON)
_bss_end = .;
- __bss_end__ = .;
} > ram
end = .;
}