From 724e52892aa9ae7b78943128fba50362bbb26e52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jeremy=20Lain=C3=A9?= <jeremy.laine@bolloretelecom.eu>
Date: Mon, 28 Dec 2009 23:12:15 +0100
Subject: binutils-2.18: fix ld segfault when building Qt 4.6.0 on powerpc

---
 .../binutils-2.18/binutils-powerpc-ld-segfault.patch        | 13 +++++++++++++
 recipes/binutils/binutils_2.18.bb                           |  7 +++++--
 2 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 recipes/binutils/binutils-2.18/binutils-powerpc-ld-segfault.patch

(limited to 'recipes')

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
index 0000000000..7356509761
--- /dev/null
+++ b/recipes/binutils/binutils-2.18/binutils-powerpc-ld-segfault.patch
@@ -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;
diff --git a/recipes/binutils/binutils_2.18.bb b/recipes/binutils/binutils_2.18.bb
index b1ae402e29..803e987d8f 100644
--- a/recipes/binutils/binutils_2.18.bb
+++ b/recipes/binutils/binutils_2.18.bb
@@ -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"
-- 
cgit v1.2.3