Hi Marc,
Am 16.12.2021 um 09:43 schrieb Marc Zyngier maz@kernel.org:
Hi Nikolaus,
On 2021-12-16 06:58, H. Nikolaus Schaller wrote:
Hi Catalin,
Am 15.12.2021 um 19:40 schrieb H. Nikolaus Schaller hns@goldelico.com: this seems to break build of 5.10.y (and maybe earlier) for me: CALL scripts/checksyscalls.sh - due to target missing CALL scripts/atomic/check-atomics.sh - due to target missing CHK include/generated/compile.h AS arch/arm64/kvm/hyp/nvhe/hyp-init.nvhe.o - due to target missing arch/arm64/kvm/hyp/nvhe/hyp-init.S: Assembler messages: arch/arm64/kvm/hyp/nvhe/hyp-init.S:87: Error: missing ')' arch/arm64/kvm/hyp/nvhe/hyp-init.S:87: Error: missing ')' arch/arm64/kvm/hyp/nvhe/hyp-init.S:87: Error: missing ')'This should somehow be fixed so that arch/arm64/include/asm/kvm_arm.h can be included by older assemblers.
GCC versions prior to 5.1 are known to miscompile the kernel, and the minimal GCC version was bumped in dca5244d2f5b.
I am surprised this requirement wasn't backported to 5.10-stable, as this results in all sorts of terrible bugs that are hard to diagnose (see the horror story in the commit message).
Indeed.
My build system checks for existence of scripts/min-tool-version.sh and if it exists it chooses the right gcc version. If it does not exist it assumes that gcc 4.9 is still good enough...
As for the issue you describe, does the following help?
Thanks,
M.
diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h index 01d47c5886dc..d03087308ab5 100644 --- a/arch/arm64/include/asm/kvm_arm.h +++ b/arch/arm64/include/asm/kvm_arm.h @@ -91,7 +91,7 @@ #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
/* TCR_EL2 Registers bits */ -#define TCR_EL2_RES1 ((1U << 31) | (1 << 23)) +#define TCR_EL2_RES1 ((UL(1) << 31) | (UL(1) << 23)) #define TCR_EL2_TBI (1 << 20) #define TCR_EL2_PS_SHIFT 16 #define TCR_EL2_PS_MASK (7 << TCR_EL2_PS_SHIFT)
-- Jazz is not dead. It just smells funny...
Yes, it does! This can be compiled with gcc 4.9 (resp. binutils).
So IMHO there are 3 different ways to solve it: a) your fix applied to 5.10.y b) someone backports scripts/min-tool-version.sh to allow for dependable automation... c) we leave 5.10.y unfixed and I just add a special rule for arm64 to choose a newer gcc (it is no problem to use 4.9 for other architectures) in my build setup.
BR and thanks, Nikolaus