Commit | Line | Data |
---|---|---|
465bc359 AM |
1 | # If you change this file, please also look at files which source this one: |
2 | # elf32b4300.sh elf32bsmip.sh elf32btsmip.sh elf32ebmip.sh elf32lmip.sh | |
54530ea4 | 3 | # elf32ebmipvxworks.sh elf32elmipvxworks.sh |
465bc359 | 4 | |
252b5132 RH |
5 | SCRIPT_NAME=elf |
6 | OUTPUT_FORMAT="elf32-bigmips" | |
7 | BIG_OUTPUT_FORMAT="elf32-bigmips" | |
8 | LITTLE_OUTPUT_FORMAT="elf32-littlemips" | |
9 | TEXT_START_ADDR=0x0400000 | |
465bc359 | 10 | test -n "${EMBEDDED}" || DATA_ADDR=0x10000000 |
24718e3b L |
11 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" |
12 | COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" | |
252b5132 | 13 | SHLIB_TEXT_START_ADDR=0x5ffe0000 |
161f49a3 | 14 | TEXT_DYNAMIC= |
5a8e7be2 AM |
15 | INITIAL_READONLY_SECTIONS= |
16 | if test -z "${CREATE_SHLIB}"; then | |
17 | INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }" | |
18 | fi | |
19 | INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS} | |
351cdf24 MF |
20 | .MIPS.abiflags ${RELOCATING-0} : { *(.MIPS.abiflags) } |
21 | .reginfo ${RELOCATING-0} : { *(.reginfo) } | |
f16a9783 | 22 | .MIPS.xhash ${RELOCATING-0} : { *(.MIPS.xhash) } |
465bc359 | 23 | " |
252b5132 | 24 | OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' |
5427f821 RS |
25 | # Unlike most targets, the MIPS backend puts all dynamic relocations |
26 | # in a single dynobj section, which it also calls ".rel.dyn". It does | |
27 | # this so that it can easily sort all dynamic relocations before the | |
28 | # output section has been populated. | |
29 | OTHER_GOT_RELOC_SECTIONS=" | |
30 | .rel.dyn ${RELOCATING-0} : { *(.rel.dyn) } | |
31 | " | |
4e25343c | 32 | # If the output has a GOT section, there must be exactly 0x7ff0 bytes |
fd161d86 AM |
33 | # between .got and _gp. |
34 | OTHER_GOT_SYMBOLS='HIDDEN (_gp = ALIGN (16) + 0x7ff0);' | |
35 | ||
861fb55a DJ |
36 | # .got.plt is only used for the PLT psABI extension. It should not be |
37 | # included in the .sdata block with .got, as there is no need to access | |
38 | # the section from _gp. Note that the traditional: | |
39 | # | |
40 | # . = . | |
41 | # _gp = ALIGN (16) + 0x7ff0; | |
42 | # .got : { *(.got.plt) *(.got) } | |
43 | # | |
44 | # would set _gp to the wrong value; _gp - 0x7ff0 must point to the start | |
45 | # of *(.got). | |
46 | GOT=".got ${RELOCATING-0} : { *(.got) }" | |
47 | unset OTHER_READWRITE_SECTIONS | |
48 | unset OTHER_RELRO_SECTIONS | |
49 | if test -n "$RELRO_NOW"; then | |
50 | OTHER_RELRO_SECTIONS=".got.plt ${RELOCATING-0} : { *(.got.plt) }" | |
51 | else | |
52 | OTHER_READWRITE_SECTIONS=".got.plt ${RELOCATING-0} : { *(.got.plt) }" | |
53 | fi | |
54 | ||
465bc359 AM |
55 | OTHER_SDATA_SECTIONS=" |
56 | .lit8 ${RELOCATING-0} : { *(.lit8) } | |
57 | .lit4 ${RELOCATING-0} : { *(.lit4) } | |
58 | " | |
fd161d86 AM |
59 | TEXT_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_ftext = .${CREATE_SHLIB+)};" |
60 | DATA_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fdata = .${CREATE_SHLIB+)};" | |
61 | OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fbss = .${CREATE_SHLIB+)};" | |
2bf2bf23 AM |
62 | OTHER_SECTIONS=" |
63 | .gptab.sdata : {${RELOCATING+ *(.gptab.data)} *(.gptab.sdata) } | |
64 | .gptab.sbss : {${RELOCATING+ *(.gptab.bss)} *(.gptab.sbss) } | |
c0a512e2 JM |
65 | .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) } |
66 | .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) } | |
67 | .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) } | |
68 | .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) } | |
69 | .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) } | |
70 | .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) } | |
71 | .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) } | |
72 | .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) } | |
2bf2bf23 | 73 | " |
252b5132 RH |
74 | ARCH=mips |
75 | MACHINE= | |
075a2b89 | 76 | TEMPLATE_NAME=elf |
73934d31 | 77 | EXTRA_EM_FILE=mipself |
252b5132 | 78 | GENERATE_SHLIB_SCRIPT=yes |
35eb9fb6 | 79 | GENERATE_PIE_SCRIPT=yes |