aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2016-05-30 09:43:44 +0930
committerAlan Modra <amodra@gmail.com>2016-06-02 12:28:39 +0930
commit5b677558bc6c7b2477bb33c709e6017e68e7ae8c (patch)
treea2de1189d6388b1a57720e0efee53831055dba30 /bfd/elf-bfd.h
parentc273521c9aad56a596202dfaedc54182cf5543eb (diff)
downloadgdb-5b677558bc6c7b2477bb33c709e6017e68e7ae8c.zip
gdb-5b677558bc6c7b2477bb33c709e6017e68e7ae8c.tar.gz
gdb-5b677558bc6c7b2477bb33c709e6017e68e7ae8c.tar.bz2
Revert PR16467 change
This reverts the pr16467 change, which was incorrect due to faulty analysis of the pr16467 testcase. The failure was not due to a mismatch in symbol type (ifunc/non-ifunc) but due to a symbol loop being set up. See https://sourceware.org/ml/binutils/2016-06/msg00013.html for some rambling on versioned symbols and ELF shared library symbol overriding that explain this patch. bfd/ PR ld/20159 PR ld/16467 * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change. (_bfd_elf_add_default_symbol): Don't indirect to/from defined symbol given a version by a script different to the version of the symbol being added. (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and _bfd_elf_strtab_restore. Don't fudge dynstr references. * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete. (struct strtab_save): New. (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions. * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete. (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 3184e57..99dbbce 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2058,9 +2058,11 @@ extern void _bfd_elf_strtab_delref
extern unsigned int _bfd_elf_strtab_refcount
(struct elf_strtab_hash *, bfd_size_type);
extern void _bfd_elf_strtab_clear_all_refs
- (struct elf_strtab_hash *tab);
-extern void _bfd_elf_strtab_restore_size
- (struct elf_strtab_hash *, bfd_size_type);
+ (struct elf_strtab_hash *);
+extern void *_bfd_elf_strtab_save
+ (struct elf_strtab_hash *);
+extern void _bfd_elf_strtab_restore
+ (struct elf_strtab_hash *, void *);
extern bfd_size_type _bfd_elf_strtab_size
(struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_offset