]> git.ipfire.org Git - people/pmueller/ipfire-3.x.git/blobdiff - binutils/patches/binutils-2.24-indirect-chain.patch0
binutils: Update to 2.24
[people/pmueller/ipfire-3.x.git] / binutils / patches / binutils-2.24-indirect-chain.patch0
diff --git a/binutils/patches/binutils-2.24-indirect-chain.patch0 b/binutils/patches/binutils-2.24-indirect-chain.patch0
new file mode 100644 (file)
index 0000000..b255424
--- /dev/null
@@ -0,0 +1,28 @@
+*** ../binutils-2.24.orig/bfd/elflink.c        2014-08-21 09:17:27.753408085 +0100
+--- bfd/elflink.c      2014-08-21 10:04:52.174935912 +0100
+*************** _bfd_elf_add_default_symbol (bfd *abfd,
+*** 1705,1710 ****
+--- 1705,1716 ----
+        ht = (struct elf_link_hash_entry *) hi->root.u.i.link;
+        (*bed->elf_backend_copy_indirect_symbol) (info, ht, hi);
+  
++        /* A reference to the SHORTNAME symbol from a dynamic library
++       will be satisfied by the versioned symbol at runtime.  In
++       effect, we have a reference to the versioned symbol.  */
++        ht->ref_dynamic_nonweak |= hi->ref_dynamic_nonweak;
++        hi->dynamic_def |= ht->dynamic_def;
++  
+        /* See if the new flags lead us to realize that the symbol must
+        be dynamic.  */
+        if (! *dynsym)
+*************** nondefault:
+*** 1774,1779 ****
+--- 1780,1787 ----
+        if (hi->root.type == bfd_link_hash_indirect)
+       {
+         (*bed->elf_backend_copy_indirect_symbol) (info, h, hi);
++        h->ref_dynamic_nonweak |= hi->ref_dynamic_nonweak;
++        hi->dynamic_def |= h->dynamic_def;
+  
+         /* See if the new flags lead us to realize that the symbol
+            must be dynamic.  */