From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E611A2194D387 for ; Thu, 6 Sep 2018 02:18:25 -0700 (PDT) Subject: [RFC] UAPI: Check headers by compiling all together as C++ From: David Howells Date: Thu, 06 Sep 2018 10:18:17 +0100 Message-ID: <153622549721.14298.8116794954073122489.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: linux-api@vger.kernel.org, linux-kbuild@vger.kernel.org Cc: "Michael S. Tsirkin" , David Airlie , Jason Wang , Mat Martineau , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, dhowells@redhat.com, Masahiro Yamada , keyrings@vger.kernel.org, Ryusuke Konishi , Yann Droneaud , linux-nilfs@vger.kernel.org, linux-nvdimm@lists.01.org, codalist@coda.cs.cmu.edu, coda@cs.cmu.edu, coreteam@netfilter.org, Kent Overstreet , linux-arm-msm@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Jan Harkes , Michal Marek , linux-kernel@vger.kernel.org, Rob Clark , netfilter-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, freedreno@lists.freedesktop.org List-ID: 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: [RFC] UAPI: Check headers by compiling all together as C++ Date: Thu, 06 Sep 2018 10:18:17 +0100 Message-ID: <153622549721.14298.8116794954073122489.stgit@warthog.procyon.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: "Michael S. Tsirkin" , David Airlie , Jason Wang , Mat Martineau , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Masahiro Yamada , keyrings-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ryusuke Konishi , Yann Droneaud , linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, codalist-/uMB558Y47wP4a1z8dhFYw@public.gmane.org, coda-ETDLCGt7PQU3uPMLIKxrzw@public.gmane.org, coreteam-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org, Kent Overstreet , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Coly Li , linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Dan Williams , Jan Harkes , Michal Marek , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org CkhlcmUncyBhIHNldCBvZiBwYXRjaGVzIHRoYXQgaW5zZXJ0cyBhIHN0ZXAgaW50byB0aGUgYnVp bGQgcHJvY2VzcyB0byBtYWtlCnN1cmUgdGhhdCB0aGUgVUFQSSBoZWFkZXJzIGNhbiBhbGwgYmUg YnVpbHQgdG9nZXRoZXIgd2l0aCBDKysgKGlmIHRoZQpjb21waWxlciBiZWluZyB1c2VkIHN1cHBv cnRzIEMrKykuCgpOb3RlIHRoYXQgaXQncyBiYXNlZCBvbiBhIGNvbW1pdCBmcm9tIHRoZSBzb3Vu ZCB0cmVlIHRvIGZpeCB1c2FnZSBvZiB1MzIKYW5kIGNvLi4KCk1vc3Qgb2YgdGhlIHBhdGNoZXMg cGVyZm9ybSBmaXh1cHMsIGluY2x1ZGluZzoKCiAoMSkgRml4IG1lbWJlciBuYW1lcyB0aGF0IGNv bmZsaWN0IHdpdGggQysrIHJlc2VydmVkIHdvcmRzIGJ5IHByb3ZpZGluZwogICAgIGFsdGVybmF0 ZXMgdGhhdCBjYW4gYmUgdXNlZCBhbnl3aGVyZS4gIEFuIGFub255bW91cyB1bmlvbiBpcyB1c2Vk IHNvCiAgICAgdGhhdCB0aGF0IHRoZSBjb25mbGljdGluZyBuYW1lIGlzIHN0aWxsIGF2YWlsYWJs ZSBvdXRzaWRlIG9mIEMrKy4KCiAoMikgRml4IHRoZSB1c2Ugb2YgZmxleGlibGUgYXJyYXlzIGlu IHN0cnVjdHMgdGhhdCBnZXQgZW1iZWRkZWQgKHdoaWNoIGlzCiAgICAgaWxsZWdhbCBpbiBDKysp LgoKICgzKSBSZW1vdmUgdGhlIHVzZSBvZiBpbnRlcm5hbCBrZXJuZWwgc3RydWN0cyBpbiBVQVBJ IHN0cnVjdHVyZXMuCgogKDQpIEZpeCBzeW1ib2wgY29sbGlzaW9ucy4KCiAoNSkgRml4IHVzZSBv ZiBzcGFyc2VseSBpbml0aWFsaXNlZCBhcnJheXMgKHdoaWNoIGcrKyBkb2Vzbid0IGltcGxlbWVu dCkuCgogKDYpIFJlbW92ZSBzb21lIHVzZSBvZiBQQUdFX1NJWkUgc2luY2UgdGhpcyBpc24ndCB2 YWxpZCBvdXRzaWRlIG9mIHRoZQogICAgIGtlcm5lbC4KClRoZXJlJ3MgYWxzbzoKCiAoNykgTW92 ZSB0aGUgY29kYV9wc2Rldi5oIGhlYWRlciBmaWxlIHRvIGZzL2NvZGEvLgoKQW5kIGxhc3RseToK CiAoOCkgQ29tcGlsZSBhbGwgb2YgdGhlIFVBUEkgaGVhZGVycyAod2l0aCBhIGZldyBleGNlcHRp b25zKSB0b2dldGhlciBhcwogICAgIEMrKyB0byBjYXRjaCBuZXcgZXJyb3JzIG9jY3VycmluZyBh cyBwYXJ0IG9mIHRoZSByZWd1bGFyIGJ1aWxkCiAgICAgcHJvY2Vzcy4KCkNoYW5nZXMgZm9yIHYy OgoKIC0gTWVyZ2UgY29tbWl0IGZyb20gc291bmQgdHJlZSB0byBmaXggdTMyIHVzYWdlIGlzc3Vl cwogLSBVc2UgYSBzd2l0Y2ggdG8gZml4IHNwYXJzZSBhcnJheSBpbml0aWFsaXNhdGlvbgogLSBT aW1wbGlmeSBuaWxmczIgYnkgcGVyZm9ybWluZyBiaXR3aXNlIG9wcyBpbiBMRSBzcGFjZSBub3Qg Q1BVIHNwYWNlCiAtIEhhbmRsZSBjb25mbGljdGluZyBmaXggdG8gdXNlIG9mICdwcml2YXRlJyBp biBrZXljdGwuaAogLSBNb3ZlIGtlcm5lbCBpbnRlcm5hbCBjb2RhIGJpdHMgdG8gY29kYSBpbnRl cm5hbCBoZWFkZXJzCiAtIE1vdmUgY29kYV9wc2Rldi5oIGhlYWRlciB0byBmcy9jb2RhLy4KClRo ZSBwYXRjaGVzIGNhbiBhbHNvIGJlIGZvdW5kIGhlcmU6CgoJaHR0cDovL2dpdC5rZXJuZWwub3Jn L2NnaXQvbGludXgva2VybmVsL2dpdC9kaG93ZWxscy9saW51eC1mcy5naXQvbG9nLz9oPXVhcGkt Y2hlY2sKClRoYW5rcywKRGF2aWQKLS0tCkRhdmlkIEhvd2VsbHMgKDExKToKICAgICAgVUFQSTog ZHJtOiBGaXggdXNlIG9mIEMrKyBrZXl3b3JkcyBhcyBzdHJ1Y3R1cmFsIG1lbWJlcnMKICAgICAg VUFQSToga2V5czogRml4IHVzZSBvZiBDKysga2V5d29yZHMgYXMgc3RydWN0dXJhbCBtZW1iZXJz CiAgICAgIFVBUEk6IHZpcnRpb19uZXQ6IEZpeCB1c2Ugb2YgQysrIGtleXdvcmRzIGFzIHN0cnVj dHVyYWwgbWVtYmVycwogICAgICBVQVBJOiBiY2FjaGU6IEZpeCB1c2Ugb2YgZW1iZWRkZWQgZmxl eGlibGUgYXJyYXkKICAgICAgVUFQSTogY29kYTogTW92ZSBrZXJuZWwgaW50ZXJuYWxzIG91dCBv ZiBwdWJsaWMgdmlldwogICAgICBjb2RhOiBNb3ZlIGludGVybmFsIGRlZnMgb3V0IG9mIGluY2x1 ZGUvbGludXgvCiAgICAgIFVBUEk6IG5ldGZpbHRlcjogRml4IHN5bWJvbCBjb2xsaXNpb24gaXNz dWVzCiAgICAgIFVBUEk6IG5pbGZzMjogRml4IHVzZSBvZiB1bmRlZmluZWQgYnl0ZXN3YXBwaW5n IGZ1bmN0aW9ucwogICAgICBVQVBJOiBuZGN0bDogRml4IGcrKy11bnN1cHBvcnRlZCBpbml0aWFs aXNhdGlvbiBpbiBoZWFkZXJzCiAgICAgIFVBUEk6IG5kY3RsOiBSZW1vdmUgdXNlIG9mIFBBR0Vf U0laRQogICAgICBVQVBJOiBDaGVjayBoZWFkZXJzIGJ1aWxkIGZvciBDKysKCgogTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgCiBmcy9jb2Rh L2NhY2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAKIGZzL2Nv ZGEvY25vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIAogZnMv Y29kYS9jb2RhX2xpbnV4LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgCiBm cy9jb2RhL2NvZGFfcHNkZXYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4OCAr KysrKysrKysrKysrKysKIGZzL2NvZGEvZGlyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAyIAogZnMvY29kYS9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDMgLQogZnMvY29kYS9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDIgCiBmcy9jb2RhL3Bpb2N0bC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3BzZGV2LmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3N5bWxpbmsuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3VwY2FsbC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAKIGluY2x1ZGUvbGludXgvY29kYV9wc2Rl di5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcyIC0tLS0tLS0tLS0tLQogaW5jbHVkZS9s aW51eC9uZGN0bC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKwogaW5j bHVkZS91YXBpL2RybS9pODEwX2RybS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwog aW5jbHVkZS91YXBpL2RybS9tc21fZHJtLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg KwogaW5jbHVkZS91YXBpL2xpbnV4L2JjYWNoZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDIgCiBpbmNsdWRlL3VhcGkvbGludXgvY29kYV9wc2Rldi5oICAgICAgICAgICAgICAgICAgIHwg ICAxOCAtLS0KIGluY2x1ZGUvdWFwaS9saW51eC9rZXljdGwuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgICA3ICsKIGluY2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUyICsrKystLS0tLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlci9uZm5l dGxpbmtfY3RoZWxwZXIuaCB8ICAgIDIgCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lw djQvaXB0X0VDTi5oICAgICAgIHwgICAgOSAtLQogaW5jbHVkZS91YXBpL2xpbnV4L25pbGZzMl9v bmRpc2suaCAgICAgICAgICAgICAgICB8ICAgMjggKystLS0KIGluY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fbmV0LmggICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHNjcmlwdHMvaGVhZGVycy1j Kysuc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTI0ICsrKysrKysrKysrKysrKysr KysrKwogMjUgZmlsZXMgY2hhbmdlZCwgMzA0IGluc2VydGlvbnMoKyksIDE2NiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBmcy9jb2RhL2NvZGFfcHNkZXYuaAogZGVsZXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvbGludXgvY29kYV9wc2Rldi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j bHVkZS9saW51eC9uZGN0bC5oCiBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0cy9oZWFkZXJzLWMr Ky5zaAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJl ZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Date: Thu, 06 Sep 2018 09:18:17 +0000 Subject: [RFC] UAPI: Check headers by compiling all together as C++ Message-Id: <153622549721.14298.8116794954073122489.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit List-Id: References: <153616286704.23468.584491117180383924.stgit@warthog.procyon.org.uk> In-Reply-To: <153616286704.23468.584491117180383924.stgit@warthog.procyon.org.uk> To: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: "Michael S. Tsirkin" , David Airlie , Jason Wang , Mat Martineau , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Masahiro Yamada , keyrings-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ryusuke Konishi , Yann Droneaud , linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, codalist-/uMB558Y47wP4a1z8dhFYw@public.gmane.org, coda-ETDLCGt7PQU3uPMLIKxrzw@public.gmane.org, coreteam-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org, Kent Overstreet , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Coly Li , linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Dan Williams , Jan Harkes , Michal Marek , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ABBC5C43334 for ; Thu, 6 Sep 2018 09:18:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 45684206BA for ; Thu, 6 Sep 2018 09:18:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 45684206BA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728425AbeIFNw6 (ORCPT ); Thu, 6 Sep 2018 09:52:58 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49886 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726541AbeIFNw5 (ORCPT ); Thu, 6 Sep 2018 09:52:57 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 431A9402332F; Thu, 6 Sep 2018 09:18:24 +0000 (UTC) Received: from warthog.procyon.org.uk (ovpn-123-84.rdu2.redhat.com [10.10.123.84]) by smtp.corp.redhat.com (Postfix) with ESMTP id B8C2D94646; Thu, 6 Sep 2018 09:18:17 +0000 (UTC) Subject: [RFC] UAPI: Check headers by compiling all together as C++ From: David Howells To: linux-api@vger.kernel.org, linux-kbuild@vger.kernel.org Cc: Michal Marek , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, keyrings@vger.kernel.org, David Airlie , linux-nilfs@vger.kernel.org, linux-nvdimm@lists.01.org, "Michael S. Tsirkin" , codalist@coda.cs.cmu.edu, coda@cs.cmu.edu, coreteam@netfilter.org, Rob Clark , linux-arm-msm@vger.kernel.org, Kent Overstreet , Dan Williams , linux-bcache@vger.kernel.org, Coly Li , Jan Harkes , Yann Droneaud , Masahiro Yamada , Ryusuke Konishi , Jason Wang , Mat Martineau , netfilter-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, dhowells@redhat.com Date: Thu, 06 Sep 2018 10:18:17 +0100 Message-ID: <153622549721.14298.8116794954073122489.stgit@warthog.procyon.org.uk> User-Agent: StGit/unknown-version MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Thu, 06 Sep 2018 09:18:24 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Thu, 06 Sep 2018 09:18:24 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'dhowells@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: [RFC] UAPI: Check headers by compiling all together as C++ Date: Thu, 06 Sep 2018 10:18:17 +0100 Message-ID: <153622549721.14298.8116794954073122489.stgit@warthog.procyon.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Michael S. Tsirkin" , David Airlie , Jason Wang , Mat Martineau , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Masahiro Yamada , keyrings-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ryusuke Konishi , Yann Droneaud , linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, codalist-/uMB558Y47wP4a1z8dhFYw@public.gmane.org, coda-ETDLCGt7PQU3uPMLIKxrzw@public.gmane.org, coreteam-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org, Kent Overstreet , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Coly Li , linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Dan Williams , Jan Harkes , Michal Marek , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, To: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" List-Id: netfilter-devel.vger.kernel.org CkhlcmUncyBhIHNldCBvZiBwYXRjaGVzIHRoYXQgaW5zZXJ0cyBhIHN0ZXAgaW50byB0aGUgYnVp bGQgcHJvY2VzcyB0byBtYWtlCnN1cmUgdGhhdCB0aGUgVUFQSSBoZWFkZXJzIGNhbiBhbGwgYmUg YnVpbHQgdG9nZXRoZXIgd2l0aCBDKysgKGlmIHRoZQpjb21waWxlciBiZWluZyB1c2VkIHN1cHBv cnRzIEMrKykuCgpOb3RlIHRoYXQgaXQncyBiYXNlZCBvbiBhIGNvbW1pdCBmcm9tIHRoZSBzb3Vu ZCB0cmVlIHRvIGZpeCB1c2FnZSBvZiB1MzIKYW5kIGNvLi4KCk1vc3Qgb2YgdGhlIHBhdGNoZXMg cGVyZm9ybSBmaXh1cHMsIGluY2x1ZGluZzoKCiAoMSkgRml4IG1lbWJlciBuYW1lcyB0aGF0IGNv bmZsaWN0IHdpdGggQysrIHJlc2VydmVkIHdvcmRzIGJ5IHByb3ZpZGluZwogICAgIGFsdGVybmF0 ZXMgdGhhdCBjYW4gYmUgdXNlZCBhbnl3aGVyZS4gIEFuIGFub255bW91cyB1bmlvbiBpcyB1c2Vk IHNvCiAgICAgdGhhdCB0aGF0IHRoZSBjb25mbGljdGluZyBuYW1lIGlzIHN0aWxsIGF2YWlsYWJs ZSBvdXRzaWRlIG9mIEMrKy4KCiAoMikgRml4IHRoZSB1c2Ugb2YgZmxleGlibGUgYXJyYXlzIGlu IHN0cnVjdHMgdGhhdCBnZXQgZW1iZWRkZWQgKHdoaWNoIGlzCiAgICAgaWxsZWdhbCBpbiBDKysp LgoKICgzKSBSZW1vdmUgdGhlIHVzZSBvZiBpbnRlcm5hbCBrZXJuZWwgc3RydWN0cyBpbiBVQVBJ IHN0cnVjdHVyZXMuCgogKDQpIEZpeCBzeW1ib2wgY29sbGlzaW9ucy4KCiAoNSkgRml4IHVzZSBv ZiBzcGFyc2VseSBpbml0aWFsaXNlZCBhcnJheXMgKHdoaWNoIGcrKyBkb2Vzbid0IGltcGxlbWVu dCkuCgogKDYpIFJlbW92ZSBzb21lIHVzZSBvZiBQQUdFX1NJWkUgc2luY2UgdGhpcyBpc24ndCB2 YWxpZCBvdXRzaWRlIG9mIHRoZQogICAgIGtlcm5lbC4KClRoZXJlJ3MgYWxzbzoKCiAoNykgTW92 ZSB0aGUgY29kYV9wc2Rldi5oIGhlYWRlciBmaWxlIHRvIGZzL2NvZGEvLgoKQW5kIGxhc3RseToK CiAoOCkgQ29tcGlsZSBhbGwgb2YgdGhlIFVBUEkgaGVhZGVycyAod2l0aCBhIGZldyBleGNlcHRp b25zKSB0b2dldGhlciBhcwogICAgIEMrKyB0byBjYXRjaCBuZXcgZXJyb3JzIG9jY3VycmluZyBh cyBwYXJ0IG9mIHRoZSByZWd1bGFyIGJ1aWxkCiAgICAgcHJvY2Vzcy4KCkNoYW5nZXMgZm9yIHYy OgoKIC0gTWVyZ2UgY29tbWl0IGZyb20gc291bmQgdHJlZSB0byBmaXggdTMyIHVzYWdlIGlzc3Vl cwogLSBVc2UgYSBzd2l0Y2ggdG8gZml4IHNwYXJzZSBhcnJheSBpbml0aWFsaXNhdGlvbgogLSBT aW1wbGlmeSBuaWxmczIgYnkgcGVyZm9ybWluZyBiaXR3aXNlIG9wcyBpbiBMRSBzcGFjZSBub3Qg Q1BVIHNwYWNlCiAtIEhhbmRsZSBjb25mbGljdGluZyBmaXggdG8gdXNlIG9mICdwcml2YXRlJyBp biBrZXljdGwuaAogLSBNb3ZlIGtlcm5lbCBpbnRlcm5hbCBjb2RhIGJpdHMgdG8gY29kYSBpbnRl cm5hbCBoZWFkZXJzCiAtIE1vdmUgY29kYV9wc2Rldi5oIGhlYWRlciB0byBmcy9jb2RhLy4KClRo ZSBwYXRjaGVzIGNhbiBhbHNvIGJlIGZvdW5kIGhlcmU6CgoJaHR0cDovL2dpdC5rZXJuZWwub3Jn L2NnaXQvbGludXgva2VybmVsL2dpdC9kaG93ZWxscy9saW51eC1mcy5naXQvbG9nLz9oPXVhcGkt Y2hlY2sKClRoYW5rcywKRGF2aWQKLS0tCkRhdmlkIEhvd2VsbHMgKDExKToKICAgICAgVUFQSTog ZHJtOiBGaXggdXNlIG9mIEMrKyBrZXl3b3JkcyBhcyBzdHJ1Y3R1cmFsIG1lbWJlcnMKICAgICAg VUFQSToga2V5czogRml4IHVzZSBvZiBDKysga2V5d29yZHMgYXMgc3RydWN0dXJhbCBtZW1iZXJz CiAgICAgIFVBUEk6IHZpcnRpb19uZXQ6IEZpeCB1c2Ugb2YgQysrIGtleXdvcmRzIGFzIHN0cnVj dHVyYWwgbWVtYmVycwogICAgICBVQVBJOiBiY2FjaGU6IEZpeCB1c2Ugb2YgZW1iZWRkZWQgZmxl eGlibGUgYXJyYXkKICAgICAgVUFQSTogY29kYTogTW92ZSBrZXJuZWwgaW50ZXJuYWxzIG91dCBv ZiBwdWJsaWMgdmlldwogICAgICBjb2RhOiBNb3ZlIGludGVybmFsIGRlZnMgb3V0IG9mIGluY2x1 ZGUvbGludXgvCiAgICAgIFVBUEk6IG5ldGZpbHRlcjogRml4IHN5bWJvbCBjb2xsaXNpb24gaXNz dWVzCiAgICAgIFVBUEk6IG5pbGZzMjogRml4IHVzZSBvZiB1bmRlZmluZWQgYnl0ZXN3YXBwaW5n IGZ1bmN0aW9ucwogICAgICBVQVBJOiBuZGN0bDogRml4IGcrKy11bnN1cHBvcnRlZCBpbml0aWFs aXNhdGlvbiBpbiBoZWFkZXJzCiAgICAgIFVBUEk6IG5kY3RsOiBSZW1vdmUgdXNlIG9mIFBBR0Vf U0laRQogICAgICBVQVBJOiBDaGVjayBoZWFkZXJzIGJ1aWxkIGZvciBDKysKCgogTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgCiBmcy9jb2Rh L2NhY2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAKIGZzL2Nv ZGEvY25vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyIAogZnMv Y29kYS9jb2RhX2xpbnV4LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgCiBm cy9jb2RhL2NvZGFfcHNkZXYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4OCAr KysrKysrKysrKysrKysKIGZzL2NvZGEvZGlyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAyIAogZnMvY29kYS9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDMgLQogZnMvY29kYS9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDIgCiBmcy9jb2RhL3Bpb2N0bC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3BzZGV2LmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3N5bWxpbmsuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyAtCiBmcy9jb2RhL3VwY2FsbC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAKIGluY2x1ZGUvbGludXgvY29kYV9wc2Rl di5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcyIC0tLS0tLS0tLS0tLQogaW5jbHVkZS9s aW51eC9uZGN0bC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKwogaW5j bHVkZS91YXBpL2RybS9pODEwX2RybS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwog aW5jbHVkZS91YXBpL2RybS9tc21fZHJtLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg KwogaW5jbHVkZS91YXBpL2xpbnV4L2JjYWNoZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDIgCiBpbmNsdWRlL3VhcGkvbGludXgvY29kYV9wc2Rldi5oICAgICAgICAgICAgICAgICAgIHwg ICAxOCAtLS0KIGluY2x1ZGUvdWFwaS9saW51eC9rZXljdGwuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgICA3ICsKIGluY2x1ZGUvdWFwaS9saW51eC9uZGN0bC5oICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUyICsrKystLS0tLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldGZpbHRlci9uZm5l dGxpbmtfY3RoZWxwZXIuaCB8ICAgIDIgCiBpbmNsdWRlL3VhcGkvbGludXgvbmV0ZmlsdGVyX2lw djQvaXB0X0VDTi5oICAgICAgIHwgICAgOSAtLQogaW5jbHVkZS91YXBpL2xpbnV4L25pbGZzMl9v bmRpc2suaCAgICAgICAgICAgICAgICB8ICAgMjggKystLS0KIGluY2x1ZGUvdWFwaS9saW51eC92 aXJ0aW9fbmV0LmggICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHNjcmlwdHMvaGVhZGVycy1j Kysuc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTI0ICsrKysrKysrKysrKysrKysr KysrKwogMjUgZmlsZXMgY2hhbmdlZCwgMzA0IGluc2VydGlvbnMoKyksIDE2NiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBmcy9jb2RhL2NvZGFfcHNkZXYuaAogZGVsZXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvbGludXgvY29kYV9wc2Rldi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j bHVkZS9saW51eC9uZGN0bC5oCiBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0cy9oZWFkZXJzLWMr Ky5zaAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJl ZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==