binutils: backport a fix for broken relocation entries on mips with -fPIE, fixes...
authorFelix Fietkau <nbd@openwrt.org>
Tue, 26 Jul 2011 23:44:38 +0000 (23:44 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 26 Jul 2011 23:44:38 +0000 (23:44 +0000)
SVN-Revision: 27793

toolchain/binutils/patches/2.19.1/310-backport_fPIE_mips_fix.patch [new file with mode: 0644]

diff --git a/toolchain/binutils/patches/2.19.1/310-backport_fPIE_mips_fix.patch b/toolchain/binutils/patches/2.19.1/310-backport_fPIE_mips_fix.patch
new file mode 100644 (file)
index 0000000..19c0772
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/bfd/elfxx-mips.c
++++ b/bfd/elfxx-mips.c
+@@ -5670,9 +5670,9 @@ mips_elf_create_dynamic_relocation (bfd 
+   /* We must now calculate the dynamic symbol table index to use
+      in the relocation.  */
+-  if (h != NULL
+-      && (!h->root.def_regular
+-        || (info->shared && !info->symbolic && !h->root.forced_local)))
++  if (!(h == NULL
++      || (h->root.def_regular
++          && (info->executable || info->symbolic || h->root.forced_local))))
+     {
+       indx = h->root.dynindx;
+       if (SGI_COMPAT (output_bfd))