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

Mikael Pettersson
2010-07-10T13:02:24Z

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 <robertcnelson@gmail.com>
> Signed-off-by: Michal Marek <mmarek@suse.cz>
> ---
> 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 <mikpe@it.uu.se>