xtensa: ld: support -z relro
[external/binutils.git] / ld / emulparams / elf32xtensa.sh
1 SCRIPT_NAME=elfxtensa
2 TEMPLATE_NAME=elf32
3 EXTRA_EM_FILE=xtensaelf
4 OUTPUT_FORMAT=undefined
5 BIG_OUTPUT_FORMAT="elf32-xtensa-be"
6 LITTLE_OUTPUT_FORMAT="elf32-xtensa-le"
7 NO_REL_RELOCS=yes
8 TEXT_START_ADDR=0x400000
9 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
10 COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
11 ARCH=xtensa
12 MACHINE=
13 GENERATE_SHLIB_SCRIPT=yes
14 GENERATE_PIE_SCRIPT=yes
15 GENERATE_COMBRELOC_SCRIPT=yes
16 NO_SMALL_DATA=yes
17 TEXT_PLT=yes
18 PLT="/* .plt* sections are embedded in .text */"
19 GOT=".got          ${RELOCATING-0} : { *(.got) }"
20 OTHER_READONLY_SECTIONS="
21   .got.loc      ${RELOCATING-0} : { *(.got.loc) }
22   .xt_except_table ${RELOCATING-0} : ONLY_IF_RO { KEEP (*(.xt_except_table${RELOCATING+ .xt_except_table.* .gnu.linkonce.e.*})) }
23 "
24 OTHER_RELRO_SECTIONS="
25   .xt_except_table ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.xt_except_table${RELOCATING+ .xt_except_table.* .gnu.linkonce.e.*})) }
26 "
27 OTHER_READWRITE_SECTIONS="
28   .xt_except_desc ${RELOCATING-0} :
29   {
30     *(.xt_except_desc${RELOCATING+ .xt_except_desc.* .gnu.linkonce.h.*})
31     ${RELOCATING+*(.xt_except_desc_end)}
32   }
33 "
34 OTHER_SDATA_SECTIONS="
35   .lit4         ${RELOCATING-0} :
36   {
37     ${RELOCATING+PROVIDE (_lit4_start = .);}
38     *(.lit4${RELOCATING+ .lit4.* .gnu.linkonce.lit4.*})
39     ${RELOCATING+PROVIDE (_lit4_end = .);}
40   }
41 "
42 OTHER_SECTIONS="
43   .xt.lit       0 : { KEEP (*(.xt.lit${RELOCATING+ .xt.lit.* .gnu.linkonce.p.*})) }
44   .xt.insn      0 : { KEEP (*(.xt.insn${RELOCATING+ .gnu.linkonce.x.*})) }
45   .xt.prop      0 : { KEEP (*(.xt.prop${RELOCATING+ .xt.prop.* .gnu.linkonce.prop.*})) }
46 "