Fix test-case ld-elf/pr19617b
authorHans-Peter Nilsson <hp@bitrange.com>
Tue, 23 Feb 2016 01:06:45 +0000 (02:06 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Tue, 23 Feb 2016 01:06:45 +0000 (02:06 +0100)
* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
discard unused non-function symbols when --dynamic-list-data.

bfd/ChangeLog
bfd/elf32-cris.c

index 1e0f6a13de3e2366469a1175b8ca17db59c0ae96..611f9051b2592ee9ee1bf961ce7d674869764733 100644 (file)
@@ -1,3 +1,9 @@
+2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
+
+       Fix test-case ld-elf/pr19617b
+       * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
+       discard unused non-function symbols when --dynamic-list-data.
+
 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
index 7799cf4f041d690d7a7292c4bf811ea56bc98515..64dc3ae5844f48324511b41221032291d50e8d4b 100644 (file)
@@ -4032,8 +4032,10 @@ elf_cris_discard_excess_program_dynamics (struct elf_cris_link_hash_entry *h,
         have to export it as a dynamic symbol.  This was already done for
         functions; doing this for all symbols would presumably not
         introduce new problems.  Of course we don't do this if we're
-        exporting all dynamic symbols.  */
-      if (! info->export_dynamic
+        exporting all dynamic symbols, or all data symbols, regardless of
+        them being referenced or not.  */
+      if (! (info->export_dynamic
+            || (h->root.type != STT_FUNC && info->dynamic_data))
          && h->root.dynindx != -1
          && !h->root.def_dynamic
          && !h->root.ref_dynamic)