From: Alan Modra Date: Thu, 15 Jan 2015 08:37:33 +0000 (+1030) Subject: Omit section dynsyms for any linker created section X-Git-Tag: gdb-7.10-release~1910 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca55926c2fad07fef0e6dce8beb948167990a2e7;p=external%2Fbinutils.git Omit section dynsyms for any linker created section This is a simplification, and fixes a testcase I had where an empty powerpc64 .branch_lt section was chosen for the data_index_section dynamic symbol and thus wasn't removed. * elflink.c (_bfd_elf_link_omit_section_dynsym): Return true for any output section matching a linker created dynobj section. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7dbb299..d054282 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2015-01-15 Alan Modra + * elflink.c (_bfd_elf_link_omit_section_dynsym): Return true for + any output section matching a linker created dynobj section. + +2015-01-15 Alan Modra + PR 17842 * elflink.c (elf_link_output_sym): Assert elf_onesymtab set. (bfd_elf_final_link): Always create a symbol table when emit_relocs. diff --git a/bfd/elflink.c b/bfd/elflink.c index 4378bb2..6e77265 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -762,6 +762,7 @@ _bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED, asection *p) { struct elf_link_hash_table *htab; + asection *ip; switch (elf_section_data (p)->this_hdr.sh_type) { @@ -777,18 +778,9 @@ _bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED, if (htab->text_index_section != NULL) return p != htab->text_index_section && p != htab->data_index_section; - if (strcmp (p->name, ".got") == 0 - || strcmp (p->name, ".got.plt") == 0 - || strcmp (p->name, ".plt") == 0) - { - asection *ip; - - if (htab->dynobj != NULL + return (htab->dynobj != NULL && (ip = bfd_get_linker_section (htab->dynobj, p->name)) != NULL - && ip->output_section == p) - return TRUE; - } - return FALSE; + && ip->output_section == p); /* There shouldn't be section relative relocations against any other section. */