From: Nick Desaulniers <ndesaulniers@google.com>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: Nathan Chancellor <natechancellor@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Sedat Dilek <sedat.dilek@gmail.com>,
linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com,
linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org,
Jakub Jelinek <jakub@redhat.com>,
Fangrui Song <maskray@google.com>,
Caroline Tice <cmtice@google.com>,
Nick Clifton <nickc@redhat.com>, Yonghong Song <yhs@fb.com>,
Jiri Olsa <jolsa@kernel.org>, Andrii Nakryiko <andrii@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Arvind Sankar <nivedita@alum.mit.edu>
Subject: [PATCH v5 2/3] Kbuild: make DWARF version a choice
Date: Fri, 15 Jan 2021 13:06:15 -0800 [thread overview]
Message-ID: <20210115210616.404156-3-ndesaulniers@google.com> (raw)
In-Reply-To: <20210115210616.404156-1-ndesaulniers@google.com>
Modifies CONFIG_DEBUG_INFO_DWARF4 to be a member of a choice. Adds an
explicit CONFIG_DEBUG_INFO_DWARF2, which is the default. Does so in a
way that's forward compatible with existing configs, and makes adding
future versions more straightforward.
Suggested-by: Arvind Sankar <nivedita@alum.mit.edu>
Suggested-by: Fangrui Song <maskray@google.com>
Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
---
Makefile | 13 ++++++-------
lib/Kconfig.debug | 21 ++++++++++++++++-----
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index d49c3f39ceb4..4eb3bf7ee974 100644
--- a/Makefile
+++ b/Makefile
@@ -826,13 +826,12 @@ else
DEBUG_CFLAGS += -g
endif
-ifneq ($(LLVM_IAS),1)
-KBUILD_AFLAGS += -Wa,-gdwarf-2
-endif
-
-ifdef CONFIG_DEBUG_INFO_DWARF4
-DEBUG_CFLAGS += -gdwarf-4
-endif
+dwarf-version-$(CONFIG_DEBUG_INFO_DWARF2) := 2
+dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4
+DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y)
+# Binutils 2.35+ required for -gdwarf-4+ support.
+dwarf-aflag := $(call as-option,-Wa$(comma)-gdwarf-$(dwarf-version-y))
+KBUILD_AFLAGS += $(dwarf-aflag)
ifdef CONFIG_DEBUG_INFO_REDUCED
DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index dd7d8d35b2a5..e80770fac4f0 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -256,13 +256,24 @@ config DEBUG_INFO_SPLIT
to know about the .dwo files and include them.
Incompatible with older versions of ccache.
+choice
+ prompt "DWARF version"
+ help
+ Which version of DWARF debug info to emit.
+
+config DEBUG_INFO_DWARF2
+ bool "Generate DWARF Version 2 debuginfo"
+ help
+ Generate DWARF v2 debug info.
+
config DEBUG_INFO_DWARF4
- bool "Generate dwarf4 debuginfo"
+ bool "Generate DWARF Version 4 debuginfo"
help
- Generate dwarf4 debug info. This requires recent versions
- of gcc and gdb. It makes the debug information larger.
- But it significantly improves the success of resolving
- variables in gdb on optimized code.
+ Generate DWARF v4 debug info. This requires gcc 4.5+ and gdb 7.0+.
+ It makes the debug information larger, but it significantly
+ improves the success of resolving variables in gdb on optimized code.
+
+endchoice # "DWARF version"
config DEBUG_INFO_BTF
bool "Generate BTF typeinfo"
--
2.30.0.284.gd98b1dd5eaa7-goog
next prev parent reply other threads:[~2021-01-15 21:08 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-15 21:06 [PATCH v5 0/3] Kbuild: DWARF v5 support Nick Desaulniers
2021-01-15 21:06 ` [PATCH v5 1/3] Remove $(cc-option,-gdwarf-4) dependency from CONFIG_DEBUG_INFO_DWARF4 Nick Desaulniers
2021-01-15 21:47 ` Sedat Dilek
2021-01-15 21:51 ` Nick Desaulniers
2021-01-15 23:54 ` Masahiro Yamada
2021-01-20 5:57 ` Masahiro Yamada
2021-01-15 21:59 ` Fangrui Song
2021-01-15 22:03 ` Sedat Dilek
2021-01-15 21:06 ` Nick Desaulniers [this message]
2021-01-15 21:42 ` [PATCH v5 2/3] Kbuild: make DWARF version a choice Sedat Dilek
2021-01-15 22:05 ` Fangrui Song
2021-01-20 20:40 ` Nathan Chancellor
2021-01-21 2:35 ` Sedat Dilek
2021-01-15 21:06 ` [PATCH v5 3/3] Kbuild: implement support for DWARF v5 Nick Desaulniers
2021-01-15 21:45 ` Sedat Dilek
2021-01-15 21:49 ` Nick Desaulniers
2021-01-15 21:57 ` Sedat Dilek
2021-01-15 21:53 ` [PATCH v5 0/3] Kbuild: DWARF v5 support Sedat Dilek
2021-01-15 23:24 ` Yonghong Song
2021-01-15 23:34 ` Nick Desaulniers
2021-01-15 23:42 ` Andrii Nakryiko
2021-01-15 23:43 ` Yonghong Song
2021-01-17 20:15 ` Arnaldo Carvalho de Melo
2021-02-04 1:31 ` Nick Desaulniers
2021-02-04 2:57 ` Andrii Nakryiko
2021-02-04 3:13 ` Nick Desaulniers
2021-02-04 23:54 ` Andrii Nakryiko
2021-02-05 0:04 ` Nick Desaulniers
2021-02-05 0:06 ` Andrii Nakryiko
2021-02-05 0:11 ` Nick Desaulniers
2021-02-05 0:17 ` Andrii Nakryiko
2021-02-04 8:42 ` Sedat Dilek
2021-02-04 8:59 ` Sedat Dilek
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=20210115210616.404156-3-ndesaulniers@google.com \
--to=ndesaulniers@google.com \
--cc=acme@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=clang-built-linux@googlegroups.com \
--cc=cmtice@google.com \
--cc=jakub@redhat.com \
--cc=jolsa@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=maskray@google.com \
--cc=natechancellor@gmail.com \
--cc=nickc@redhat.com \
--cc=nivedita@alum.mit.edu \
--cc=sedat.dilek@gmail.com \
--cc=yhs@fb.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.