58d180e827
* 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.
27 lines
1.0 KiB
Bash
27 lines
1.0 KiB
Bash
# If you change this file, please also look at files which source this one:
|
|
# elf32lppcnto.sh elf32lppc.sh elf32ppclinux.sh elf32ppcnto.sh
|
|
# elf32ppcsim.sh
|
|
|
|
. ${srcdir}/emulparams/elf32ppccommon.sh
|
|
. ${srcdir}/emulparams/plt_unwind.sh
|
|
# Yes, we want duplicate .got and .plt sections. The linker chooses the
|
|
# appropriate one magically in ppc_after_open
|
|
DATA_GOT=
|
|
SDATA_GOT=
|
|
SEPARATE_GOTPLT=0
|
|
BSS_PLT=
|
|
GOT=".got ${RELOCATING-0} : SPECIAL { *(.got) }"
|
|
GOTPLT=".plt ${RELOCATING-0} : SPECIAL { *(.plt) }"
|
|
PLT=".plt ${RELOCATING-0} : SPECIAL { *(.plt) }
|
|
.iplt ${RELOCATING-0} : { *(.iplt) }"
|
|
OTHER_TEXT_SECTIONS="*(.glink)"
|
|
EXTRA_EM_FILE=ppc32elf
|
|
if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
|
|
# crt1.o defines data_start and __data_start. Keep them first.
|
|
# Next put all the .data.spehandle sections, with a trailing zero word.
|
|
DATA_START_SYMBOLS="${RELOCATING+*crt1.o(.data .data.* .gnu.linkonce.d.*)
|
|
PROVIDE (__spe_handle = .);
|
|
*(.data.spehandle)
|
|
. += 4 * (DEFINED (__spe_handle) || . != 0);}"
|
|
fi
|