Messages in this thread |  | | Subject | Re: Build failures since 5.4-rc3 | | From | Larry Finger <> | | Date | Tue, 15 Oct 2019 15:27:23 -0500 |
| |
On 10/15/19 2:32 PM, Joe Perches wrote: > > Hey Larry. > > > Looks like this should be: > > #define FALL_THROUGH __attribute__((__fallthrough__)) > > and there appear to be many of these #defines that > use __attribute__((foo)) where foo does not use the > double underscored prefix and suffix form > > I also downloaded and trivially attempted to build vbox > without success, but I don't find this #define anywhere > in the sources. Clues? > > $ git clone git://github.com/mirror/vbox.git > $ cd vbox > > $ git grep FALL_THROUGH > $ > > $ ./configure > Checking for environment: Determined build machine: linux.amd64, target machine: linux.amd64, OK. > Checking for kBuild: > ** kmk (variable KBUILDDIR) not found! > Check /home/joe/vbox/configure.log for details > > > $ cat configure.log > # Log file generated by > # > # './configure ' > # > > ***** Checking environment ***** > Determined build machine: linux.amd64, target machine: linux.amd64 > > > ***** Checking kBuild ***** > ** kmk (variable KBUILDDIR) not found! > > $
I am the maintainer of VirtualBox for openSUSE, and it is their version that has the problem.
The original code had the following macro definitions:
# define RT_FALL_THROUGH() __attribute__((fallthrough)) #define RT_FALL_THRU() RT_FALL_THROUGH()
The code uses both forms interchangeably. That failed - I think the () fooled the compiler.
I replaced those with
#define FALL_THROUGH __attribute__((__fallthrough__)) #define RT_FALL_THRU() FALL_THROUGH #define RT_FALL_THROUGH() FALL_THROUGH
My initial try was without the underscores around fallthrough, which caused a conflict with the one in your changes. Putting them back resulted in code that builds fine. Thanks for the help.
Larry
|  |