aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elfxx-x86.c')
-rw-r--r--bfd/elfxx-x86.c14
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)