This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Clear dynstr_index when forcing symbols local
- From: Alan Modra <amodra at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 27 Apr 2017 02:25:23 -0000
- Subject: [binutils-gdb] Clear dynstr_index when forcing symbols local
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=641338d8e9b62bde9672f13f0dca2324b61e46e2
commit 641338d8e9b62bde9672f13f0dca2324b61e46e2
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 11:06:33 2017 +0930
Clear dynstr_index when forcing symbols local
This is really just cosmetic, but it does protect a little from
accidentally reading a stale value.
* elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
when force_local.
Diff:
---
bfd/ChangeLog | 5 +++++
bfd/elflink.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6cda710..c870cc7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2017-04-27 Alan Modra <amodra@gmail.com>
+ * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
+ when force_local.
+
+2017-04-27 Alan Modra <amodra@gmail.com>
+
* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it.
(ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 73af763..59300b7 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -7295,9 +7295,10 @@ _bfd_elf_link_hash_hide_symbol (struct bfd_link_info *info,
h->forced_local = 1;
if (h->dynindx != -1)
{
- h->dynindx = -1;
_bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
h->dynstr_index);
+ h->dynindx = -1;
+ h->dynstr_index = 0;
}
}
}