[binutils/f21] Import patch from mainline to fix indirect symbol resolution. Resolves: BZ #1123714

Nicholas Clifton nickc at fedoraproject.org
Tue Aug 26 10:47:29 UTC 2014


commit 0658f1d7b43ad10e19fa6d7920708f9ba811624c
Author: Nick Clifton <nickc at redhat.com>
Date:   Tue Aug 26 11:47:06 2014 +0100

    Import patch from mainline to fix indirect symbol resolution.
    Resolves: BZ #1123714

 binutils-2.24-indirect-chain.patch |   28 ++++++++++++++++++++++++++++
 binutils.spec                      |    8 +++++++-
 2 files changed, 35 insertions(+), 1 deletions(-)
---
diff --git a/binutils-2.24-indirect-chain.patch b/binutils-2.24-indirect-chain.patch
new file mode 100644
index 0000000..b255424
--- /dev/null
+++ b/binutils-2.24-indirect-chain.patch
@@ -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.  */
diff --git a/binutils.spec b/binutils.spec
index b348707..4d58e4a 100644
--- a/binutils.spec
+++ b/binutils.spec
@@ -17,7 +17,7 @@
 Summary: A GNU collection of binary utilities
 Name: %{?cross}binutils%{?_with_debug:-debug}
 Version: 2.24
-Release: 19%{?dist}
+Release: 20%{?dist}
 License: GPLv3+
 Group: Development/Tools
 URL: http://sources.redhat.com/binutils
@@ -64,6 +64,7 @@ Patch21: binutils-2.24-fat-lto-objects.patch
 Patch22: binutils-2.24-symbol-warning.patch
 Patch23: binutils-2.24-aarch64-ld-shared-non-PIC-xfail.patch
 Patch24: binutils-2.24-weak-sym-merge.patch
+Patch25: binutils-2.24-indirect-chain.patch
 Patch26: binutils-2.24-aarch64-fix-final_link_relocate.patch
 
 Provides: bundled(libiberty)
@@ -193,6 +194,7 @@ using libelf instead of BFD.
 %patch22 -p1 -b .symwarn~
 %patch23 -p1 -b .ld-aarch64-xfails~
 %patch24 -p0 -b .weak-sym-merge~
+%patch25 -p0 -b .indirect-chain~
 %patch26 -p1 -b .aa64-final-link~
 
 # We cannot run autotools as there is an exact requirement of autoconf-2.59.
@@ -504,6 +506,10 @@ exit 0
 %endif # %{isnative}
 
 %changelog
+* Tue Aug 26 2014 Nick Clifton <nickc at redhat.com> - 2.24-20
+- Import patch from mainline to fix indirect symbol resolution.
+  Resolves: BZ #1123714
+
 * Thu Aug 21 2014 Kyle McMartin <kmcmarti at redhat.com> - 2.24-19
 - bfd/elfnn-aarch64.c: use correct offsets in final_link_relocate
   Resolves: BZ #1126199


More information about the scm-commits mailing list