Re: [PATCH 00/11] s390: Support linking with ld.lld

From: Nathan Chancellor
Date: Wed Feb 14 2024 - 14:57:56 EST


On Wed, Feb 14, 2024 at 02:43:28PM +0100, Heiko Carstens wrote:
> On Wed, Feb 07, 2024 at 05:14:52PM -0700, Nathan Chancellor wrote:
> > Hi all,
> >
> > This series allows the s390 kernel to be linked with ld.lld (support for
> > s390 is under review at [1]). This implicitly depends on [2], which was
> > created and sent before it was realized that this series was necessary.
> ...
> > Nathan Chancellor (11):
> > s390: boot: Add support for CONFIG_LD_ORPHAN_WARN
> > s390: vmlinux.lds.S: Handle '.data.rel' sections explicitly
> > s390: vmlinux.lds.S: Explicitly handle '.got' and '.plt' sections
> > s390: vmlinux.lds.S: Discard unnecessary sections
> > s390/boot: vmlinux.lds.S: Handle '.init.text'
> > s390/boot: vmlinux.lds.S: Handle '.rela' sections
> > s390/boot: vmlinux.lds.S: Handle DWARF debug sections
> > s390/boot: vmlinux.lds.S: Handle ELF required sections
> > s390/boot: vmlinux.lds.S: Handle commonly discarded sections
> > s390: Select CONFIG_ARCH_WANT_LD_ORPHAN_WARN
> > s390: Link vmlinux with '-z notext'
> >
> > arch/s390/Kconfig | 1 +
> > arch/s390/Makefile | 2 +-
> > arch/s390/boot/Makefile | 5 +++--
> > arch/s390/boot/vmlinux.lds.S | 28 ++++++++++++++++++++++++++++
> > arch/s390/kernel/vmlinux.lds.S | 28 +++++++++++++++++++++++++++-
> > 5 files changed, 60 insertions(+), 4 deletions(-)
>
> Now available at:
> https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git/log/?h=features
>
> And should be in linux-next soon.
>
> Thanks a lot! :)

Thank you for bearing with the issues that came up in the series and
getting it reviewed and accepted quickly!

The ld.lld pull request has been merged into main:

https://github.com/llvm/llvm-project/commit/fe3406e349884e4ef61480dd0607f1e237102c74

and Fangrui requested a backport to 18.1.0, so it is possible that
people will get access to this even quicker:

https://github.com/llvm/llvm-project/pull/81675

I did not CC you all on this one but it is needed to avoid a link error
with ld.lld when CONFIG_DEBUG_INFO_BTF is enabled but it is not specific
to s390 so it will go via the kbuild tree (hopefully for 6.8):

https://lore.kernel.org/20240212-fix-elf-type-btf-vmlinux-bin-o-big-endian-v2-1-22c0a6352069@xxxxxxxxxx/

With that change on top of features, all my builds pass successfully
with ld.lld :) I'll be sending another change your way shortly for
something that came up during my testing with GCC + ld.lld.

Cheers,
Nathan