linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
@ 2008-09-01 14:23 Sebastian Siewior
  2008-10-14 19:25 ` Nate Case
  2008-10-14 21:23 ` Kumar Gala
  0 siblings, 2 replies; 14+ messages in thread
From: Sebastian Siewior @ 2008-09-01 14:23 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, ths

From: Thiemo Seufer <ths@linutronix.de>

those two are requried on my fresh gcc 4.3.1

Signed-off-by: Thiemo Seufer <ths@linutronix.de>
Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
---
Not sure if this is intendent or a gcc bug but with -mno-spe
the spe opcodes were not used floating point anymore but
for 64bit save/restore for instance.

 arch/powerpc/Makefile |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index b7d4c4c..3727e4f 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -108,7 +108,10 @@ endif
 KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
 
 # No SPE instruction when building kernel
+# (We use all available options to help semi-broken compilers)
 KBUILD_CFLAGS += $(call cc-option,-mno-spe)
+KBUILD_CFLAGS += $(call cc-option,-mspe=no)
+KBUILD_CFLAGS += $(call cc-option,-mabi=no-spe)
 
 # Enable unit-at-a-time mode when possible. It shrinks the
 # kernel considerably.
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-09-01 14:23 [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers Sebastian Siewior
@ 2008-10-14 19:25 ` Nate Case
  2008-10-14 22:02   ` Nate Case
  2008-10-14 21:23 ` Kumar Gala
  1 sibling, 1 reply; 14+ messages in thread
From: Nate Case @ 2008-10-14 19:25 UTC (permalink / raw)
  To: Sebastian Siewior; +Cc: linuxppc-dev, ths

On Mon, 2008-09-01 at 16:23 +0200, Sebastian Siewior wrote:
> those two are requried on my fresh gcc 4.3.1
> 
> Signed-off-by: Thiemo Seufer <ths@linutronix.de>
> Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
> ---
> Not sure if this is intendent or a gcc bug but with -mno-spe
> the spe opcodes were not used floating point anymore but
> for 64bit save/restore for instance.

I wouldn't say this is due to a broken compiler. As I understand it,
-mabi=no-spe and -mspe=no serve two different purposes.  One is for
disabling the SPE instructions and the other controls the ABI (which
would make those 64-bit save/restores I'm guessing).  I don't know why
you'd ever want to use the SPE ABI without -mspe=yes, but gcc does
provide that flexibility.

	-mno-spe: Deprecated way to say "no SPE instructions"
	-mspe=no: New way to do -mno-spe
	-mabi=no-spe: Disable SPE ABI

Some compilers may enable "-mabi=spe" and/or "-mspe=yes" by default, so
explicitly disabling both is necessary.  I recently built a SPE
toolchain which enabled both by default, so I ran into the "SPE used in
kernel" problem when the kernel only passed "-mno-spe".
	
- Nate Case <ncase@xes-inc.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-09-01 14:23 [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers Sebastian Siewior
  2008-10-14 19:25 ` Nate Case
@ 2008-10-14 21:23 ` Kumar Gala
  2008-10-14 22:35   ` Nate Case
  2008-10-14 22:49   ` Sebastian Andrzej Siewior
  1 sibling, 2 replies; 14+ messages in thread
From: Kumar Gala @ 2008-10-14 21:23 UTC (permalink / raw)
  To: Sebastian Siewior; +Cc: linuxppc-dev, ths


On Sep 1, 2008, at 9:23 AM, Sebastian Siewior wrote:

> From: Thiemo Seufer <ths@linutronix.de>
>
> those two are requried on my fresh gcc 4.3.1
>
> Signed-off-by: Thiemo Seufer <ths@linutronix.de>
> Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
> ---
> Not sure if this is intendent or a gcc bug but with -mno-spe
> the spe opcodes were not used floating point anymore but
> for 64bit save/restore for instance.

what code is getting generated for you that is causing issue?

> arch/powerpc/Makefile |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index b7d4c4c..3727e4f 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -108,7 +108,10 @@ endif
> KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
>
> # No SPE instruction when building kernel
> +# (We use all available options to help semi-broken compilers)
> KBUILD_CFLAGS += $(call cc-option,-mno-spe)
> +KBUILD_CFLAGS += $(call cc-option,-mspe=no)

Why does -mno-spe work?

 From my gcc-4.3 info pages:

`-mspe=YES/NO'
      This option has been deprecated.  Use `-mspe' and `-mno-spe'
      instead.

> +KBUILD_CFLAGS += $(call cc-option,-mabi=no-spe)

is the -mabi=no-spe really needed?

- k

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-14 19:25 ` Nate Case
@ 2008-10-14 22:02   ` Nate Case
  0 siblings, 0 replies; 14+ messages in thread
From: Nate Case @ 2008-10-14 22:02 UTC (permalink / raw)
  To: Sebastian Siewior; +Cc: linuxppc-dev, ths

On Tue, 2008-10-14 at 14:25 -0500, Nate Case wrote:
> 
>         -mno-spe: Deprecated way to say "no SPE instructions"
>         -mspe=no: New way to do -mno-spe

Sorry, I got this backwards (as Kumar pointed out in his other reply).
-mspe=no is actually deprecated.

- Nate Case <ncase@xes-inc.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-14 21:23 ` Kumar Gala
@ 2008-10-14 22:35   ` Nate Case
  2008-10-14 22:49   ` Sebastian Andrzej Siewior
  1 sibling, 0 replies; 14+ messages in thread
From: Nate Case @ 2008-10-14 22:35 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Sebastian Siewior, ths

On Tue, 2008-10-14 at 16:23 -0500, Kumar Gala wrote:
> Why does -mno-spe work?
> 
>  From my gcc-4.3 info pages:
> 
> `-mspe=YES/NO'
>       This option has been deprecated.  Use `-mspe' and `-mno-spe'
>       instead.
> 
> > +KBUILD_CFLAGS += $(call cc-option,-mabi=no-spe)
> 
> is the -mabi=no-spe really needed?

My guess is that the -mabi=no-spe was the real key of what made it work
for him.  I went through the same thing with my toolchain.

You do need -mabi=no-spe if your toolchain defaults to -mabi=spe like
mine does.  I know that the more generic toolchains out there
(CodeSourcery, ELDK) default to -mabi=no-spe, so in that case it would
not be necessary.

I don't know what generated instructions are actually to blame, but I do
know that if you compile certain programs with "-mno-spe -mabi=spe" vs.
"-mno-spe -mabi=no-spe", the results will differ.  In the case of the
kernel, you'll get a bunch of "SPE used in kernel" messages with the
"-mno-spe -mabi=spe" combination.

- Nate Case <ncase@xes-inc.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-14 21:23 ` Kumar Gala
  2008-10-14 22:35   ` Nate Case
@ 2008-10-14 22:49   ` Sebastian Andrzej Siewior
  2008-10-15  8:59     ` Sebastian Andrzej Siewior
  1 sibling, 1 reply; 14+ messages in thread
From: Sebastian Andrzej Siewior @ 2008-10-14 22:49 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, ths

* Kumar Gala | 2008-10-14 16:23:05 [-0500]:

>>Not sure if this is intendent or a gcc bug but with -mno-spe
>>the spe opcodes were not used floating point anymore but
>>for 64bit save/restore for instance.
>
>what code is getting generated for you that is causing issue?
Without the patch do_syslog() looks like this:

|c0025840 <do_syslog>:
|c0025840:       94 21 ff 50     stwu    r1,-176(r1)
|c0025844:       7c 08 02 a6     mflr    r0
|c0025848:       13 21 73 21     evstdd  r25,112(r1)
|c002584c:       13 41 7b 21     evstdd  r26,120(r1)
|c0025850:       7c 9a 23 78     mr      r26,r4
|c0025854:       13 61 83 21     evstdd  r27,128(r1)
|c0025858:       7c bb 2b 78     mr      r27,r5
|c002585c:       13 e1 a3 21     evstdd  r31,160(r1)
|c0025860:       7c 7f 1b 78     mr      r31,r3
|c0025864:       90 01 00 b4     stw     r0,180(r1)
|c0025868:       12 21 33 21     evstdd  r17,48(r1)
|c002586c:       12 41 3b 21     evstdd  r18,56(r1)
|c0025870:       12 61 43 21     evstdd  r19,64(r1)
|c0025874:       12 81 4b 21     evstdd  r20,72(r1)
|c0025878:       12 a1 53 21     evstdd  r21,80(r1)
|c002587c:       12 c1 5b 21     evstdd  r22,88(r1)
|c0025880:       12 e1 63 21     evstdd  r23,96(r1)
|c0025884:       13 01 6b 21     evstdd  r24,104(r1)
|c0025888:       13 81 8b 21     evstdd  r28,136(r1)
|c002588c:       13 a1 93 21     evstdd  r29,144(r1)
|c0025890:       13 c1 9b 21     evstdd  r30,152(r1)
|c0025894:       48 0f 00 b5     bl      c0115948 <cap_syslog>
|c0025898:       7c 79 1b 79     mr.     r25,r3
|c002589c:       40 82 04 54     bne-    c0025cf0 <do_syslog+0x4b0>
|c00258a0:       2b 9f 00 0a     cmplwi  cr7,r31,10
|c00258a4:       41 9d 04 40     bgt-    cr7,c0025ce4 <do_syslog+0x4a4>
|c00258a8:       3d 20 c0 27     lis     r9,-16345
|c00258ac:       57 e0 10 3a     rlwinm  r0,r31,2,0,29
|c00258b0:       39 29 a6 e4     addi    r9,r9,-22812
|c00258b4:       7c 09 00 2e     lwzx    r0,r9,r0
|c00258b8:       7c 00 4a 14     add     r0,r0,r9
|c00258bc:       7c 09 03 a6     mtctr   r0
|c00258c0:       4e 80 04 20     bctr
|c00258c4:       3b e0 00 00     li      r31,0
....

do_syslog() is not the only one.

>>1 files changed, 3 insertions(+), 0 deletions(-)
>>
>>diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>>index b7d4c4c..3727e4f 100644
>>--- a/arch/powerpc/Makefile
>>+++ b/arch/powerpc/Makefile
>>@@ -108,7 +108,10 @@ endif
>>KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
>>
>># No SPE instruction when building kernel
>>+# (We use all available options to help semi-broken compilers)
>>KBUILD_CFLAGS += $(call cc-option,-mno-spe)
>>+KBUILD_CFLAGS += $(call cc-option,-mspe=no)
>
>Why does -mno-spe work?
Good question. Without this option and only with -mabi=no-spe the
do_syslog() looks like the following:

|c0025270 <do_syslog>:
|c0025270:       94 21 ff 90     stwu    r1,-112(r1)
|c0025274:       7c 08 02 a6     mflr    r0
|c0025278:       be 21 00 34     stmw    r17,52(r1)
|c002527c:       7c 9a 23 78     mr      r26,r4
|c0025280:       90 01 00 74     stw     r0,116(r1)
|c0025284:       7c bb 2b 78     mr      r27,r5
|c0025288:       7c 7f 1b 78     mr      r31,r3
|c002528c:       48 0e ce c5     bl      c0112150 <cap_syslog>
|c0025290:       7c 79 1b 79     mr.     r25,r3
|c0025294:       40 82 04 54     bne-    c00256e8 <do_syslog+0x478>
|c0025298:       2b 9f 00 0a     cmplwi  cr7,r31,10
|c002529c:       41 9d 04 40     bgt-    cr7,c00256dc <do_syslog+0x46c>
|c00252a0:       3d 20 c0 26     lis     r9,-16346
|c00252a4:       57 e0 10 3a     rlwinm  r0,r31,2,0,29
|c00252a8:       39 29 36 e4     addi    r9,r9,14052
|c00252ac:       7c 09 00 2e     lwzx    r0,r9,r0
|c00252b0:       7c 00 4a 14     add     r0,r0,r9
|c00252b4:       7c 09 03 a6     mtctr   r0
|c00252b8:       4e 80 04 20     bctr
|c00252bc:       3b e0 00 00     li      r31,0
|c00252c0:       48 00 01 c4     b       c0025484 <do_syslog+0x214>
|c00252c4:       2f 9a 00 00     cmpwi   cr7,r26,0
|c00252c8:       41 9e 04 14     beq-    cr7,c00256dc <do_syslog+0x46c>
|c00252cc:       2f 9b 00 00     cmpwi   cr7,r27,0
|c00252d0:       41 9c 04 0c     blt-    cr7,c00256dc <do_syslog+0x46c>
|c00252d4:       41 9e 04 14     beq-    cr7,c00256e8 <do_syslog+0x478>
|c00252d8:       80 02 03 3c     lwz     r0,828(r2)
|c00252dc:       7f 9a 00 40     cmplw   cr7,r26,r0
|c00252e0:       41 9d 04 04     bgt-    cr7,c00256e4 <do_syslog+0x474>
|c00252e4:       7c 1a 00 50     subf    r0,r26,r0
|c00252e8:       39 3b ff ff     addi    r9,r27,-1
|c00252ec:       7f 89 00 40     cmplw   cr7,r9,r0
|c00252f0:       41 9d 03 f4     bgt-    cr7,c00256e4 <do_syslog+0x474>
|c00252f4:       3d 20 c0 39     lis     r9,-16327
|c00252f8:       39 09 8e f8     addi    r8,r9,-28936
|c00252fc:       81 29 8e f8     lwz     r9,-28936(r9)
|c0025300:       80 08 00 04     lwz     r0,4(r8)
|c0025304:       7f 80 48 00     cmpw    cr7,r0,r9
|c0025308:       40 be 00 a4     bne+    cr7,c00253ac <do_syslog+0x13c>
|c002530c:       3d 20 c0 04     lis     r9,-16380
|c0025310:       39 61 00 14     addi    r11,r1,20
|c0025314:       39 29 ae 78     addi    r9,r9,-20872
|c0025318:       10 00 02 16     evxor   r0,r0,r0
|c002531c:       10 01 0b 21     evstdd  r0,8(r1)
|c0025320:       7d 1f 43 78     mr      r31,r8

boom.

>
>From my gcc-4.3 info pages:
>
>`-mspe=YES/NO'
>     This option has been deprecated.  Use `-mspe' and `-mno-spe'
>     instead.
>
so it could be gcc bug then and I should open a bugzilla. I didn't know
that it is deprecated.

>>+KBUILD_CFLAGS += $(call cc-option,-mabi=no-spe)
>
>is the -mabi=no-spe really needed?
It seems to work the other way around (without -mabi=no-spe but with
-mabi=no-spe) alteast I did not find anything in do_syslog() or while
browsing through the dissasm. I do a boot check tomorrow.

>
>- k

Sebastian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-14 22:49   ` Sebastian Andrzej Siewior
@ 2008-10-15  8:59     ` Sebastian Andrzej Siewior
  2008-10-15 13:25       ` Kumar Gala
  0 siblings, 1 reply; 14+ messages in thread
From: Sebastian Andrzej Siewior @ 2008-10-15  8:59 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Nate Case, ths

* Sebastian Andrzej Siewior | 2008-10-15 00:49:46 [+0200]:

>>is the -mabi=no-spe really needed?
>It seems to work the other way around (without -mabi=no-spe but with
>-mabi=no-spe) alteast I did not find anything in do_syslog() or while
>browsing through the dissasm. I do a boot check tomorrow.

Okay. I recompiled with -mspe=no and was able to boot without trouble.
It didn't work with -mabi=no-spe.

>>
>>- k

Sebastian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-15  8:59     ` Sebastian Andrzej Siewior
@ 2008-10-15 13:25       ` Kumar Gala
  2008-10-15 14:43         ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 14+ messages in thread
From: Kumar Gala @ 2008-10-15 13:25 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior; +Cc: linuxppc-dev, Nate Case, ths


On Oct 15, 2008, at 3:59 AM, Sebastian Andrzej Siewior wrote:

> * Sebastian Andrzej Siewior | 2008-10-15 00:49:46 [+0200]:
>
>>> is the -mabi=no-spe really needed?
>> It seems to work the other way around (without -mabi=no-spe but with
>> -mabi=no-spe) alteast I did not find anything in do_syslog() or while
>> browsing through the dissasm. I do a boot check tomorrow.
>
> Okay. I recompiled with -mspe=no and was able to boot without trouble.
> It didn't work with -mabi=no-spe.

I'm confused.. what did you change from your patch?

- k

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-15 13:25       ` Kumar Gala
@ 2008-10-15 14:43         ` Sebastian Andrzej Siewior
  2008-10-15 16:31           ` Kumar Gala
  2008-10-17 14:02           ` Nate Case
  0 siblings, 2 replies; 14+ messages in thread
From: Sebastian Andrzej Siewior @ 2008-10-15 14:43 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev, Nate Case, ths

* Kumar Gala | 2008-10-15 08:25:54 [-0500]:

>
> On Oct 15, 2008, at 3:59 AM, Sebastian Andrzej Siewior wrote:
>
>> * Sebastian Andrzej Siewior | 2008-10-15 00:49:46 [+0200]:
>>
>>>> is the -mabi=no-spe really needed?
>>> It seems to work the other way around (without -mabi=no-spe but with
>>> -mabi=no-spe) alteast I did not find anything in do_syslog() or while
>>> browsing through the dissasm. I do a boot check tomorrow.
>>
>> Okay. I recompiled with -mspe=no and was able to boot without trouble.
>> It didn't work with -mabi=no-spe.
>
> I'm confused.. what did you change from your patch?

This is the patch it right now:
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -103,6 +103,7 @@ KBUILD_CFLAGS += $(call cc-option,-mno-altivec)

 # No SPE instruction when building kernel
 KBUILD_CFLAGS += $(call cc-option,-mno-spe)
+KBUILD_CFLAGS += $(call cc-option,-mspe=no)

 # Enable unit-at-a-time mode when possible. It shrinks the
 # kernel considerably.
-- 

With this patch it compiles and boots fine.
The option -mabi=no-spe is not required.

> - k
Sebastian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-15 14:43         ` Sebastian Andrzej Siewior
@ 2008-10-15 16:31           ` Kumar Gala
  2008-10-17 14:02           ` Nate Case
  1 sibling, 0 replies; 14+ messages in thread
From: Kumar Gala @ 2008-10-15 16:31 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior; +Cc: linuxppc-dev, Nate Case, ths


On Oct 15, 2008, at 9:43 AM, Sebastian Andrzej Siewior wrote:

> * Kumar Gala | 2008-10-15 08:25:54 [-0500]:
>
>>
>> On Oct 15, 2008, at 3:59 AM, Sebastian Andrzej Siewior wrote:
>>
>>> * Sebastian Andrzej Siewior | 2008-10-15 00:49:46 [+0200]:
>>>
>>>>> is the -mabi=no-spe really needed?
>>>> It seems to work the other way around (without -mabi=no-spe but  
>>>> with
>>>> -mabi=no-spe) alteast I did not find anything in do_syslog() or  
>>>> while
>>>> browsing through the dissasm. I do a boot check tomorrow.
>>>
>>> Okay. I recompiled with -mspe=no and was able to boot without  
>>> trouble.
>>> It didn't work with -mabi=no-spe.
>>
>> I'm confused.. what did you change from your patch?
>
> This is the patch it right now:
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -103,6 +103,7 @@ KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
>
> # No SPE instruction when building kernel
> KBUILD_CFLAGS += $(call cc-option,-mno-spe)
> +KBUILD_CFLAGS += $(call cc-option,-mspe=no)
>
> # Enable unit-at-a-time mode when possible. It shrinks the
> # kernel considerably.
> -- 
>
> With this patch it compiles and boots fine.
> The option -mabi=no-spe is not required.

ok.  can post a clean patch w/just this change.

- k

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-15 14:43         ` Sebastian Andrzej Siewior
  2008-10-15 16:31           ` Kumar Gala
@ 2008-10-17 14:02           ` Nate Case
  2008-10-17 15:01             ` Sebastian Andrzej Siewior
  2008-10-24 23:51             ` Nate Case
  1 sibling, 2 replies; 14+ messages in thread
From: Nate Case @ 2008-10-17 14:02 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior; +Cc: linuxppc-dev, ths

On Wed, 2008-10-15 at 16:43 +0200, Sebastian Andrzej Siewior wrote:
> With this patch it compiles and boots fine.
> The option -mabi=no-spe is not required.

Please don't accept this patch yet.  My past testing showed that
"-mabi=no-spe" was required for my toolchain.  I'll go back and double
check though.

- Nate Case <ncase@xes-inc.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-17 14:02           ` Nate Case
@ 2008-10-17 15:01             ` Sebastian Andrzej Siewior
  2008-10-24 23:51             ` Nate Case
  1 sibling, 0 replies; 14+ messages in thread
From: Sebastian Andrzej Siewior @ 2008-10-17 15:01 UTC (permalink / raw)
  To: Nate Case; +Cc: linuxppc-dev, ths

* Nate Case | 2008-10-17 09:02:11 [-0500]:

>On Wed, 2008-10-15 at 16:43 +0200, Sebastian Andrzej Siewior wrote:
>> With this patch it compiles and boots fine.
>> The option -mabi=no-spe is not required.
>
>Please don't accept this patch yet.  My past testing showed that
>"-mabi=no-spe" was required for my toolchain.  I'll go back and double
>check though.
Okay. Here my compiler details:

| powerpc-linux-gnuspe-gcc -v 
| Using built-in specs.
| Target: powerpc-linux-gnuspe
| Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.1-9'
| --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
| --enable-languages=c,c++,obj-c++ --prefix=/usr --enable-shared
| --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
| --enable-threads=posix --enable-nls
| --with-gxx-include-dir=/usr/powerpc-linux-gnuspe/include/c++/4.3.1
| --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
| --disable-multilib --disable-multilib --with-cpu=8540
| --enable-e500_double --with-long-double-128 --enable-checking=release
| --program-prefix=powerpc-linux-gnuspe-
| --includedir=/usr/powerpc-linux-gnuspe/include --build=i486-linux-gnu
| --host=i486-linux-gnu --target=powerpc-linux-gnuspe
| Thread model: posix
| gcc version 4.3.1 (Debian 4.3.1-9) 
 
ths told me that we need all three options in this order because of how
they interact with gcc's internal flags.

>- Nate Case <ncase@xes-inc.com>

Sebastian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-17 14:02           ` Nate Case
  2008-10-17 15:01             ` Sebastian Andrzej Siewior
@ 2008-10-24 23:51             ` Nate Case
  2008-10-24 23:55               ` Kumar Gala
  1 sibling, 1 reply; 14+ messages in thread
From: Nate Case @ 2008-10-24 23:51 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior; +Cc: linuxppc-dev, ths

On Fri, 2008-10-17 at 09:02 -0500, Nate Case wrote:
> > With this patch it compiles and boots fine.
> > The option -mabi=no-spe is not required.
> 
> Please don't accept this patch yet.  My past testing showed that
> "-mabi=no-spe" was required for my toolchain.  I'll go back and double
> check though.

OK, I went back and re-tested.

Kernel: 2.6.27
CPU: MPC8572
Toolchain:
    Cross-compiler built using crosstool-ng
    gcc 4.3.1, default target CFLAGS include '-mabi=spe -mspe'
    binutils 2.18.90 snapshot (built with --enable-spe=yes)

Kbuild flags                    Result
------------                    ------
-mno-spe (*)                    FAILED
-mno-spe -mabi=no-spe           FAILED
-mno-spe -mspe=no               OK
-mspe=no                        OK

(*) 2.6.27 default

In the failure case, the kernel would repeatedly dump out "SPE used in
kernel (task=xxxxxxxx, pc=xxxxxxxx)".

I think I was fooled before because I added _both_ "-mspe=no" and
"-mabi=no-spe" to my KBUILD_CFLAGS and saw the problem go away.  Since I
trusted the documentation that -mspe=no and -mno-spe were the same, I
assumed that -mabi=no-spe was the key.

So, I've changed my mind.  I now agree with Sebastian that
"-mabi=no-spe" is not required.  "-mno-spe -mspe=no" is probably the
safe way to go.

-- 
Nate Case <ncase@xes-inc.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers
  2008-10-24 23:51             ` Nate Case
@ 2008-10-24 23:55               ` Kumar Gala
  0 siblings, 0 replies; 14+ messages in thread
From: Kumar Gala @ 2008-10-24 23:55 UTC (permalink / raw)
  To: Nate Case; +Cc: linuxppc-dev, Sebastian Andrzej Siewior, ths


On Oct 24, 2008, at 6:51 PM, Nate Case wrote:

> On Fri, 2008-10-17 at 09:02 -0500, Nate Case wrote:
>>> With this patch it compiles and boots fine.
>>> The option -mabi=no-spe is not required.
>>
>> Please don't accept this patch yet.  My past testing showed that
>> "-mabi=no-spe" was required for my toolchain.  I'll go back and  
>> double
>> check though.
>
> OK, I went back and re-tested.
>
> Kernel: 2.6.27
> CPU: MPC8572
> Toolchain:
>    Cross-compiler built using crosstool-ng
>    gcc 4.3.1, default target CFLAGS include '-mabi=spe -mspe'
>    binutils 2.18.90 snapshot (built with --enable-spe=yes)
>
> Kbuild flags                    Result
> ------------                    ------
> -mno-spe (*)                    FAILED
> -mno-spe -mabi=no-spe           FAILED
> -mno-spe -mspe=no               OK
> -mspe=no                        OK
>
> (*) 2.6.27 default
>
> In the failure case, the kernel would repeatedly dump out "SPE used in
> kernel (task=xxxxxxxx, pc=xxxxxxxx)".
>
> I think I was fooled before because I added _both_ "-mspe=no" and
> "-mabi=no-spe" to my KBUILD_CFLAGS and saw the problem go away.   
> Since I
> trusted the documentation that -mspe=no and -mno-spe were the same, I
> assumed that -mabi=no-spe was the key.
>
> So, I've changed my mind.  I now agree with Sebastian that
> "-mabi=no-spe" is not required.  "-mno-spe -mspe=no" is probably the
> safe way to go.
>
> -- 
> Nate Case <ncase@xes-inc.com>

thanks for testing this all out.

I'll submit a patch to remove the -mabi=.*spe.* foo.

- k

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-10-24 23:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-01 14:23 [PATCH] powerpc: enforce a non-spe kernel build even on broken compilers Sebastian Siewior
2008-10-14 19:25 ` Nate Case
2008-10-14 22:02   ` Nate Case
2008-10-14 21:23 ` Kumar Gala
2008-10-14 22:35   ` Nate Case
2008-10-14 22:49   ` Sebastian Andrzej Siewior
2008-10-15  8:59     ` Sebastian Andrzej Siewior
2008-10-15 13:25       ` Kumar Gala
2008-10-15 14:43         ` Sebastian Andrzej Siewior
2008-10-15 16:31           ` Kumar Gala
2008-10-17 14:02           ` Nate Case
2008-10-17 15:01             ` Sebastian Andrzej Siewior
2008-10-24 23:51             ` Nate Case
2008-10-24 23:55               ` Kumar Gala

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).