diff options
Diffstat (limited to 'ld/scripttempl/avr.sc')
-rw-r--r-- | ld/scripttempl/avr.sc | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc deleted file mode 100644 index bfce5fe..0000000 --- a/ld/scripttempl/avr.sc +++ /dev/null @@ -1,244 +0,0 @@ -cat <<EOF -OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}") -OUTPUT_ARCH(${ARCH}) - -MEMORY -{ - text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH - data (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH - eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K - fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K - lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K - signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K -} - -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - ${TEXT_DYNAMIC+${DYNAMIC}} - .hash ${RELOCATING-0} : { *(.hash) } - .dynsym ${RELOCATING-0} : { *(.dynsym) } - .dynstr ${RELOCATING-0} : { *(.dynstr) } - .gnu.version ${RELOCATING-0} : { *(.gnu.version) } - .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d) } - .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r) } - - .rel.init ${RELOCATING-0} : { *(.rel.init) } - .rela.init ${RELOCATING-0} : { *(.rela.init) } - .rel.text ${RELOCATING-0} : - { - *(.rel.text) - ${RELOCATING+*(.rel.text.*)} - ${RELOCATING+*(.rel.gnu.linkonce.t*)} - } - .rela.text ${RELOCATING-0} : - { - *(.rela.text) - ${RELOCATING+*(.rela.text.*)} - ${RELOCATING+*(.rela.gnu.linkonce.t*)} - } - .rel.fini ${RELOCATING-0} : { *(.rel.fini) } - .rela.fini ${RELOCATING-0} : { *(.rela.fini) } - .rel.rodata ${RELOCATING-0} : - { - *(.rel.rodata) - ${RELOCATING+*(.rel.rodata.*)} - ${RELOCATING+*(.rel.gnu.linkonce.r*)} - } - .rela.rodata ${RELOCATING-0} : - { - *(.rela.rodata) - ${RELOCATING+*(.rela.rodata.*)} - ${RELOCATING+*(.rela.gnu.linkonce.r*)} - } - .rel.data ${RELOCATING-0} : - { - *(.rel.data) - ${RELOCATING+*(.rel.data.*)} - ${RELOCATING+*(.rel.gnu.linkonce.d*)} - } - .rela.data ${RELOCATING-0} : - { - *(.rela.data) - ${RELOCATING+*(.rela.data.*)} - ${RELOCATING+*(.rela.gnu.linkonce.d*)} - } - .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) } - .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) } - .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) } - .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) } - .rel.got ${RELOCATING-0} : { *(.rel.got) } - .rela.got ${RELOCATING-0} : { *(.rela.got) } - .rel.bss ${RELOCATING-0} : { *(.rel.bss) } - .rela.bss ${RELOCATING-0} : { *(.rela.bss) } - .rel.plt ${RELOCATING-0} : { *(.rel.plt) } - .rela.plt ${RELOCATING-0} : { *(.rela.plt) } - - /* Internal text space or external memory. */ - .text ${RELOCATING-0} : - { - *(.vectors) - KEEP(*(.vectors)) - - /* For data that needs to reside in the lower 64k of progmem. */ - ${RELOCATING+ *(.progmem.gcc*)} - - /* PR 13812: Placing the trampolines here gives a better chance - that they will be in range of the code that uses them. */ - ${RELOCATING+. = ALIGN(2);} - ${CONSTRUCTING+ __trampolines_start = . ; } - /* The jump trampolines for the 16-bit limited relocs will reside here. */ - *(.trampolines) - ${RELOCATING+ *(.trampolines*)} - ${CONSTRUCTING+ __trampolines_end = . ; } - - ${RELOCATING+ *(.progmem*)} - - ${RELOCATING+. = ALIGN(2);} - - /* For future tablejump instruction arrays for 3 byte pc devices. - We don't relax jump/call instructions within these sections. */ - *(.jumptables) - ${RELOCATING+ *(.jumptables*)} - - /* For code that needs to reside in the lower 128k progmem. */ - *(.lowtext) - ${RELOCATING+ *(.lowtext*)} - - ${CONSTRUCTING+ __ctors_start = . ; } - ${CONSTRUCTING+ *(.ctors) } - ${CONSTRUCTING+ __ctors_end = . ; } - ${CONSTRUCTING+ __dtors_start = . ; } - ${CONSTRUCTING+ *(.dtors) } - ${CONSTRUCTING+ __dtors_end = . ; } - KEEP(SORT(*)(.ctors)) - KEEP(SORT(*)(.dtors)) - - /* From this point on, we don't bother about wether the insns are - below or above the 16 bits boundary. */ - *(.init0) /* Start here after reset. */ - KEEP (*(.init0)) - *(.init1) - KEEP (*(.init1)) - *(.init2) /* Clear __zero_reg__, set up stack pointer. */ - KEEP (*(.init2)) - *(.init3) - KEEP (*(.init3)) - *(.init4) /* Initialize data and BSS. */ - KEEP (*(.init4)) - *(.init5) - KEEP (*(.init5)) - *(.init6) /* C++ constructors. */ - KEEP (*(.init6)) - *(.init7) - KEEP (*(.init7)) - *(.init8) - KEEP (*(.init8)) - *(.init9) /* Call main(). */ - KEEP (*(.init9)) - *(.text) - ${RELOCATING+. = ALIGN(2);} - ${RELOCATING+ *(.text.*)} - ${RELOCATING+. = ALIGN(2);} - *(.fini9) /* _exit() starts here. */ - KEEP (*(.fini9)) - *(.fini8) - KEEP (*(.fini8)) - *(.fini7) - KEEP (*(.fini7)) - *(.fini6) /* C++ destructors. */ - KEEP (*(.fini6)) - *(.fini5) - KEEP (*(.fini5)) - *(.fini4) - KEEP (*(.fini4)) - *(.fini3) - KEEP (*(.fini3)) - *(.fini2) - KEEP (*(.fini2)) - *(.fini1) - KEEP (*(.fini1)) - *(.fini0) /* Infinite loop after program termination. */ - KEEP (*(.fini0)) - ${RELOCATING+ _etext = . ; } - } ${RELOCATING+ > text} - - .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} - { - ${RELOCATING+ PROVIDE (__data_start = .) ; } - /* --gc-sections will delete empty .data. This leads to wrong start - addresses for subsequent sections because -Tdata= from the command - line will have no effect, see PR13697. Thus, keep .data */ - KEEP (*(.data)) - ${RELOCATING+ *(.data*)} - *(.rodata) /* We need to include .rodata here if gcc is used */ - ${RELOCATING+ *(.rodata*)} /* with -fdata-sections. */ - *(.gnu.linkonce.d*) - ${RELOCATING+. = ALIGN(2);} - ${RELOCATING+ _edata = . ; } - ${RELOCATING+ PROVIDE (__data_end = .) ; } - } ${RELOCATING+ > data} - - .bss ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))} - { - ${RELOCATING+ PROVIDE (__bss_start = .) ; } - *(.bss) - ${RELOCATING+ *(.bss*)} - *(COMMON) - ${RELOCATING+ PROVIDE (__bss_end = .) ; } - } ${RELOCATING+ > data} - - ${RELOCATING+ __data_load_start = LOADADDR(.data); } - ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); } - - /* Global data not cleared after reset. */ - .noinit ${RELOCATING-0}: - { - ${RELOCATING+ PROVIDE (__noinit_start = .) ; } - *(.noinit*) - ${RELOCATING+ PROVIDE (__noinit_end = .) ; } - ${RELOCATING+ _end = . ; } - ${RELOCATING+ PROVIDE (__heap_start = .) ; } - } ${RELOCATING+ > data} - - .eeprom ${RELOCATING-0}: - { - /* See .data above... */ - KEEP(*(.eeprom*)) - ${RELOCATING+ __eeprom_end = . ; } - } ${RELOCATING+ > eeprom} - - .fuse ${RELOCATING-0}: - { - KEEP(*(.fuse)) - KEEP(*(.lfuse)) - KEEP(*(.hfuse)) - KEEP(*(.efuse)) - } ${RELOCATING+ > fuse} - - .lock ${RELOCATING-0}: - { - KEEP(*(.lock*)) - } ${RELOCATING+ > lock} - - .signature ${RELOCATING-0}: - { - KEEP(*(.signature*)) - } ${RELOCATING+ > signature} - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - .note.gnu.build-id : { *(.note.gnu.build-id) } -EOF - -. $srcdir/scripttempl/DWARF.sc - -cat <<EOF -} -EOF |