* [PATCH v8 0/2] Kbuild: DWARF v5 support
@ 2021-02-04 6:40 Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 1/2] Kbuild: make DWARF version a choice Nick Desaulniers
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Nick Desaulniers @ 2021-02-04 6:40 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Nathan Chancellor, Andrew Morton, Sedat Dilek, linux-kernel,
clang-built-linux, linux-kbuild, linux-arch, Jakub Jelinek,
Fangrui Song, Caroline Tice, Nick Clifton, Yonghong Song,
Jiri Olsa, Andrii Nakryiko, Arnaldo Carvalho de Melo,
Arvind Sankar, Chris Murphy, Nick Desaulniers
DWARF v5 is the latest standard of the DWARF debug info format.
DWARF5 wins significantly in terms of size and especially so when mixed
with compression (CONFIG_DEBUG_INFO_COMPRESSED).
Link: http://www.dwarfstd.org/doc/DWARF5.pdf
Patch 1 is a cleanup that lays the ground work and isn't DWARF
v5 specific.
Patch 2 implements Kconfig and Kbuild support for DWARFv5.
Changes from v7:
(Strictly commit message changes)
* Pick up Nathan's reviewed by tags for both patches.
* Add note about only modifying compiler dwarf info, not assembler dwarf
info, as per Nathan.
* Add link to Red Hat bug report and Chris' reported by on patch 2.
* Add more info from Jakub on patch 2 commit message.
* Reorder info about validating version, noting the tree is not "clean"
in the sense that parts mess up existing CFLAGS, or don't use
DEBUG_CFLAGS. I will not be adding such cleanups to this series. They
can be done AFTER.
* Update note about 2.35.2 (rather than include the full text Jakub
wrote on it in https://patchwork.kernel.org/project/linux-kbuild/patch/20201022012106.1875129-1-ndesaulniers@google.com/#23727667).
* Add note that GCC 11 has changed the implicit default version.
Changes from v6:
* Reorder sections from linker script to match order from BFD's internal
linker script.
* Add .debug_names section, as per Fangrui.
* Drop CONFIG_DEBUG_INFO_DWARF2. Patch 0001 becomes a menu with 1
choice. GCC's implicit default version of DWARF has been DWARF v4
since ~4.8.
* Modify the test script to check for the presence of
https://sourceware.org/bugzilla/show_bug.cgi?id=27195.
* Drop the clang without integrated assembler block in
0002. Bumps the version requirement for GAS to 2.35.2, which isn't
released yet (but should be released soon). Folks looking to test
with clang but without the integrated assembler should fetch
binutils-gdb, build it from source, add a symlink to
binutils-gdb/gas/as-new to binutils-gdb/gas/as, then prefix
binutils-gdb/gas/as to their $PATH when building the kernel.
Changes from v5:
* Drop previous patch 1, it has been accepted into kbuild:
https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit/?h=kbuild&id=3f4d8ce271c7082be75bacbcbd2048aa78ce2b44
* Trying to set -Wa,-gdwarf-4 in the earlier patch was the source of
additional complexity. Drop it that part of the patch. We can revisit
clang without the integrated assembler setting -Wa,-gdwarf-4 later.
That is a separate problem from generally supporting DWARF v5.
* Rework the final patch for clang without the integrated assembler.
-Wa,-gdwarf-5 is required for DWARF5 in that case otherwise GAS will
not accept the assembler directives clang produces from C code when
generating asm.
Changes from v4:
* drop set -e from script as per Nathan.
* add dependency on !CONFIG_DEBUG_INFO_BTF for DWARF v5 as per Sedat.
* Move LLVM_IAS=1 complexity from patch 2 to patch 3 as per Arvind and
Masahiro. Sorry it took me a few tries to understand the point (I
might still not), but it looks much cleaner this way. Sorry Nathan, I
did not carry forward your previous reviews as a result, but I would
appreciate if you could look again.
* Add Nathan's reviewed by tag to patch 1.
* Reword commit message for patch 3 to mention LLVM_IAS=1 and -gdwarf-5
binutils addition later, and BTF issue.
* I still happen to see a pahole related error spew for the combination
of:
* LLVM=1
* LLVM_IAS=1
* CONFIG_DEBUG_INFO_DWARF4
* CONFIG_DEBUG_INFO_BTF
Though they're non-fatal to the build. I'm not sure yet why removing
any one of the above prevents the warning spew. Maybe we'll need a v6.
Changes from v3:
Changes as per Arvind:
* only add -Wa,-gdwarf-5 for (LLVM=1|CC=clang)+LLVM_IAS=0 builds.
* add -gdwarf-5 to Kconfig shell script.
* only run Kconfig shell script for Clang.
Apologies to Sedat and Nathan; I appreciate previous testing/review, but
I did no carry forward your Tested-by and Reviewed-by tags, as the
patches have changed too much IMO.
Changes from v2:
* Drop two of the earlier patches that have been accepted already.
* Add measurements with GCC 10.2 to commit message.
* Update help text as per Arvind with help from Caroline.
* Improve case/wording between DWARF Versions as per Masahiro.
Changes from the RFC:
* split patch in 3 patch series, include Fangrui's patch, too.
* prefer `DWARF vX` format, as per Fangrui.
* use spaces between assignment in Makefile as per Masahiro.
* simplify setting dwarf-version-y as per Masahiro.
* indent `prompt` in Kconfig change as per Masahiro.
* remove explicit default in Kconfig as per Masahiro.
* add comments to test_dwarf5_support.sh.
* change echo in test_dwarf5_support.sh as per Masahiro.
* remove -u from test_dwarf5_support.sh as per Masahiro.
* add a -gdwarf-5 cc-option check to Kconfig as per Jakub.
Nick Desaulniers (2):
Kbuild: make DWARF version a choice
Kbuild: implement support for DWARF v5
Makefile | 6 +++---
include/asm-generic/vmlinux.lds.h | 7 +++++-
lib/Kconfig.debug | 36 +++++++++++++++++++++++++------
scripts/test_dwarf5_support.sh | 8 +++++++
4 files changed, 47 insertions(+), 10 deletions(-)
create mode 100755 scripts/test_dwarf5_support.sh
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v8 1/2] Kbuild: make DWARF version a choice
2021-02-04 6:40 [PATCH v8 0/2] Kbuild: DWARF v5 support Nick Desaulniers
@ 2021-02-04 6:40 ` Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 2/2] Kbuild: implement support for DWARF v5 Nick Desaulniers
2021-02-04 6:58 ` [PATCH v8 0/2] Kbuild: DWARF v5 support Sedat Dilek
2 siblings, 0 replies; 6+ messages in thread
From: Nick Desaulniers @ 2021-02-04 6:40 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Nathan Chancellor, Andrew Morton, Sedat Dilek, linux-kernel,
clang-built-linux, linux-kbuild, linux-arch, Jakub Jelinek,
Fangrui Song, Caroline Tice, Nick Clifton, Yonghong Song,
Jiri Olsa, Andrii Nakryiko, Arnaldo Carvalho de Melo,
Arvind Sankar, Chris Murphy, Nick Desaulniers, Nathan Chancellor
Modifies CONFIG_DEBUG_INFO_DWARF4 to be a member of a choice which is
the default. Does so in a way that's forward compatible with existing
configs, and makes adding future versions more straightforward.
GCC since ~4.8 has defaulted to this DWARF version implicitly.
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Suggested-by: Arvind Sankar <nivedita@alum.mit.edu>
Suggested-by: Fangrui Song <maskray@google.com>
Suggested-by: Nathan Chancellor <nathan@kernel.org>
Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
---
Makefile | 5 ++---
lib/Kconfig.debug | 16 +++++++++++-----
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index 407816375983..bed5cc150009 100644
--- a/Makefile
+++ b/Makefile
@@ -830,9 +830,8 @@ 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_DWARF4) := 4
+DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y)
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 e906ea906cb7..94c1a7ed6306 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -256,13 +256,19 @@ 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_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.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v8 2/2] Kbuild: implement support for DWARF v5
2021-02-04 6:40 [PATCH v8 0/2] Kbuild: DWARF v5 support Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 1/2] Kbuild: make DWARF version a choice Nick Desaulniers
@ 2021-02-04 6:40 ` Nick Desaulniers
2021-02-04 6:58 ` [PATCH v8 0/2] Kbuild: DWARF v5 support Sedat Dilek
2 siblings, 0 replies; 6+ messages in thread
From: Nick Desaulniers @ 2021-02-04 6:40 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Nathan Chancellor, Andrew Morton, Sedat Dilek, linux-kernel,
clang-built-linux, linux-kbuild, linux-arch, Jakub Jelinek,
Fangrui Song, Caroline Tice, Nick Clifton, Yonghong Song,
Jiri Olsa, Andrii Nakryiko, Arnaldo Carvalho de Melo,
Arvind Sankar, Chris Murphy, Nick Desaulniers, Nathan Chancellor
DWARF v5 is the latest standard of the DWARF debug info format. GCC 11
will change the implicit default DWARF version, if left unspecified, to
DWARF v5.
DWARF5 wins significantly in terms of size when mixed with compression
(CONFIG_DEBUG_INFO_COMPRESSED).
363M vmlinux.clang12.dwarf5.compressed
434M vmlinux.clang12.dwarf4.compressed
439M vmlinux.clang12.dwarf2.compressed
457M vmlinux.clang12.dwarf5
536M vmlinux.clang12.dwarf4
548M vmlinux.clang12.dwarf2
515M vmlinux.gcc10.2.dwarf5.compressed
599M vmlinux.gcc10.2.dwarf4.compressed
624M vmlinux.gcc10.2.dwarf2.compressed
630M vmlinux.gcc10.2.dwarf5
765M vmlinux.gcc10.2.dwarf4
809M vmlinux.gcc10.2.dwarf2
Though the quality of debug info is harder to quantify; size is not a
proxy for quality.
Jakub notes:
One thing is GCC DWARF-5 support, that is whether the compiler will
support -gdwarf-5 flag, and that support should be there from GCC 7
onwards.
All [GCC] 5.1 - 6.x did was start accepting -gdwarf-5 as experimental
option that enabled some small DWARF subset (initially only a few
DW_LANG_* codes newly added to DWARF5 drafts). Only GCC 7 (released
after DWARF 5 has been finalized) started emitting DWARF5 section
headers and got most of the DWARF5 changes in...
Another separate thing is whether the assembler does support
the -gdwarf-5 option (i.e. if you can compile assembler files
with -Wa,-gdwarf-5) ... That option is about whether the assembler
will emit DWARF5 or DWARF2 .debug_line. It is fine to compile C sources
with -gdwarf-5 and use DWARF2 .debug_line for assembler files if as
doesn't support it.
Version check GCC so that we don't need to worry about the difference in
command line args between GNU readelf and llvm-readelf/llvm-dwarfdump to
validate the DWARF Version in the assembler feature detection script.
Most issues with clang produced assembler were fixed in binutils 2.35.1,
but 2.35.2 fixed issues related to requiring the flag -Wa,-gdwarf-5
explicitly. The added shell script test checks for the latter, and is
only required when using clang without its integrated assembler, though
we use for clang regardless as we do not yet have a way to query the
assembler from Kconfig.
Disabled for now if CONFIG_DEBUG_INFO_BTF is set; pahole doesn't yet
recognize the new additions to the DWARF debug info.
This only modifies the DWARF version emitted by the compiler, not the
assembler.
The DWARF version of a binary can be validated with:
$ llvm-dwarfdump <object file> | head -n 4 | grep version
or
$ readelf --debug-dump=info <object file> 2>/dev/null | grep Version
Parts of the tree don't reuse DEBUG_CFLAGS as they should; such cleanup
is left as a follow up.
Link: http://www.dwarfstd.org/doc/DWARF5.pdf
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1922707
Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
Reported-by: Chris Murphy <bugzilla@colorremedies.com>
Suggested-by: Arvind Sankar <nivedita@alum.mit.edu>
Suggested-by: Caroline Tice <cmtice@google.com>
Suggested-by: Fangrui Song <maskray@google.com>
Suggested-by: Jakub Jelinek <jakub@redhat.com>
Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
Suggested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
---
Makefile | 1 +
include/asm-generic/vmlinux.lds.h | 7 ++++++-
lib/Kconfig.debug | 18 ++++++++++++++++++
scripts/test_dwarf5_support.sh | 8 ++++++++
4 files changed, 33 insertions(+), 1 deletion(-)
create mode 100755 scripts/test_dwarf5_support.sh
diff --git a/Makefile b/Makefile
index bed5cc150009..8b2deca568ee 100644
--- a/Makefile
+++ b/Makefile
@@ -831,6 +831,7 @@ KBUILD_AFLAGS += -Wa,-gdwarf-2
endif
dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4
+dwarf-version-$(CONFIG_DEBUG_INFO_DWARF5) := 5
DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y)
ifdef CONFIG_DEBUG_INFO_REDUCED
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 34b7e0d2346c..1e7cde4bd3f9 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -842,8 +842,13 @@
/* DWARF 4 */ \
.debug_types 0 : { *(.debug_types) } \
/* DWARF 5 */ \
+ .debug_addr 0 : { *(.debug_addr) } \
+ .debug_line_str 0 : { *(.debug_line_str) } \
+ .debug_loclists 0 : { *(.debug_loclists) } \
.debug_macro 0 : { *(.debug_macro) } \
- .debug_addr 0 : { *(.debug_addr) }
+ .debug_names 0 : { *(.debug_names) } \
+ .debug_rnglists 0 : { *(.debug_rnglists) } \
+ .debug_str_offsets 0 : { *(.debug_str_offsets) }
/* Stabs debugging sections. */
#define STABS_DEBUG \
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 94c1a7ed6306..ad6f78989d4f 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -268,6 +268,24 @@ config DEBUG_INFO_DWARF4
It makes the debug information larger, but it significantly
improves the success of resolving variables in gdb on optimized code.
+config DEBUG_INFO_DWARF5
+ bool "Generate DWARF Version 5 debuginfo"
+ depends on GCC_VERSION >= 50000 || CC_IS_CLANG
+ depends on CC_IS_GCC || $(success,$(srctree)/scripts/test_dwarf5_support.sh $(CC) $(CLANG_FLAGS))
+ depends on !DEBUG_INFO_BTF
+ help
+ Generate DWARF v5 debug info. Requires binutils 2.35.2, gcc 5.0+ (gcc
+ 5.0+ accepts the -gdwarf-5 flag but only had partial support for some
+ draft features until 7.0), and gdb 8.0+.
+
+ Changes to the structure of debug info in Version 5 allow for around
+ 15-18% savings in resulting image and debug info section sizes as
+ compared to DWARF Version 4. DWARF Version 5 standardizes previous
+ extensions such as accelerators for symbol indexing and the format
+ for fission (.dwo/.dwp) files. Users may not want to select this
+ config if they rely on tooling that has not yet been updated to
+ support DWARF Version 5.
+
endchoice # "DWARF version"
config DEBUG_INFO_BTF
diff --git a/scripts/test_dwarf5_support.sh b/scripts/test_dwarf5_support.sh
new file mode 100755
index 000000000000..c46e2456b47a
--- /dev/null
+++ b/scripts/test_dwarf5_support.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+# Test that the assembler doesn't need -Wa,-gdwarf-5 when presented with DWARF
+# v5 input, such as `.file 0` and `md5 0x00`. Should be fixed in GNU binutils
+# 2.35.2. https://sourceware.org/bugzilla/show_bug.cgi?id=25611
+echo '.file 0 "filename" md5 0x7a0b65214090b6693bd1dc24dd248245' | \
+ $* -gdwarf-5 -Wno-unused-command-line-argument -c -x assembler -o /dev/null -
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v8 0/2] Kbuild: DWARF v5 support
2021-02-04 6:40 [PATCH v8 0/2] Kbuild: DWARF v5 support Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 1/2] Kbuild: make DWARF version a choice Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 2/2] Kbuild: implement support for DWARF v5 Nick Desaulniers
@ 2021-02-04 6:58 ` Sedat Dilek
2021-02-04 7:44 ` Nick Desaulniers
2 siblings, 1 reply; 6+ messages in thread
From: Sedat Dilek @ 2021-02-04 6:58 UTC (permalink / raw)
To: Nick Desaulniers
Cc: Masahiro Yamada, Nathan Chancellor, Andrew Morton, linux-kernel,
Clang-Built-Linux ML, linux-kbuild, linux-arch, Jakub Jelinek,
Fangrui Song, Caroline Tice, Nick Clifton, Yonghong Song,
Jiri Olsa, Andrii Nakryiko, Arnaldo Carvalho de Melo,
Arvind Sankar, Chris Murphy
On Thu, Feb 4, 2021 at 7:40 AM Nick Desaulniers <ndesaulniers@google.com> wrote:
>
> DWARF v5 is the latest standard of the DWARF debug info format.
>
> DWARF5 wins significantly in terms of size and especially so when mixed
> with compression (CONFIG_DEBUG_INFO_COMPRESSED).
>
> Link: http://www.dwarfstd.org/doc/DWARF5.pdf
>
> Patch 1 is a cleanup that lays the ground work and isn't DWARF
> v5 specific.
> Patch 2 implements Kconfig and Kbuild support for DWARFv5.
>
> Changes from v7:
> (Strictly commit message changes)
> * Pick up Nathan's reviewed by tags for both patches.
> * Add note about only modifying compiler dwarf info, not assembler dwarf
> info, as per Nathan.
> * Add link to Red Hat bug report and Chris' reported by on patch 2.
> * Add more info from Jakub on patch 2 commit message.
> * Reorder info about validating version, noting the tree is not "clean"
> in the sense that parts mess up existing CFLAGS, or don't use
> DEBUG_CFLAGS. I will not be adding such cleanups to this series. They
> can be done AFTER.
> * Update note about 2.35.2 (rather than include the full text Jakub
> wrote on it in https://patchwork.kernel.org/project/linux-kbuild/patch/20201022012106.1875129-1-ndesaulniers@google.com/#23727667).
> * Add note that GCC 11 has changed the implicit default version.
>
I have intensively tested a lot of versions of this series and some
other issues reported and got fixed.
So my comments for followers:
[ Download v8 with b4 ]
link="https://lore.kernel.org/r/20210204064037.1281726-1-ndesaulniers@google.com"
b4 -d am $link
[ Pre-Patch before applying v8 ]
"kbuild: Remove $(cc-option,-gdwarf-4) dependency from DEBUG_INFO_DWARF4"
https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit/?h=kbuild&id=3f4d8ce271c7082be75bacbcbd2048aa78ce2b44
[ DEBUG_CFLAGS thread and fix ]
https://marc.info/?t=161233893400006&r=1&w=2
https://marc.info/?l=linux-kbuild&m=161233892923723&w=2
Feel free to be more verbose and include links (to patches).
I guess I need to test harder to get a Tested-by credit :-)?
Thanks for v8, I will use it for some testing with BTF/pahole.
- Sedat -
> Changes from v6:
> * Reorder sections from linker script to match order from BFD's internal
> linker script.
> * Add .debug_names section, as per Fangrui.
> * Drop CONFIG_DEBUG_INFO_DWARF2. Patch 0001 becomes a menu with 1
> choice. GCC's implicit default version of DWARF has been DWARF v4
> since ~4.8.
> * Modify the test script to check for the presence of
> https://sourceware.org/bugzilla/show_bug.cgi?id=27195.
> * Drop the clang without integrated assembler block in
> 0002. Bumps the version requirement for GAS to 2.35.2, which isn't
> released yet (but should be released soon). Folks looking to test
> with clang but without the integrated assembler should fetch
> binutils-gdb, build it from source, add a symlink to
> binutils-gdb/gas/as-new to binutils-gdb/gas/as, then prefix
> binutils-gdb/gas/as to their $PATH when building the kernel.
>
> Changes from v5:
> * Drop previous patch 1, it has been accepted into kbuild:
> https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit/?h=kbuild&id=3f4d8ce271c7082be75bacbcbd2048aa78ce2b44
> * Trying to set -Wa,-gdwarf-4 in the earlier patch was the source of
> additional complexity. Drop it that part of the patch. We can revisit
> clang without the integrated assembler setting -Wa,-gdwarf-4 later.
> That is a separate problem from generally supporting DWARF v5.
> * Rework the final patch for clang without the integrated assembler.
> -Wa,-gdwarf-5 is required for DWARF5 in that case otherwise GAS will
> not accept the assembler directives clang produces from C code when
> generating asm.
>
> Changes from v4:
> * drop set -e from script as per Nathan.
> * add dependency on !CONFIG_DEBUG_INFO_BTF for DWARF v5 as per Sedat.
> * Move LLVM_IAS=1 complexity from patch 2 to patch 3 as per Arvind and
> Masahiro. Sorry it took me a few tries to understand the point (I
> might still not), but it looks much cleaner this way. Sorry Nathan, I
> did not carry forward your previous reviews as a result, but I would
> appreciate if you could look again.
> * Add Nathan's reviewed by tag to patch 1.
> * Reword commit message for patch 3 to mention LLVM_IAS=1 and -gdwarf-5
> binutils addition later, and BTF issue.
> * I still happen to see a pahole related error spew for the combination
> of:
> * LLVM=1
> * LLVM_IAS=1
> * CONFIG_DEBUG_INFO_DWARF4
> * CONFIG_DEBUG_INFO_BTF
> Though they're non-fatal to the build. I'm not sure yet why removing
> any one of the above prevents the warning spew. Maybe we'll need a v6.
>
> Changes from v3:
>
> Changes as per Arvind:
> * only add -Wa,-gdwarf-5 for (LLVM=1|CC=clang)+LLVM_IAS=0 builds.
> * add -gdwarf-5 to Kconfig shell script.
> * only run Kconfig shell script for Clang.
>
> Apologies to Sedat and Nathan; I appreciate previous testing/review, but
> I did no carry forward your Tested-by and Reviewed-by tags, as the
> patches have changed too much IMO.
>
> Changes from v2:
> * Drop two of the earlier patches that have been accepted already.
> * Add measurements with GCC 10.2 to commit message.
> * Update help text as per Arvind with help from Caroline.
> * Improve case/wording between DWARF Versions as per Masahiro.
>
> Changes from the RFC:
> * split patch in 3 patch series, include Fangrui's patch, too.
> * prefer `DWARF vX` format, as per Fangrui.
> * use spaces between assignment in Makefile as per Masahiro.
> * simplify setting dwarf-version-y as per Masahiro.
> * indent `prompt` in Kconfig change as per Masahiro.
> * remove explicit default in Kconfig as per Masahiro.
> * add comments to test_dwarf5_support.sh.
> * change echo in test_dwarf5_support.sh as per Masahiro.
> * remove -u from test_dwarf5_support.sh as per Masahiro.
> * add a -gdwarf-5 cc-option check to Kconfig as per Jakub.
>
> Nick Desaulniers (2):
> Kbuild: make DWARF version a choice
> Kbuild: implement support for DWARF v5
>
> Makefile | 6 +++---
> include/asm-generic/vmlinux.lds.h | 7 +++++-
> lib/Kconfig.debug | 36 +++++++++++++++++++++++++------
> scripts/test_dwarf5_support.sh | 8 +++++++
> 4 files changed, 47 insertions(+), 10 deletions(-)
> create mode 100755 scripts/test_dwarf5_support.sh
>
> --
> 2.30.0.365.g02bc693789-goog
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v8 0/2] Kbuild: DWARF v5 support
2021-02-04 6:58 ` [PATCH v8 0/2] Kbuild: DWARF v5 support Sedat Dilek
@ 2021-02-04 7:44 ` Nick Desaulniers
2021-02-04 8:22 ` Sedat Dilek
0 siblings, 1 reply; 6+ messages in thread
From: Nick Desaulniers @ 2021-02-04 7:44 UTC (permalink / raw)
To: Sedat Dilek
Cc: Masahiro Yamada, Nathan Chancellor, Andrew Morton, LKML,
Clang-Built-Linux ML, Linux Kbuild mailing list, linux-arch,
Jakub Jelinek, Fangrui Song, Caroline Tice, Nick Clifton,
Yonghong Song, Jiri Olsa, Andrii Nakryiko,
Arnaldo Carvalho de Melo, Arvind Sankar, Chris Murphy
On Wed, Feb 3, 2021 at 10:58 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> I guess I need to test harder to get a Tested-by credit :-)?
You're right Sedat, I'm sorry. Your testing is invaluable; thank you
for taking the time to help and credit is a powerful incentive.
It can be difficult to know whether to carry forward tags or not when
a patch is revised.
Keeping track whether someone sent an explicit Tested By vs including
it based on feedback that implied they tried it. If you've tested v7
or v8, please reply explicitly with tested by tags, or perhaps
Masahiro can apply those for you.
It can be difficult to know what's broken if you apply too many out of
tree patches though.
--
Thanks,
~Nick Desaulniers
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v8 0/2] Kbuild: DWARF v5 support
2021-02-04 7:44 ` Nick Desaulniers
@ 2021-02-04 8:22 ` Sedat Dilek
0 siblings, 0 replies; 6+ messages in thread
From: Sedat Dilek @ 2021-02-04 8:22 UTC (permalink / raw)
To: Nick Desaulniers
Cc: Masahiro Yamada, Nathan Chancellor, Andrew Morton, LKML,
Clang-Built-Linux ML, Linux Kbuild mailing list, linux-arch,
Jakub Jelinek, Fangrui Song, Caroline Tice, Nick Clifton,
Yonghong Song, Jiri Olsa, Andrii Nakryiko,
Arnaldo Carvalho de Melo, Arvind Sankar, Chris Murphy
On Thu, Feb 4, 2021 at 8:45 AM Nick Desaulniers <ndesaulniers@google.com> wrote:
>
> On Wed, Feb 3, 2021 at 10:58 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > I guess I need to test harder to get a Tested-by credit :-)?
>
> You're right Sedat, I'm sorry. Your testing is invaluable; thank you
> for taking the time to help and credit is a powerful incentive.
>
> It can be difficult to know whether to carry forward tags or not when
> a patch is revised.
>
> Keeping track whether someone sent an explicit Tested By vs including
> it based on feedback that implied they tried it. If you've tested v7
> or v8, please reply explicitly with tested by tags, or perhaps
> Masahiro can apply those for you.
>
Unfortunately, some recent patches around CBL and kbuild miss my
Tested-by's and are already queued up in the remote Git's.
Maybe, I was simply pissed off this fact when writing my response to you.
Feel free to add my...
Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # v1-v8 with
LLVM/Clang v11.0.1+ & v12.0.0-rc1 amd64
Looking at the (git) diff v7 -> v8 - seen from the code - nothing changed.
Feel free to add the links to thread(s) and patch(es) I gave as a
feedback in my other response.
One reason for missed Tested-by's I see is I am NOT subscribed to some
mailing-list.
> It can be difficult to know what's broken if you apply too many out of
> tree patches though.
>
"Nicht verkomplifizieren."
In English: "R(e)D(u)C(e) complexity" is normally one of my life philosophies.
Fighting with... "As usual: It has to work in my development
environment - first."
Sorry, I insisted that it *has* to work in my environment.
It has no secrets - all patches I have queued up in my custom patchset
is publically available.
That does not mean all of them are or will be upstreamed.
Bonne chance with the Linux-BPF folks and send my apologies to have fooled them.
It's one of my """strength of character""" (note 3 quotes) :-).
- Sedat -
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-02-04 8:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04 6:40 [PATCH v8 0/2] Kbuild: DWARF v5 support Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 1/2] Kbuild: make DWARF version a choice Nick Desaulniers
2021-02-04 6:40 ` [PATCH v8 2/2] Kbuild: implement support for DWARF v5 Nick Desaulniers
2021-02-04 6:58 ` [PATCH v8 0/2] Kbuild: DWARF v5 support Sedat Dilek
2021-02-04 7:44 ` Nick Desaulniers
2021-02-04 8:22 ` Sedat Dilek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).