diff options
Diffstat (limited to 'ld/scripttempl/elfd10v.sc')
-rw-r--r-- | ld/scripttempl/elfd10v.sc | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/ld/scripttempl/elfd10v.sc b/ld/scripttempl/elfd10v.sc index d21f580f..b79e95e 100644 --- a/ld/scripttempl/elfd10v.sc +++ b/ld/scripttempl/elfd10v.sc @@ -70,12 +70,15 @@ cat <<EOF OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}", "${LITTLE_OUTPUT_FORMAT}") OUTPUT_ARCH(${OUTPUT_ARCH}) -${RELOCATING+ENTRY(${ENTRY})} +EOF + +test -n "${RELOCATING}" && cat <<EOF +ENTRY(${ENTRY}) -${RELOCATING+${LIB_SEARCH_DIRS}} -${RELOCATING+/* Do we need any of these for elf? - __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */} -${RELOCATING+${EXECUTABLE_SYMBOLS}} +${LIB_SEARCH_DIRS} +/* Do we need any of these for elf? + __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */ +${EXECUTABLE_SYMBOLS} MEMORY { @@ -94,47 +97,50 @@ MEMORY STACK : org = 0x0200BFFC, len = 4 } +EOF + +cat <<EOF SECTIONS { .text ${RELOCATING+${TEXT_START_ADDR}} : { - ${RELOCATING+${TEXT_START_SYMBOLS}} + ${RELOCATING+${TEXT_START_SYMBOLS} KEEP (*(SORT_NONE(.init))) KEEP (*(SORT_NONE(.init.*))) KEEP (*(SORT_NONE(.fini))) - KEEP (*(SORT_NONE(.fini.*))) + KEEP (*(SORT_NONE(.fini.*)))} *(.text) - *(.text.*) + ${RELOCATING+*(.text.*)} /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - ${RELOCATING+_etext = .;} - ${RELOCATING+PROVIDE (etext = .);} + ${RELOCATING+*(.gnu.linkonce.t*) + _etext = .; + PROVIDE (etext = .);} } ${RELOCATING+ >INSN} =${NOP-0} .rodata ${RELOCATING+${READONLY_START_ADDR}} : { *(.rodata) - *(.gnu.linkonce.r*) - *(.rodata.*) + ${RELOCATING+*(.gnu.linkonce.r*) + *(.rodata.*)} } ${RELOCATING+ >DATA} .rodata1 ${RELOCATING-0} : { *(.rodata1) - *(.rodata1.*) + ${RELOCATING+*(.rodata1.*)} } ${RELOCATING+ >DATA} .data ${RELOCATING-0} : { ${RELOCATING+${DATA_START_SYMBOLS}} *(.data) - *(.data.*) - *(.gnu.linkonce.d*) + ${RELOCATING+*(.data.*) + *(.gnu.linkonce.d*)} ${CONSTRUCTING+CONSTRUCTORS} } ${RELOCATING+ >DATA} .data1 ${RELOCATING-0} : { *(.data1) - *(.data1.*) + ${RELOCATING+*(.data1.*)} } ${RELOCATING+ >DATA} ${RELOCATING+${CTOR} >DATA} @@ -145,20 +151,20 @@ SECTIONS we can shorten the on-disk segment size. */ .sdata ${RELOCATING-0} : { *(.sdata) - *(.sdata.*) + ${RELOCATING+*(.sdata.*)} } ${RELOCATING+ >DATA} ${RELOCATING+_edata = .;} ${RELOCATING+PROVIDE (edata = .);} ${RELOCATING+__bss_start = .;} - .sbss ${RELOCATING-0} : { *(.sbss) *(.scommon) } ${RELOCATING+ >DATA} + .sbss ${RELOCATING-0} : { *(.sbss)${RELOCATING+ *(.scommon)} } ${RELOCATING+ >DATA} .bss ${RELOCATING-0} : { - *(.dynbss) - *(.dynbss.*) + ${RELOCATING+*(.dynbss) + *(.dynbss.*)} *(.bss) - *(.bss.*) - *(COMMON) + ${RELOCATING+*(.bss.*) + *(COMMON)} } ${RELOCATING+ >DATA} ${RELOCATING+_end = . ;} |