bfd/
commitf3146db190eb518912636350f1ab532efe0ae710
authorAlan Modra <amodra@bigpond.net.au>
Tue, 15 Jan 2008 07:25:49 +0000 (15 07:25 +0000)
committerAlan Modra <amodra@bigpond.net.au>
Tue, 15 Jan 2008 07:25:49 +0000 (15 07:25 +0000)
tree0a5d1eaf3324bf5468ce9a722b4e1153035ee823
parent192d0bb8d8d53411cb9dd93b32b5028d79a713cb
bfd/
PR 5604
* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
names from others.
(_bfd_elf_gc_keep): Declare.
* elfxx-target.h (elf_backend_gc_keep): Define.
(elfNN_bed): Init new field.
* elflink.c (_bfd_elf_gc_keep): New function.
(bfd_elf_gc_sections): Call gc_keep.
* elf64-ppc.c (elf_backend_gc_keep): Define.
(struct _ppc64_elf_section_data): Move .opd related fields to
a struct so they don't occupy the same storage.  Adjust accesses
throughout file.
(ppc64_elf_gc_keep): New function, split out from..
(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
to mark .opd section, just set gc_mark.
(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
unless we are changing .opd.  Test non-NULL opd->adjust at all
accesses throughout file.
* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
ld/
PR 5604
* ldlang.c (lang_gc_sections): Move code to set SEC_KEEP on entry
syms to _bfd_elf_gc_keep.
* emultempl/ppc64elf.em (ppc_before_allocation): Don't call
ppc64_elf_edit_opd if no_opd_opt.
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf64-ppc.c
bfd/elf64-ppc.h
bfd/elflink.c
bfd/elfxx-target.h
ld/ChangeLog
ld/emultempl/ppc64elf.em
ld/ldlang.c