On Thu, 04 Mar 2021 18:45:44 +0000, Sami Tolvanen <samitolva...@google.com> wrote: > > allmodconfig + CONFIG_LTO_CLANG_THIN=y fails to build due to following > linker errors: > > ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21CC):
I assume this message is only an oddity, right? Because __guest_enter() is as far as you can imagine from irqbypass.c... > relocation R_AARCH64_CONDBR19 out of range: 2031220 is not in > [-1048576, 1048575]; references hyp_panic > >>> defined in vmlinux.o > > ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21E0): > relocation R_AARCH64_ADR_PREL_LO21 out of range: 2031200 is not in > [-1048576, 1048575]; references hyp_panic > >>> defined in vmlinux.o > > As LTO is not really necessary for the hypervisor code, disable it for > the hyp directory to fix the build. Can you shed some light on what the problem is exactly? > > Link: https://github.com/ClangBuiltLinux/linux/issues/1317 > Reported-by: Nathan Chancellor <nat...@kernel.org> > Tested-by: Nathan Chancellor <nat...@kernel.org> > Signed-off-by: Sami Tolvanen <samitolva...@google.com> > --- > arch/arm64/kvm/hyp/Makefile | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm64/kvm/hyp/Makefile b/arch/arm64/kvm/hyp/Makefile > index 687598e41b21..e8116016e6a8 100644 > --- a/arch/arm64/kvm/hyp/Makefile > +++ b/arch/arm64/kvm/hyp/Makefile > @@ -11,3 +11,6 @@ subdir-ccflags-y := -I$(incdir) > \ > $(DISABLE_STACKLEAK_PLUGIN) > > obj-$(CONFIG_KVM) += vhe/ nvhe/ pgtable.o > + > +# Disable LTO for the files in this directory > +KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_LTO), $(KBUILD_CFLAGS)) > > base-commit: f69d02e37a85645aa90d18cacfff36dba370f797 Can this be reduced to the nvhe part of the tree? The rest of the hypervisor should support being built with LTO, I'd expect. Or am I missing something more significant? Thanks, M. -- Without deviation from the norm, progress is not possible.