From: Mark Wielaard <mark@klomp.org>
To: linux-kernel@vger.kernel.org,
Masahiro Yamada <masahiroy@kernel.org>,
Michal Marek <michal.lkml@markovi.net>,
linux-kbuild@vger.kernel.org
Cc: Ian Rogers <irogers@google.com>, Andi Kleen <andi@firstfloor.org>,
Mark Wielaard <mark@klomp.org>,
linux-toolchains@vger.kernel.org,
Nick Desaulniers <ndesaulniers@google.com>,
Segher Boessenkool <segher@kernel.crashing.org>,
Florian Weimer <fw@deneb.enyo.de>,
Sedat Dilek <sedat.dilek@gmail.com>
Subject: [PATCH V2] Only add -fno-var-tracking-assignments workaround for old GCC versions.
Date: Sat, 17 Oct 2020 14:01:35 +0200 [thread overview]
Message-ID: <20201017120135.4004-1-mark@klomp.org> (raw)
In-Reply-To: <20201014110132.2680-1-mark@klomp.org>
Some old GCC versions between 4.5.0 and 4.9.1 might miscompile code
with -fvar-tracking-assingments (which is enabled by default with -g -O2).
commit 2062afb4f added -fno-var-tracking-assignments unconditionally to
work around this. But newer versions of GCC no longer have this bug, so
only add it for versions of GCC before 5.0. This allows various tools
such as a perf probe or gdb debuggers or systemtap to resolve variable
locations using dwarf locations in more code.
Changes in V2:
- Update commit message explaining purpose.
- Explicitly mention GCC version in comment.
- Wrap workaround in ifdef CONFIG_CC_IS_GCC
Signed-off-by: Mark Wielaard <mark@klomp.org>
Acked-by: Ian Rogers <irogers@google.com>
Reviewed-by: Andi Kleen <andi@firstfloor.org>
Cc: linux-toolchains@vger.kernel.org
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Florian Weimer <fw@deneb.enyo.de>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
---
Makefile | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 51540b291738..964754b4cedf 100644
--- a/Makefile
+++ b/Makefile
@@ -813,7 +813,11 @@ KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
endif
-DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
+# Workaround for GCC versions < 5.0
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
+ifdef CONFIG_CC_IS_GCC
+DEBUG_CFLAGS := $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
+endif
ifdef CONFIG_DEBUG_INFO
ifdef CONFIG_DEBUG_INFO_SPLIT
--
2.18.4
next prev parent reply other threads:[~2020-10-17 12:02 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20201006131703.GR2628@hirez.programming.kicks-ass.net>
[not found] ` <CABPqkBSkdqXjm6QuF9j6AO8MUnt1yZ_cA2PV=Qo8e4wKmK_6Ug@mail.gmail.com>
2020-10-08 7:02 ` Additional debug info to aid cacheline analysis Peter Zijlstra
2020-10-08 9:32 ` Mark Wielaard
2020-10-08 21:23 ` Andi Kleen
2020-10-10 20:58 ` Mark Wielaard
2020-10-10 21:51 ` Mark Wielaard
[not found] ` <20201010220712.5352-1-mark@klomp.org>
2020-10-10 22:21 ` [PATCH] Only add -fno-var-tracking-assignments workaround for old GCC versions Ian Rogers
2020-10-12 18:59 ` Nick Desaulniers
2020-10-12 19:12 ` Mark Wielaard
2020-10-14 15:31 ` Sedat Dilek
2020-10-14 11:01 ` Mark Wielaard
2020-10-14 15:17 ` Andi Kleen
2020-10-17 12:01 ` Mark Wielaard [this message]
2020-10-19 19:30 ` [PATCH V2] " Nick Desaulniers
2020-10-20 15:27 ` Masahiro Yamada
2020-10-10 22:33 ` [PATCH] " Mark Wielaard
2020-10-11 11:04 ` Additional debug info to aid cacheline analysis Segher Boessenkool
2020-10-11 12:15 ` Florian Weimer
2020-10-11 12:23 ` Mark Wielaard
2020-10-11 12:28 ` Florian Weimer
2020-10-30 5:26 ` Namhyung Kim
2020-10-30 9:16 ` Mark Wielaard
2020-10-30 10:10 ` Peter Zijlstra
2020-11-02 8:27 ` Masami Hiramatsu
2020-11-03 4:22 ` Namhyung Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201017120135.4004-1-mark@klomp.org \
--to=mark@klomp.org \
--cc=andi@firstfloor.org \
--cc=fw@deneb.enyo.de \
--cc=irogers@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-toolchains@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=michal.lkml@markovi.net \
--cc=ndesaulniers@google.com \
--cc=sedat.dilek@gmail.com \
--cc=segher@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox