diff options
Diffstat (limited to 'bfd/elfxx-x86.c')
| -rw-r--r-- | bfd/elfxx-x86.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index e5a24c4..6400d3e 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -892,7 +892,8 @@ _bfd_x86_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info) elf_x86_hash_entry (h)->tls_get_addr = 1; } - htab->has_tls_get_addr_call = 1; + if (h->ref_regular) + htab->has_tls_get_addr_call = 1; } /* Pass NULL for __ehdr_start which will be defined by @@ -4970,6 +4971,17 @@ _bfd_x86_elf_link_fixup_gnu_properties } } +bool +_bfd_elf_x86_copy_special_section_fields + (const bfd *ibfd, bfd *obfd ATTRIBUTE_UNUSED, + const Elf_Internal_Shdr *isection ATTRIBUTE_UNUSED, + Elf_Internal_Shdr *osection ATTRIBUTE_UNUSED) +{ + /* Return false for Solaris binary to properly set the sh_info and + sh_link fields of Solaris specific sections. */ + return elf_elfheader (ibfd)->e_ident[EI_OSABI] != ELFOSABI_SOLARIS; +} + void bfd_elf_linker_x86_set_options (struct bfd_link_info *info, struct elf_linker_x86_params *params) |
