arch/arm/kernel/setup.c does not compile at -O0
Mason
slash.tmp at free.fr
Thu Jul 30 09:09:47 PDT 2015
On 30/07/2015 15:58, Mason wrote:
> But the problem seems to be on a higher level. My debugger
> just doesn't see ANY local variable whatsoever.
I found the magic setting!
NB: I'm using gcc version 4.9.3 20141031 (prerelease) (Linaro GCC 2014.11)
If I add either:
KBUILD_CFLAGS += $(call cc-option, -gdwarf-2,)
or
KBUILD_CFLAGS += $(call cc-option, -gdwarf-3,)
to my top-level Makefile, then DS-5 is able to display local variables.
However, if I add:
KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
or nothing at all, DS-5 just ignores local variables.
It appears that "gcc -g" and "gcc -gdwarf-2 -g" generate different
debugging information... What debugging format does "gcc -g" use?
(Not DWARF, apparently.)
I'll try setting KBUILD_CFLAGS += -gdwarf-2
instead of $(call cc-option, -gdwarf-2,)
=> Yes, that works too.
Does anyone know the difference?
So basically, I'm now using this patch locally:
$ git diff Makefile
diff --git a/Makefile b/Makefile
index f9041e6d4d19..f79c480f8922 100644
--- a/Makefile
+++ b/Makefile
@@ -641,10 +641,8 @@ KBUILD_CFLAGS += -fomit-frame-pointer
endif
endif
-KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
-
ifdef CONFIG_DEBUG_INFO
-KBUILD_CFLAGS += -g
+KBUILD_CFLAGS += -gdwarf-3
KBUILD_AFLAGS += -Wa,--gdwarf-2
endif
Regards.
More information about the linux-arm-kernel
mailing list