Hi Paolo and David, I have a strange compile error which appeared in v5.15.3:
CALL scripts/checksyscalls.sh - due to target missing CALL scripts/atomic/check-atomics.sh - due to target missing CHK include/generated/compile.h - due to compile.h not in $(targets) CC arch/x86/kvm/x86.o - due to target missing arch/x86/kvm/x86.c: Assembler messages: arch/x86/kvm/x86.c:3241: Error: bad register name `%dil' scripts/Makefile.build:277: recipe for target 'arch/x86/kvm/x86.o' failed make[3]: *** [arch/x86/kvm/x86.o] Error 1 scripts/Makefile.build:540: recipe for target 'arch/x86/kvm' failed make[2]: *** [arch/x86/kvm] Error 2 Makefile:1868: recipe for target 'arch/x86' failed make[1]: *** [arch/x86] Error 2 Makefile:350: recipe for target '__build_one_by_one' failed make: *** [__build_one_by_one] Error 2
My (cross-)compiler is a gcc 6.3.0 for 32 bit x86.
It is neither with v5.15.2 nor v5.16-rc1 nor v5.14.20.
The code line 3241 is:
asm volatile("1: xchgb %0, %2\n" "xor %1, %1\n" "2:\n" _ASM_EXTABLE_UA(1b, 2b) : "+r" (st_preempted), "+&r" (err) : "m" (st->preempted));
This seems to have been introduced by:
9d12bf19b278 KVM: x86: Fix recording of guest steal time / preempted status
but it is a backport of commit 7e2175ebd695f17860c5bd4ad7616cce12ed4591 which was also merged to 5.14.20.
So maybe the backport is incomplete or has some hidden dependency? But only on the 5.15.y series?
BR and thanks, Nikolaus Schaller
On Fri, 2021-11-19 at 11:33 +0100, H. Nikolaus Schaller wrote:
Hi Paolo and David, I have a strange compile error which appeared in v5.15.3:
CALL scripts/checksyscalls.sh - due to target missing CALL scripts/atomic/check-atomics.sh - due to target missing CHK include/generated/compile.h - due to compile.h not in $(targets) CC arch/x86/kvm/x86.o - due to target missing arch/x86/kvm/x86.c: Assembler messages: arch/x86/kvm/x86.c:3241: Error: bad register name `%dil' scripts/Makefile.build:277: recipe for target 'arch/x86/kvm/x86.o' failed make[3]: *** [arch/x86/kvm/x86.o] Error 1 scripts/Makefile.build:540: recipe for target 'arch/x86/kvm' failed make[2]: *** [arch/x86/kvm] Error 2 Makefile:1868: recipe for target 'arch/x86' failed make[1]: *** [arch/x86] Error 2 Makefile:350: recipe for target '__build_one_by_one' failed make: *** [__build_one_by_one] Error 2
My (cross-)compiler is a gcc 6.3.0 for 32 bit x86.
It is neither with v5.15.2 nor v5.16-rc1 nor v5.14.20.
The code line 3241 is:
asm volatile("1: xchgb %0, %2\n" "xor %1, %1\n" "2:\n" _ASM_EXTABLE_UA(1b, 2b) : "+r" (st_preempted), "+&r" (err) : "m" (st->preempted));
This seems to have been introduced by:
9d12bf19b278 KVM: x86: Fix recording of guest steal time / preempted status
but it is a backport of commit 7e2175ebd695f17860c5bd4ad7616cce12ed4591 which was also merged to 5.14.20.
Hi Nikolaus, thanks for the report, and sorry for the inconvenience.
Please could you confirm that it's fixed by https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=964b7aa0b040
Thanks!
linux-stable-mirror@lists.linaro.org