# vmware-modules + kernel 3.16.5

## Fijoldar

Hallo,

hat es schon jemand geschafft, die vmware-modules mit dem aktuell stabilen Kernel 3.16.5 zu bauen? Ich habe schon versucht, die aktuelle Version aus dem vmware Overlay zu kompilieren, aber die will auch nicht.

Hier die Fehlermeldung:

```
 * Preparing vmmon module

make -j4 HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- 'LDFLAGS=-m elf_x86_64' auto-build KERNEL_DIR=/usr/src/linux KBUILD_OUTPUT=/lib/modules/3.16.5-gentoo/build 

Using 2.6.x kernel build system.

make -C /lib/modules/3.16.5-gentoo/build SUBDIRS=$PWD SRCROOT=$PWD/. \

  MODULEBUILDDIR= modules

make[1]: Entering directory '/usr/src/linux-3.16.5-gentoo'

make[1]: Entering directory `/lib/modules/3.16.5-gentoo/build'

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.o

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.o

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driverLog.o

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/common/memtrack.o

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/common/hashFunc.o

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/common/apic.o

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.c: In function ‘HostIF_CallOnEachCPU’:

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.c:2851:4: error: too many arguments to function ‘smp_call_function’

    (void)compat_smp_call_function(*func, data, 1);

    ^

In file included from /usr/src/linux-3.16.5-gentoo/include/linux/topology.h:33:0,

                 from /usr/src/linux-3.16.5-gentoo/include/linux/gfp.h:8,

                 from /usr/src/linux-3.16.5-gentoo/include/linux/mm.h:9,

                 from /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/./include/compat_page.h:23,

                 from /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.c:32:

/usr/src/linux-3.16.5-gentoo/include/linux/smp.h:95:5: note: declared here

 int smp_call_function(smp_call_func_t func, void *info, int wait);

     ^

  CC [M]  /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/common/vmx86.o

/usr/src/linux-3.16.5-gentoo/scripts/Makefile.build:257: recipe for target '/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.o' failed

make[3]: *** [/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.o] Error 1

make[3]: *** Waiting for unfinished jobs....

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.c: In function ‘LinuxDriverSyncCallOnEachCPU’:

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.c:1252:4: error: too many arguments to function ‘smp_call_function’

    compat_smp_call_function(LinuxDriverSyncCallHook, &args, 0);

    ^

In file included from /usr/src/linux-3.16.5-gentoo/include/linux/percpu.h:6:0,

                 from /usr/src/linux-3.16.5-gentoo/include/linux/percpu-rwsem.h:6,

                 from /usr/src/linux-3.16.5-gentoo/include/linux/fs.h:30,

                 from /usr/src/linux-3.16.5-gentoo/include/linux/highmem.h:4,

                 from /var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.c:25:

/usr/src/linux-3.16.5-gentoo/include/linux/smp.h:95:5: note: declared here

 int smp_call_function(smp_call_func_t func, void *info, int wait);

     ^

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.c: At top level:

/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.c:1342:1: warning: always_inline function might not be inlinable [-Wattributes]

 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min

 ^

/usr/src/linux-3.16.5-gentoo/scripts/Makefile.build:257: recipe for target '/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/driver.o' failed

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

/usr/src/linux-3.16.5-gentoo/Makefile:1333: recipe for target '_module_/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only' failed

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

Makefile:181: recipe for target 'sub-make' failed

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

make[1]: Leaving directory '/usr/src/linux-3.16.5-gentoo'

Makefile:130: recipe for target 'vmmon.ko' failed

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

```

Entscheidend ist wohl diese Zeile hier:

```
/var/tmp/portage/app-emulation/vmware-modules-279.3-r1/work/vmmon-only/linux/hostif.c:2851:4: error: too many arguments to function ‘smp_call_function’
```

Im Bugzilla wird es auch angesprochen: https://bugs.gentoo.org/show_bug.cgi?id=462666#c41 Dort wird allerdings auf einen Patch (https://github.com/zlbruce/overlay/blob/master/app-emulation/vmware-modules/files/279-smp_call_3arg.patch) verwiesen, der bei mir fehlschlägt.

----------

## Fijoldar

Temporäre Lösung:

```
CFLAGS="-O2 -pipe -march=x86-64 -mtune=generic" emerge -1 app-emulation/vmware-modules
```

Damit konnte ich es jetzt erstmal fertig kompilieren.

----------

## Schnulli

Hallo,

hier hat es mit Deiner Lösung leider nicht hingehauen. Der gleiche Fehler beim mergen.

Scheint mir doch am Kern zu liegen, da wurde wohl etwas vergessen im Kernel ^^ 

Zeit zum kernel source syncen würde ich sagen  :Wink: 

Ach ^^ da ist ja der 17ner Kern... na sowas   :Wink: 

```

/usr/src/linux-3.16.5-gentoo/Makefile:1333: recipe for target '_module_/var/tmp/portage/app-emulation/vmware-modules-279.3/work/vmblock-only' failed

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

Makefile:181: recipe for target 'sub-make' failed

```

----------

## Schnulli

Auch mit dem 3.17.7 Kern der gleiche Fehler, ich gehe dann mal wieder auf einen LTS Kernel  :Wink: 

masking 3.14x. 3.16.x 3.17.x   :Razz: 

----------

## hafgan

 *Schnulli wrote:*   

> Auch mit dem 3.17.7 Kern der gleiche Fehler, ich gehe dann mal wieder auf einen LTS Kernel 
> 
> masking 3.14x. 3.16.x 3.17.x  

 

Wieso maskierst Du den 3.14x? Der sollte doch auch LTS sein ...

https://www.kernel.org/releases.html

----------

