old-cross-binutils/ld/emulparams/elf64ppc.sh
Alan Modra 58d180e827 bfd/
* elf32-ppc.c: Include dwarf2.h.
	(struct ppc_elf_link_hash_table): Add glink_eh_frame.
	(ppc_elf_create_glink): Create .eh_frame section.
	(glink_eh_frame_cie): New array.
	(ppc_elf_size_dynamic_sections): Size glink_eh_frame.
	(ppc_elf_finish_dynamic_sections): Write glink_eh_frame.
	* elf64-ppc.c: Include dwarg2.h.
	(struct ppc_link_hash_table): Add glink_eh_frame.
	(create_linkage_sections): Create .eh_frame section.
	(ppc64_elf_size_dynamic_sections): Arrange to drop unneeded
	glink_eh_frame.
	(glink_eh_frame_cie): New array.
	(ppc64_elf_size_stubs): Size glink_eh_frame.
	(ppc64_elf_build_stubs): Init glink_eh_frame contents.
	(ppc64_elf_finish_dynamic_sections): Write glink_eh_frame.
ld/
	* emulparams/elf32ppc.sh: Source plt_unwind.sh.
	* emulparams/elf64ppc.sh: Likewise.
	* emultempl/ppc32elf.em (OPTION_NO_TLS_OPT): Adjust.
	(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
	PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
	existing values.
	* emultempl/ppc64elf.em (OPTION_STUBGROUP_SIZE): Adjust.
	(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
	PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
	existing values.
ld/testsuite/
	* ld-powerpc/powerpc.exp: Use --no-ld-generated-unwind-info
	with some tests.
	* ld-powerpc/relbrlt.d: Likewise.
2011-07-26 01:57:18 +00:00

56 lines
1.6 KiB
Bash

. ${srcdir}/emulparams/plt_unwind.sh
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=ppc64elf
ELFSIZE=64
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf64-powerpc"
NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000000
#SEGMENT_SIZE=0x10000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH=powerpc:common64
MACHINE=
NOP=0x60000000
OTHER_TEXT_SECTIONS="*(.sfpr .glink)"
BSS_PLT=
OTHER_BSS_SYMBOLS="
.tocbss ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.tocbss)}"
OTHER_PLT_RELOC_SECTIONS="
.rela.tocbss ${RELOCATING-0} : { *(.rela.tocbss) }"
if test x${RELOCATING+set} = xset; then
GOT="
.got : ALIGN(8) { *(.got .toc) }"
else
GOT="
.got 0 : { *(.got) }
.toc 0 : { *(.toc) }"
fi
# Put .opd relocs first so ld.so will process them before any ifunc relocs.
INITIAL_RELOC_SECTIONS="
.rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
OTHER_GOT_RELOC_SECTIONS="
.rela.toc ${RELOCATING-0} : { *(.rela.toc) }
.rela.branch_lt ${RELOCATING-0} : { *(.rela.branch_lt) }"
OTHER_READWRITE_SECTIONS="
.toc1 ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
.opd ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
.branch_lt ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.branch_lt) }"
# Treat a host that matches the target with the possible exception of "64"
# in the name as if it were native.
if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
NATIVE=yes
;;
esac
fi
# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
case "$EMULATION_NAME" in
*64*) LIBPATH_SUFFIX=64 ;;
esac