[vbox-dev] Build errors for vboxpci module om kernel 3.6-rc1
Larry Finger
Larry.Finger at lwfinger.net
Fri Aug 3 15:53:49 GMT 2012
Kernel 3.6-rc1 has been released. Building the VirtualBox modules against this
version results in the following errors:
CC [M] /usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o
In file included from
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPciInternal.h:34:0,
from /usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.c:38:
include/linux/iommu.h: In function ‘iommu_group_alloc’:
include/linux/iommu.h:268:2: error: implicit declaration of function ‘ERR_PTR’
[-Werror=implicit-function-declaration]
include/linux/iommu.h:268:2: warning: return makes pointer from integer without
a cast [enabled by default]
include/linux/iommu.h: At top level:
include/linux/iommu.h:311:14: warning: ‘struct notifier_block’ declared inside
parameter list [enabled by default]
include/linux/iommu.h:311:14: warning: its scope is only this definition or
declaration, which is probably not what you want [enabled by default]
include/linux/iommu.h:317:16: warning: ‘struct notifier_block’ declared inside
parameter list [enabled by default]
cc1: some warnings being treated as errors
make[3]: *** [/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o] Error 1
These two errors are fixed by the following patch file:
Index: vboxhost/vboxpci/VBoxPciInternal.h
===================================================================
--- vboxhost.orig/vboxpci/VBoxPciInternal.h
+++ vboxhost/vboxpci/VBoxPciInternal.h
@@ -22,6 +22,7 @@
#include <VBox/rawpci.h>
#include <iprt/semaphore.h>
#include <iprt/assert.h>
+#include <linux/err.h>
#ifdef RT_OS_LINUX
@@ -31,6 +32,7 @@
#ifdef VBOX_WITH_IOMMU
#include <linux/errno.h>
+#include <linux/notifier.h>
#include <linux/iommu.h>
#endif
After fixing these problems, we now get the following errors:
LD [M] /usr/share/virtualbox/src/vboxhost/vboxpci/vboxpci.o
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_attach_group':
/home/finger/wireless-testing-new/include/linux/iommu.h:258: multiple definition
of `iommu_attach_group'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:258:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_detach_group':
/home/finger/wireless-testing-new/include/linux/iommu.h:263: multiple definition
of `iommu_detach_group'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:263:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_alloc':
/home/finger/wireless-testing-new/include/linux/iommu.h:267: multiple definition
of `iommu_group_alloc'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:267:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_get_iommudata':
/home/finger/wireless-testing-new/include/linux/iommu.h:272: multiple definition
of `iommu_group_get_iommudata'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:272:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_set_iommudata':
/home/finger/wireless-testing-new/include/linux/iommu.h:278: multiple definition
of `iommu_group_set_iommudata'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:278:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_set_name':
/home/finger/wireless-testing-new/include/linux/iommu.h:282: multiple definition
of `iommu_group_set_name'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:282:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_add_device':
/home/finger/wireless-testing-new/include/linux/iommu.h:287: multiple definition
of `iommu_group_add_device'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:287:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_remove_device':
/home/finger/wireless-testing-new/include/linux/iommu.h:292: multiple definition
of `iommu_group_remove_device'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:292:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_for_each_dev':
/home/finger/wireless-testing-new/include/linux/iommu.h:297: multiple definition
of `iommu_group_for_each_dev'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:297:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function `iommu_group_get':
/home/finger/wireless-testing-new/include/linux/iommu.h:302: multiple definition
of `iommu_group_get'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:302:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function `iommu_group_put':
/home/finger/wireless-testing-new/include/linux/iommu.h:307: multiple definition
of `iommu_group_put'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:307:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_register_notifier':
/home/finger/wireless-testing-new/include/linux/iommu.h:312: multiple definition
of `iommu_group_register_notifier'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:312:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function
`iommu_group_unregister_notifier':
/home/finger/wireless-testing-new/include/linux/iommu.h:318: multiple definition
of `iommu_group_unregister_notifier'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger/wireless-testing-new/include/linux/iommu.h:318:
first defined here
/usr/share/virtualbox/src/vboxhost/vboxpci/VBoxPci.o: In function `iommu_group_id':
/home/finger/wireless-testing-new/include/linux/iommu.h:323: multiple definition
of `iommu_group_id'
/usr/share/virtualbox/src/vboxhost/vboxpci/linux/VBoxPci-linux.o:/home/finger
/wireless-testing-new/include/linux/iommu.h:323: first defined here
make[3]: *** [/usr/share/virtualbox/src/vboxhost/vboxpci/vboxpci.o] Error 1
make[2]: *** [_module_/usr/share/virtualbox/src/vboxhost/vboxpci] Error 2
make[2]: Leaving directory `/home/finger/wireless-testing-new'
make[1]: *** [vboxpci] Error 2
It seems that the header <linux/iommu.h> is being called with a different set of
configuration parameters when vboxpci/linux/VBoxPci-linux.c is compiled than for
vboxpci/VBoxPci.c. I do not feel qualified to determine which one, if either, is
correct. In my setup, I don't use vboxpci.ko, then I can accept the error in
"make" and still do the "make install" and use VBox.
Larry
More information about the vbox-dev
mailing list