Skip to contentSkip to conversation

Sync kernel headers to kvm-userspace

PATCH New Jerone Young 4 participants 15 messages Apr 14, 2008 – Apr 15, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Sync kernel headers to kvm-userspace

This patch does several things:
- Adds "make sync" of kvm kernel headers & required linux headers to kvm-userspace directory
from the kernel
- Modifies build systems of libkvm, user, & qemu so that they now include headers from this now synced includes directory
- Remove --kerneldir options from user as it is no longer needed.
- Remove --kernel-path & other refrences used in qemu as it is no longer needed

This now allows users to include headers from a kernel source that does not require any compilation. It will also work if the kernel source is compiled, as make sync can determines the correct directories to pull headers from.

This patch is to address earlier email that Hollis Blanchard had as he uses O= option when compiling his kernels, so the kernel source is never modified.
http://marc.info/?l=kvm-devel&m=119995898027254&w=2

10 files changed, 31 insertions(+), 23 deletions(-)
Makefile                |   21 ++++++++++++++++++++-
configure               |    8 +++++---
libkvm/Makefile         |    6 +++---
qemu/Makefile.target    |    3 +--
qemu/configure          |    7 +------
user/Makefile           |    1 +
user/config-i386.mak    |    1 -
user/config-powerpc.mak |    1 -
user/config-x86_64.mak  |    1 -
user/configure          |    5 -----

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#1 lore raw

PATCH 1/1 Add "make sync" to sync need kernel headers to kvm-userspace

2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

Makefile +20 -1
@@ -7,7 +7,7 @@ rpmrelease = devel
 
 .PHONY: kernel user libkvm qemu bios vgabios extboot clean libfdt
 
-all: libkvm qemu
+all: sync libkvm qemu
 ifneq '$(filter $(ARCH), x86_64 i386 ia64)' ''
     all: $(if $(WANT_MODULE), kernel) user
 endif
@@ -69,6 +69,24 @@ install:
 	make -C libkvm DESTDIR="$(DESTDIR)" install
 	make -C qemu DESTDIR="$(DESTDIR)" install
 
+
+ASM_DIR=$(ARCH)
+ifneq '$(filter $(ARCH), i386 x86_64)' ''
+	ASM_DIR=x86
+endif
+
+sync:
+	mkdir -p $(INCLUDES_DIR)
+	mkdir -p $(INCLUDES_DIR)/asm-$(ASM_DIR)
+	mkdir -p $(INCLUDES_DIR)/linux
+	cp -f $(KERNELDIR)/include/asm-$(ASM_DIR)/kvm*.h \
+		$(INCLUDES_DIR)/asm-$(ASM_DIR)/
+	cp -f $(KERNELDIR)/include/linux/kvm*.h \
+		$(KERNELDIR)/include/linux/compiler*.h \
+		$(INCLUDES_DIR)/linux
+	ln -sf  $(INCLUDES_DIR)/asm-$(ASM_DIR) $(INCLUDES_DIR)/asm
+
+
 tmpspec = .tmp.kvm.spec
 RPMTOPDIR = $$(pwd)/rpmtop
 
@@ -99,3 +117,4 @@ clean:
 
 distclean: clean
 	rm -f config.mak user/config.mak
+	rm -rf $(INCLUDES_DIR)
configure +5 -3
@@ -10,6 +10,7 @@ cross_prefix=
 cross_prefix=
 arch=`uname -m`
 target_exec=
+local_kernel_includes_dir=$PWD/includes
 
 usage() {
     cat <<-EOF
@@ -108,16 +109,16 @@ fi
 fi
 
 #configure user dir
-(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir" \
+(cd user; ./configure --prefix="$prefix" \
           --arch="$arch" \
           ${cross_prefix:+"--cross-prefix=$cross_prefix"})
 
 #configure qemu
 (cd qemu; ./configure --target-list=$target_exec \
     --disable-kqemu \
-    --extra-cflags="-I $PWD/../libkvm $qemu_cflags" \
+    --extra-cflags="-I $PWD/../libkvm $qemu_cflags \
+               -I $local_kernel_includes_dir" \
     --extra-ldflags="-L $PWD/../libkvm $qemu_ldflags" \
-    --kernel-path="$libkvm_kerneldir" \
     --prefix="$prefix" \
     ${qemu_cc:+"--cc=$qemu_cc"} \
     ${cross_prefix:+"--cross-prefix=$cross_prefix"} \
@@ -131,4 +132,5 @@ KERNELDIR=$kerneldir
 KERNELDIR=$kerneldir
 WANT_MODULE=$want_module
 CROSS_COMPILE=$cross_prefix
+INCLUDES_DIR=$local_kernel_includes_dir
 EOF

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#11 lore raw

PATCH 1/1 Fix libfdt to include synced headers

In reply to Jerone Young
1 file changed, 3 insertions(+), 3 deletions(-)

libkvm/Makefile | 6 +++---

This modifies libfdt makefile to now include from synced header directory.

libkvm/Makefile +3 -3
@@ -10,7 +10,7 @@ CFLAGS += $(autodepend-flags) -g -fomit-
 CFLAGS += $(autodepend-flags) -g -fomit-frame-pointer -Wall
 CFLAGS += $(call cc-option, -fno-stack-protector, "")
 CFLAGS += $(call cc-option, -fno-stack-protector-all, "")
-CFLAGS += -I $(KERNELDIR)/include
+CFLAGS += -I $(INCLUDES_DIR)
 
 LDFLAGS += $(CFLAGS)
 
@@ -26,9 +26,9 @@ libkvm.a: libkvm.o $(libkvm-$(ARCH)-objs
 
 install:
 	install -D libkvm.h $(DESTDIR)/$(PREFIX)/include/libkvm.h
-	install -D $(KERNELDIR)/include/linux/kvm.h \
+	install -D $(INCLUDES_DIR)/linux/kvm.h \
 		$(DESTDIR)/$(PREFIX)/include/linux/kvm.h
-	install -D $(KERNELDIR)/include/linux/kvm_para.h \
+	install -D $(INCLUDES_DIR)/linux/kvm_para.h \
 		$(DESTDIR)/$(PREFIX)/include/linux/kvm_para.h
 	install -D libkvm.a $(DESTDIR)/$(PREFIX)/$(LIBDIR)/libkvm.a
 

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#12 lore raw

PATCH 1/1 Fix user to include synced headers & remove kerneldir option

In reply to Jerone Young
5 files changed, 1 insertion(+), 8 deletions(-)
user/Makefile           |    1 +
user/config-i386.mak    |    1 -
user/config-powerpc.mak |    1 -
user/config-x86_64.mak  |    1 -
user/configure          |    5 -----

This patch fixes user directory to now include synced headers. It also removes the kerneldir option, as it is no longer needed.

user/Makefile +1 -0
@@ -28,6 +28,7 @@ CFLAGS += $(call cc-option, -fno-stack-p
 CFLAGS += $(call cc-option, -fno-stack-protector, "")
 CFLAGS += $(call cc-option, -fno-stack-protector-all, "")
 CFLAGS += -I ../libkvm
+CFLAGS += $(INCLUDES_DIR)
 
 LDFLAGS += $(CFLAGS) -L ../libkvm
 
user/config-i386.mak +0 -1
@@ -4,7 +4,6 @@ ldarch = elf32-i386
 ldarch = elf32-i386
 CFLAGS += -m32
 CFLAGS += -D__i386__
-CFLAGS += -I $(KERNELDIR)/include
 
 tests=
 
user/config-powerpc.mak +0 -1
@@ -30,7 +30,6 @@ all: kvmctl $(tests) $(simpletests)
 
 CFLAGS += -m32
 CFLAGS += -D__powerpc__
-CFLAGS += -I $(KERNELDIR)/include
 CFLAGS += -Wa,-mregnames
 
 $(simpletests): %.bin: %.o
user/config-x86_64.mak +0 -1
@@ -4,7 +4,6 @@ ldarch = elf64-x86-64
 ldarch = elf64-x86-64
 CFLAGS += -m64
 CFLAGS += -D__x86_64__
-CFLAGS += -I $(KERNELDIR)/include
 
 tests = $(TEST_DIR)/access.flat $(TEST_DIR)/irq.flat $(TEST_DIR)/sieve.flat \
       $(TEST_DIR)/simple.flat $(TEST_DIR)/stringio.flat \
user/configure +0 -5
@@ -18,7 +18,6 @@ usage() {
 	    --cc=CC		   c compiler to use ($cc)
 	    --ld=LD		   ld linker to use ($ld)
 	    --prefix=PREFIX        where to install things ($prefix)
-	    --kerneldir=DIR        kernel build directory for kvm.h ($kerneldir)
 EOF
     exit 1
 }
@@ -33,9 +32,6 @@ while [[ "$1" = -* ]]; do
     case "$opt" in
 	--prefix)
 	    prefix="$arg"
-	    ;;
-	--kerneldir)
-	    kerneldir="$arg"
 	    ;;
         --arch)
 	    arch="$arg"
@@ -60,7 +56,6 @@ done
 
 cat <<EOF > config.mak
 PREFIX=$prefix
-KERNELDIR=$(readlink -f $kerneldir)
 ARCH=$arch
 CC=$cross_prefix$cc
 LD=$cross_prefix$ld

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#13 lore raw

PATCH 1/1 Remove kvm kernel-path option from qemu

In reply to Jerone Young
2 files changed, 2 insertions(+), 8 deletions(-)
qemu/Makefile.target |    3 +--
qemu/configure       |    7 +------

Now that kvm headers are synced locally, qemu does not need a specific option to find the kernel headers as they can now be specified in the --extra-cflags option.

qemu/Makefile.target +1 -2
@@ -546,8 +546,7 @@ SOUND_HW += gus.o gusemu_hal.o gusemu_mi
 SOUND_HW += gus.o gusemu_hal.o gusemu_mixer.o
 endif
 
-ifdef CONFIG_KVM_KERNEL_INC
-CFLAGS += -I $(CONFIG_KVM_KERNEL_INC)
+ifeq ($(USE_KVM), 1)
 LIBS += -lkvm
 DEPLIBS += ../libkvm/libkvm.a
 endif
qemu/configure +1 -6
@@ -102,7 +102,6 @@ kvm="no"
 kvm="no"
 kvm_cap_pit="no"
 profiler="no"
-kernel_path=""
 cocoa="no"
 check_gfx="yes"
 check_gcc="yes"
@@ -305,8 +304,6 @@ for opt do
   ;;
   --enable-profiler) profiler="yes"
   ;;
-  --kernel-path=*) kernel_path="$optarg"
-  ;;
   --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
   ;;
   --disable-gfx-check) check_gfx="no"
@@ -418,7 +415,6 @@ echo ""
 echo ""
 echo "kqemu kernel acceleration support:"
 echo "  --disable-kqemu          disable kqemu support"
-echo "  --kernel-path=PATH       set the kernel path (configure probes it)"
 echo "  --disable-kvm            disable kernel virtual machine support"
 echo ""
 echo "Advanced options (experts only):"
@@ -627,7 +623,7 @@ cat > $TMPC <<EOF
 #endif
 int main(void) { return 0; }
 EOF
-    if $cc $ARCH_CFLAGS $CFLAGS -I"$kernel_path"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
+    if $cc $ARCH_CFLAGS $CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
 	kvm_cap_pit="yes"
     fi
 fi
@@ -1184,7 +1180,6 @@ configure_kvm() {
           \( "$cpu" = "i386" -o "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "powerpc" \); then
     echo "#define USE_KVM 1" >> $config_h
     echo "USE_KVM=1" >> $config_mak
-    echo "CONFIG_KVM_KERNEL_INC=$kernel_path/include" >> $config_mak
     if test $kvm_cap_pit = "yes" ; then
 	echo "USE_KVM_PIT=1" >> $config_mak
     fi

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#2 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

In reply to Jerone Young
Quoted 6 lines · Jerone Young
2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

Please just keep a copy of the kernel headers in the userspace tree so it can be built standalone.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#3 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

Quoted 7 lines · Christoph Hellwig
Quoted 5 lines · Jerone Young
2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

Quoted 7 lines
Quoted 2 lines

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

Please just keep a copy of the kernel headers in the userspace tree so it can be built standalone.

The tarballs do contain a copy of the kernel headers; the 'make sync' mechanism is for developers to generate the tarballs without keeping the sources duplicated in git.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
#4 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

Quoted 8 lines · Avi Kivity
Quoted 4 lines

Please just keep a copy of the kernel headers in the userspace tree so it can be built standalone.

The tarballs do contain a copy of the kernel headers; the 'make sync' mechanism is for developers to generate the tarballs without keeping the sources duplicated in git.

It would be nice to just be able to build kvm from git without a kernel around. The lack of that is what in fact keeps from hacking kvm userspace currently.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#5 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

Quoted 4 lines · Christoph Hellwig

It would be nice to just be able to build kvm from git without a kernel around. The lack of that is what in fact keeps from hacking kvm userspace currently.

It would be nice, but committing all header changes twice is not so nice and error prone as well.

Anyone serious about hacking kvm-userspace would not be deterred by the additional clone.

[maybe we can provide an automatically-generated git tree that has only the kernel headers?]

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
#9 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

In reply to Jerone Young
Quoted 7 lines · Jerone Young
2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

make sync in kernel/ already does this. Why not just add PPC support there.

Regards,

Anthony Liguori

Quoted 83 lines
Makefile +20 -1
@@ -7,7 +7,7 @@ rpmrelease = devel
 
 .PHONY: kernel user libkvm qemu bios vgabios extboot clean libfdt
 
-all: libkvm qemu
+all: sync libkvm qemu
 ifneq '$(filter $(ARCH), x86_64 i386 ia64)' ''
     all: $(if $(WANT_MODULE), kernel) user
 endif
@@ -69,6 +69,24 @@ install:
 	make -C libkvm DESTDIR="$(DESTDIR)" install
 	make -C qemu DESTDIR="$(DESTDIR)" install
 
+
+ASM_DIR=$(ARCH)
+ifneq '$(filter $(ARCH), i386 x86_64)' ''
+	ASM_DIR=x86
+endif
+
+sync:
+	mkdir -p $(INCLUDES_DIR)
+	mkdir -p $(INCLUDES_DIR)/asm-$(ASM_DIR)
+	mkdir -p $(INCLUDES_DIR)/linux
+	cp -f $(KERNELDIR)/include/asm-$(ASM_DIR)/kvm*.h \
+		$(INCLUDES_DIR)/asm-$(ASM_DIR)/
+	cp -f $(KERNELDIR)/include/linux/kvm*.h \
+		$(KERNELDIR)/include/linux/compiler*.h \
+		$(INCLUDES_DIR)/linux
+	ln -sf  $(INCLUDES_DIR)/asm-$(ASM_DIR) $(INCLUDES_DIR)/asm
+
+
 tmpspec = .tmp.kvm.spec
 RPMTOPDIR = $$(pwd)/rpmtop
 
@@ -99,3 +117,4 @@ clean:
 
 distclean: clean
 	rm -f config.mak user/config.mak
+	rm -rf $(INCLUDES_DIR)
configure +5 -4
@@ -10,6 +10,7 @@ cross_prefix=
 cross_prefix=
 arch=`uname -m`
 target_exec=
+local_kernel_includes_dir=$PWD/includes
 
 usage() {
     cat <<-EOF
@@ -108,16 +109,16 @@ fi
 fi
 
 #configure user dir
-(cd user; ./configure --prefix="$prefix" --kerneldir="$libkvm_kerneldir" \
+(cd user; ./configure --prefix="$prefix" \
           --arch="$arch" \
           ${cross_prefix:+"--cross-prefix=$cross_prefix"})
 
 #configure qemu
 (cd qemu; ./configure --target-list=$target_exec \
     --disable-kqemu \
-    --extra-cflags="-I $PWD/../libkvm $qemu_cflags" \
+    --extra-cflags="-I $PWD/../libkvm $qemu_cflags \
+               -I $local_kernel_includes_dir" \
     --extra-ldflags="-L $PWD/../libkvm $qemu_ldflags" \
-    --kernel-path="$libkvm_kerneldir" \
     --prefix="$prefix" \
     ${qemu_cc:+"--cc=$qemu_cc"} \
     ${cross_prefix:+"--cross-prefix=$cross_prefix"} \
@@ -131,4 +132,5 @@ KERNELDIR=$kerneldir
 KERNELDIR=$kerneldir
 WANT_MODULE=$want_module
 CROSS_COMPILE=$cross_prefix
+INCLUDES_DIR=$local_kernel_includes_dir
 EOF
 
-------------------------------------------------------------------------
Quoted 9 lines

This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#8 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

In reply to Christoph Hellwig
Quoted 7 lines · Christoph Hellwig
Quoted 5 lines · Jerone Young
2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

Quoted 6 lines
Quoted 2 lines

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

Please just keep a copy of the kernel headers in the userspace tree so it can be built standalone.

This is what make sync in kernel/ does FWIW and what we distribute for releases.

Regards,

Anthony Liguori

Quoted 10 lines

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#6 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

In reply to Avi Kivity
Quoted 8 lines · Avi Kivity
Quoted 5 lines · Christoph Hellwig

It would be nice to just be able to build kvm from git without a kernel around. The lack of that is what in fact keeps from hacking kvm userspace currently.

Quoted 9 lines

It would be nice, but committing all header changes twice is not so nice and error prone as well.

Anyone serious about hacking kvm-userspace would not be deterred by the additional clone.

[maybe we can provide an automatically-generated git tree that has only the kernel headers?]

Then people will simply find something else to complain about :-)

I think as we split libkvm into it's own library and remove the dependency of kernel headers from libkvm consumers, this will stop being a problem in practice.

Regards,

Anthony Liguori

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

#7 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

Quoted 5 lines · Anthony Liguori

I think as we split libkvm into it's own library and remove the dependency of kernel headers from libkvm consumers, this will stop being a problem in practice.

That will take a while, as there are many structures used for libkvm<->user communications which are provided by the kernel headers, and our TODO queue is not quite empty.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
#10 lore raw

Re: [PATCH 1 of 4] Add "make sync" to sync need kernel headers to kvm-userspace

In reply to Jerone Young
Quoted 13 lines · Jerone Young
2 files changed, 25 insertions(+), 4 deletions(-)

Makefile | 21 ++++++++++++++++++++-
configure | 8 +++++---

This patch adds ability for kvm-userspace build system to sync needed kernel headers locally without the need of compiled kernel source.

Makefile rpmrelease = devel · line 11

Quoted 6 lines
Makefile +1 -1
@@ -7,7 +7,7 @@ rpmrelease = devel
 
 .PHONY: kernel user libkvm qemu bios vgabios extboot clean libfdt
 
-all: libkvm qemu
+all: sync libkvm qemu
 

'all' shouldn't include 'sync', since it's run by end users that have just the tarball, not an entire kernel.

Quoted 16 lines
Makefile +0 -0
 ifneq '$(filter $(ARCH), x86_64 i386 ia64)' ''
     all: $(if $(WANT_MODULE), kernel) user

endif

Makefile +9 -0
@@ -69,6 +69,24 @@ install:
 	make -C libkvm DESTDIR="$(DESTDIR)" install
 	make -C qemu DESTDIR="$(DESTDIR)" install
 
+
+ASM_DIR=$(ARCH)
+ifneq '$(filter $(ARCH), i386 x86_64)' ''
+	ASM_DIR=x86
+endif
+
+sync:
+	mkdir -p $(INCLUDES_DIR)
+	mkdir -p $(INCLUDES_DIR)/asm-$(ASM_DIR)

Makefile install: · line 90

Quoted 10 lines
Makefile +9 -0
+	mkdir -p $(INCLUDES_DIR)/linux
+	cp -f $(KERNELDIR)/include/asm-$(ASM_DIR)/kvm*.h \
+		$(INCLUDES_DIR)/asm-$(ASM_DIR)/
+	cp -f $(KERNELDIR)/include/linux/kvm*.h \
+		$(KERNELDIR)/include/linux/compiler*.h \
+		$(INCLUDES_DIR)/linux
+	ln -sf  $(INCLUDES_DIR)/asm-$(ASM_DIR) $(INCLUDES_DIR)/asm
+
+
 

Please use the existing infrastructure in kernel/Makefile.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
#14 lore raw

Re: [PATCH 4 of 4] Remove kvm kernel-path option from qemu

In reply to Jerone Young
Quoted 8 lines · Jerone Young
2 files changed, 2 insertions(+), 8 deletions(-)
qemu/Makefile.target |    3 +--
qemu/configure       |    7 +------

Now that kvm headers are synced locally, qemu does not need a specific option to find the kernel headers as they can now be specified in the --extra-cflags option.

I find it quite useful to compile qemu without running 'make sync' too often (using --with-patched-kernel).

These days the headers don't change so often, so maybe this is less of an issue.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone