All,
The kernel modules for Virtualbox 5.2.34 fail to build on the Linux 5.4
kernel. The primary errors are:
CC [M]
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.o
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.c:
In
function ‘vboxNetFltLinuxSkBufToSG’:
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.c:927:36:
error: ‘skb_frag_t’ {aka ‘struct bio_vec’} has no member named ‘size’
927 | pSG->aSegs[iSeg].cb = pFrag->size;
| ^~
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.c:928:66:
error: ‘skb_frag_t’ {aka ‘struct bio_vec’} has no member named
‘page_offset’;
did you mean ‘bv_offset’?
928 | pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) +
pFrag->page_offset;
|
^~~~~~~~~~~
|
bv_offset
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.c:943:40:
error: ‘skb_frag_t’ {aka ‘struct bio_vec’} has no member named ‘size’
943 | pSG->aSegs[iSeg].cb = pFrag->size;
| ^~
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.c:944:70:
error: ‘skb_frag_t’ {aka ‘struct bio_vec’} has no member named
‘page_offset’;
did you mean ‘bv_offset’?
944 | pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) +
pFrag->page_offset;
|
^~~~~~~~~~~
|
bv_offset
make[2]: *** [scripts/Makefile.build:266:
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt/linux/VBoxNetFlt-linux.o]
Error 1
make[1]: *** [scripts/Makefile.build:509:
/var/lib/dkms/vboxhost/5.2.34/build/vboxnetflt] Error 2
make[1]: *** Waiting for unfinished jobs....
CC [M] /var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.o
In file included from ././include/linux/compiler_types.h:59,
from <command-line>:
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c: In function
‘supdrvTscDeltaThread’:
./include/linux/compiler_attributes.h:200:41: error: expected ‘)’ before
‘__attribute__’
200 | # define fallthrough
__attribute__((__fallthrough__))
| ^~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1116:48:
note: in expansion of macro ‘fallthrough’
1116 | # define RT_FALL_THROUGH() __attribute__((fallthrough))
| ^~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1123:33:
note: in expansion of macro ‘RT_FALL_THROUGH’
1123 | #define RT_FALL_THRU() RT_FALL_THROUGH()
| ^~~~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4198:17: note: in
expansion of macro ‘RT_FALL_THRU’
4198 | RT_FALL_THRU();
| ^~~~~~~~~~~~
In file included from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/VBox/cdefs.h:29,
from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvInternal.h:34,
from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:33:
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1116:60:
error: expected identifier or ‘(’ before ‘)’ token
1116 | # define RT_FALL_THROUGH() __attribute__((fallthrough))
| ^
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1123:33:
note: in expansion of macro ‘RT_FALL_THROUGH’
1123 | #define RT_FALL_THRU() RT_FALL_THROUGH()
| ^~~~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4198:17: note: in
expansion of macro ‘RT_FALL_THRU’
4198 | RT_FALL_THRU();
| ^~~~~~~~~~~~
In file included from ././include/linux/compiler_types.h:59,
from <command-line>:
./include/linux/compiler_attributes.h:200:41: error: expected ‘)’ before
‘__attribute__’
200 | # define fallthrough
__attribute__((__fallthrough__))
| ^~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1116:48:
note: in expansion of macro ‘fallthrough’
1116 | # define RT_FALL_THROUGH() __attribute__((fallthrough))
| ^~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1123:33:
note: in expansion of macro ‘RT_FALL_THROUGH’
1123 | #define RT_FALL_THRU() RT_FALL_THROUGH()
| ^~~~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4227:17: note: in
expansion of macro ‘RT_FALL_THRU’
4227 | RT_FALL_THRU();
| ^~~~~~~~~~~~
In file included from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/VBox/cdefs.h:29,
from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvInternal.h:34,
from
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:33:
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1116:60:
error: expected identifier or ‘(’ before ‘)’ token
1116 | # define RT_FALL_THROUGH() __attribute__((fallthrough))
| ^
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/cdefs.h:1123:33:
note: in expansion of macro ‘RT_FALL_THROUGH’
1123 | #define RT_FALL_THRU() RT_FALL_THROUGH()
| ^~~~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4227:17: note: in
expansion of macro ‘RT_FALL_THRU’
4227 | RT_FALL_THRU();
| ^~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4196:20:
warning: this
statement may fall through [-Wimplicit-fallthrough=]
4196 | if (RT_FAILURE(rc))
| ^
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4201:13: note:
here
4201 | case kTscDeltaThreadState_Listening:
| ^~~~
In file included from <command-line>:
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/VBox/SUPDrvMangling.h:30:30:
warning: this statement may fall through [-Wimplicit-fallthrough=]
30 | #define RT_MANGLER(symbol) VBoxHost_##symbol
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/include/iprt/mangling.h:2219:57:
note: in expansion of macro ‘RT_MANGLER’
2219 | # define RTThreadSleep
RT_MANGLER(RTThreadSleep)
|
^~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4226:17: note: in
expansion of macro ‘RTThreadSleep’
4226 | RTThreadSleep(1);
| ^~~~~~~~~~~~~
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.c:4230:13: note:
here
4230 | case kTscDeltaThreadState_Measuring:
| ^~~~
make[2]: *** [scripts/Makefile.build:266:
/var/lib/dkms/vboxhost/5.2.34/build/vboxdrv/SUPDrvGip.o] Error 1
Any idea for a patch to build on the 5.4 kernel?