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