Patchwork [2/2] kbuild: move -fno-dwarf2-cfi-asm to powerpc only

login
register
mail settings
Submitter Andrew Morton
Date Feb. 2, 2010, 10:40 p.m.
Message ID <201002022240.o12Me3aI018845@imap1.linux-foundation.org>
Download mbox | patch
Permalink /patch/44314/
State Not Applicable
Headers show

Comments

Andrew Morton - Feb. 2, 2010, 10:40 p.m.
From: Andi Kleen <andi@firstfloor.org>

Better dwarf2 unwind information is a good thing, it allows better
debugging with kgdb and crash and helps systemtap.

Commit 003086497f07f7f1e67c0c295e261740f822b377 ("Build with
-fno-dwarf2-cfi-asm") disabled some CFI information globally to work
around a module loader bug on powerpc.

But this disables the better unwind tables for all architectures, not just
powerpc.  Move the workaround to powerpc and also add a suitable comment
that's it really a workaround.

This improves dwarf2 unwind tables on x86 at least.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Michal Marek <mmarek@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 Makefile              |    3 ---
 arch/powerpc/Makefile |    5 +++++
 2 files changed, 5 insertions(+), 3 deletions(-)
Benjamin Herrenschmidt - Feb. 3, 2010, 11:22 p.m.
On Tue, 2010-02-02 at 14:40 -0800, akpm@linux-foundation.org wrote:
> From: Andi Kleen <andi@firstfloor.org>
> 
> Better dwarf2 unwind information is a good thing, it allows better
> debugging with kgdb and crash and helps systemtap.
> 
> Commit 003086497f07f7f1e67c0c295e261740f822b377 ("Build with
> -fno-dwarf2-cfi-asm") disabled some CFI information globally to work
> around a module loader bug on powerpc.
> 
> But this disables the better unwind tables for all architectures, not just
> powerpc.  Move the workaround to powerpc and also add a suitable comment
> that's it really a workaround.
> 
> This improves dwarf2 unwind tables on x86 at least.
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> Cc: Kyle McMartin <kyle@mcmartin.ca>

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Do you want me to carry that in powerpc-next ?

Cheers,
Ben.

> Cc: Michal Marek <mmarek@suse.cz>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  Makefile              |    3 ---
>  arch/powerpc/Makefile |    5 +++++
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff -puN Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only Makefile
> --- a/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only
> +++ a/Makefile
> @@ -579,9 +579,6 @@ KBUILD_CFLAGS += $(call cc-option,-Wno-p
>  # disable invalid "can't wrap" optimizations for signed / pointers
>  KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
>  
> -# revert to pre-gcc-4.4 behaviour of .eh_frame
> -KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
> -
>  # conserve stack if available
>  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
>  
> diff -puN arch/powerpc/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only arch/powerpc/Makefile
> --- a/arch/powerpc/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only
> +++ a/arch/powerpc/Makefile
> @@ -112,6 +112,11 @@ KBUILD_CFLAGS += $(call cc-option,-mspe=
>  # kernel considerably.
>  KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time)
>  
> +# FIXME: the module load should be taught about the additional relocs
> +# generated by this.
> +# revert to pre-gcc-4.4 behaviour of .eh_frame
> +KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
> +
>  # Never use string load/store instructions as they are
>  # often slow when they are implemented at all
>  KBUILD_CFLAGS		+= -mno-string
> _
Michal Marek - Feb. 4, 2010, 1:03 p.m.
On 4.2.2010 00:22, Benjamin Herrenschmidt wrote:
> On Tue, 2010-02-02 at 14:40 -0800, akpm@linux-foundation.org wrote:
>> From: Andi Kleen <andi@firstfloor.org>
>>
>> Better dwarf2 unwind information is a good thing, it allows better
>> debugging with kgdb and crash and helps systemtap.
>>
>> Commit 003086497f07f7f1e67c0c295e261740f822b377 ("Build with
>> -fno-dwarf2-cfi-asm") disabled some CFI information globally to work
>> around a module loader bug on powerpc.
>>
>> But this disables the better unwind tables for all architectures, not just
>> powerpc.  Move the workaround to powerpc and also add a suitable comment
>> that's it really a workaround.
>>
>> This improves dwarf2 unwind tables on x86 at least.
>>
>> Signed-off-by: Andi Kleen <ak@linux.intel.com>
>> Cc: Kyle McMartin <kyle@mcmartin.ca>
> 
> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> 
> Do you want me to carry that in powerpc-next ?

I can add it to kbuild-next. Changes to the top-level Makefile usually
go through kbuild, so it will avoid potential conflicts.

Michal

Patch

diff -puN Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only Makefile
--- a/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only
+++ a/Makefile
@@ -579,9 +579,6 @@  KBUILD_CFLAGS += $(call cc-option,-Wno-p
 # disable invalid "can't wrap" optimizations for signed / pointers
 KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
 
-# revert to pre-gcc-4.4 behaviour of .eh_frame
-KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
-
 # conserve stack if available
 KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
 
diff -puN arch/powerpc/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only arch/powerpc/Makefile
--- a/arch/powerpc/Makefile~kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only
+++ a/arch/powerpc/Makefile
@@ -112,6 +112,11 @@  KBUILD_CFLAGS += $(call cc-option,-mspe=
 # kernel considerably.
 KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time)
 
+# FIXME: the module load should be taught about the additional relocs
+# generated by this.
+# revert to pre-gcc-4.4 behaviour of .eh_frame
+KBUILD_CFLAGS	+= $(call cc-option,-fno-dwarf2-cfi-asm)
+
 # Never use string load/store instructions as they are
 # often slow when they are implemented at all
 KBUILD_CFLAGS		+= -mno-string