VMware Cloud Community
nick_couchman
Immortal
Immortal

GPL Components - Build ESX Drivers?

I recently downloaded the GPL components from the VMware VI3 download site. One of the tarballs in that file is the Open Source pieces of the ESX drivers. Along with this is a script called build-vmkdrivers.sh. I've tried running this script, and it results in many, many errors and absolutely no correct builds. I'm running it on a CentOS 3.9 system, similar to the RHEL3 base that is used for the Service Console, and I've tried using GCC 3.2.3 (included in CentOS3) and GCC 3.3.6, to no avail. Here's a very small sample of the types of errors I get:

    • Compiling drivers/block/cciss/cciss.c

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h:124: error: syntax error before '*' token

src/include/linux/spinlock.h: In function `vmk_spin_is_locked_by_my_cpu':

src/include/linux/spinlock.h:126: error: `lock' undeclared (first use in this function)

src/include/linux/spinlock.h:126: error: (Each undeclared identifier is reported only once

src/include/linux/spinlock.h:126: error: for each function it appears in.)

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h: At top level:

src/include/linux/spinlock.h:230: error: syntax error before "spinlock_t"

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h:237: error: syntax error before "spinlock_t"

src/include/linux/spinlock.h:239: error: syntax error before '}' token

In file included from src/include/linux/fs.h:12,

from src/include/linux/capability.h:17,

from src/include/linux/binfmts.h:4,

from src/include/linux/sched.h:10,

from src/include/linux/mm.h:22,

from src/include/linux/slab.h:14,

from src/drivers/block/cciss/cciss.c:29:

src/include/linux/wait.h:90: error: syntax error before "spinlock_t"

src/include/linux/wait.h:102: error: syntax error before '}' token

src/include/linux/wait.h: In function `init_waitqueue_head':

src/include/linux/wait.h:194: error: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: error: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: error: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: error: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: error: dereferencing pointer to incomplete type

src/include/linux/wait.h:205: error: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `waitqueue_active':

src/include/linux/wait.h:253: error: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `__add_wait_queue':

src/include/linux/wait.h:266: error: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `__add_wait_queue_tail':

src/include/linux/wait.h:283: error: dereferencing pointer to incomplete type

I've also tried building these in the service console on one of my ESX hosts, but I get similar errors:

    • Compiling drivers/block/cciss/cciss.c

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h:124: syntax error before '*' token

src/include/linux/spinlock.h: In function `vmk_spin_is_locked_by_my_cpu':

src/include/linux/spinlock.h:126: `lock' undeclared (first use in this function)

src/include/linux/spinlock.h:126: (Each undeclared identifier is reported only once

src/include/linux/spinlock.h:126: for each function it appears in.)

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h: At top level:

src/include/linux/spinlock.h:230: syntax error before "spinlock_t"

In file included from src/include/linux/module.h:11,

from src/drivers/block/cciss/cciss.c:24:

src/include/linux/spinlock.h:237: syntax error before "spinlock_t"

src/include/linux/spinlock.h:239: syntax error before '}' token

In file included from src/include/linux/fs.h:12,

from src/include/linux/capability.h:17,

from src/include/linux/binfmts.h:4,

from src/include/linux/sched.h:10,

from src/include/linux/mm.h:22,

from src/include/linux/slab.h:14,

from src/drivers/block/cciss/cciss.c:29:

src/include/linux/wait.h:90: syntax error before "spinlock_t"

src/include/linux/wait.h:102: syntax error before '}' token

src/include/linux/wait.h: In function `init_waitqueue_head':

src/include/linux/wait.h:194: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: dereferencing pointer to incomplete type

src/include/linux/wait.h:199: dereferencing pointer to incomplete type

src/include/linux/wait.h:205: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `waitqueue_active':

src/include/linux/wait.h:253: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `__add_wait_queue':

src/include/linux/wait.h:266: dereferencing pointer to incomplete type

src/include/linux/wait.h: In function `__add_wait_queue_tail':

src/include/linux/wait.h:283: dereferencing pointer to incomplete type

I was wondering if anyone has successfully built these drivers from the provided source, or if you're even supposed to be able to build from these sources, and how, or if providing this is just VMware complying with a formality and you're not really supposed to be able to do anything with those sources?

Thanks - Nick

20 Replies
AK_____28
Contributor
Contributor

Nick,

     Do you still develop drivers for ESX? I'm hoping your still around.. I am completely confused and could really use a voice of experience... Thanks in advance!

0 Kudos