xref: /netbsd-src/external/gpl3/binutils/dist/ld/emulparams/elf64ppc.sh (revision 80d9064ac03cbb6a4174695f0d5b237c8766d3d0)
1. ${srcdir}/emulparams/plt_unwind.sh
2TEMPLATE_NAME=elf32
3EXTRA_EM_FILE=ppc64elf
4ELFSIZE=64
5GENERATE_SHLIB_SCRIPT=yes
6GENERATE_PIE_SCRIPT=yes
7SCRIPT_NAME=elf
8OUTPUT_FORMAT="elf64-powerpc"
9NO_REL_RELOCS=yes
10TEXT_START_ADDR=0x10000000
11#SEGMENT_SIZE=0x10000000
12MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
13COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
14ARCH=powerpc:common64
15MACHINE=
16NOP=0x60000000
17OTHER_TEXT_SECTIONS="*(.sfpr .glink)"
18BSS_PLT=
19OTHER_BSS_SYMBOLS="
20  .tocbss	${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.tocbss)}"
21OTHER_PLT_RELOC_SECTIONS="
22  .rela.tocbss	${RELOCATING-0} : { *(.rela.tocbss) }"
23
24if test x${RELOCATING+set} = xset; then
25  GOT="
26  .got		: ALIGN(8) { *(.got .toc) }"
27else
28  GOT="
29  .got		0 : { *(.got) }
30  .toc		0 : { *(.toc) }"
31fi
32# Put .opd relocs first so ld.so will process them before any ifunc relocs.
33INITIAL_RELOC_SECTIONS="
34  .rela.opd	${RELOCATING-0} : { *(.rela.opd) }"
35OTHER_GOT_RELOC_SECTIONS="
36  .rela.toc	${RELOCATING-0} : { *(.rela.toc) }
37  .rela.branch_lt	${RELOCATING-0} : { *(.rela.branch_lt) }"
38OTHER_READWRITE_SECTIONS="
39  .toc1		${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
40  .opd		${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
41  .branch_lt	${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.branch_lt) }"
42
43# Treat a host that matches the target with the possible exception of "64"
44# in the name as if it were native.
45if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
46  case " $EMULATION_LIBPATH " in
47    *" ${EMULATION_NAME} "*)
48      NATIVE=yes
49      ;;
50  esac
51fi
52
53# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
54case "$EMULATION_NAME" in
55  *64*) LIBPATH_SUFFIX=64 ;;
56esac
57