# vmware-modules: emerge fails

## appelgebak

Hi, 

tried to emerge vmware, vmware-workstation emerges well, but every version of modules i try

fail with the same error:

```
make[3]: *** [/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/work/vmmon-only/linux/driver.o] Error 1

make[2]: *** [_module_/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/work/vmmon-only] Error 2

make[1]: *** [sub-make] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.24-rc6'

make: *** [vmmon.ko] Error 2

 *

 * ERROR: app-emulation/vmware-modules-1.0.0.17 failed.

 * Call stack:

 *               ebuild.sh, line   46:  Called src_compile

 *             environment, line 3165:  Called linux-mod_src_compile

 *             environment, line 2408:  Called die

 * The specific snippet of code:

 *               emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} || diefunc "$FUNCNAME" "$LINENO" "$?" "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}.";

 *  The die message:

 *   Unable to make   auto-build VMWARE_VER=VME_V6 KERNEL_DIR=/usr/src/linux KBUILD_OUTPUT=/lib/modules/2.6.24-rc6/build.

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/temp/environment'.

 *

 * Messages for package app-emulation/vmware-modules-1.0.0.17:

 *

 * ERROR: app-emulation/vmware-modules-1.0.0.17 failed.

 * Call stack:

 *               ebuild.sh, line   46:  Called src_compile

 *             environment, line 3165:  Called linux-mod_src_compile

 *             environment, line 2408:  Called die

 * The specific snippet of code:

 *               emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} || diefunc "$FUNCNAME" "$LINENO" "$?" "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}.";

 *  The die message:

 *   Unable to make   auto-build VMWARE_VER=VME_V6 KERNEL_DIR=/usr/src/linux KBUILD_OUTPUT=/lib/modules/2.6.24-rc6/build.

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17/temp/environment'.

```

The not-masked versions fail also.

I googled for the problem, but got no solution.

Any help welcome....

Emerge info:

```
Portage 2.1.4_rc14 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-rc6 i686)

=================================================================

System uname: 2.6.24-rc6 i686 AMD Athlon(TM) XP 1800+

Timestamp of tree: Sat, 05 Jan 2008 13:00:01 +0000

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.1.3

dev-lang/python:     2.4.4-r4, 2.5.1-r4

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.10-r5

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.23-r3

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer -fno-strict-aliasing"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"

CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer -fno-strict-aliasing"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks fixpackages metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="de_DE.utf8"

LC_ALL="de_DE.utf8"

LINGUAS="de"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi alsa arts avi berkdb bitmap-fonts bonobo cairo cdr cli cracklib crypt ctype cups dbus decss dri dvb dvd dvdr dvdread eds emboss encode esd evo fam ffmpeg firefox flac fortran gb gd gdbm gif gnome gpg gpm gstreamer gtk hal iconv ipod isdnlog jpeg kde kdeenablefinal kdexdeltas kerberos ldap libg++ libusb libwww lm_sensors lvm mad matrox mga midi mikmod mjpeg mmx mono motif mozilla mp3 mpeg mudflap mysql ncurses nls nptl nptlonly nsplugin ogg oggvorbis opengl openmp oss pam pcre pdf pdflib perl png postgres pppd python qt qt3 qt3support qt4 quicktime readline reflection sdl session slang snmp spell spl ssl svg tcl tcpd tex tiff tk truetype truetype-fonts type1-fonts unicode usb vorbis win32codecs x86 xfs xine xml xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse vmmouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="matrox vesa fbdev v4l vmware glint mga"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

Appel

----------

## slugbait

I have the same problem since I built a 2.6.24-rc7 kernel on my Macbook Pro:

 *Quote:*   

> /var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/./include/compat_wait.h:60: error: conflicting types for 'poll_initwait'
> 
> include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here
> 
> /var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.c:172: warning: initialization from incompatible pointer type
> ...

 

I'll just roll back to my 2.6.23 kernel for now.  VMWare is more important than sound.

----------

## Aurora

Has anyone come up with a solution for this yet?  I'm having problems emerging vmware-workstation with a 2.6.24-r7 kernel.

----------

## masteroftheuniverse

Confirmed the problem for the released 2.6.24 kernel, I'll go file a bug report or see if someone already has.

----------

## schachti

It works if you use vmware-modules-1.0.0.17-r1 from the vmware overlay.

----------

## masteroftheuniverse

Yes, r1 works.  As of now, it is in the main portage tree.

----------

## schachti

Thank you for the hint - it was not in portage some hours ago when I emerged the 2.6.24 kernel.   :Wink: 

----------

## Jenk

Hello,

I'm receiving an error when emerging vmare-modules 1.0.0.17-r1 myself:

```
 * Applying various patches (bugfixes/updates) ...

 *   021_all_wireless_fix.patch ...

 * Failed Patch: 021_all_wireless_fix.patch !

 *  ( /usr/portage/app-emulation/vmware-modules/files/patches/vmnet/021_all_wireless_fix.patch )

 * 

 * Include in your bugreport the contents of:

 * 

 *   /var/tmp/portage/app-emulation/vmware-modules-1.0.0.17-r1/temp/021_all_wireless_fix.patch-687.out

 * 

 * ERROR: app-emulation/vmware-modules-1.0.0.17-r1 failed.

 * Call stack:

 *                           ebuild.sh, line 1701:  Called dyn_unpack

 *                           ebuild.sh, line  817:  Called qa_call 'src_unpack'

 *                           ebuild.sh, line   44:  Called src_unpack

 *   vmware-modules-1.0.0.17-r1.ebuild, line   13:  Called vmware-mod_src_unpack

 *                   vmware-mod.eclass, line   82:  Called epatch '/usr/portage/app-emulation/vmware-modules/files/patches/vmnet'

 *                       eutils.eclass, line  303:  Called die

 * The specific snippet of code:

 *                              die "Failed Patch: ${patchname}!"

 *  The die message:

 *   Failed Patch: 021_all_wireless_fix.patch!

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.17-r1/temp/build.log'.

 * This ebuild used the following eclasses from overlays:

 *   /usr/local/portage/eclass/vmware.eclass

 * 
```

I can't find any info on this patch, and I don't even have/need wireless.

----------

## tecknojunky

```
Using 2.6.x kernel build system.

make -C /usr/src/linux/include/.. M=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/usr/src/linux-2.6.24-gentoo-r3'

make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

  CC [M]  /var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only/linux/block.o

In file included from /var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only/linux/os.h:35,

                 from /var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only/linux/block.c:26:

/var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only/./include/compat_wait.h:78: error: conflicting types for 'poll_initwait'

include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here

make[3]: *** [/var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only/linux/block.o] Error 1

make[2]: *** [_module_/var/tmp/paludis/app-emulation/vmware-modules-1.0.0.17-r1/work/vmblock-only] Error 2

make[1]: *** [sub-make] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.24-gentoo-r3'

make: *** [vmblock.ko] Error 2

!!! ERROR in app-emulation/vmware-modules-1.0.0.17-r1:

!!! In linux-mod_src_compile at line 3463

!!! Unable to emake HOSTCC=i686-pc-linux-gnu-gcc CC=i686-pc-linux-gnu-gcc LDFLAGS=   auto-build VMWARE_VER=VME_V6 KERNEL_DIR=/usr/src/linux KBUILD_OUTPUT=/usr/src/linux

```

----------

## guruvan

I have some diffs that should hook you up (or at least show you what to edit by hand...)

(I don't want to release it generally, cuz I'm not a coder, and my patch probably is not 100% correct.......but I'm running on it ;-> It definitely fixes the epoll & uintptr_t errors)

basically - use the overlay (layman -a vmware) these have been consistently more correct.

further, the  vanilla versions (.17 and .1 :Cool:  do not work out of the box on 2.6.24

the 1.0.0.17-r1 set (overlay....don't know if the two are the same....can't diff 'em right yet) 

will work for workstation 6 on 2.6.24 series kernels. lots of errors, but they run it.

last I installed (and I checked for someone else a minute ago) 

1.0.0.15-r1 works for server 1

1.0.0.18 which seems to have disappeared didn't work out of the box, but was fairly easily patched to get Server 2 up. (I have the ebuild here in a big o' tarball)

I am testing the 1.0.0.15-r1 for server1 against the 2.6.23-gentoo-r3 soon (waiting on kernel make) and just built these against 2.6.24-zen5 (don't have that kernel booted, and can't for a few hours to see if they'll load.

YOU MUST ENSURE THAT THE VMWARE_VER="    " in the vmware-modules-1.0.0.XX-r1.ebuild match the product you are trying to run.

----------

## guruvan

vmware-modules-1.0.0.15-r1 from layman  compiles against my new 2.6.23-gentoo-r3 src  tree

 (pretty clean compile)

vmware-modules-1.0.0.17-r1 from layman compiles against the same tree. 

lotsa warnings (but I'm running that set on my laptop with WKS V6

vmware-modules-1.0.0.16-r1 from layman compiles against the same tree

--- don't have any where to modprobe these yet. 

If you have already built modules for another kernel I highly recommend that you double check  what an "emerge" will try to unmerge (much grief.....please don't delete my modules from a directory other than where they're being installed)

----------

## tecknojunky

The ebuild from the overlay gives the same error.  Version 18 gives even more errors.

As to the VMWARE_VER variable, where is the list of accapetable values so that I can put mine.  I'm using the free vmware server 1.0.5.80187.

----------

## guruvan

This seems to all be very dependent on which product you're trying to bring up. 

I am not really a code writer, so I'm stabbing at it, but it seems that however the ebuild/patchsets are coming through, each gentoo version of the modules packages will only build modules for the version set in that string. 

All of my attempts at hacking these vmmon-only directories to set other VMMON_VERSION strings failed (so did most everyone elses......They'll build ok, and then load ok, and the vmware product complains that its not the right version

a quick grep -r VMMON in the 15-r1/vmmon-only gets this list (incomplete.....)

```
include/iocontrols_compat.h:#define VMMON_VERSION_GSX1      (3 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V3        (8 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V32       (10 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_GSX2      (21 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V321      (30 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_GSX25     (41 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_GSX251    (42 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V4        (52 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V45       (79 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V452      (81 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_GSX32     (85 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V5        (116 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V55       (137 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_S1B1      (138 << 16 | 0)

include/iocontrols_compat.h:#define VMMON_VERSION_V6        (161 << 16 | 0)

```

That list is missing VMMON_VERSION_S2 (187 << 16|0)  for vmware-server-2

S1B1 = server version 1.?? (at least 1.04)  VMMON version 138

I've hacked at this so much, I think my ebuilds may have different VMWARE_VER. 

grep VMMON_VER [layman]/vmware/app-emulation/vmware-modules/*.ebuild should give you the correct values (which I cannot until I can resync)

In my world I have the following combos

WKS V6, modules-1.0.0.17-r1, 2.6.24-zen3-meromCeleronM-5-g94c39279

Svr2, modules-1.0.0.18 with the following diff, and 2.6.24-zen3-xeonsmp-4-g94c39279

Here's a diff. I originally got a patch from somewhere on the vmware forums. It did not apply for me. (a couple hunks did, but mostly not....however, finding the sections of code by hand & replacing got this going

The original patch I found worked for earlier version of the modules. I will try to hunt y'all up the link. 

```

THIS APPLIED TO THE vmware-modules-1.0.0.18 

Fixes EPOLL(pollwait) and uintptr_t related errors (I forget whatever else)

========= CUT HERE =========================================

Only in PATCHED/vmmon-only: .built

diff -ur PATCHED/vmmon-only/Makefile.kernel UNPATCHED/vmmon-only/Makefile.kernel

--- PATCHED/vmmon-only/Makefile.kernel  2008-03-17 12:09:25.000000000 -0600

+++ UNPATCHED/vmmon-only/Makefile.kernel        2007-11-09 04:27:13.000000000 -0700

@@ -6,7 +6,7 @@

 ####  VMware vmmon Makefile to be distributed externally

 ####

-vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \

+vm_check_build = $(shell if $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \

        $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\" \

        -Werror -S -o /dev/null -xc $(1) \

        > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)

diff -ur PATCHED/vmmon-only/include/vcpuset.h UNPATCHED/vmmon-only/include/vcpuset.h

--- PATCHED/vmmon-only/include/vcpuset.h        2008-03-17 12:24:22.000000000 -0600

+++ UNPATCHED/vmmon-only/include/vcpuset.h      2007-11-09 04:27:13.000000000 -0700

@@ -71,7 +71,7 @@

 #define ffs(x) ffs_x86_64(x)

 #elif defined MODULE

-   #include "linux/bitops.h"

+   #include "asm/bitops.h"

 #elif defined __APPLE__ && defined KERNEL

    /*

     * XXXMACOS An ugly hack to resolve redefinition of PAGE_ defines

diff -ur PATCHED/vmmon-only/include/vm_basic_types.h UNPATCHED/vmmon-only/include/vm_basic_types.h

--- PATCHED/vmmon-only/include/vm_basic_types.h 2008-03-17 12:09:25.000000000 -0600

+++ UNPATCHED/vmmon-only/include/vm_basic_types.h       2007-11-09 04:27:13.000000000 -0700

@@ -164,8 +164,6 @@

 #   endif

 #   ifndef _STDINT_H

-#      include <linux/version.h>

-#      if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

 #      ifdef VM_I386

 #         ifdef VM_X86_64

              typedef uint64    uintptr_t;

@@ -178,7 +176,6 @@

           typedef uint64    uintptr_t;

 #      endif

 #   endif

-#   endif

 #endif

@@ -294,7 +291,6 @@

 #define CHOOSE_PERCENT  asPercent(-1)

-#include <linux/types.h>

 typedef uintptr_t VA;

 typedef uintptr_t VPN;

Only in PATCHED/vmmon-only/include: vm_basic_types.h.orig

Only in UNPATCHED/vmmon-only/linux: .driver.o.d

Only in PATCHED/vmmon-only/linux: driver.c.orig

Only in PATCHED/vmmon-only/linux: driver.c.rej

Only in PATCHED/vmnet-only: .built

diff -ur PATCHED/vmnet-only/Makefile.kernel UNPATCHED/vmnet-only/Makefile.kernel

--- PATCHED/vmnet-only/Makefile.kernel  2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/Makefile.kernel        2007-11-09 04:27:14.000000000 -0700

@@ -7,10 +7,9 @@

 ####

 vm_check_build = $(shell if $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \

-       $(EXTRA_CFLAGS) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)                    \

-       -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\"            \

+       $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\" \

        -Werror -S -o /dev/null -xc $(1) \

-       >/dev/null 2>&1 ; then echo "$(2)"; else echo "$(3)"; fi;)

+       > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)

 CC_WARNINGS := -Wall -Wstrict-prototypes

 CC_OPTS := $(GLOBAL_DEFS) $(CC_WARNINGS)

Only in PATCHED/vmnet-only: Module.symvers

diff -ur PATCHED/vmnet-only/compat_wait.h UNPATCHED/vmnet-only/compat_wait.h

--- PATCHED/vmnet-only/compat_wait.h    2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/compat_wait.h  2007-11-09 04:27:14.000000000 -0700

@@ -38,13 +38,13 @@

  * 2.4.20-wolk4.0s.

  */

-#ifdef VMW_HAVE_EPOLL // {

+#if VMW_HAVE_EPOLL // {

 #define compat_poll_wqueues struct poll_wqueues

 #else // } {

 #define compat_poll_wqueues poll_table

 #endif // }

-#ifdef VMW_HAVE_EPOLL // {

+#if VMW_HAVE_EPOLL // {

 /* If prototype does not match, build will abort here */

 extern void poll_initwait(compat_poll_wqueues *);

Only in PATCHED/vmnet-only: compat_wait.h.orig

diff -ur PATCHED/vmnet-only/driver.c UNPATCHED/vmnet-only/driver.c

--- PATCHED/vmnet-only/driver.c 2008-03-17 12:36:33.000000000 -0600

+++ UNPATCHED/vmnet-only/driver.c       2007-11-09 04:27:14.000000000 -0700

@@ -525,21 +525,8 @@

 void

 cleanup_module(void)

 {

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

- int retval;

-#endif

-

    unregister_ioctl32_handlers();

-

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

-  retval = unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");

-  if (retval != 0 ) {

-     LOG(0, (KERN_WARNING "/dev/vmnet: could not unregister major device %d\n", VNET_MAJOR_NUMBER));

-     }

-#else /* >= 2.6.24 */

    unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");

-#endif

-

    VNetProtoUnregister();

    VNetProc_Cleanup();

 #ifdef CONFIG_NETFILTER

Only in PATCHED/vmnet-only: driver.c.orig

Only in PATCHED/vmnet-only: driver.c.rej

diff -ur PATCHED/vmnet-only/netif.c UNPATCHED/vmnet-only/netif.c

--- PATCHED/vmnet-only/netif.c  2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/netif.c        2007-11-09 04:27:14.000000000 -0700

@@ -295,10 +295,6 @@

    dev->watchdog_timeo = TX_TIMEOUT;

 #endif

 #endif

-

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)

-   dev->nd_net = &init_net;

-#endif

    if (register_netdev(dev) != 0) {

       LOG(0, (KERN_NOTICE "%s: could not register network device\n", devName));

diff -ur PATCHED/vmnet-only/sk_alloc.c UNPATCHED/vmnet-only/sk_alloc.c

--- PATCHED/vmnet-only/sk_alloc.c       2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/sk_alloc.c     2007-11-09 04:27:14.000000000 -0700

@@ -12,7 +12,6 @@

 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 13)

 #include <net/sock.h>

-#include <linux/version.h>

 static struct proto test_proto = {

    .name     = "TEST",

@@ -21,10 +20,6 @@

 struct sock *

 vmware_sk_alloc(void)

 {

-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

    return sk_alloc(PF_NETLINK, 0, &test_proto, 1);

-#else

-   return sk_alloc(&init_net, PF_NETLINK, 0, &test_proto);

-#endif

 }

 #endif

Only in PATCHED/vmnet-only: sk_alloc.c.orig

diff -ur PATCHED/vmnet-only/vm_basic_types.h UNPATCHED/vmnet-only/vm_basic_types.h

--- PATCHED/vmnet-only/vm_basic_types.h 2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/vm_basic_types.h       2007-11-09 04:27:14.000000000 -0700

@@ -164,8 +164,6 @@

 #   endif

 #   ifndef _STDINT_H

-#      include <linux/version.h>

-#      if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

 #      ifdef VM_I386

 #         ifdef VM_X86_64

              typedef uint64    uintptr_t;

@@ -178,7 +176,6 @@

           typedef uint64    uintptr_t;

 #      endif

 #   endif

-#   endif

 #endif

@@ -294,7 +291,6 @@

 #define CHOOSE_PERCENT  asPercent(-1)

-#include <linux/types.h>

 typedef uintptr_t VA;

 typedef uintptr_t VPN;

Only in PATCHED/vmnet-only: vm_basic_types.h.orig

diff -ur PATCHED/vmnet-only/vmnetInt.h UNPATCHED/vmnet-only/vmnetInt.h

--- PATCHED/vmnet-only/vmnetInt.h       2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/vmnetInt.h     2007-11-09 04:27:14.000000000 -0700

@@ -35,11 +35,7 @@

 #ifdef VMW_HAVE_SK_ALLOC_WITH_PROTO

 extern struct proto vmnet_proto;

-#   if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)

-#       define compat_sk_alloc(_pri) sk_alloc(PF_NETLINK, _pri, &vmnet_proto, 1)

-#   else

-#       define compat_sk_alloc(_pri) sk_alloc(&init_net, PF_NETLINK, _pri, &vmnet_proto)

-#   endif

+#   define compat_sk_alloc(_pri) sk_alloc(PF_NETLINK, _pri, &vmnet_proto, 1)

 #elif defined(KERNEL_2_5_5)

 #   define compat_sk_alloc(_pri) sk_alloc(PF_NETLINK, _pri, 1, NULL)

 #else

diff -ur PATCHED/vmnet-only/vnetInt.h UNPATCHED/vmnet-only/vnetInt.h

--- PATCHED/vmnet-only/vnetInt.h        2008-03-17 12:26:21.000000000 -0600

+++ UNPATCHED/vmnet-only/vnetInt.h      2007-11-09 04:27:14.000000000 -0700

@@ -29,15 +29,11 @@

     compat_skb_set_network_header(skb, sizeof (struct ethhdr)),  \

     dev_queue_xmit(skb)                                   \

   )

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 3, 15)

+#ifdef KERNEL_2_3_15

 #  define dev_lock_list()              read_lock(&dev_base_lock)

 #  define dev_unlock_list()            read_unlock(&dev_base_lock)

-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)

-#  define DEV_GET(x)                    __dev_get_by_name(&init_net, x)

-# else /* <= 2.6.24 */

 #  define DEV_GET(x)                    __dev_get_by_name(x)

-# endif

-#else  /* <= 2.3.15 */

+#else

 #  define DEV_GET(x)                   dev_get(x)

 #endif

```

Oh - I didn't post this earlier, I know have introduced an error, but I can't see it at runtime. I'll have to hunt up the original patch so you more geeky type could fix this correctly  but there's quite f few of you who need it, please have at it.

----------

## guruvan

To be clear, this applied against the vmware-modules-1.0.0.18 that came right out of the server2 package (vanilla from vmware)  

This, I believe, is the link to the patch I based this on. 

http://communities.vmware.com/servlet/JiveServlet/download/848629-5360/vmmon-2.6.24.patch

Here are some related ones

http://communities.vmware.com/servlet/JiveServlet/download/849321-5394/vmmon-2.6.24.patch

http://communities.vmware.com/servlet/JiveServlet/download/849321-5395/vmnet-2.6.24.patch

Which was based on this

http://communities.vmware.com/message/848629#848629

like I said, I'm a hack. YMMV. I don't really write code, so anything I did could have undefined results, but my hack compiles & hasn't crashed or been suffering from severe lag on any vmware product that I have running.

----------

## tecknojunky

Oh well, for now vmware is not essential.  I'll just wait that this get resolved from the tree.

----------

## enito

hi,any news about vmware-modules this oen dont compile in 2.624 and 2.6.25 ..i do back to 2.6.23 series...

greets

----------

## sandcrawler

 *enito wrote:*   

> hi,any news about vmware-modules this oen dont compile in 2.624 and 2.6.25 ..i do back to 2.6.23 series...
> 
> greets

 

vmware-modules-1.0.0.15-r1 should compile under 2.6.24, but everything is broke under 2.6.25 as I found out this week...

----------

## tecknojunky

 *sandcrawler wrote:*   

> vmware-modules-1.0.0.15-r1 should compile under 2.6.24...

 Not.

----------

