Re: [PATCH v3 0/2] Kbuild: DWARF v5 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Dec 27, 2020 at 7:47 PM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
>
> On Fri, Dec 4, 2020 at 2:13 AM 'Nick Desaulniers' via Clang Built
> Linux <clang-built-linux@xxxxxxxxxxxxxxxx> wrote:
> >
> > sigh...I ran a broken script to send the series which doesn't cc folks properly.
> > + lkml, linux-kbuild
> > (Might just resend, properly)
> >
> > On Thu, Dec 3, 2020 at 5:11 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote:
> > >
> > > DWARF v5 is the latest standard of the DWARF debug info format.
> > >
> > > DWARF5 wins significantly in terms of size 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 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.
> > >
>
> I have tested v3 on top of Linux v5.10.3 on Debian/testing AMD64.
>
> Numbers talk - bullshit walks. [ Linus Torvalds ]
>
> [ 5.10.3-1-amd64-gcc10-bfd ]
>
> GNU-toolchain: GCC v10.2.1 and GNU/ld BFD v2.35.1
>
> 503096  vmlinux
> 6864    vmlinux.compressed
> 580104  vmlinux.o
>
> 701856  linux-image-5.10.3-1-amd64-gcc10-bfd-dbg_5.10.3-1~bullseye+dileks1_amd64.deb
>
> [ 5.10.3-1-amd64-clang-ias ]
>
> LLVM-toolchain: Clang and LLD v11.0.1-rc2
>
> 358424  vmlinux
> 7032    vmlinux.compressed
> 353788  vmlinux.o
>
> 508336  linux-image-5.10.3-1-amd64-clang-ias-dbg_5.10.3-1~bullseye+dileks1_amd64.deb
>
> [ 5.10.3-1-amd64-gcc10-bfd ]
>
> $ llvm-dwarfdump-11 vmlinux.o | head -15
> error: vmlinux.o:       file format elf64-x86-64
>
> .debug_info contents:
> decoding address ranges: invalid range list offset 0x265
> 0x00000000: Compile Unit: length = 0x0000001f, format = DWARF32,
> version = 0x0005, unit_type = DW_UT_compile, abbr_offset = 0x0000,
> addr_size = 0x08 (next unit at 0x00
> 000023)
>
> 0x0000000c: DW_TAG_compile_unit
>              DW_AT_stmt_list   (0x00000000)
>              DW_AT_ranges      (0x0000000c
>                 [0x0000000000000000, 0x000000000000021c)
>                 [0x0000000000000000, 0x000000000000019e)
>                 [0x0000000000000000, 0x0000000000002000))
>              DW_AT_name        ("head_64.S")
>              DW_AT_comp_dir    ("/home/dileks/src/linux-kernel/git")
>              DW_AT_producer    ("GNU AS 2.35.1")
>              DW_AT_language    (DW_LANG_Mips_Assembler)
>
> [ 5.10.3-1-amd64-clang-ias ]
>
> $ llvm-dwarfdump-11 vmlinux.o | head -15
> vmlinux.o:      file format elf64-x86-64
>
> .debug_info contents:
> 0x00000000: Compile Unit: length = 0x00000377, format = DWARF32,
> version = 0x0005, unit_type = DW_UT_compile, abbr_offset = 0x0000,
> addr_size = 0x08 (next unit at 0x00
> 00037b)
>
> 0x0000000c: DW_TAG_compile_unit
>              DW_AT_stmt_list   (0x00000000)
>              DW_AT_ranges      (0x0000000c
>                 [0x0000000000000000, 0x0000000000002000)
>                 [0x0000000000000000, 0x000000000000021c)
>                 [0x0000000000000000, 0x000000000000019e))
>              DW_AT_name        ("arch/x86/kernel/head_64.S")
>              DW_AT_comp_dir    ("/home/dileks/src/linux-kernel/git")
>              DW_AT_producer    ("Debian clang version 11.0.1-+rc2-1")
>              DW_AT_language    (DW_LANG_Mips_Assembler)
>

Some more numbers with Linux v5.11-rc1 and identical GNU and LLVM toolchains.

[ 5.11.0-rc1-1-amd64-gcc10-bfd ]

492     vmlinux
7       vmlinux.compressed
567     vmlinux.o
685     linux-image-5.11.0-rc1-1-amd64-gcc10-bfd-dbg_5.11.0~rc1-1~bullseye+dileks1_amd64.deb

[ 5.11.0-rc1-2-amd64-clang-ias ]

350     vmlinux
7       vmlinux.compressed
345     vmlinux.o
495     linux-image-5.11.0-rc1-2-amd64-clang-ias-dbg_5.11.0~rc1-2~bullseye+dileks1_amd64.deb

- Sedat -

 > Attached are my kernel config files.
>
> Feel free to add my:
>
> Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
>
> - sed@ -
>
> > > Nick Desaulniers (2):
> > >   Kbuild: make DWARF version a choice
> > >   Kbuild: implement support for DWARF v5
> > >
> > >  Makefile                          | 15 +++++++------
> > >  include/asm-generic/vmlinux.lds.h |  6 +++++-
> > >  lib/Kconfig.debug                 | 35 ++++++++++++++++++++++++++-----
> > >  scripts/test_dwarf5_support.sh    |  9 ++++++++
> > >  4 files changed, 53 insertions(+), 12 deletions(-)
> > >  create mode 100755 scripts/test_dwarf5_support.sh
> > >
> > > --
> > > 2.29.2.576.ga3fc446d84-goog
> > >
> >
> >
> > --
> > Thanks,
> > ~Nick Desaulniers
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@xxxxxxxxxxxxxxxx.
> > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/CAKwvOdkZEiHK01OD420USb0j%3DF0LcrnRbauv9Yw26tu-GRbYkg%40mail.gmail.com.



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux