linux-toolchains.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick Desaulniers <ndesaulniers@google.com>
To: Arvind Sankar <nivedita@alum.mit.edu>,
	Masahiro Yamada <masahiroy@kernel.org>
Cc: Jakub Jelinek <jakub@redhat.com>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-toolchains@vger.kernel.org,
	clang-built-linux <clang-built-linux@googlegroups.com>,
	Fangrui Song <maskray@google.com>,
	Nathan Chancellor <natechancellor@gmail.com>,
	Sedat Dilek <sedat.dilek@gmail.com>,
	Dmitry Golovin <dima@golovin.in>,
	Alistair Delva <adelva@google.com>
Subject: Re: [PATCH v2 4/4] Kbuild: implement support for DWARF v5
Date: Thu, 10 Dec 2020 15:18:45 -0800	[thread overview]
Message-ID: <CAKwvOd=SbbJptBbv3y39_ZCeTbO0vb_fa5ZbQQ2LUquegzLycg@mail.gmail.com> (raw)
In-Reply-To: <X8psgMuL4jMjP/Oy@rani.riverdale.lan>

On Fri, Dec 4, 2020 at 9:06 AM Arvind Sankar <nivedita@alum.mit.edu> wrote:
>
> On Thu, Dec 03, 2020 at 03:28:14PM -0800, Nick Desaulniers wrote:
> > On Thu, Dec 3, 2020 at 3:22 PM Nick Desaulniers <ndesaulniers@google.com> wrote:
> > >
> > > On Tue, Nov 24, 2020 at 9:28 AM Arvind Sankar <nivedita@alum.mit.edu> wrote:
> > > >
> > > > On Tue, Nov 03, 2020 at 04:53:43PM -0800, Nick Desaulniers wrote:
> > > > > DWARF v5 is the latest standard of the DWARF debug info format.
> > > > >
> > > > > Feature detection of DWARF5 is onerous, especially given that we've
> > > > > removed $(AS), so we must query $(CC) for DWARF5 assembler directive
> > > > > support.  GNU `as` only recently gained support for specifying
> > > > > -gdwarf-5.
> > > >
> > > > With gcc, using -gdwarf-5 even without -Wa,--gdwarf-5 results in
> > > > considerably smaller debug info. gcc does not seem to generate the .file 0
> > > > directive that causes older GNU as to barf.
> > > >
> > > > Should the assembler support check be restricted to CC_IS_CLANG?
> > >
> > > No, because if LLVM_IAS=1 then the assembler support need not be checked.
> >
> > Also, if your version of GCC supports DWARF Version 5, but your
> > version of GAS does not, then I'm more inclined to not allow
> > CONFIG_DEBUG_INFO_DWARF5 to be selectable, rather than mix and match
> > or partially support this for one but not the other.  Either all tools
> > used support DWARF 5, or you don't get to use DWARF 5.
> >
>
> Why? Does this actually cause any problems?
>
> It seems like the options for gcc can actually be very straightforward:
> you just need a cc-option check, and then add -gdwarf-N to both CFLAGS
> and AFLAGS and you're done.  Adding the -Wa flag is superfluous and
> carries the risk of interfering with what the compiler driver does. Just
> let the gcc driver handle the details.
>
> Clang/IAS is almost as straightforward, with the only additional edge
> case being that for assembler files, DWARF 2 doesn't work, so the CFLAGS
> is the same -gdwarf-N, but AFLAGS gets -gdwarf-N only if N > 2.
>
> The messy case is only Clang/IAS=0, which needs to check the support
> from the external assembler, and needs CFLAGS of -gdwarf-N and AFLAGS of
> -Wa,--gdwarf-N, because Clang doesn't pass that option on to an external
> assembler. This is why I was asking if the assembler support check can
> be restricted to CC_IS_CLANG: nothing but Clang/IAS=0 actually requires
> that check.

Oh, I see. Yeah, that might be a nicer approach.  What should we do in
the case of gcc < 7 though, where -gdwarf-5 won't produce DWARF v5?
Maybe that's ok, but the intent behind the Kconfig check was to
prevent the option from being selectable if the tools do not support
it.  Maybe it's more flexible to pass the arguments along, and hope
for the best?

As a gcc-5 user, I might be surprised if I chose
CONFIG_DEBUG_INFO_DWARF5 if what I got was not actually DWARF v5; it
does violate the principle of least surprise.  Maybe that doesn't
matter though?
-- 
Thanks,
~Nick Desaulniers

  reply	other threads:[~2020-12-10 23:20 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-22  1:21 [PATCH] Kbuild: implement support for DWARF5 Nick Desaulniers
2020-10-22  1:44 ` Fangrui Song
2020-11-03 22:27   ` Nick Desaulniers
2020-10-28 18:18 ` Nick Desaulniers
2020-11-02  2:20 ` Masahiro Yamada
2020-11-02  8:18   ` Jakub Jelinek
2020-11-03 22:21     ` Nick Desaulniers
2020-11-04 12:19       ` Jakub Jelinek
2020-11-03 22:13   ` Nick Desaulniers
2020-11-04  0:53   ` [PATCH v2 0/4] Kbuild: DWARF v5 support Nick Desaulniers
2020-11-04  0:53     ` [PATCH v2 1/4] x86_64: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S Nick Desaulniers
2020-11-04  0:53     ` [PATCH v2 2/4] Kbuild: do not emit debug info for assembly with LLVM_IAS=1 Nick Desaulniers
2020-11-05  6:58       ` Nathan Chancellor
2020-11-05  7:26         ` Fangrui Song
2020-11-09 18:28         ` Nick Desaulniers
2020-11-09 18:35           ` [PATCH v3] " Nick Desaulniers
2020-11-16 23:41             ` Nick Desaulniers
     [not found]               ` <CA+SOCLJTg6U+Ddop_5O-baVR42va3vGAvMQ62o9H6rd+10aKrw@mail.gmail.com>
2020-11-23 18:42                 ` Nick Desaulniers
2020-11-24 18:44                   ` Masahiro Yamada
2020-11-04  0:53     ` [PATCH v2 3/4] Kbuild: make DWARF version a choice Nick Desaulniers
2020-11-05  5:58       ` kernel test robot
2020-11-23 23:22       ` Arvind Sankar
2020-11-24  0:33         ` Segher Boessenkool
2020-11-24 16:56           ` Arvind Sankar
2020-11-24 17:46             ` Segher Boessenkool
2020-11-30 18:04       ` Masahiro Yamada
2020-11-30 20:27         ` Fāng-ruì Sòng
2020-12-01  3:38           ` Masahiro Yamada
2020-12-01  9:32             ` Segher Boessenkool
2020-12-02  1:08               ` Fāng-ruì Sòng
2020-11-30 20:45         ` Nick Desaulniers
2020-12-01  4:17           ` Masahiro Yamada
2020-11-04  0:53     ` [PATCH v2 4/4] Kbuild: implement support for DWARF v5 Nick Desaulniers
2020-11-24 17:28       ` Arvind Sankar
2020-12-03 23:22         ` Nick Desaulniers
2020-12-03 23:28           ` Nick Desaulniers
2020-12-04 17:06             ` Arvind Sankar
2020-12-10 23:18               ` Nick Desaulniers [this message]
2020-12-11  0:29                 ` Arvind Sankar
2020-12-01  1:56       ` Masahiro Yamada
2020-11-04  0:00 ` [PATCH] Kbuild: implement support for DWARF5 Arvind Sankar
2020-11-04  0:05   ` Nick Desaulniers
2020-11-04  0:17     ` Arvind Sankar
2020-12-03 22:56       ` Nick Desaulniers
2020-12-04  0:17         ` Nick Desaulniers

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='CAKwvOd=SbbJptBbv3y39_ZCeTbO0vb_fa5ZbQQ2LUquegzLycg@mail.gmail.com' \
    --to=ndesaulniers@google.com \
    --cc=adelva@google.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=dima@golovin.in \
    --cc=jakub@redhat.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-toolchains@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=maskray@google.com \
    --cc=natechancellor@gmail.com \
    --cc=nivedita@alum.mit.edu \
    --cc=sedat.dilek@gmail.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 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).