* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 18:59 Alexey Dobriyan
2018-09-05 19:26 ` Greg KH
2018-09-05 19:53 ` David Howells
0 siblings, 2 replies; 52+ messages in thread
From: Alexey Dobriyan @ 2018-09-05 18:59 UTC (permalink / raw)
To: gregkh; +Cc: linux-kernel, dhowells
> 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. :^)
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 18:59 [RFC] UAPI: Check headers by compiling all together as C++ Alexey Dobriyan
@ 2018-09-05 19:26 ` Greg KH
2018-09-05 19:31 ` Alexey Dobriyan
2018-09-05 19:53 ` David Howells
1 sibling, 1 reply; 52+ messages in thread
From: Greg KH @ 2018-09-05 19:26 UTC (permalink / raw)
To: Alexey Dobriyan; +Cc: linux-kernel, dhowells
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 :)
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 19:26 ` Greg KH
@ 2018-09-05 19:31 ` Alexey Dobriyan
2018-09-05 22:22 ` Al Viro
0 siblings, 1 reply; 52+ messages in thread
From: Alexey Dobriyan @ 2018-09-05 19:31 UTC (permalink / raw)
To: Greg KH; +Cc: linux-kernel, dhowells
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. :^)
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 19:31 ` Alexey Dobriyan
@ 2018-09-05 22:22 ` Al Viro
2018-09-13 22:01 ` Alexey Dobriyan
0 siblings, 1 reply; 52+ messages in thread
From: Al Viro @ 2018-09-05 22:22 UTC (permalink / raw)
To: Alexey Dobriyan; +Cc: Greg KH, linux-kernel, dhowells
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...
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 22:22 ` Al Viro
@ 2018-09-13 22:01 ` Alexey Dobriyan
2018-09-13 22:15 ` Al Viro
2018-09-13 23:27 ` David Howells
0 siblings, 2 replies; 52+ messages in thread
From: Alexey Dobriyan @ 2018-09-13 22:01 UTC (permalink / raw)
To: Al Viro; +Cc: Greg KH, linux-kernel, dhowells
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() {
}
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-13 22:01 ` Alexey Dobriyan
@ 2018-09-13 22:15 ` Al Viro
2018-09-13 23:27 ` David Howells
1 sibling, 0 replies; 52+ messages in thread
From: Al Viro @ 2018-09-13 22:15 UTC (permalink / raw)
To: Alexey Dobriyan; +Cc: Greg KH, linux-kernel, dhowells
On Fri, Sep 14, 2018 at 01:01:24AM +0300, Alexey Dobriyan wrote:
> > 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.
It's too early for AFD postings. And you *are* tempting
me to throw into the tree as many anti-C++ devices as can be
done tastefully, just to stop somebody attempting that insanity
in the earnest.
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-13 22:01 ` Alexey Dobriyan
2018-09-13 22:15 ` Al Viro
@ 2018-09-13 23:27 ` David Howells
2018-09-13 23:42 ` Al Viro
1 sibling, 1 reply; 52+ messages in thread
From: David Howells @ 2018-09-13 23:27 UTC (permalink / raw)
To: Al Viro; +Cc: dhowells, Alexey Dobriyan, Greg KH, linux-kernel
Al Viro <viro@ZenIV.linux.org.uk> wrote:
> It's too early for AFD postings. And you *are* tempting
> me to throw into the tree as many anti-C++ devices as can be
> done tastefully, just to stop somebody attempting that insanity
> in the earnest.
You would deliberately break the UAPI header files to make sure that they
couldn't be used with C++?
David
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-13 23:27 ` David Howells
@ 2018-09-13 23:42 ` Al Viro
0 siblings, 0 replies; 52+ messages in thread
From: Al Viro @ 2018-09-13 23:42 UTC (permalink / raw)
To: David Howells; +Cc: Alexey Dobriyan, Greg KH, linux-kernel
On Fri, Sep 14, 2018 at 12:27:49AM +0100, David Howells wrote:
> Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> > It's too early for AFD postings. And you *are* tempting
> > me to throw into the tree as many anti-C++ devices as can be
> > done tastefully, just to stop somebody attempting that insanity
> > in the earnest.
>
> You would deliberately break the UAPI header files to make sure that they
> couldn't be used with C++?
UAPI - no; userland folks can use INTERCAL, for all I care.
Kernel-side, though, it's quite tempting...
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 18:59 [RFC] UAPI: Check headers by compiling all together as C++ Alexey Dobriyan
2018-09-05 19:26 ` Greg KH
@ 2018-09-05 19:53 ` David Howells
1 sibling, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 19:53 UTC (permalink / raw)
To: Greg KH; +Cc: dhowells, Alexey Dobriyan, linux-kernel
Greg KH <gregkh@linuxfoundation.org> wrote:
> "struct class" is going to be a hard one to overcome :)
Already done:
https://lkml.org/lkml/2018/4/1/126
David
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: Michael S. Tsirkin, David Airlie, Jason Wang, Mat Martineau,
dri-devel, virtualization, dhowells, Masahiro Yamada, keyrings,
Ryusuke Konishi, Yann Droneaud, linux-nilfs, linux-nvdimm,
codalist, coda, coreteam, Kent Overstreet, linux-arm-msm,
Coly Li, linux-bcache, Jan Harkes, Michal Marek, linux-kernel,
Rob Clark, netfilter-devel, linux-fsdevel, freedreno
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: Michael S. Tsirkin, David Airlie, Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi, Yann Droneaud,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Dan Williams, Jan Harkes,
Michal Marek, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Clark,
netfilter-devel-u79uwXL29TY76Z2rM5mHXA
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: Michal Marek, dri-devel, virtualization, keyrings, David Airlie,
linux-nilfs, linux-nvdimm, Michael S. Tsirkin, codalist, coda,
coreteam, Rob Clark, linux-arm-msm, Kent Overstreet,
Dan Williams, linux-bcache, Coly Li, Jan Harkes, Yann Droneaud,
Masahiro Yamada, Ryusuke Konishi, Jason Wang, Mat Martineau,
netfilter-devel, linux-fsdevel, freedreno, linux-kernel,
dhowells
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: Michael S. Tsirkin, David Airlie, Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi, Yann Droneaud,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Dan Williams, Jan Harkes,
Michal Marek, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Clark,
netfilter-devel-u79uwXL29TY76Z2rM5mHXA
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: Michael S. Tsirkin, David Airlie, Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi, Yann Droneaud,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Dan Williams, Jan Harkes,
Michal Marek, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Clark,
netfilter-devel-u79uwXL29TY76Z2rM5mHXA
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 9:18 David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-06 9:18 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: Michael S. Tsirkin, David Airlie, Mat Martineau, dri-devel,
virtualization, dhowells, Masahiro Yamada, keyrings,
Ryusuke Konishi, Yann Droneaud, linux-nilfs, linux-nvdimm,
codalist, coda, coreteam, Kent Overstreet, linux-arm-msm,
Coly Li, linux-bcache, Dan Williams, Jan Harkes, Michal Marek,
linux-kernel, Rob Clark, netfilter-devel, linux-fsdevel
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++).
Note that it's based on a commit from the sound tree to fix usage of u32
and co..
Most of the patches perform fixups, including:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(6) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
There's also:
(7) Move the coda_psdev.h header file to fs/coda/.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
Changes for v2:
- Merge commit from sound tree to fix u32 usage issues
- Use a switch to fix sparse array initialisation
- Simplify nilfs2 by performing bitwise ops in LE space not CPU space
- Handle conflicting fix to use of 'private' in keyctl.h
- Move kernel internal coda bits to coda internal headers
- Move coda_psdev.h header to fs/coda/.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Move kernel internals out of public view
coda: Move internal defs out of include/linux/
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
fs/coda/cache.c | 2
fs/coda/cnode.c | 2
fs/coda/coda_linux.c | 2
fs/coda/coda_psdev.h | 88 +++++++++++++++
fs/coda/dir.c | 2
fs/coda/file.c | 3 -
fs/coda/inode.c | 2
fs/coda/pioctl.c | 3 -
fs/coda/psdev.c | 3 -
fs/coda/symlink.c | 3 -
fs/coda/upcall.c | 2
include/linux/coda_psdev.h | 72 ------------
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 18 ---
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 52 ++++-----
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 28 ++---
include/uapi/linux/virtio_net.h | 7 +
scripts/headers-c++.sh | 124 +++++++++++++++++++++
25 files changed, 304 insertions(+), 166 deletions(-)
create mode 100644 fs/coda/coda_psdev.h
delete mode 100644 include/linux/coda_psdev.h
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau, dri-devel, virtualization, dhowells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-arm-msm, Coly Li, linux-bcache, Jaroslav Kysela,
Jan Harkes, Michal Marek, Takashi Iwai, linux-kernel, Rob Clark,
netfilter-devel, linux-fsdevel, freedreno
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, Takashi Iwai, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Rob Clark
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: Michal Marek, dri-devel, virtualization, keyrings, David Airlie,
linux-nilfs, linux-nvdimm, Michael S. Tsirkin, codalist, coda,
coreteam, Rob Clark, linux-arm-msm, Kent Overstreet,
Dan Williams, Takashi Iwai, linux-bcache, Coly Li,
Jaroslav Kysela, Jan Harkes, Masahiro Yamada, Ryusuke Konishi,
Jason Wang, Mat Martineau, netfilter-devel, linux-fsdevel,
moderated for non-subscribers, freedreno, linux-kernel, dhowells
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, Takashi Iwai, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Rob Clark
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api-u79uwXL29TY76Z2rM5mHXA, linux-kbuild-u79uwXL29TY76Z2rM5mHXA
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
dhowells-H+wXaHxf7aLQT0dZR+AlfA, Masahiro Yamada,
keyrings-u79uwXL29TY76Z2rM5mHXA, Ryusuke Konishi,
linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, Takashi Iwai, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
Rob Clark
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 15:54 ` David Howells
` (3 preceding siblings ...)
(?)
@ 2018-09-05 16:55 ` Greg KH
-1 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Mat Martineau, dri-devel, virtualization, Masahiro Yamada,
keyrings, Ryusuke Konishi, linux-nilfs, linux-nvdimm, codalist,
coda, coreteam, Kent Overstreet, linux-kbuild, linux-arm-msm,
Coly Li, linux-bcache, Dan Williams, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api, Takashi Iwai
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 16:55 ` Greg KH
0 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau, dri-devel, virtualization,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api,
Takashi Iwai, linux-kernel, Rob Clark, netfilter-devel,
linux-fsdevel, freedreno
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 16:55 ` Greg KH
0 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 16:55 ` Greg KH
0 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: linux-api, linux-kbuild, Michal Marek, dri-devel, virtualization,
keyrings, David Airlie, linux-nilfs, linux-nvdimm,
Michael S. Tsirkin, codalist, coda, coreteam, Rob Clark,
linux-arm-msm, Kent Overstreet, Dan Williams, Takashi Iwai,
linux-bcache, Coly Li, Jaroslav Kysela, Jan Harkes,
Masahiro Yamada, Ryusuke Konishi, Jason Wang, Mat Martineau,
netfilter-devel, linux-fsdevel, moderated for non-subscribers,
freedreno, linux-kernel
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 16:55 ` Greg KH
0 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 16:55 ` Greg KH
0 siblings, 0 replies; 52+ messages in thread
From: Greg KH @ 2018-09-05 16:55 UTC (permalink / raw)
To: David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai,
linux-kernel
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?
And if userspace wants to do this, can't they do the C namespace trick
themselves when they do the import? That must be how they are doing it
today, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:33 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-05 17:33 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau, dri-devel, virtualization,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api,
Takashi Iwai, linux-kernel, Rob Clark, netfilter-devel,
linux-fsdevel, freedreno
Hi,
Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> 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?
>
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
>
They can't.
Adding extern "C" { } doesn't magically make "class" a non keyword.
Even if it was the case, writing C++ code using whatever->class would
probably broke because class is a keyword in C++.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:33 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-05 17:33 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
Hi,
Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> 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?
>
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
>
They can't.
Adding extern "C" { } doesn't magically make "class" a non keyword.
Even if it was the case, writing C++ code using whatever->class would
probably broke because class is a keyword in C++.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:33 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-05 17:33 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: linux-api, linux-kbuild, Michal Marek, dri-devel, virtualization,
keyrings, David Airlie, linux-nilfs, linux-nvdimm,
Michael S. Tsirkin, codalist, coda, coreteam, Rob Clark,
linux-arm-msm, Kent Overstreet, Dan Williams, Takashi Iwai,
linux-bcache, Coly Li, Jaroslav Kysela, Jan Harkes,
Masahiro Yamada, Ryusuke Konishi, Jason Wang, Mat Martineau,
netfilter-devel, linux-fsdevel, moderated for non-subscribers,
freedreno, linux-kernel
Hi,
Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> 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?
>
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
>
They can't.
Adding extern "C" { } doesn't magically make "class" a non keyword.
Even if it was the case, writing C++ code using whatever->class would
probably broke because class is a keyword in C++.
--
Yann Droneaud
OPTEYA
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:33 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-05 17:33 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
Hi,
Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> 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?
>
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
>
They can't.
Adding extern "C" { } doesn't magically make "class" a non keyword.
Even if it was the case, writing C++ code using whatever->class would
probably broke because class is a keyword in C++.
--
Yann Droneaud
OPTEYA
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:33 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-05 17:33 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai,
linux-kernel
Hi,
Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> 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?
>
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
>
They can't.
Adding extern "C" { } doesn't magically make "class" a non keyword.
Even if it was the case, writing C++ code using whatever->class would
probably broke because class is a keyword in C++.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 17:33 ` Yann Droneaud
` (3 preceding siblings ...)
(?)
@ 2018-09-05 17:42 ` Michael S. Tsirkin
-1 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: moderated for non-subscribers, David Airlie, Greg KH,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api, Takashi
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 17:33 ` Yann Droneaud
` (3 preceding siblings ...)
(?)
@ 2018-09-05 17:42 ` Michael S. Tsirkin
-1 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: moderated for non-subscribers, David Airlie, Greg KH, Jason Wang,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api,
Takashi Iwai, linux-kernel, Rob Clark, netfilter-devel,
linux-fsdevel, freedreno
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:42 ` Michael S. Tsirkin
0 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: moderated for non-subscribers, David Airlie, Greg KH, Jason Wang,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:42 ` Michael S. Tsirkin
0 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: Greg KH, David Howells, linux-api, linux-kbuild, Michal Marek,
dri-devel, virtualization, keyrings, David Airlie, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Rob Clark, linux-arm-msm,
Kent Overstreet, Dan Williams, Takashi Iwai, linux-bcache,
Coly Li, Jaroslav Kysela, Jan Harkes, Masahiro Yamada,
Ryusuke Konishi, Jason Wang, Mat Martineau, netfilter-devel,
linux-fsdevel, moderated for non-subscribers, freedreno,
linux-kernel
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 � 18:55 +0200, Greg KH a �crit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:42 ` Michael S. Tsirkin
0 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: Greg KH, David Howells, linux-api, linux-kbuild, Michal Marek,
dri-devel, virtualization, keyrings, David Airlie, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Rob Clark, linux-arm-msm,
Kent Overstreet, Dan Williams, Takashi Iwai, linux-bcache,
Coly Li, Jaroslav Kysela, Jan Harkes, Masahiro Yamada,
Ryusuke Konishi, Jason Wang, Mat Martineau, netfilter-devel,
linux-fsdevel, moderated for non-subscribers, freedreno,
linux-kernel
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:42 ` Michael S. Tsirkin
0 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: moderated for non-subscribers, David Airlie, Greg KH, Jason Wang,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:42 ` Michael S. Tsirkin
0 siblings, 0 replies; 52+ messages in thread
From: Michael S. Tsirkin @ 2018-09-05 17:42 UTC (permalink / raw)
To: Yann Droneaud
Cc: moderated for non-subscribers, David Airlie, Greg KH, Jason Wang,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek
On Wed, Sep 05, 2018 at 07:33:38PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace trick
> > themselves when they do the import? That must be how they are doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
I think it's a bug in the language TBH.
> --
> Yann Droneaud
> OPTEYA
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 7:12 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-06 7:12 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau, dri-devel, virtualization,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api,
Takashi Iwai, linux-kernel, Rob Clark, netfilter-devel,
linux-fsdevel, freedreno
Le mercredi 05 septembre 2018 à 19:33 +0200, Yann Droneaud a écrit :
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace
> > trick
> > themselves when they do the import? That must be how they are
> > doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
>
For the record, libX11 has to handle the kink pf issue with C++
keyword:
https://gitlab.freedesktop.org/xorg/lib/libx11/blob/733f64bfeb311c1d040b2f751bfdef9c9d0f89ef/include/X11/Xlib.h#L227
typedef struct {
XExtData *ext_data; /* hook for extension to hang data */
VisualID visualid; /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ class of screen (monochrome, etc.) */
#else
int class; /* class of screen (monochrome, etc.) */
#endif
unsigned long red_mask, green_mask, blue_mask; /* mask values */
int bits_per_rgb; /* log base 2 of distinct color values */
int map_entries; /* color map entries */
} Visual;
Regards.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 7:12 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-06 7:12 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
Le mercredi 05 septembre 2018 à 19:33 +0200, Yann Droneaud a écrit :
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace
> > trick
> > themselves when they do the import? That must be how they are
> > doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
>
For the record, libX11 has to handle the kink pf issue with C++
keyword:
https://gitlab.freedesktop.org/xorg/lib/libx11/blob/733f64bfeb311c1d040b2f751bfdef9c9d0f89ef/include/X11/Xlib.h#L227
typedef struct {
XExtData *ext_data; /* hook for extension to hang data */
VisualID visualid; /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ class of screen (monochrome, etc.) */
#else
int class; /* class of screen (monochrome, etc.) */
#endif
unsigned long red_mask, green_mask, blue_mask; /* mask values */
int bits_per_rgb; /* log base 2 of distinct color values */
int map_entries; /* color map entries */
} Visual;
Regards.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 7:12 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-06 7:12 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: linux-api, linux-kbuild, Michal Marek, dri-devel, virtualization,
keyrings, David Airlie, linux-nilfs, linux-nvdimm,
Michael S. Tsirkin, codalist, coda, coreteam, Rob Clark,
linux-arm-msm, Kent Overstreet, Dan Williams, Takashi Iwai,
linux-bcache, Coly Li, Jaroslav Kysela, Jan Harkes,
Masahiro Yamada, Ryusuke Konishi, Jason Wang, Mat Martineau,
netfilter-devel, linux-fsdevel, moderated for non-subscribers,
freedreno, linux-kernel
Le mercredi 05 septembre 2018 à 19:33 +0200, Yann Droneaud a écrit :
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace
> > trick
> > themselves when they do the import? That must be how they are
> > doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
>
For the record, libX11 has to handle the kink pf issue with C++
keyword:
https://gitlab.freedesktop.org/xorg/lib/libx11/blob/733f64bfeb311c1d040b2f751bfdef9c9d0f89ef/include/X11/Xlib.h#L227
typedef struct {
XExtData *ext_data; /* hook for extension to hang data */
VisualID visualid; /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ class of screen (monochrome, etc.) */
#else
int class; /* class of screen (monochrome, etc.) */
#endif
unsigned long red_mask, green_mask, blue_mask; /* mask values */
int bits_per_rgb; /* log base 2 of distinct color values */
int map_entries; /* color map entries */
} Visual;
Regards.
--
Yann Droneaud
OPTEYA
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 7:12 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-06 7:12 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai
Le mercredi 05 septembre 2018 à 19:33 +0200, Yann Droneaud a écrit :
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace
> > trick
> > themselves when they do the import? That must be how they are
> > doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
>
For the record, libX11 has to handle the kink pf issue with C++
keyword:
https://gitlab.freedesktop.org/xorg/lib/libx11/blob/733f64bfeb311c1d040b2f751bfdef9c9d0f89ef/include/X11/Xlib.h#L227
typedef struct {
XExtData *ext_data; /* hook for extension to hang data */
VisualID visualid; /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ class of screen (monochrome, etc.) */
#else
int class; /* class of screen (monochrome, etc.) */
#endif
unsigned long red_mask, green_mask, blue_mask; /* mask values */
int bits_per_rgb; /* log base 2 of distinct color values */
int map_entries; /* color map entries */
} Visual;
Regards.
--
Yann Droneaud
OPTEYA
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-06 7:12 ` Yann Droneaud
0 siblings, 0 replies; 52+ messages in thread
From: Yann Droneaud @ 2018-09-06 7:12 UTC (permalink / raw)
To: Greg KH, David Howells
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takashi Iwai,
linux-kernel
Le mercredi 05 septembre 2018 à 19:33 +0200, Yann Droneaud a écrit :
> Le mercredi 05 septembre 2018 à 18:55 +0200, Greg KH a écrit :
> > 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?
> >
> > And if userspace wants to do this, can't they do the C namespace
> > trick
> > themselves when they do the import? That must be how they are
> > doing it
> > today, right?
> >
>
> They can't.
>
>
> Adding extern "C" { } doesn't magically make "class" a non keyword.
> Even if it was the case, writing C++ code using whatever->class would
> probably broke because class is a keyword in C++.
>
For the record, libX11 has to handle the kink pf issue with C++
keyword:
https://gitlab.freedesktop.org/xorg/lib/libx11/blob/733f64bfeb311c1d040b2f751bfdef9c9d0f89ef/include/X11/Xlib.h#L227
typedef struct {
XExtData *ext_data; /* hook for extension to hang data */
VisualID visualid; /* visual id of this visual */
#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ class of screen (monochrome, etc.) */
#else
int class; /* class of screen (monochrome, etc.) */
#endif
unsigned long red_mask, green_mask, blue_mask; /* mask values */
int bits_per_rgb; /* log base 2 of distinct color values */
int map_entries; /* color map entries */
} Visual;
Regards.
--
Yann Droneaud
OPTEYA
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 16:55 ` Greg KH
` (4 preceding siblings ...)
(?)
@ 2018-09-05 19:22 ` Jan Engelhardt
-1 siblings, 0 replies; 52+ messages in thread
From: Jan Engelhardt @ 2018-09-05 19:22 UTC (permalink / raw)
To: Greg KH
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Mat Martineau, dri-devel, virtualization, David Howells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-kbuild, linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek, linux-api
On Wednesday 2018-09-05 18:55, Greg KH 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?
With C++11, C++ has become a much nicer language to use (for userspace, anyway).
>And if userspace wants to do this, can't they do the C namespace trick
>themselves when they do the import?
The only trick is to use an extra C source file and extensively wrap things.
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 19:22 ` Jan Engelhardt
0 siblings, 0 replies; 52+ messages in thread
From: Jan Engelhardt @ 2018-09-05 19:22 UTC (permalink / raw)
To: Greg KH
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau, dri-devel, virtualization,
David Howells, Masahiro Yamada, keyrings, Ryusuke Konishi,
linux-nilfs, linux-nvdimm, codalist, coda, coreteam,
Kent Overstreet, linux-kbuild, linux-arm-msm, Coly Li,
linux-bcache, Jaroslav Kysela, Jan Harkes, Michal Marek,
linux-api, Takashi Iwai, linux-kernel, Rob Clark,
netfilter-devel, linux-fsdevel, freedreno
On Wednesday 2018-09-05 18:55, Greg KH 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?
With C++11, C++ has become a much nicer language to use (for userspace, anyway).
>And if userspace wants to do this, can't they do the C namespace trick
>themselves when they do the import?
The only trick is to use an extra C source file and extensively wrap things.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 19:22 ` Jan Engelhardt
0 siblings, 0 replies; 52+ messages in thread
From: Jan Engelhardt @ 2018-09-05 19:22 UTC (permalink / raw)
To: Greg KH
Cc: David Howells, linux-api, linux-kbuild, Michal Marek, dri-devel,
virtualization, keyrings, David Airlie, linux-nilfs,
linux-nvdimm, Michael S. Tsirkin, codalist, coda, coreteam,
Rob Clark, linux-arm-msm, Kent Overstreet, Dan Williams,
Takashi Iwai, linux-bcache, Coly Li, Jaroslav Kysela, Jan Harkes,
Masahiro Yamada, Ryusuke Konishi, Jason Wang, Mat Martineau,
netfilter-devel, linux-fsdevel, moderated for non-subscribers,
freedreno, linux-kernel
On Wednesday 2018-09-05 18:55, Greg KH 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?
With C++11, C++ has become a much nicer language to use (for userspace, anyway).
>And if userspace wants to do this, can't they do the C namespace trick
>themselves when they do the import?
The only trick is to use an extra C source file and extensively wrap things.
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 19:22 ` Jan Engelhardt
0 siblings, 0 replies; 52+ messages in thread
From: Jan Engelhardt @ 2018-09-05 19:22 UTC (permalink / raw)
To: Greg KH
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
David Howells, Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takash
On Wednesday 2018-09-05 18:55, Greg KH 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?
With C++11, C++ has become a much nicer language to use (for userspace, anyway).
>And if userspace wants to do this, can't they do the C namespace trick
>themselves when they do the import?
The only trick is to use an extra C source file and extensively wrap things.
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 19:22 ` Jan Engelhardt
0 siblings, 0 replies; 52+ messages in thread
From: Jan Engelhardt @ 2018-09-05 19:22 UTC (permalink / raw)
To: Greg KH
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Jason Wang, Mat Martineau,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
David Howells, Masahiro Yamada, keyrings-u79uwXL29TY76Z2rM5mHXA,
Ryusuke Konishi, linux-nilfs-u79uwXL29TY76Z2rM5mHXA,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw,
codalist-/uMB558Y47wP4a1z8dhFYw, coda-ETDLCGt7PQU3uPMLIKxrzw,
coreteam-Cap9r6Oaw4JrovVCs/uTlw, Kent Overstreet,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Coly Li,
linux-bcache-u79uwXL29TY76Z2rM5mHXA, Jaroslav Kysela, Jan Harkes,
Michal Marek, linux-api-u79uwXL29TY76Z2rM5mHXA, Takash
On Wednesday 2018-09-05 18:55, Greg KH 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?
With C++11, C++ has become a much nicer language to use (for userspace, anyway).
>And if userspace wants to do this, can't they do the C namespace trick
>themselves when they do the import?
The only trick is to use an extra C source file and extensively wrap things.
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 15:54 ` David Howells
` (5 preceding siblings ...)
(?)
@ 2018-09-05 17:50 ` David Howells
-1 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 17:50 UTC (permalink / raw)
To: Greg KH
Cc: alsa-devel, linux-kbuild, linux-api, linux-kernel, dri-devel,
virtualization, dhowells, keyrings, netfilter-devel,
linux-fsdevel, freedreno
Greg KH <greg@kroah.com> 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?
There's at least one outstanding bug due to a C++ identifier in the kernel
UAPI headers.
Are you saying you explicitly don't want people to be able to use the kernel
UAPI headers in C++?
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
No, because there's no such trick (except with the preprocessor).
David
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
2018-09-05 15:54 ` David Howells
@ 2018-09-05 17:50 ` David Howells
-1 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 17:50 UTC (permalink / raw)
To: Greg KH
Cc: dhowells, linux-api, linux-kbuild, dri-devel, virtualization,
keyrings, netfilter-devel, linux-fsdevel, alsa-devel, freedreno,
linux-kernel
Greg KH <greg@kroah.com> 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?
There's at least one outstanding bug due to a C++ identifier in the kernel
UAPI headers.
Are you saying you explicitly don't want people to be able to use the kernel
UAPI headers in C++?
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
No, because there's no such trick (except with the preprocessor).
David
^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 17:50 ` David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 17:50 UTC (permalink / raw)
To: Greg KH
Cc: dhowells, linux-api, linux-kbuild, dri-devel, virtualization,
keyrings, netfilter-devel, linux-fsdevel, alsa-devel, freedreno,
linux-kernel
Greg KH <greg@kroah.com> 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?
There's at least one outstanding bug due to a C++ identifier in the kernel
UAPI headers.
Are you saying you explicitly don't want people to be able to use the kernel
UAPI headers in C++?
> And if userspace wants to do this, can't they do the C namespace trick
> themselves when they do the import? That must be how they are doing it
> today, right?
No, because there's no such trick (except with the preprocessor).
David
^ permalink raw reply [flat|nested] 52+ messages in thread
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 David Howells
0 siblings, 0 replies; 52+ messages in thread
From: David Howells @ 2018-09-05 15:54 UTC (permalink / raw)
To: linux-api, linux-kbuild
Cc: moderated for non-subscribers, Michael S. Tsirkin, David Airlie,
Mat Martineau, dri-devel, virtualization, dhowells,
Masahiro Yamada, keyrings, Ryusuke Konishi, linux-nilfs,
linux-nvdimm, codalist, coda, coreteam, Kent Overstreet,
linux-arm-msm, Coly Li, linux-bcache, Dan Williams,
Jaroslav Kysela, Jan Harkes, Michal Marek, Takashi Iwai,
linux-kernel, Rob
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:
(1) Fix member names that conflict with C++ reserved words by providing
alternates that can be used anywhere. An anonymous union is used so
that that the conflicting name is still available outside of C++.
(2) Fix the use of flexible arrays in structs that get embedded (which is
illegal in C++).
(3) Remove the use of internal kernel structs in UAPI structures.
(4) Fix symbol collisions.
(5) Replace usage of u32 and co. with __u32 and co.
(6) Fix use of sparsely initialised arrays (which g++ doesn't implement).
(7) Remove some use of PAGE_SIZE since this isn't valid outside of the
kernel.
And lastly:
(8) Compile all of the UAPI headers (with a few exceptions) together as
C++ to catch new errors occurring as part of the regular build
process.
The patches can also be found here:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=uapi-check
Thanks,
David
---
David Howells (11):
UAPI: drm: Fix use of C++ keywords as structural members
UAPI: keys: Fix use of C++ keywords as structural members
UAPI: virtio_net: Fix use of C++ keywords as structural members
UAPI: bcache: Fix use of embedded flexible array
UAPI: coda: Don't use internal kernel structs in UAPI
UAPI: netfilter: Fix symbol collision issues
UAPI: nilfs2: Fix use of undefined byteswapping functions
UAPI: sound: Fix use of u32 and co. in UAPI headers
UAPI: ndctl: Fix g++-unsupported initialisation in headers
UAPI: ndctl: Remove use of PAGE_SIZE
UAPI: Check headers build for C++
Makefile | 1
include/linux/ndctl.h | 22 ++++
include/uapi/drm/i810_drm.h | 7 +
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/bcache.h | 2
include/uapi/linux/coda_psdev.h | 4 +
include/uapi/linux/keyctl.h | 7 +
include/uapi/linux/ndctl.h | 20 ++-
include/uapi/linux/netfilter/nfnetlink_cthelper.h | 2
include/uapi/linux/netfilter_ipv4/ipt_ECN.h | 9 --
include/uapi/linux/nilfs2_ondisk.h | 21 ++--
include/uapi/linux/virtio_net.h | 7 +
include/uapi/sound/skl-tplg-interface.h | 106 +++++++++---------
scripts/headers-c++.sh | 124 +++++++++++++++++++++
14 files changed, 255 insertions(+), 84 deletions(-)
create mode 100644 include/linux/ndctl.h
create mode 100755 scripts/headers-c++.sh
^ permalink raw reply [flat|nested] 52+ messages in thread
end of thread, other threads:[~2018-09-13 23:42 UTC | newest]
Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-05 18:59 [RFC] UAPI: Check headers by compiling all together as C++ Alexey Dobriyan
2018-09-05 19:26 ` Greg KH
2018-09-05 19:31 ` Alexey Dobriyan
2018-09-05 22:22 ` Al Viro
2018-09-13 22:01 ` Alexey Dobriyan
2018-09-13 22:15 ` Al Viro
2018-09-13 23:27 ` David Howells
2018-09-13 23:42 ` Al Viro
2018-09-05 19:53 ` David Howells
-- strict thread matches above, loose matches on Subject: below --
2018-09-06 9:18 David Howells
2018-09-06 9:18 ` David Howells
2018-09-06 9:18 ` David Howells
2018-09-06 9:18 ` David Howells
2018-09-06 9:18 ` David Howells
2018-09-06 9:18 David Howells
2018-09-05 15:54 David Howells
2018-09-05 15:54 ` David Howells
2018-09-05 15:54 ` David Howells
2018-09-05 15:54 ` David Howells
2018-09-05 15:54 ` David Howells
2018-09-05 16:55 ` Greg KH
2018-09-05 16:55 ` Greg KH
2018-09-05 16:55 ` Greg KH
2018-09-05 16:55 ` Greg KH
2018-09-05 16:55 ` Greg KH
2018-09-05 16:55 ` Greg KH
2018-09-05 17:33 ` Yann Droneaud
2018-09-05 17:33 ` Yann Droneaud
2018-09-05 17:33 ` Yann Droneaud
2018-09-05 17:33 ` Yann Droneaud
2018-09-05 17:33 ` Yann Droneaud
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-05 17:42 ` Michael S. Tsirkin
2018-09-06 7:12 ` Yann Droneaud
2018-09-06 7:12 ` Yann Droneaud
2018-09-06 7:12 ` Yann Droneaud
2018-09-06 7:12 ` Yann Droneaud
2018-09-06 7:12 ` Yann Droneaud
2018-09-05 19:22 ` Jan Engelhardt
2018-09-05 19:22 ` Jan Engelhardt
2018-09-05 19:22 ` Jan Engelhardt
2018-09-05 19:22 ` Jan Engelhardt
2018-09-05 19:22 ` Jan Engelhardt
2018-09-05 17:50 ` David Howells
2018-09-05 17:50 ` David Howells
2018-09-05 17:50 ` David Howells
2018-09-05 15:54 David Howells
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.