xref: /netbsd-src/external/gpl3/binutils.old/dist/ld/emulparams/elf32ppc.sh (revision 012573eb9c67269c00ce646144eea16daceeb465)
1# If you change this file, please also look at files which source this one:
2# elf32lppcnto.sh elf32lppc.sh elf32ppclinux.sh elf32ppcnto.sh
3# elf32ppcsim.sh
4
5source_sh ${srcdir}/emulparams/elf32ppccommon.sh
6source_sh ${srcdir}/emulparams/plt_unwind.sh
7# Yes, we want duplicate .got and .plt sections.  The linker chooses the
8# appropriate one magically in ppc_after_open
9DATA_GOT=
10SDATA_GOT=
11SEPARATE_GOTPLT=0
12BSS_PLT=
13GOT=".got          ${RELOCATING-0} : SPECIAL { *(.got) }"
14GOTPLT=".plt          ${RELOCATING-0} : SPECIAL { *(.plt) }"
15PLT=".plt          ${RELOCATING-0} : SPECIAL { *(.plt) }
16  .iplt         ${RELOCATING-0} : { *(.iplt) }"
17OTHER_TEXT_SECTIONS="*(.glink)"
18OTHER_GOT_RELOC_SECTIONS="
19  .rela.branch_lt	${RELOCATING-0} : { *(.rela.branch_lt) }"
20OTHER_RELRO_SECTIONS_2="
21  .branch_lt	${RELOCATING-0} :${RELOCATING+ ALIGN(4)} { *(.branch_lt) }"
22EXTRA_EM_FILE=ppc32elf
23if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
24# crt1.o defines data_start and __data_start.  Keep them first.
25# Next put all the .data.spehandle sections, with a trailing zero word.
26  DATA_START_SYMBOLS="${RELOCATING+*crt1.o(.data .data.* .gnu.linkonce.d.*)
27    PROVIDE (__spe_handle = .);
28    *(.data.spehandle)
29    . += 4 * (DEFINED (__spe_handle) || . != 0);}"
30fi
31