On Thu, Jun 22, 2023 at 02:55:08PM +0200, Heiko Carstens wrote: > Nathan Chancellor reported a kernel build error on Fedora 39: > > $ clang --version | head -1 > clang version 16.0.5 (Fedora 16.0.5-1.fc39) > > $ s390x-linux-gnu-ld --version | head -1 > GNU ld version 2.40-1.fc39 > > $ make -skj"$(nproc)" ARCH=s390 CC=clang CROSS_COMPILE=s390x-linux-gnu- olddefconfig all > s390x-linux-gnu-ld: arch/s390/boot/startup.o(.text+0x5b4): misaligned symbol `_decompressor_end' (0x35b0f) for relocation R_390_PC32DBL > make[3]: *** [.../arch/s390/boot/Makefile:78: arch/s390/boot/vmlinux] Error 1 > > It turned out that the problem with misaligned symbols on s390 was fixed > with commit 80ddf5ce1c92 ("s390: always build relocatable kernel") for the > kernel image, but did not take into account that the decompressor uses its > own set of CFLAGS, which come without -fPIE. > > Add the -fPIE flag also to the decompresser CFLAGS to fix this. > I think this should also have: Reported-by: CKI <cki-project@xxxxxxxxxx> Link: https://lore.kernel.org/32935.123062114500601371@xxxxxxxxxxxxxxxxxxxxxxxx/ I technically just forwarded the report and did a little extra testing. > Reported-by: Nathan Chancellor <nathan@xxxxxxxxxx> > Suggested-by: Ulrich Weigand <Ulrich.Weigand@xxxxxxxxxx> > Link: https://github.com/ClangBuiltLinux/linux/issues/1747 > Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx> Thanks for the quick patch, this fixes the error and I did a simple boot test in QEMU with the resulting kernel, which showed no issues. Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx> > --- > arch/s390/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/s390/Makefile b/arch/s390/Makefile > index ed646c583e4f..5ed242897b0d 100644 > --- a/arch/s390/Makefile > +++ b/arch/s390/Makefile > @@ -27,6 +27,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float -mbac > KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables > KBUILD_CFLAGS_DECOMPRESSOR += -ffreestanding > KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector > +KBUILD_CFLAGS_DECOMPRESSOR += -fPIE > KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member) > KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g) > KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,)) > -- > 2.39.2 >