]> code.ossystems Code Review - openembedded-core.git/blob
55bbc6a6e737b21bb1825a80722c36942b561eb8
[openembedded-core.git] /
1 The powerpc assembler can generate .PPC.EMB.apuinfo sections in some 
2 circumstances.  These originate, I think, from the old e500 ABI; in 
3 any case, they are only defined for 32-bit ABIs, and there is a 
4 significant amount of code in bfd/elf32-ppc.c to handle them 
5 appropriately, none of which is in elf64-ppc.c.  However, the 
6 assembler can generate them when building 64-bit code for processors 
7 such as e5500 (which uses PPC_OPCODE_E500MC).  In such circumstances, 
8 they get generated as PROGBITS rather than NOTE sections, which 
9 reportedly can cause problems in a Linux kernel build. 
10
11 Since these sections are only defined in 32-bit ABIs, I think it's 
12 most appropriate to avoid generating them for 64-bit output, which 
13 this patch does.
14
15 Upstream-Status: Backport
16
17 -Khem 2013/03/25
18
19 From d77411f56a85225e3f7b674e7172c712f6cd61cb Mon Sep 17 00:00:00 2001
20 From: Joseph Myers <joseph@codesourcery.com>
21 Date: Fri, 25 Jan 2013 02:02:20 +0000
22 Subject: [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
30 diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
31 index 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 -- 
45 1.7.9.5
46