Upload Tizen:Base source
[external/binutils.git] / ld / emulparams / elf32_tic6x_le.sh
1 SCRIPT_NAME=elf
2 TEMPLATE_NAME=elf32
3 OUTPUT_FORMAT="elf32-tic6x-le"
4 BIG_OUTPUT_FORMAT="elf32-tic6x-be"
5 EXTRA_EM_FILE=tic6xdsbt
6 GENERATE_SHLIB_SCRIPT=yes
7 # This address is an arbitrary value expected to be suitable for
8 # semihosting simulator use, but not on hardware where it is expected
9 # to be overridden.
10 case ${target} in
11     *-elf)
12         TEXT_START_ADDR=0x8000
13         ;;
14     *-uclinux)
15         TEXT_START_ADDR=0x0
16         GOT="
17 .got ${RELOCATING-0} : {
18   *(.dsbt)
19   *(.got.plt) *(.igot.plt) *(.got) *(.igot)
20 }"
21         ;;
22 esac
23 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
24 ARCH=tic6x
25 EXECUTABLE_SYMBOLS="EXTERN (__c6xabi_DSBT_BASE);"
26 OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
27 # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is
28 # far read-only data, ".rodata" is near read-only data.  ".neardata"
29 # is near (small) data, ".fardata" is (along with .data) far data.
30 RODATA_NAME="const"
31 SDATA_NAME="neardata"
32 SBSS_NAME="bss"
33 BSS_NAME="far"
34 OTHER_READONLY_SECTIONS="
35   .c6xabi.extab ${RELOCATING-0} : { *(.c6xabi.extab${RELOCATING+* .gnu.linkonce.c6xabiextab.*}) }
36   ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
37   .c6xabi.exidx ${RELOCATING-0} : { *(.c6xabi.exidx${RELOCATING+* .gnu.linkonce.c6xabiexidx.*}) }
38   ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
39 OTHER_SDATA_SECTIONS=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.*}) }"
40 OTHER_READONLY_RELOC_SECTIONS="
41   .rel.rodata   ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.*}) }
42   .rela.rodata  ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.*}) }"
43 OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .fardata.*}) }"
44 OTHER_READWRITE_RELOC_SECTIONS="
45   .rel.fardata     ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) }
46   .rela.fardata    ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"
47 case ${target} in
48     *-elf)
49         OTHER_BSS_SECTIONS="
50   .heap : 
51   { 
52     . = ALIGN(4); 
53     _HEAP_START = .; 
54     . += 0x2000000; 
55     _HEAP_MAX = .; 
56   }
57   .stack :
58   {
59     . +=  0x100000;
60     _STACK_START = .;
61   }"
62         ;;
63 esac
64 ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'