From: Masahiro Yamada <masahiroy@kernel.org>
To: Nathan Chancellor <nathan@kernel.org>
Cc: Alyssa Ross <hi@alyssa.is>, 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 00:42:13 +0900 [thread overview]
Message-ID: <CAK7LNARU444UrZXVodNftud-scy5KKUjdtTM0GOrxHB9pyKmkg@mail.gmail.com> (raw)
In-Reply-To: <20230330222928.GA644044@dev-arch.thelio-3990X>
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.
I was thinking of dropping LLVM_IAS=0 support.
When we decide to give up -fno-integrated-as,
we can clean up the code in various places.
Anyway, v3 does not work in the current situation.
V2 works for all usecases.
--
Best Regards
Masahiro Yamada
next prev parent reply other threads:[~2023-03-31 15:42 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 [this message]
2023-03-31 20:27 ` Alyssa Ross
2023-04-01 1:08 ` Masahiro Yamada
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=CAK7LNARU444UrZXVodNftud-scy5KKUjdtTM0GOrxHB9pyKmkg@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).