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.
This commit is contained in:
parent
3af8af43f7
commit
ca55926c2f
2 changed files with 8 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-01-15 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* 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 <amodra@gmail.com>
|
||||
|
||||
PR 17842
|
||||
|
|
|
@ -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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue