| TORS=".tors : | |
| { | |
| ___ctors = . ; | |
| *(.ctors) | |
| ___ctors_end = . ; | |
| ___dtors = . ; | |
| *(.dtors) | |
| ___dtors_end = . ; | |
| . = ALIGN(4); | |
| } ${RELOCATING+ > ram}" | |
| cat <<EOF | |
| OUTPUT_FORMAT("${OUTPUT_FORMAT}") | |
| OUTPUT_ARCH(${ARCH}) | |
| ${LIB_SEARCH_DIRS} | |
| EOF | |
| test -n "${RELOCATING}" && cat <<EOF | |
| /* Allow the command line to override the memory region sizes. */ | |
| __PMSIZE = DEFINED(__PMSIZE) ? __PMSIZE : 256K; | |
| __RAMSIZE = DEFINED(__RAMSIZE) ? __RAMSIZE : 64K; | |
| MEMORY | |
| { | |
| flash (rx) : ORIGIN = 0, LENGTH = __PMSIZE | |
| ram (rw!x) : ORIGIN = 0x800000, LENGTH = __RAMSIZE | |
| } | |
| EOF | |
| cat <<EOF | |
| SECTIONS | |
| { | |
| .text : | |
| { | |
| *(.text${RELOCATING+*}) | |
| ${RELOCATING+*(.strings) | |
| *(._pm*) | |
| KEEP (*(SORT_NONE(.init))) | |
| KEEP (*(SORT_NONE(.fini))) | |
| _etext = .; | |
| . = ALIGN(4);} | |
| } ${RELOCATING+ > flash} | |
| ${CONSTRUCTING+${TORS}} | |
| .data : ${RELOCATING+ AT (ADDR (.text) + SIZEOF (.text))} | |
| { | |
| *(.data) | |
| ${RELOCATING+*(.rodata) | |
| *(.rodata*) | |
| _edata = .; | |
| . = ALIGN(4);} | |
| } ${RELOCATING+ > ram} | |
| .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : | |
| { | |
| ${RELOCATING+ _bss_start = . ; } | |
| *(.bss) | |
| ${RELOCATING+*(COMMON) | |
| _end = .; | |
| . = ALIGN(4);} | |
| } ${RELOCATING+ > ram} | |
| ${RELOCATING+ __data_load_start = LOADADDR(.data); } | |
| ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); } | |
| .stab 0 ${RELOCATING+(NOLOAD)} : | |
| { | |
| *(.stab) | |
| } | |
| .stabstr 0 ${RELOCATING+(NOLOAD)} : | |
| { | |
| *(.stabstr) | |
| } | |
| EOF | |
| . $srcdir/scripttempl/DWARF.sc | |
| cat <<EOF | |
| } | |
| EOF |