lkml.org 
[lkml]   [2018]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] UAPI: Check headers by compiling all together as C++
On Wed, Sep 05, 2018 at 11:22:47PM +0100, Al Viro wrote:
> On Wed, Sep 05, 2018 at 10:31:11PM +0300, Alexey Dobriyan wrote:
> > On Wed, Sep 05, 2018 at 09:26:36PM +0200, Greg KH wrote:
> > > On Wed, Sep 05, 2018 at 09:59:22PM +0300, Alexey Dobriyan wrote:
> > > > > On Wed, Sep 05, 2018 at 04:54:27PM +0100, David Howells wrote:
> > > > > >
> > > > > > Here's a set of patches that inserts a step into the build process to make
> > > > > > sure that the UAPI headers can all be built together with C++ (if the
> > > > > > compiler being used supports C++). All but the final patch perform fixups,
> > > > > > including:
> > > > >
> > > > > Wait, why do we care? What has recently changed to start to directly
> > > > > import kernel uapi files into C++ code?
> > > >
> > > > I think David is seriously trying to compile kernel with C++ compiler
> > > > and this is first step.
> > > >
> > > > He isn't alone. Resistance is futile. :^)
> > >
> > > "struct class" is going to be a hard one to overcome :)
> >
> > "struct class" makes you hostis publicus #1 of the Linux++ empire. :^)
>
> Don't tempt me...

<= g++-8 doesn't support C99 style initializers.
g++-8 mostly does: for example

.foo = {
[BAR] = 1,
},

doesn't work, but regular .foo = 42 does.
Additionally, g++ makes noise about order of initializators.
C++20 is supposed to make things better.

g++ supports -fpermissive which is a blessing.

clang doesn't support -fpermissive which makes everything way more
tedious and it has problems with alternatives (and IIRC vdso code).

Now with gcc version bumped recently I think __attribute__((cleanup))
is supported which makes destructor-like behaviour possible:

with_spinlock(&p->l) {
return 0;
}

with_mutex(&m) {
}

with_rcu() {
}

\
 
 \ /
  Last update: 2018-09-14 00:02    [W:0.036 / U:2.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site