x86: fix build with GCC10
PATCH 1/1 x86: fix build with GCC10
kvm-unit-tests fail to build with GCC10:
/usr/bin/ld: lib/libcflat.a(usermode.o):
./kvm-unit-tests/lib/x86/usermode.c:17: multiple definition of `jmpbuf';
lib/libcflat.a(fault_test.o):
./kvm-unit-tests/lib/x86/fault_test.c:3: first defined here
It seems that 'jmpbuf' doesn't need to be global in either of these files, make it static in both.
--- lib/x86/fault_test.c | 2 +- lib/x86/usermode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
lib/x86/fault_test.c +1 -1
@@ -1,6 +1,6 @@#include "fault_test.h" -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {
lib/x86/usermode.c +1 -1
@@ -14,7 +14,7 @@#define USERMODE_STACK_SIZE 0x2000#define RET_TO_KERNEL_IRQ 0x20 -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {
Signature · 1 line
2.25.4
Quoted 11 lines · On Wed, 17 Jun 2020 17:21:24 +0200 Vitaly Kuznetsov <[email protected]> wrote:
kvm-unit-tests fail to build with GCC10:
/usr/bin/ld: lib/libcflat.a(usermode.o):
./kvm-unit-tests/lib/x86/usermode.c:17: multiple definition of
`jmpbuf'; lib/libcflat.a(fault_test.o):
./kvm-unit-tests/lib/x86/fault_test.c:3: first defined hereIt seems that 'jmpbuf' doesn't need to be global in either of these files, make it static in both.
Signed-off-by Vitaly Kuznetsov <[email protected]>
I stumbled upon the same issue, and I had independently tested this exact solution :)
Quoted 30 lines
--- lib/x86/fault_test.c | 2 +- lib/x86/usermode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)lib/x86/fault_test.c +1
-1@@ -1,6 +1,6 @@#include "fault_test.h" -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {lib/x86/usermode.c +1
-1@@ -14,7 +14,7 @@#define USERMODE_STACK_SIZE 0x2000#define RET_TO_KERNEL_IRQ 0x20 -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {
Quoted 34 lines · Vitaly Kuznetsov
kvm-unit-tests fail to build with GCC10:
/usr/bin/ld: lib/libcflat.a(usermode.o):
./kvm-unit-tests/lib/x86/usermode.c:17: multiple definition of `jmpbuf';
lib/libcflat.a(fault_test.o):
./kvm-unit-tests/lib/x86/fault_test.c:3: first defined hereIt seems that 'jmpbuf' doesn't need to be global in either of these files, make it static in both.
Signed-off-by Vitaly Kuznetsov <[email protected]>--- lib/x86/fault_test.c | 2 +- lib/x86/usermode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)lib/x86/fault_test.c +1
-1@@ -1,6 +1,6 @@#include "fault_test.h" -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {lib/x86/usermode.c +0
-0
lib/x86/usermode.c line 20
Quoted 8 lines
lib/x86/usermode.c +1
-1@@ -14,7 +14,7 @@#define USERMODE_STACK_SIZE 0x2000#define RET_TO_KERNEL_IRQ 0x20 -jmp_buf jmpbuf; +static jmp_buf jmpbuf;static void restore_exec_to_jmpbuf (void ) {
Applied, thanks.
Paolo