binutils-2.18: fix ld segfault when building Qt 4.6.0 on powerpc
authorJeremy Lainé <jeremy.laine@bolloretelecom.eu>
Mon, 28 Dec 2009 22:12:15 +0000 (23:12 +0100)
committerJeremy Lainé <jeremy.laine@bolloretelecom.eu>
Mon, 28 Dec 2009 22:12:15 +0000 (23:12 +0100)
recipes/binutils/binutils-2.18/binutils-powerpc-ld-segfault.patch [new file with mode: 0644]
recipes/binutils/binutils_2.18.bb

diff --git a/recipes/binutils/binutils-2.18/binutils-powerpc-ld-segfault.patch b/recipes/binutils/binutils-2.18/binutils-powerpc-ld-segfault.patch
new file mode 100644 (file)
index 0000000..7356509
--- /dev/null
@@ -0,0 +1,13 @@
+Index: binutils-2.18/bfd/elf32-ppc.c
+===================================================================
+--- binutils-2.18.orig/bfd/elf32-ppc.c 2007-08-06 21:59:29.000000000 +0200
++++ binutils-2.18/bfd/elf32-ppc.c      2009-12-28 22:36:41.000000000 +0100
+@@ -3968,7 +3968,7 @@
+           {
+             bfd_vma addend = r_type == R_PPC_PLTREL24 ? rel->r_addend : 0;
+             struct plt_entry *ent = find_plt_ent (h, got2, addend);
+-            if (ent->plt.refcount > 0)
++            if (ent != NULL && ent->plt.refcount > 0)
+               ent->plt.refcount -= 1;
+           }
+         break;
index b1ae402..803e987 100644 (file)
@@ -1,5 +1,5 @@
 INC_PR = "r8"
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 
 require binutils.inc
 LICENSE = "GPLv3"
@@ -20,7 +20,10 @@ SRC_URI = "\
      "
 
 # powerpc patches
-SRC_URI += "file://binutils-2.16.1-e300c2c3.patch;patch=1"
+SRC_URI += "\
+     file://binutils-2.16.1-e300c2c3.patch;patch=1 \
+     file://binutils-powerpc-ld-segfault.patch;patch=1 \
+     "
 
 # ep93xx crunch patches
 SRC_URI_append_ep9312 = " file://binutils-crunch.patch;patch=1"