On Thu, Apr 23, 2015 at 5:25 PM, Frank Ch. Eigler <[email protected]> wrote:
> From: Josh Stone <[email protected]>
>
> Due to isolated gcc codegen issues, gcc -fvar-tracking-assignments
> was unconditionally disabled in commit 2062afb4f804 ("Fix gcc-4.9.0
> miscompilation of load_balance()  in scheduler").
>
> However, this reduces the debuginfo coverage for variable locations,
> especially in inline functions.  VTA is certainly not perfect either
> in those cases, but it is much better than without.  With compiler
> versions that have fixed the codegen bugs, we would prefer to have the
> better details for SystemTap, and surely other debuginfo consumers
> like perf will benefit as well.
>
> This patch simply makes CONFIG_DEBUG_INFO_VTA an option.  I considered
> Frank and Linus's discussion of a cc-option-like -fcompare-debug test,
> but I'm convinced that a narrow test of an arch-specific codegen issue
> is not really useful.  GCC has their own regression tests for this, so
> I'd suggest GCC_COMPARE_DEBUG=-fvar-tracking-assignments-toggle is more
> useful for kernel developers to test confidence.
>
> In fact, I ran into a couple more issues when testing for this patch[1],
> although neither of those had any codegen impact.
>  [1] https://bugzilla.redhat.com/show_bug.cgi?id=1140872
>
> With gcc-4.9.2-1.fc22, I can now build v3.18-rc5 with Fedora's i686 and
> x86_64 configs, and this is completely clean with GCC_COMPARE_DEBUG.
>
> Cc: Jakub Jelinek <[email protected]>
> Cc: Josh Boyer <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Linus Torvalds <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: Markus Trippelsdorf <[email protected]>
> Cc: Michel Dänzer <[email protected]>
> Signed-off-by: Josh Stone <[email protected]>
> Signed-off-by: Frank Ch. Eigler <[email protected]>

Frank, did you rebase this against some newer tree or something?
Curious why you sent it again.

>  Makefile          |  8 ++++++--
>  lib/Kconfig.debug | 21 ++++++++++++++++++++-
>  2 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 6cc5b2434224..c8e1fcfdb41a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -704,8 +704,6 @@ KBUILD_CFLAGS       += -fomit-frame-pointer
>  endif
>  endif
>
> -KBUILD_CFLAGS   += $(call cc-option, -fno-var-tracking-assignments)
> -
>  ifdef CONFIG_DEBUG_INFO
>  ifdef CONFIG_DEBUG_INFO_SPLIT
>  KBUILD_CFLAGS   += $(call cc-option, -gsplit-dwarf, -g)
> @@ -718,6 +716,12 @@ ifdef CONFIG_DEBUG_INFO_DWARF4
>  KBUILD_CFLAGS  += $(call cc-option, -gdwarf-4,)
>  endif
>
> +ifdef CONFIG_DEBUG_INFO_VTA
> +KBUILD_CFLAGS   += $(call cc-option, -fvar-tracking-assignments)
> +else
> +KBUILD_CFLAGS   += $(call cc-option, -fno-var-tracking-assignments)
> +endif
> +

Is there a reason you moved this hunk under the DWARF4 options instead
of modifying it in-place like the original patch did?

josh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to