Skip to contentSkip to conversation

Failure to compile latest git (target-i386/kvm.c:953:29: error: variable ‘fop’ set but not used)

Qemu-devel Yaniv Kaul 4 participants 4 messages Apr 21, 2011 – Apr 24, 2011 KVM

lore
Share & tools
lore

Yaniv Kaul

author
#0 lore raw

Fedora 15beta/x64, latest git:
[ykaul@ykaul qemu]$ make
CC x86_64-softmmu/kvm.o
/home/ykaul/qemu/target-i386/kvm.c: In function ‘kvm_get_xsave’:
/home/ykaul/qemu/target-i386/kvm.c:953:29: error: variable ‘fop’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make[1]: *** [kvm.o] Error 1
make: *** [subdir-x86_64-softmmu] Error 2

[ykaul@ykaul qemu]$ gcc --version
gcc (GCC) 4.6.0 20110419 (Red Hat 4.6.0-5)

- Does happen even though I've used --target-list=x86_64-softmmu

- Doesn't happen with --disable-kvm in ./configure.

Then I'm getting:

/home/ykaul/qemu/tcg/tcg.c: In function ‘tcg_gen_callN’:
/home/ykaul/qemu/tcg/tcg.c:589:9: error: variable ‘call_type’ set but not used [-Werror=unused-but-set-variable]

#1 lore raw
Quoted 18 lines · Yaniv Kaul

Fedora 15beta/x64, latest git:
[ykaul@ykaul qemu]$ make
 CC    x86_64-softmmu/kvm.o
/home/ykaul/qemu/target-i386/kvm.c: In function ‘kvm_get_xsave’:
/home/ykaul/qemu/target-i386/kvm.c:953:29: error: variable ‘fop’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make[1]: *** [kvm.o] Error 1
make: *** [subdir-x86_64-softmmu] Error 2

[ykaul@ykaul qemu]$ gcc --version
gcc (GCC) 4.6.0 20110419 (Red Hat 4.6.0-5)

- Does happen even though I've used --target-list=x86_64-softmmu

Quoted 7 lines

- Doesn't happen with --disable-kvm in ./configure.

Then I'm getting:

/home/ykaul/qemu/tcg/tcg.c: In function ‘tcg_gen_callN’:
/home/ykaul/qemu/tcg/tcg.c:589:9: error: variable ‘call_type’ set but not used [-Werror=unused-but-set-variable]

Hi Yaniv,
Do you want to take a stab at fixing these warnings and sending patches?
http://wiki.qemu.org/Contribute/SubmitAPatch

If these warnings are preventing you from using QEMU, try:

$ ./configure --disable-werror

Stefan

#2 lore raw
In reply to Yaniv Kaul
Quoted 11 lines · Yaniv Kaul

Fedora 15beta/x64, latest git:
[ykaul@ykaul qemu]$ make
CC x86_64-softmmu/kvm.o
/home/ykaul/qemu/target-i386/kvm.c: In function ‘kvm_get_xsave’:
/home/ykaul/qemu/target-i386/kvm.c:953:29: error: variable ‘fop’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make[1]: *** [kvm.o] Error 1
make: *** [subdir-x86_64-softmmu] Error 2

This one looks a bit suspicious:

Avi, why do we have kvm_fpu::last_* in the ABI, copying that information from/to user land, but do not handle it otherwise? To my understanding this fop here in xsave corresponds to kvm_fpu::last_opcode in the SET/GET_FPU case, right? It's set to 0 on SET_XSAVE and ignored on GET_XSAVE as this warnings tells us.

Jan

Signature · 2 lines
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
#3 lore raw
Quoted 9 lines · Jan Kiszka
Quoted 8 lines · Yaniv Kaul

Fedora 15beta/x64, latest git:
[ykaul@ykaul qemu]$ make
CC x86_64-softmmu/kvm.o
/home/ykaul/qemu/target-i386/kvm.c: In function ‘kvm_get_xsave’:
/home/ykaul/qemu/target-i386/kvm.c:953:29: error: variable ‘fop’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

Quoted 8 lines
Quoted 3 lines

make[1]: *** [kvm.o] Error 1
make: *** [subdir-x86_64-softmmu] Error 2

This one looks a bit suspicious:

Avi, why do we have kvm_fpu::last_* in the ABI, copying that information from/to user land, but do not handle it otherwise?

We have in in the ABI because it is part of the FPU state. We don't handle it, because likely qemu tcg never emulated it and thus we never had anywhere to stow it.

To trigger a bug here you'd need a live migration that happens after an x87 fpu instruction that causes an exception but before the next fpu instruction (which would trigger an exception), plus an exception handler that reads this information (I think Linux doesn't), plus an application that cares about the data...

Note the kernel does handle it correctly.

Quoted 4 lines

To my understanding
this fop here in xsave corresponds to kvm_fpu::last_opcode in the SET/GET_FPU case, right? It's set to 0 on SET_XSAVE and ignored on GET_XSAVE as this warnings tells us.

We have exactly the same issue in kvm_get_fpu(), just with no warning.

Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.