1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- SCRIPT_NAME=elf
- TEMPLATE_NAME=elf32
- OUTPUT_FORMAT="elf32-tic6x-le"
- BIG_OUTPUT_FORMAT="elf32-tic6x-be"
- EXTRA_EM_FILE=tic6xdsbt
- GENERATE_SHLIB_SCRIPT=yes
- # This address is an arbitrary value expected to be suitable for
- # semihosting simulator use, but not on hardware where it is expected
- # to be overridden.
- case ${target} in
- *-elf)
- TEXT_START_ADDR=0x8000
- ;;
- *-uclinux)
- TEXT_START_ADDR=0x0
- GOT="
- .got ${RELOCATING-0} : {
- *(.dsbt)
- *(.got.plt) *(.igot.plt) *(.got) *(.igot)
- }"
- ;;
- esac
- MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
- ARCH=tic6x
- EXECUTABLE_SYMBOLS="EXTERN (__c6xabi_DSBT_BASE);"
- OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
- # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is
- # far read-only data, ".rodata" is near read-only data. ".neardata"
- # is near (small) data, ".fardata" is (along with .data) far data.
- RODATA_NAME="const"
- SDATA_NAME="neardata"
- SBSS_NAME="bss"
- BSS_NAME="far"
- OTHER_READONLY_SECTIONS="
- .c6xabi.extab ${RELOCATING-0} : { *(.c6xabi.extab${RELOCATING+* .gnu.linkonce.c6xabiextab.*}) }
- ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
- .c6xabi.exidx ${RELOCATING-0} : { *(.c6xabi.exidx${RELOCATING+* .gnu.linkonce.c6xabiexidx.*}) }
- ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
- OTHER_SDATA_SECTIONS=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.*}) }"
- OTHER_READONLY_RELOC_SECTIONS="
- .rel.rodata ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.*}) }
- .rela.rodata ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.*}) }"
- OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .fardata.*}) }"
- OTHER_READWRITE_RELOC_SECTIONS="
- .rel.fardata ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) }
- .rela.fardata ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"
- # For relocating operation, skip OTHER_BSS_SECTIONS, or will cause multiple definition.
- if [ ${RELOCATING-0} ]; then
- OTHER_BSS_SECTIONS="";
- else
- case ${target} in
- *-elf)
- OTHER_BSS_SECTIONS="
- .heap :
- {
- . = ALIGN(4);
- _HEAP_START = .;
- . += 0x2000000;
- _HEAP_MAX = .;
- }
- .stack :
- {
- . += 0x100000;
- _STACK_START = .;
- }"
- ;;
- esac
- fi
- ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'
|