kvm-userspace build break (linux/types.h)

Hollis Blanchard
2009-02-19T21:50:16Z

A recent kernel merge breaks kvm-userspace build:
make[1]: Entering directory `/root/hollisb/kvm-userspace.git/libkvm'
gcc -m64 -D__x86_64__ -MMD -MF ./.libkvm.d -g -fomit-frame-pointer -Wall -fno-stack-protector -I /root/hollisb/kvm-userspace.git/kernel/include -c -o libkvm.o libkvm.c
In file included from /usr/include/bits/fcntl.h:24,
from /usr/include/fcntl.h:34,
from libkvm.c:30:
/usr/include/sys/types.h:46: error: conflicting types for ‘loff_t’
/usr/include/linux/types.h:30: error: previous declaration of ‘loff_t’ was here
/usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’
/usr/include/linux/types.h:13: error: previous declaration of ‘dev_t’ was here
[...]

I built like so:
./configure
make -C kernel LINUX=/path/to/kvm.git sync
make

The problem appears to be 00bfddaf7f68a6551319b536f052040c370756b0 and
cef3767852a9b1a7ff4a8dfe0969e2d32eb728df, both from Jaswinder Singh
Rajput <jaswinder@infradead.org>:
-#include <asm/types.h>
+#include <linux/types.h>

With these changes, libkvm.c ends up
including /usr/include/linux/types.h, instead of the
intended ../kernel/include/linux/types.h.

Avi, suggestions? More "make sync" hacks?

--
Hollis Blanchard
IBM Linux Technology Center