Any further comments on this? I would really like to see KVM build out- of-the-box on SUSE kernels (and kernels built with O= at the same time).

Alex

On 15.09.2008, at 16:19, Alexander Graf wrote:

KVM as is assumes that the kernel obj dir and the kernel source dir are at the same location. This is true for most self-built vanilla kernels, but some distributions split these up (e.g. SUSE). To keep compatible and have users have a good experience on building KVM on any distribution, this patch attempts to rebuild the logic from the kernel Makefile as closely as possible. With it I successfully built KVM on a current SUSE system.

Signed-off-by: Alexander Graf <[EMAIL PROTECTED]>

Please check and see if it breaks the build process for anyone else. Building with IA64 on SUSE-kernels is still broken due to similar but separate problems.


diff --git a/configure b/configure
index 3bb10ce..5e9cbab 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,7 @@
#!/bin/bash

prefix=/usr/local
+kernelsourcedir=
kerneldir=/lib/modules/$(uname -r)/build
cc=gcc
ld=ld
@@ -102,6 +103,11 @@ if [ "$arch" = "powerpc" ]; then
    qemu_ldflags="$qemu_ldflags -L $PWD/libfdt"
fi

+# see if we have split build and source directories
+if [ -d "$kerneldir/include2" ]; then
+    kernelsourcedir=${kerneldir%/*}/source
+fi
+
#configure user dir
(cd user; ./configure --prefix="$prefix" -- kerneldir="$libkvm_kerneldir" \
          --arch="$arch" \
@@ -124,6 +130,7 @@ cat <<EOF > config.mak
ARCH=$arch
PREFIX=$prefix
KERNELDIR=$kerneldir
+KERNELSOURCEDIR=$kernelsourcedir
LIBKVM_KERNELDIR=$libkvm_kerneldir
WANT_MODULE=$want_module
CROSS_COMPILE=$cross_prefix
diff --git a/kernel/Makefile b/kernel/Makefile
index 3f5f6da..d2cf89c 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -36,7 +36,9 @@ hack-files = $(hack-files-$(ARCH_DIR))
all:: header-link prerequisite
#       include header priority 1) $LINUX 2) $KERNELDIR 3) include-compat
        $(MAKE) -C $(KERNELDIR) M=`pwd` \
- LINUXINCLUDE="-I`pwd`/include -Iinclude -Iarch/${ARCH_DIR}/ include -I`pwd`/include-compat \
+               LINUXINCLUDE="-I`pwd`/include -Iinclude \
+               $(if $(KERNELSOURCEDIR),-Iinclude2 
-I$(KERNELSOURCEDIR)/include) \
+               -Iarch/${ARCH_DIR}/include -I`pwd`/include-compat \
                -include include/linux/autoconf.h \
                -include `pwd`/$(ARCH_DIR)/external-module-compat.h"
                "$$@"

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to