2010-07-09 21:13:59

by Michal Marek

[permalink] [raw]
Subject: [PATCH] arm: Build with -fno-dwarf2-cfi-asm

Commit d0679c7 restricted this workaround to powerpc only, but it turns
out that ARM needs it as well. Fixes
https://bugzilla.kernel.org/show_bug.cgi?id=16310 .

Reported-and-Tested-by: Robert Nelson <[email protected]>
Signed-off-by: Michal Marek <[email protected]>
---
arch/arm/Makefile | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 64ba313..862d4ba 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -21,6 +21,11 @@ GZFLAGS :=-9
# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
KBUILD_CFLAGS +=$(call cc-option,-marm,)

+# 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)
+
# Do not use arch/arm/defconfig - it's always outdated.
# Select a platform tht is kept up-to-date
KBUILD_DEFCONFIG := versatile_defconfig
--
1.7.1


2010-07-10 13:02:24

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [PATCH] arm: Build with -fno-dwarf2-cfi-asm

Michal Marek writes:
> Commit d0679c7 restricted this workaround to powerpc only, but it turns
> out that ARM needs it as well. Fixes
> https://bugzilla.kernel.org/show_bug.cgi?id=16310 .
>
> Reported-and-Tested-by: Robert Nelson <[email protected]>
> Signed-off-by: Michal Marek <[email protected]>
> ---
> arch/arm/Makefile | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 64ba313..862d4ba 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -21,6 +21,11 @@ GZFLAGS :=-9
> # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
> KBUILD_CFLAGS +=$(call cc-option,-marm,)
>
> +# 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)

Appears related to gcc PR40521, which should be fixed in gcc-4.4.3,
though it may have been re-broken in gcc-4.5.0 for in a corner case
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521#c24> that may or
may not apply to the kernel. There's also a related binutils issue.

The above fix seems appropriate, but the FIXME comment seems wrong:
this is about getting the right kind of exception unwind tables in
the entire kernel, not just relocs in modules.

The comment should just say:
# Never generate .eh_frame:

So for the fix without the comment part:

Acked-by: Mikael Pettersson <[email protected]>

2010-07-26 13:04:48

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] arm: Build with -fno-dwarf2-cfi-asm

On 10.7.2010 15:02, Mikael Pettersson wrote:
> Michal Marek writes:
> > Commit d0679c7 restricted this workaround to powerpc only, but it turns
> > out that ARM needs it as well. Fixes
> > https://bugzilla.kernel.org/show_bug.cgi?id=16310 .
> >
> > Reported-and-Tested-by: Robert Nelson <[email protected]>
> > Signed-off-by: Michal Marek <[email protected]>
> > ---
> > arch/arm/Makefile | 5 +++++
> > 1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index 64ba313..862d4ba 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -21,6 +21,11 @@ GZFLAGS :=-9
> > # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
> > KBUILD_CFLAGS +=$(call cc-option,-marm,)
> >
> > +# 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)
>
> Appears related to gcc PR40521, which should be fixed in gcc-4.4.3,
> though it may have been re-broken in gcc-4.5.0 for in a corner case
> <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521#c24> that may or
> may not apply to the kernel. There's also a related binutils issue.
>
> The above fix seems appropriate, but the FIXME comment seems wrong:
> this is about getting the right kind of exception unwind tables in
> the entire kernel, not just relocs in modules.
>
> The comment should just say:
> # Never generate .eh_frame:
>
> So for the fix without the comment part:
>
> Acked-by: Mikael Pettersson <[email protected]>

Hi Russell,

should I resend the patch with the comment by Mikael?

Thanks,
Michal

2010-07-26 13:11:45

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] arm: Build with -fno-dwarf2-cfi-asm

On Mon, Jul 26, 2010 at 03:04:18PM +0200, Michal Marek wrote:
> On 10.7.2010 15:02, Mikael Pettersson wrote:
> > Michal Marek writes:
> > > Commit d0679c7 restricted this workaround to powerpc only, but it turns
> > > out that ARM needs it as well. Fixes
> > > https://bugzilla.kernel.org/show_bug.cgi?id=16310 .
> > >
> > > Reported-and-Tested-by: Robert Nelson <[email protected]>
> > > Signed-off-by: Michal Marek <[email protected]>
> > > ---
> > > arch/arm/Makefile | 5 +++++
> > > 1 files changed, 5 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > > index 64ba313..862d4ba 100644
> > > --- a/arch/arm/Makefile
> > > +++ b/arch/arm/Makefile
> > > @@ -21,6 +21,11 @@ GZFLAGS :=-9
> > > # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
> > > KBUILD_CFLAGS +=$(call cc-option,-marm,)
> > >
> > > +# 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)
> >
> > Appears related to gcc PR40521, which should be fixed in gcc-4.4.3,
> > though it may have been re-broken in gcc-4.5.0 for in a corner case
> > <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521#c24> that may or
> > may not apply to the kernel. There's also a related binutils issue.
> >
> > The above fix seems appropriate, but the FIXME comment seems wrong:
> > this is about getting the right kind of exception unwind tables in
> > the entire kernel, not just relocs in modules.
> >
> > The comment should just say:
> > # Never generate .eh_frame:
> >
> > So for the fix without the comment part:
> >
> > Acked-by: Mikael Pettersson <[email protected]>
>
> Hi Russell,
>
> should I resend the patch with the comment by Mikael?

Yes please - and please put it in the patch system.

2010-07-26 13:29:42

by Michal Marek

[permalink] [raw]
Subject: [PATCH v2] arm: Build with -fno-dwarf2-cfi-asm

Commit d0679c7 restricted this workaround to powerpc only, but it turns
out that ARM needs it as well. Fixes
https://bugzilla.kernel.org/show_bug.cgi?id=16310 .

Reported-and-Tested-by: Robert Nelson <[email protected]>
Acked-by: Mikael Pettersson <[email protected]>
Signed-off-by: Michal Marek <[email protected]>
---

v2: changed commend as suggested by Mikael

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

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 64ba313..730d40c 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -21,6 +21,9 @@ GZFLAGS :=-9
# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
KBUILD_CFLAGS +=$(call cc-option,-marm,)

+# Never generate .eh_frame
+KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
+
# Do not use arch/arm/defconfig - it's always outdated.
# Select a platform tht is kept up-to-date
KBUILD_DEFCONFIG := versatile_defconfig
--
1.7.1