Messages in this thread Patch in this message | | | Date | Thu, 04 Mar 2021 19:15:25 +0000 | From | Marc Zyngier <> | Subject | Re: [PATCH] KVM: arm64: Disable LTO in hyp |
| |
On Thu, 04 Mar 2021 18:45:44 +0000, Sami Tolvanen <samitolvanen@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 <nathan@kernel.org> > Tested-by: Nathan Chancellor <nathan@kernel.org> > Signed-off-by: Sami Tolvanen <samitolvanen@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.
| |