Build failures since 5.4-rc3

From: Larry Finger
Date: Tue Oct 15 2019 - 15:09:45 EST


Joe,

Since commit 294f69e662d1("compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use"), builds of VirtualBox are failing with the following errors:

1954s] In file included from /usr/src/linux-5.4.0-rc3-1.g2309d7d/include/linux/compiler_types.h:59,
[ 1954s] from <command-line>:
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/SUPDrvGip.c: In function 'supdrvTscDeltaThread':
[ 1954s] /usr/src/linux-5.4.0-rc3-1.g2309d7d/include/linux/compiler_attributes.h:200:41: error: expected ')' before '__attribute__'
[ 1954s] 200 | # define fallthrough __attribute__((__fallthrough__))
[ 1954s] | ^~~~~~~~~~~~~
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/include/iprt/cdefs.h:1169:44: note: in expansion of macro 'fallthrough'
[ 1954s] 1169 | # define FALL_THROUGH __attribute__ ((fallthrough))
[ 1954s] | ^~~~~~~~~~~
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/include/iprt/cdefs.h:1176:33: note: in expansion of macro 'FALL_THROUGH'
[ 1954s] 1176 | #define RT_FALL_THRU() FALL_THROUGH
[ 1954s] | ^~~~~~~~~~~~
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/SUPDrvGip.c:4192:17: note: in expansion of macro 'RT_FALL_THRU'
[ 1954s] 4192 | RT_FALL_THRU();
[ 1954s] | ^~~~~~~~~~~~
[ 1954s] In file included from /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/include/VBox/cdefs.h:32,
[ 1954s] from /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/SUPDrvInternal.h:37,
[ 1954s] from /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/SUPDrvGip.c:33:
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/include/iprt/cdefs.h:1169:56: error: expected identifier or '(' before ')' token
[ 1954s] 1169 | # define FALL_THROUGH __attribute__ ((fallthrough))
[ 1954s] | ^
[ 1954s] /home/abuild/rpmbuild/BUILD/VirtualBox-6.0.12/modules_build_dir/default/vboxdrv/include/iprt/cdefs.h:1176:33: note: in expansion of macro 'FALL_THROUGH'
[ 1954s] 1176 | #define RT_FALL_THRU() FALL_THROUGH
[ 1954s] | ^~~~~~~~~~~~

I think the internal macros in the Oracle code are correct - at least they worked before the patch in question was applied.

I would appreciate any suggestions.

Thanks,

Larry