public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
@ 2006-10-16  6:10 Ingo Molnar
  2006-10-16  6:33 ` Andrew Morton
  2006-10-16  6:36 ` Nicholas Miell
  0 siblings, 2 replies; 8+ messages in thread
From: Ingo Molnar @ 2006-10-16  6:10 UTC (permalink / raw)
  To: Jan Beulich; +Cc: linux-kernel, Andrew Morton, Andi Kleen


using latest -git i'm getting this build bug on gcc 3.4:

 arch/x86_64/kernel/entry.S: Assembler messages:
 arch/x86_64/kernel/entry.S:157: Error: unknown pseudo-op: `.cfi_signal_frame'
 arch/x86_64/kernel/entry.S:215: Error: unknown pseudo-op: `.cfi_signal_frame'
 arch/x86_64/kernel/entry.S:333: Error: unknown pseudo-op: `.cfi_signal_frame'
 arch/x86_64/kernel/entry.S:548: Error: unknown pseudo-op: `.cfi_signal_frame'

 gcc version 3.4.0 20040129 (Red Hat Linux 3.4.0-0.3)

using gcc 4.1 it doesnt happen

 gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)

this is caused by the following commit:

 commit adf1423698f00d00b267f7dca8231340ce7d65ef
 Author: Jan Beulich <jbeulich@novell.com>
 Date:   Tue Sep 26 10:52:41 2006 +0200

reverting that patch solves the build problem and the resulting kernel 
builds and boots fine.

	Ingo

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:10 [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame' Ingo Molnar
@ 2006-10-16  6:33 ` Andrew Morton
  2006-10-16  7:00   ` Jan Beulich
  2006-10-16  6:36 ` Nicholas Miell
  1 sibling, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2006-10-16  6:33 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Jan Beulich, linux-kernel, Andi Kleen

On Mon, 16 Oct 2006 08:10:37 +0200
Ingo Molnar <mingo@elte.hu> wrote:

> 
> using latest -git i'm getting this build bug on gcc 3.4:
> 
>  arch/x86_64/kernel/entry.S: Assembler messages:
>  arch/x86_64/kernel/entry.S:157: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:215: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:333: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:548: Error: unknown pseudo-op: `.cfi_signal_frame'
> 
>  gcc version 3.4.0 20040129 (Red Hat Linux 3.4.0-0.3)
> 
> using gcc 4.1 it doesnt happen
> 
>  gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)
> 
> this is caused by the following commit:
> 
>  commit adf1423698f00d00b267f7dca8231340ce7d65ef
>  Author: Jan Beulich <jbeulich@novell.com>
>  Date:   Tue Sep 26 10:52:41 2006 +0200
> 
> reverting that patch solves the build problem and the resulting kernel 
> builds and boots fine.
> 

That patch has obvious copy-n-paste errors:

i386:

 cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
 AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
 
+# is .cfi_signal_frame supported too?
+cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
+AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)

So that won't work.

x86_64 appears to get it right:

 cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
 AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
 
+# is .cfi_signal_frame supported too?
+cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
+AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)

Later,

+#ifdef CONFIG_AS_CFI_SIGNAL_FRAME
+#define CFI_SIGNAL_FRAME .cfi_signal_frame
+#else
+#define CFI_SIGNAL_FRAME
+#endif

but it's obviously not working.   Wanna debug it a bit?

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:36 ` Nicholas Miell
@ 2006-10-16  6:36   ` Ingo Molnar
  2006-10-16  6:43     ` Ingo Molnar
  0 siblings, 1 reply; 8+ messages in thread
From: Ingo Molnar @ 2006-10-16  6:36 UTC (permalink / raw)
  To: Nicholas Miell; +Cc: Jan Beulich, linux-kernel, Andrew Morton, Andi Kleen


* Nicholas Miell <nmiell@comcast.net> wrote:

> The kernel build system is supposed to detect gas support for 
> .cfi_signal_frame -- and while the i386 test is obviously broken (the 
> i386 test for the directive doesn't actually use the directive), the 
> AMD64 test looks like it should work (assuming as-instr works).

the broken one is:

 GNU assembler 2.14.90.0.8 20040114

the working one is:

 GNU assembler 2.16.91.0.6 20060212

i guess i found the reason for the breakage: i was using a 
cross-compiling setup via the following script:

 make -j165 bzImage ARCH=x86_64 CC='distcc /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc'

Note that i override 'CC' instead of specifying a 'CROSS' prefix. I 
suspect this means as-instr does not switch over to the 
cross-environment and thus mis-detected the gas version?

	Ingo

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:10 [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame' Ingo Molnar
  2006-10-16  6:33 ` Andrew Morton
@ 2006-10-16  6:36 ` Nicholas Miell
  2006-10-16  6:36   ` Ingo Molnar
  1 sibling, 1 reply; 8+ messages in thread
From: Nicholas Miell @ 2006-10-16  6:36 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Jan Beulich, linux-kernel, Andrew Morton, Andi Kleen

On Mon, 2006-10-16 at 08:10 +0200, Ingo Molnar wrote:
> using latest -git i'm getting this build bug on gcc 3.4:
> 
>  arch/x86_64/kernel/entry.S: Assembler messages:
>  arch/x86_64/kernel/entry.S:157: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:215: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:333: Error: unknown pseudo-op: `.cfi_signal_frame'
>  arch/x86_64/kernel/entry.S:548: Error: unknown pseudo-op: `.cfi_signal_frame'
> 
>  gcc version 3.4.0 20040129 (Red Hat Linux 3.4.0-0.3)
> 
> using gcc 4.1 it doesnt happen
> 
>  gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)
> 
> this is caused by the following commit:
> 
>  commit adf1423698f00d00b267f7dca8231340ce7d65ef
>  Author: Jan Beulich <jbeulich@novell.com>
>  Date:   Tue Sep 26 10:52:41 2006 +0200
> 
> reverting that patch solves the build problem and the resulting kernel 
> builds and boots fine.
> 
> 	Ingo

This is a binutils/gas feature; gcc has nothing to do with it. I take it
the gcc 4.1 system is FC5 with binutils 2.16.91.0.6-5 and the gcc 3.4
system is something older?

The kernel build system is supposed to detect gas support
for .cfi_signal_frame -- and while the i386 test is obviously broken
(the i386 test for the directive doesn't actually use the directive),
the AMD64 test looks like it should work (assuming as-instr works).

-- 
Nicholas Miell <nmiell@comcast.net>


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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:36   ` Ingo Molnar
@ 2006-10-16  6:43     ` Ingo Molnar
  2006-10-16 20:06       ` Sam Ravnborg
  2006-10-17  9:37       ` Oleg Verych
  0 siblings, 2 replies; 8+ messages in thread
From: Ingo Molnar @ 2006-10-16  6:43 UTC (permalink / raw)
  To: Nicholas Miell; +Cc: Jan Beulich, linux-kernel, Andrew Morton, Andi Kleen


* Ingo Molnar <mingo@elte.hu> wrote:

> Note that i override 'CC' instead of specifying a 'CROSS' prefix. I 
> suspect this means as-instr does not switch over to the 
> cross-environment and thus mis-detected the gas version?

this did not solve it either - it seems if both CROSS and CC are set 
then CC overrides it and CROSS is ignored? Removing the CC override 
solved the problem. But how do i insert the 'distcc' that way? Seems 
like a Kbuild breakage to me.

	Ingo

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:33 ` Andrew Morton
@ 2006-10-16  7:00   ` Jan Beulich
  0 siblings, 0 replies; 8+ messages in thread
From: Jan Beulich @ 2006-10-16  7:00 UTC (permalink / raw)
  To: Ingo Molnar, Andrew Morton, AndiKleen; +Cc: linux-kernel

>>>> Andrew Morton <akpm@osdl.org> 16.10.06 08:33 >>>
>On Mon, 16 Oct 2006 08:10:37 +0200
>Ingo Molnar <mingo@elte.hu> wrote:
>
>> 
>> using latest -git i'm getting this build bug on gcc 3.4:
>> 
>>  arch/x86_64/kernel/entry.S: Assembler messages:
>>  arch/x86_64/kernel/entry.S:157: Error: unknown pseudo-op: `.cfi_signal_frame'
>>  arch/x86_64/kernel/entry.S:215: Error: unknown pseudo-op: `.cfi_signal_frame'
>>  arch/x86_64/kernel/entry.S:333: Error: unknown pseudo-op: `.cfi_signal_frame'
>>  arch/x86_64/kernel/entry.S:548: Error: unknown pseudo-op: `.cfi_signal_frame'
>> 
>>  gcc version 3.4.0 20040129 (Red Hat Linux 3.4.0-0.3)
>> 
>> using gcc 4.1 it doesnt happen
>> 
>>  gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)
>> 
>> this is caused by the following commit:
>> 
>>  commit adf1423698f00d00b267f7dca8231340ce7d65ef
>>  Author: Jan Beulich <jbeulich@novell.com>
>>  Date:   Tue Sep 26 10:52:41 2006 +0200
>> 
>> reverting that patch solves the build problem and the resulting kernel 
>> builds and boots fine.
>> 
>
>That patch has obvious copy-n-paste errors:
>
>i386:
>
> cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
> AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
> 
>+# is .cfi_signal_frame supported too?
>+cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
>+AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
>
>So that won't work.
>
>x86_64 appears to get it right:
>
> cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
> AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
> 
>+# is .cfi_signal_frame supported too?
>+cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
>+AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
>
>Later,
>
>+#ifdef CONFIG_AS_CFI_SIGNAL_FRAME
>+#define CFI_SIGNAL_FRAME .cfi_signal_frame
>+#else
>+#define CFI_SIGNAL_FRAME
>+#endif
>
>but it's obviously not working.   Wanna debug it a bit?

That is nothing I added, I suppose Andi did. But the fix is obvious and trivial.

Jan

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:43     ` Ingo Molnar
@ 2006-10-16 20:06       ` Sam Ravnborg
  2006-10-17  9:37       ` Oleg Verych
  1 sibling, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2006-10-16 20:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Nicholas Miell, Jan Beulich, linux-kernel, Andrew Morton,
	Andi Kleen, Sam Ravnborg

On Mon, Oct 16, 2006 at 08:43:00AM +0200, Ingo Molnar wrote:
> 
> * Ingo Molnar <mingo@elte.hu> wrote:
> 
> > Note that i override 'CC' instead of specifying a 'CROSS' prefix. I 
> > suspect this means as-instr does not switch over to the 
> > cross-environment and thus mis-detected the gas version?
> 
> this did not solve it either - it seems if both CROSS and CC are set 
> then CC overrides it and CROSS is ignored? Removing the CC override 
> solved the problem. But how do i insert the 'distcc' that way? Seems 
> like a Kbuild breakage to me.

I will try to take a look when I'm back from vacation.
In few hours I'm leaving of for France for 8 days with the family.
If someone else beats me why I'm away it would be fine!

	Sam

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

* Re: [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame'
  2006-10-16  6:43     ` Ingo Molnar
  2006-10-16 20:06       ` Sam Ravnborg
@ 2006-10-17  9:37       ` Oleg Verych
  1 sibling, 0 replies; 8+ messages in thread
From: Oleg Verych @ 2006-10-17  9:37 UTC (permalink / raw)
  To: linux-kernel

Hallo.

On 2006-10-16, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
>> Note that i override 'CC' instead of specifying a 'CROSS' prefix. I 
>> suspect this means as-instr does not switch over to the 
>> cross-environment and thus mis-detected the gas version?

Do you mean 'CROSS_COMPILE' ?

> this did not solve it either - it seems if both CROSS and CC are set 
> then CC overrides it and CROSS is ignored? Removing the CC override 
> solved the problem. But how do i insert the 'distcc' that way? Seems 
> like a Kbuild breakage to me.

CC with friends is set like this:

+--[linux/Makefile]
|[...]
|AS		= $(CROSS_COMPILE)as
|LD		= $(CROSS_COMPILE)ld
|CC		= $(CROSS_COMPILE)gcc
|CPP		= $(CC) -E
|[...]
+--

So, i think, you must set 'CROSS_COMPILE' first and then 'CC' like this:
(exporing PATH in shell, of course)
+--
$ make CROSS_COMPILE=x86_64-pc-linux- 'CC=distcc $(CROSS_COMPILE)gcc'
+--

(BTW, it's funny to see arch-*unknown*-linux...
Like something is deeply hidden and is a very big secret ;)
____


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

end of thread, other threads:[~2006-10-17  9:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-16  6:10 [build bug] x86_64, -git: Error: unknown pseudo-op: `.cfi_signal_frame' Ingo Molnar
2006-10-16  6:33 ` Andrew Morton
2006-10-16  7:00   ` Jan Beulich
2006-10-16  6:36 ` Nicholas Miell
2006-10-16  6:36   ` Ingo Molnar
2006-10-16  6:43     ` Ingo Molnar
2006-10-16 20:06       ` Sam Ravnborg
2006-10-17  9:37       ` Oleg Verych

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox