summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2013-03-25 23:21:16 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-26 17:56:35 +0000
commita8f92290f1c2e162748abe1cb957d284c3240471 (patch)
tree0e81bb0a601d51ec2d3cf31986e5e82625ce8030
parent6da3aca59b85297119e59a6eec315452de7c7802 (diff)
downloadpoky-a8f92290f1c2e162748abe1cb957d284c3240471.tar.gz
binutils: Don't generate .PPC.EMB.apuinfo sections for 64-bit output
This can cause issues building ppc64/eabi kernel. For details see the patch header (From OE-Core rev: 3c6622e22b0e1b2a8ceea6465ea84c6fb8299518) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.23.1.inc1
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch46
2 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1.inc b/meta/recipes-devtools/binutils/binutils-2.23.1.inc
index 4523407660..667ad0bccd 100644
--- a/meta/recipes-devtools/binutils/binutils-2.23.1.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.23.1.inc
@@ -47,6 +47,7 @@ BACKPORT = "\
47 file://backport/0001-ld.texinfo-Replace-with-when-it-is-part-of-the-text.patch \ 47 file://backport/0001-ld.texinfo-Replace-with-when-it-is-part-of-the-text.patch \
48 file://backport/binutils-fix-ineffectual-zero-of-cache.patch \ 48 file://backport/binutils-fix-ineffectual-zero-of-cache.patch \
49 file://backport/binutils-replace-strncat-with-strcat.patch \ 49 file://backport/binutils-replace-strncat-with-strcat.patch \
50 file://backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch \
50" 51"
51SRC_URI[md5sum] = "33adb18c3048d057ac58d07a3f1adb38" 52SRC_URI[md5sum] = "33adb18c3048d057ac58d07a3f1adb38"
52SRC_URI[sha256sum] = "2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19" 53SRC_URI[sha256sum] = "2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19"
diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch
new file mode 100644
index 0000000000..55bbc6a6e7
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch
@@ -0,0 +1,46 @@
1The powerpc assembler can generate .PPC.EMB.apuinfo sections in some
2circumstances. These originate, I think, from the old e500 ABI; in
3any case, they are only defined for 32-bit ABIs, and there is a
4significant amount of code in bfd/elf32-ppc.c to handle them
5appropriately, none of which is in elf64-ppc.c. However, the
6assembler can generate them when building 64-bit code for processors
7such as e5500 (which uses PPC_OPCODE_E500MC). In such circumstances,
8they get generated as PROGBITS rather than NOTE sections, which
9reportedly can cause problems in a Linux kernel build.
10
11Since these sections are only defined in 32-bit ABIs, I think it's
12most appropriate to avoid generating them for 64-bit output, which
13this patch does.
14
15Upstream-Status: Backport
16
17-Khem 2013/03/25
18
19From d77411f56a85225e3f7b674e7172c712f6cd61cb Mon Sep 17 00:00:00 2001
20From: Joseph Myers <joseph@codesourcery.com>
21Date: Fri, 25 Jan 2013 02:02:20 +0000
22Subject: [PATCH] * config/tc-ppc.c (md_assemble): Do not generate
23 APUinfo sections for 64-bit output.
24
25---
26 gas/ChangeLog | 5 +++++
27 gas/config/tc-ppc.c | 3 ++-
28 2 files changed, 7 insertions(+), 1 deletion(-)
29
30diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
31index fd15bea..0929e52 100644
32--- a/gas/config/tc-ppc.c
33+++ b/gas/config/tc-ppc.c
34@@ -3249,7 +3249,8 @@ md_assemble (char *str)
35
36 #ifdef OBJ_ELF
37 /* Do we need/want an APUinfo section? */
38- if ((ppc_cpu & (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_VLE)) != 0)
39+ if ((ppc_cpu & (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_VLE)) != 0
40+ && !ppc_obj64)
41 {
42 /* These are all version "1". */
43 if (opcode->flags & PPC_OPCODE_SPE)
44--
451.7.9.5
46