From 641338d8e9b62bde9672f13f0dca2324b61e46e2 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 27 Apr 2017 11:06:33 +0930 Subject: [PATCH] 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. --- 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 + * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index + when force_local. + +2017-04-27 Alan Modra + * 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; } } } -- 2.7.4