diff -urwp kqemu.orig/common/Makefile kqemu/common/Makefile --- kqemu.orig/common/Makefile 2008-09-14 09:40:51.000000000 -0400 +++ kqemu/common/Makefile 2008-10-29 11:32:38.000000000 -0400 @@ -28,8 +28,8 @@ cc-option = $(shell if test -z "`$(1) $( /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) HOST_CC=gcc -MON_CC=gcc -MON_LD=ld +MON_CC=$(CC) +MON_LD=ld -m elf_$(ARCH) ifdef CONFIG_WIN32 TARGET=../kqemu-mod-$(ARCH)-win32.o CC=i386-mingw32-gcc @@ -116,10 +116,10 @@ genmon: genmon.c $(HOST_CC) $(TOOLS_CFLAGS) -o $@ $< %.o: %.c - $(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -c -o $@ $< + $(CC) $(ASMMFLAG) $(CFLAGS) $(DEFINES) $(INCLUDES) -c -o $@ $< %.o: %.S - $(CC) $(DEFINES) $(INCLUDES) -D__ASSEMBLY__ -c -o $@ $< + $(CC) $(ASMMFLAG) $(DEFINES) $(INCLUDES) -D__ASSEMBLY__ -c -o $@ $< clean: rm -f *.o *~ monitor-image.h genoffsets genmon monitor_def.h \ diff -urwp kqemu.orig/config-host.mak kqemu/config-host.mak --- kqemu.orig/config-host.mak 2008-10-29 09:23:04.000000000 -0400 +++ kqemu/config-host.mak 2008-10-29 10:17:30.000000000 -0400 @@ -13,6 +13,7 @@ CFLAGS=-O2 LDFLAGS= EXESUF= ARCH=i386 +ASMMFLAG=-m32 KERNEL_PATH=/lib/modules/2.6.26-1-686/build CONFIG_KBUILD26=yes SRC_PATH=/usr/src/modules/kqemu diff -urwp kqemu.orig/configure kqemu/configure --- kqemu.orig/configure 2008-09-14 09:40:51.000000000 -0400 +++ kqemu/configure 2008-10-29 11:18:08.000000000 -0400 @@ -275,6 +275,19 @@ if test '!' -f "$kernel_path/Makefile" ; kqemu="no" fi +if test "$kqemu" = "yes" ; then + if grep '^CONFIG_X86_64=y$' $kernel_path/.config; then + ARCH=x86_64 + ASMMFLAG="-m64 -march=k8" + elif grep '^CONFIG_X86_32=y$' $kernel_path/.config; then + ARCH=i386 + ASMMFLAG="-m32 -march=generic" + else + echo "This kernel lacks CONFIG_X86_64 and CONFIG_X86_32 - kqemu cannot be built" + kqemu="no" + fi +fi + # find build system (2.6 or legacy) kbuild26="yes" if grep -q "PATCHLEVEL = 4" $kernel_path/Makefile ; then @@ -325,14 +338,16 @@ echo "STRIP=$strip -s -R .comment -R .no echo "CFLAGS=$CFLAGS" >> $config_mak echo "LDFLAGS=$LDFLAGS" >> $config_mak echo "EXESUF=$EXESUF" >> $config_mak -if test "$cpu" = "i386" ; then - echo "ARCH=i386" >> $config_mak -elif test "$cpu" = "x86_64" ; then - echo "ARCH=x86_64" >> $config_mak -else - echo "Unsupported CPU" - exit 1 -fi +#if test "$cpu" = "i386" ; then +# echo "ARCH=i386" >> $config_mak +#elif test "$cpu" = "x86_64" ; then +# echo "ARCH=x86_64" >> $config_mak +#else +# echo "Unsupported CPU" +# exit 1 +#fi +echo "ARCH=$ARCH" >> $config_mak +echo "ASMMFLAG=$ASMMFLAG" >> $config_mak if test "$bigendian" = "yes" ; then echo "WORDS_BIGENDIAN=yes" >> $config_mak fi diff -urwp kqemu.orig/debian/rules kqemu/debian/rules --- kqemu.orig/debian/rules 2008-09-14 09:40:53.000000000 -0400 +++ kqemu/debian/rules 2008-10-29 11:28:53.000000000 -0400 @@ -63,7 +63,7 @@ binary-modules: prep-deb-files dh_clean -k # Build the module - ./configure --kernel-path=$(KSRC) + ./configure --kernel-path=$(KSRC) --cc=$(CC) --host-cc=$(CC) $(MAKE) # Install the module