kbuild patch (20a468b51325b3636785a8ca0047ae514b39cbd5) breaks parallels-config

From: Thomas Glanzmann
Date: Mon Jun 05 2006 - 12:48:51 EST


Hello Sam,
I use parallels, a hypervisor based virtual machine, for Linux which
ships with binary kernel modules and a bit of gluecode. After your
commit 20a468b51325b3636785a8ca0047ae514b39cbd5 in the linux kernel the
compilation of this kernel modules ends up in an endless-loop. I don't
think that this is a problem of the kernel build system but the way
paralles does abuse the kernel build system (they use autoconf to
generate a makefile which looks obvious broken). However I tracked the
offending delta down to the following:

(mini) [~/work/linux-2.6] git diff -R
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index acd3b96..e48e60d 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -10,11 +10,12 @@ __build:
# Read .config if it exist, otherwise ignore
-include .config

+include scripts/Kbuild.include
+
# The filename Kbuild has precedence over Makefile
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile)

-include scripts/Kbuild.include
include scripts/Makefile.lib

ifdef host-progs

If you reverse apply this delta of your patch, it works again. I don't
get what is going wrong here, but maybe you want to have a look at it.

To reproduce:

* Go to http://www.parallels.com/en/download/ and download the packages for your distribution

cd /usr/lib/parallels
./configure
make

if you do this with a recent kernel version (newer than
20a468b51325b3636785a8ca0047ae514b39cbd5) it ends in an endless-loop
otherwise it works.

The broken parallels makefiles are in:

/usr/lib/parallels/drivers/drv_net/linux/Makefile
/usr/lib/parallels/drivers/drv_net/Makefile
/usr/lib/parallels/drivers/drv_virtualnic/Makefile
/usr/lib/parallels/drivers/drv_main/Makefile
/usr/lib/parallels/drivers/hypervisor/Makefile <<<<< This is the first one which breaks. The other follow.
/usr/lib/parallels/drivers/Makefile

I also created a website for my findings: http://thomas.glanzmann.de/parallels/

Thomas [who thanks Linus for git bisect]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/