Description of problem: for_each_task() seems to have vanished from kernel 2.4.20-2.48 (Phoebe 8.0.94). VMware's vmnet modules are pretty upset about that. Version-Release number of selected component (if applicable): Freshly installed Red Hat Public Beta (8.0.94) with kernel 2.4.20-2.48. VMware-workstation-3.2.0-2230.i386.rpm (with locally hacked vmware- config.pl to make it detect GCC-3.1). How reproducible: Install 8.0.94. Install VMware-workstation-3.2.0-2230.i386.rpm (availble from VMware). Patch vmware-config.pl: 1491a1492,1497 > if(substr($gcc_version, 0, 3) eq "gcc") { > my @dummy; > > @dummy = split(/ /, $gcc_version); > $gcc_version=$dummy[2]; > } Run vmware-config.pl, let it (try to) build the modules. Steps to Reproduce: 1. Install Phoebe (8.0.94) 2. Install VMware-workstation-3.2.0-2230.i386.rpm, patch vmware-config.pl 3. Execute vmware-config.pl Actual results: root.org:~ # vmware-config.pl Making sure VMware Workstation's services are stopped. [...] make: Leaving directory `/tmp/vmware-config3/vmmon-only' The module loads perfectly in the running kernel. Trying to find a suitable vmnet module for your running kernel. None of VMware Workstation's pre-built vmnet modules is suitable for [...] Extracting the sources of the vmnet module. Building the vmnet module. /bin/sh: -c: line 1: syntax error near unexpected token `(' /bin/sh: -c: line 1: `if echo gcc (GCC) 3.2.1 20030202 (Red Hat Linux 8.0 3.2.1-7) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | grep -q '^3\.0'; then echo yes; else echo no; fi' make: Entering directory `/tmp/vmware-config3/vmnet-only' `-m486' is deprecated. Use `-march=i486' or `-mcpu=i486' instead. cc1: warning: -malign-loops is obsolete, use -falign-loops cc1: warning: -malign-jumps is obsolete, use -falign-jumps cc1: warning: -malign-functions is obsolete, use -falign-functions driver.c: In function `VNetPrintPIDs': driver.c:1488: warning: implicit declaration of function `for_each_task' driver.c:1488: parse error before '{' token driver.c: At top level: driver.c:1497: parse error before '}' token driver.c:1529: warning: `VNetProcessOwnsPort' defined but not used make: *** [driver.o] Error 1 make: Leaving directory `/tmp/vmware-config3/vmnet-only' Unable to build the vmnet module. For more information on how to troubleshoot module-related problems, please visit our Web site at "http://www.vmware.com/download/modules/modules.html" and "http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html". Execution aborted. Expected results: Compilation of the modules. Works, with aforementioned patch, with Red Hat 8.0. Additional info: Changing the result of "gcc --version" between 2.9x and 3.0 was a BAD idea.
Oops, I forgot: to get vmnet compile that far, another problem has to be taken care of first: root.org:/tmp/new # diff ../vmware-config0/vmnet-only/vmnetInt.h vmnet-only/vmnetInt.h 53c53 < #ifndef KERNEL_2_5_2 --- > /* #ifndef KERNEL_2_5_2 56c56 < #endif --- > #endif */ (This prevents a duplicate declaration of major() and minor().)
the internal kernel interfaces have changed in the phoebe for the NPTL feature to work. These have become the 2.5.x interfaces (for an x in the fourties/fifties). External kernel modules may require changes to comply to the new interfaces.
Sure; nonetheless, getting other entities to invest time in rewriting kernel modules based of stuff from Linux' kernel development branch most likely will tough for the end user. I'd therefore appreciate a note from Red Hat to VMware, if that hasn't already been done, the the upcoming release will feature 2.5.x code under the 2.4.x umbrella. Hmm; is "wontfix" the appropriate tag regarding this issue within Bugzilla?