Hi Heiko, On Wed, Feb 21, 2024 at 10:16:12AM +0100, Heiko Carstens wrote: > On Tue, Feb 20, 2024 at 01:44:48PM -0700, Nathan Chancellor wrote: > > When building with OBJDUMP=llvm-objdump, there are a series of warnings > > from the section comparisons that arch/s390/boot/Makefile performs > > between vmlinux and arch/s390/boot/vmlinux: > ... > > It may be possible to change llvm-objdump's behavior to match GNU > > objdump's behavior but the difficulty of that task has not yet been > > explored. The combination of '$(OBJDUMP) -t -j' is not common in the > > kernel tree on a whole, so workaround this tool difference by grepping > > for the sections in the full symbol table output in a similar manner to > > the sed invocation. This results in no visible change for GNU objdump > > users while fixing the warnings for OBJDUMP=llvm-objdump, further > > enabling use of LLVM=1 for ARCH=s390 with versions of LLVM that have > > support for s390 in ld.lld and llvm-objcopy. > > > > Reported-by: Heiko Carstens <hca@xxxxxxxxxxxxx> > > Closes: https://lore.kernel.org/20240219113248.16287-C-hca@xxxxxxxxxxxxx/ > > Link: https://github.com/ClangBuiltLinux/linux/issues/859 > > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > > --- > > s390 llvm-objcopy support may be backported to LLVM 18.1.0 in time for > > the final release. > > > > https://github.com/llvm/llvm-project/pull/82324 > > > > s390 ld.lld has already made it into release/18.x: > > > > https://github.com/llvm/llvm-project/commit/0a44c3792a6ff799df5f100670d7e19d1bc49f03 > > > > If the objcopy change makes 18.1.0 final, features + this change should > > build cleanly with LLVM 18.1.0+ using LLVM=1 :) > > --- > > arch/s390/boot/Makefile | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > This seems to work like expected (also verified with a couple of scenarios > where things are supposed to break). > > So compiling the kernel with LLVM=1 finally works on s390! > > Patch applied - Thanks a lot! Thanks a lot for testing and applying this quickly! Small update on the LLVM side, the llvm-objcopy change made it into 18.1.0-rc3: https://github.com/llvm/llvm-project/commit/5ef297ab611822537a385d45244867519563d3ef https://github.com/llvm/llvm-project/commits/llvmorg-18.1.0-rc3 So it's pretty much official, 'ARCH=s390 LLVM=1' should build without any issues with Linux 6.9+ and LLVM 18.1.0+ :) Cheers, Nathan