* elf64-ppc.c (ppc64_elf_edit_opd): Support 16 byte long .opd
commitb8a535d16b7310204dbe68edda917e32f21977e7
authorJakub Jelinek <jakub@redhat.com>
Thu, 19 Aug 2004 07:47:25 +0000 (19 07:47 +0000)
committerJakub Jelinek <jakub@redhat.com>
Thu, 19 Aug 2004 07:47:25 +0000 (19 07:47 +0000)
treec0ed9a8ef58a8dd1cea6b36915a512e581d3a63a
parent5b1f7a49909cf4fb86c74e883095fb8974fdaf5b
* elf64-ppc.c (ppc64_elf_edit_opd): Support 16 byte long .opd
entries (where fd_aux overlaps next entry's fd_func).
Add non_overlapping argument, use it.
(ppc64_elf_check_relocs, ppc64_elf_gc_mark_hook, adjust_opd_syms,
ppc64_elf_size_stubs, ppc64_elf_relocate_section,
ppc64_elf_output_symbol_hook): Use address / 8 instead of address / 24
as indexes into opd_sym_map/opd_adjust array.
* elf64-ppc.h (ppc64_elf_edit_opd): Adjust prototype.

* emultempl/ppc64elf.em (non_overlapping_opd): New variable.
(ppc_before_allocation): Pass it to ppc64_elf_edit_opd).
(OPTION_NON_OVERLAPPING_OPD): Define.
(PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Add
--non-overlapping-opd option.
bfd/ChangeLog
bfd/elf64-ppc.c
bfd/elf64-ppc.h
ld/ChangeLog
ld/emultempl/ppc64elf.em