stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: Alyssa Ross <hi@alyssa.is>
Cc: Nathan Chancellor <nathan@kernel.org>,
	Nick Cao <nickcao@nichi.co>,
	linux-kbuild@vger.kernel.org,
	Nick Desaulniers <ndesaulniers@google.com>,
	linux-kernel@vger.kernel.org, llvm@lists.linux.dev,
	linux-riscv@lists.infradead.org, Tom Rix <trix@redhat.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	stable@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v3] purgatory: fix disabling debug info
Date: Sat, 1 Apr 2023 10:08:37 +0900	[thread overview]
Message-ID: <CAK7LNATN7hQFXx+Y5PguD9mvcP0-jadXxU_5WP4YQuHgKeyD1w@mail.gmail.com> (raw)
In-Reply-To: <20230331202716.mvny65ybaat3wsmm@x220>

On Sat, Apr 1, 2023 at 5:27 AM Alyssa Ross <hi@alyssa.is> wrote:
>
> On Sat, Apr 01, 2023 at 12:42:13AM +0900, Masahiro Yamada wrote:
> > On Fri, Mar 31, 2023 at 7:29 AM Nathan Chancellor <nathan@kernel.org> wrote:
> > >
> > > On Thu, Mar 30, 2023 at 06:22:24PM +0000, Alyssa Ross wrote:
> > > > Since 32ef9e5054ec, -Wa,-gdwarf-2 is no longer used in KBUILD_AFLAGS.
> > > > Instead, it includes -g, the appropriate -gdwarf-* flag, and also the
> > > > -Wa versions of both of those if building with Clang and GNU as.  As a
> > > > result, debug info was being generated for the purgatory objects, even
> > > > though the intention was that it not be.
> > > >
> > > > Fixes: 32ef9e5054ec ("Makefile.debug: re-enable debug info for .S files")
> > > > Signed-off-by: Alyssa Ross <hi@alyssa.is>
> > > > Cc: stable@vger.kernel.org
> > > > Acked-by: Nick Desaulniers <ndesaulniers@google.com>
> > >
> > > This is definitely more future proof.
> > >
> > > Reviewed-by: Nathan Chancellor <nathan@kernel.org>
> > > Tested-by: Nathan Chancellor <nathan@kernel.org>
> >
> >
> >
> > I prefer v3 since it is cleaner, but unfortunately
> > it does not work for Clang+GAS.
> >
> >
> > With v3 applied, I still see the debug info.
> >
> >
> >
> > $ make LLVM=1 LLVM_IAS=0  arch/x86/purgatory/setup-x86_64.o
> >   UPD     include/config/kernel.release
> >   UPD     include/generated/utsrelease.h
> >   CALL    scripts/checksyscalls.sh
> >   DESCEND objtool
> >   INSTALL libsubcmd_headers
> >   AS      arch/x86/purgatory/setup-x86_64.o
> > $ readelf -S arch/x86/purgatory/setup-x86_64.o
> > There are 18 section headers, starting at offset 0x14d8:
> >
> > Section Headers:
> >   [Nr] Name              Type             Address           Offset
> >        Size              EntSize          Flags  Link  Info  Align
> >   [ 0]                   NULL             0000000000000000  00000000
> >        0000000000000000  0000000000000000           0     0     0
> >   [ 1] .text             PROGBITS         0000000000000000  00000040
> >        0000000000000027  0000000000000000  AX       0     0     16
> >   [ 2] .rela.text        RELA             0000000000000000  000012f8
> >        0000000000000060  0000000000000018   I      15     1     8
> >   [ 3] .data             PROGBITS         0000000000000000  00000067
> >        0000000000000000  0000000000000000  WA       0     0     1
> >   [ 4] .bss              NOBITS           0000000000000000  00001000
> >        0000000000001000  0000000000000000  WA       0     0     4096
> >   [ 5] .rodata           PROGBITS         0000000000000000  00001000
> >        0000000000000020  0000000000000000   A       0     0     16
> >   [ 6] .rela.rodata      RELA             0000000000000000  00001358
> >        0000000000000018  0000000000000018   I      15     5     8
> >   [ 7] .debug_line       PROGBITS         0000000000000000  00001020
> >        000000000000005f  0000000000000000           0     0     1
> >   [ 8] .rela.debug_line  RELA             0000000000000000  00001370
> >        0000000000000018  0000000000000018   I      15     7     8
> >   [ 9] .debug_info       PROGBITS         0000000000000000  0000107f
> >        0000000000000027  0000000000000000           0     0     1
> >   [10] .rela.debug_info  RELA             0000000000000000  00001388
> >        0000000000000090  0000000000000018   I      15     9     8
> >   [11] .debug_abbrev     PROGBITS         0000000000000000  000010a6
> >        0000000000000014  0000000000000000           0     0     1
> >   [12] .debug_aranges    PROGBITS         0000000000000000  000010c0
> >        0000000000000030  0000000000000000           0     0     16
> >   [13] .rela.debug_[...] RELA             0000000000000000  00001418
> >        0000000000000030  0000000000000018   I      15    12     8
> >   [14] .debug_str        PROGBITS         0000000000000000  000010f0
> >        0000000000000054  0000000000000001  MS       0     0     1
> >   [15] .symtab           SYMTAB           0000000000000000  00001148
> >        0000000000000168  0000000000000018          16    12     8
> >   [16] .strtab           STRTAB           0000000000000000  000012b0
> >        0000000000000041  0000000000000000           0     0     1
> >   [17] .shstrtab         STRTAB           0000000000000000  00001448
> >        000000000000008d  0000000000000000           0     0     1
> > Key to Flags:
> >   W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
> >   L (link order), O (extra OS processing required), G (group), T (TLS),
> >   C (compressed), x (unknown), o (OS specific), E (exclude),
> >   D (mbind), l (large), p (processor specific)
> >
> >
> >
> >
> >
> >
> > With -g0 given, GCC stops passing -g -gdwarf-4 down to GAS.
> >
> >
> > Clang does not do anything about -g0 for the external assembler.
>
> You're right.  Thank you for your thoughtful testing — I forgot to check
> LLVM for v3.  I thought maybe adding -Wa,-g0 would be enough, but it
> turns out that GAS doesn't support that.  If -g has been specified,
> there doesn't seem to be any way to disable debug info again later in
> the command line.
>
> So we probably can't do better than v2 while LLVM_IAS=0 is supported.
> The only other option I see is (untested):
>
> asflags-y                       += -g0
> asflags-remove-y                += -Wa,-g -Wa,-gdwarf-4 -Wa,-gdwarf-5
>
> But I don't like that option, because it means there are two completely
> different ways of doing it depending on the compiler setup, and it makes
> it even less likely anybody would remember to update asflags-remove-y
> when DWARF 6 comes around or whatever.


Agree.
This is uglier than v2.



If nobody comes up with a better idea,
I will pick up v2.





-- 
Best Regards
Masahiro Yamada

      reply	other threads:[~2023-04-01  1:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-30 18:22 [PATCH v3] purgatory: fix disabling debug info Alyssa Ross
2023-03-30 22:29 ` Nathan Chancellor
2023-03-31 15:42   ` Masahiro Yamada
2023-03-31 20:27     ` Alyssa Ross
2023-04-01  1:08       ` Masahiro Yamada [this message]

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=CAK7LNATN7hQFXx+Y5PguD9mvcP0-jadXxU_5WP4YQuHgKeyD1w@mail.gmail.com \
    --to=masahiroy@kernel.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hi@alyssa.is \
    --cc=hpa@zytor.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=llvm@lists.linux.dev \
    --cc=mingo@redhat.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nickcao@nichi.co \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=trix@redhat.com \
    --cc=x86@kernel.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;
as well as URLs for NNTP newsgroup(s).