Commit | Line | Data |
---|---|---|
40b36596 | 1 | SCRIPT_NAME=elf |
075a2b89 | 2 | TEMPLATE_NAME=elf |
40b36596 | 3 | OUTPUT_FORMAT="elf32-tic6x-le" |
ac145307 BS |
4 | BIG_OUTPUT_FORMAT="elf32-tic6x-be" |
5 | EXTRA_EM_FILE=tic6xdsbt | |
6 | GENERATE_SHLIB_SCRIPT=yes | |
40b36596 JM |
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. | |
ac145307 BS |
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} : { | |
2bf2bf23 AM |
18 | ${RELOCATING+*(.dsbt) |
19 | *(.got.plt) *(.igot.plt) }*(.got)${RELOCATING+ *(.igot)} | |
ac145307 BS |
20 | }" |
21 | ;; | |
22 | esac | |
40b36596 JM |
23 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" |
24 | ARCH=tic6x | |
ac145307 | 25 | OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);" |
40b36596 JM |
26 | # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is |
27 | # far read-only data, ".rodata" is near read-only data. ".neardata" | |
28 | # is near (small) data, ".fardata" is (along with .data) far data. | |
29 | RODATA_NAME="const" | |
30 | SDATA_NAME="neardata" | |
31 | SBSS_NAME="bss" | |
32 | BSS_NAME="far" | |
6970a028 PB |
33 | OTHER_READONLY_SECTIONS=" |
34 | .c6xabi.extab ${RELOCATING-0} : { *(.c6xabi.extab${RELOCATING+* .gnu.linkonce.c6xabiextab.*}) } | |
35 | ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); } | |
36 | .c6xabi.exidx ${RELOCATING-0} : { *(.c6xabi.exidx${RELOCATING+* .gnu.linkonce.c6xabiexidx.*}) } | |
37 | ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }" | |
40b36596 JM |
38 | OTHER_SDATA_SECTIONS=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.*}) }" |
39 | OTHER_READONLY_RELOC_SECTIONS=" | |
40 | .rel.rodata ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.*}) } | |
41 | .rela.rodata ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.*}) }" | |
42 | OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .fardata.*}) }" | |
43 | OTHER_READWRITE_RELOC_SECTIONS=" | |
44 | .rel.fardata ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) } | |
45 | .rela.fardata ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }" | |
16c1c9d6 CG |
46 | # For relocating operation, skip OTHER_BSS_SECTIONS, or will cause multiple definition. |
47 | if [ ${RELOCATING-0} ]; then | |
48 | OTHER_BSS_SECTIONS=""; | |
49 | else | |
50 | case ${target} in | |
51 | ||
ac145307 BS |
52 | *-elf) |
53 | OTHER_BSS_SECTIONS=" | |
e4492aa0 L |
54 | .heap : |
55 | { | |
56 | . = ALIGN(4); | |
57 | _HEAP_START = .; | |
58 | . += 0x2000000; | |
59 | _HEAP_MAX = .; | |
11dd4e37 BS |
60 | } |
61 | .stack : | |
62 | { | |
63 | . += 0x100000; | |
64 | _STACK_START = .; | |
65 | }" | |
ac145307 | 66 | ;; |
16c1c9d6 CG |
67 | esac |
68 | fi | |
75fa6dc1 | 69 | ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }' |