[PATCH] fix iSeries build for gcc-3.4

Stephen Rothwell sfr at canb.auug.org.au
Mon Aug 29 18:26:01 EST 2005


gcc 3.4 (at least the build we are using) puts the gcc generated .ident
string into a .note section at the end of the files it compiles (gcc
3.3.3-hammer and gcc 4.0.2 Debian puts it in the .text section).  This
means that the lparmap.s file we produce in the iSeries build may end with
a .note section.  When we include it into head.S, the assembler can no
longer resolve some of the conditional branches since the target label
ends up too far away.  This patch just forces us back to the .text section
after including lparmap.s.

The breakage was caused by my patch "iSeries build with newer assemblers
and compilers" (sha1-id: 2ad56496627630ebc99f06af5f81ca23e17e014e).

Signed-off-by: Stephen Rothwell <sfr at canb.auug.org.au>
---
 head.S |    5 +++++
 1 file changed, 5 insertions(+)

Built with gcc 3.3.3-hammer, gcc 3.4.4 20041116 and 4.0.2 20050816.

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S
--- a/arch/ppc64/kernel/head.S
+++ b/arch/ppc64/kernel/head.S
@@ -683,6 +683,11 @@ fwnmi_data_area:
 #ifdef CONFIG_PPC_ISERIES
 	. = LPARMAP_PHYS
 #include "lparmap.s"
+/*
+ * This ".text" is here for old compilers that generate a trailing
+ * .note section when compiling .c files to .s
+ */
+	.text
 #endif /* CONFIG_PPC_ISERIES */
 
 /*



More information about the Linuxppc64-dev mailing list