2 Replies Latest reply on Jul 13, 2008 8:16 AM by kramfs

    compile vsock during installation

    stu_dan Lurker


      Hi all






      I'm using Ubuntu 8.04 (beta). During the installation of VMWare Server 2.0 beta the script needs to build the vsock module.



      Here is the console output:



      Extracting the sources of the vsock module.


      Building the vsock module.


      Using 2.6.x kernel build system.

      make: Gehe in Verzeichnis '/tmp/vmware-config0/vsock-only'

      make -C /lib/modules/2.6.24-12-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

      make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.24-12-generic'

      CC   /tmp/vmware-config0/vsock-only/linux/af_vsock.o

      In file included from /tmp/vmware-config0/vsock-only/linux/af_vsock.c:92:

      /tmp/vmware-config0/vsock-only/./include/compat_wait.h:64: Fehler: In Konflikt stehende Typen für »poll_initwait«

      include/linux/poll.h:65: Fehler: Vorherige Deklaration von »poll_initwait« war hier

      /tmp/vmware-config0/vsock-only/linux/af_vsock.c:260: Warnung: Initialisierung von inkompatiblem Zeigertyp

      /tmp/vmware-config0/vsock-only/linux/af_vsock.c: In Funktion »__VSockVmciCreate«:

      /tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: Warnung: Übergabe des Arguments 1 von »sk_alloc« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung

      /tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: Warnung: Übergabe des Arguments 3 von »sk_alloc«  erzeugt Ganzzahl von Zeiger ohne Typkonvertierung

      /tmp/vmware-config0/vsock-only/linux/af_vsock.c:1789: Warnung: Übergabe des Arguments 4 von »sk_alloc« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung

      make[2]: *** /tmp/vmware-config0/vsock-only/linux/af_vsock.o Fehler 1

      make[1]: *** Fehler 2

      make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.24-12-generic'

      make: *** http://vsock.ko Fehler 2

      make: Verlasse Verzeichnis '/tmp/vmware-config0/vsock-only'

      Unable to build the vsock module.



      There is a preprocessor statement for the function pool_initwait "#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)", but no such statement for the parameter compat_poll_wqueue.



      I guess the file compat_wait.h should be edited and some extra lines should be added (line 43/44) cause there is a struct in pool.h. The following is not tested yet:



      #ifdef VMW_HAVE_EPOLL // {

      #define compat_poll_wqueues struct poll_wqueues

      #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // } {

      #define compat_poll_wqueues struct poll_wqueues

      #else // } {

      #define compat_poll_wqueues poll_table

      #endif // }






      struct poll_wqueues {

      poll_table pt;

      struct poll_table_page * table;

      int error;

      int inline_index;

      struct poll_table_entry inline_entries[IN_INLINE_POLL_ENTRIES];



      extern void poll_initwait(struct poll_wqueues *pwq);