All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] UAPI: Check headers by compiling all together as C++
@ 2018-09-05 15:54 ` David Howells
  0 siblings, 0 replies; 127+ 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 <robdclar>


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] 127+ messages in thread

end of thread, other threads:[~2018-10-09 16:54 UTC | newest]

Thread overview: 127+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-05 15:54 [RFC] UAPI: Check headers by compiling all together as C++ 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 ` [PATCH 01/11] UAPI: drm: Fix use of C++ keywords as structural members David Howells
2018-09-05 15:54   ` David Howells
2018-09-05 15:54 ` [PATCH 02/11] UAPI: keys: " David Howells
2018-09-05 15:54   ` David Howells
2018-09-05 15:54 ` [PATCH 03/11] UAPI: virtio_net: " David Howells
2018-09-05 16:54   ` Greg KH
2018-09-05 17:15     ` David Howells
2018-09-05 17:15     ` David Howells
2018-09-05 16:54   ` Greg KH
2018-09-05 17:35   ` Michael S. Tsirkin
2018-09-06  7:09     ` David Howells
2018-09-06  7:09     ` David Howells
2018-09-06 14:36       ` Michael S. Tsirkin
2018-09-06 14:36       ` Michael S. Tsirkin
2018-09-05 17:35   ` Michael S. Tsirkin
2018-09-05 15:54 ` David Howells
2018-09-05 15:55 ` [PATCH 04/11] UAPI: bcache: Fix use of embedded flexible array David Howells
2018-10-02 14:52   ` Jan Engelhardt
2018-10-09 15:41     ` David Howells
2018-10-09 16:54       ` Jan Engelhardt
2018-09-05 15:55 ` [PATCH 05/11] UAPI: coda: Don't use internal kernel structs in UAPI David Howells
2018-09-05 16:54   ` Jan Harkes
2018-09-05 17:12   ` Yann Droneaud
2018-09-05 17:24     ` David Howells
2018-09-05 17:28     ` Jan Harkes
2018-09-05 17:28       ` Jan Harkes
2018-09-06  7:13     ` David Howells
2018-09-06 11:52       ` Yann Droneaud
2018-09-06 12:16         ` Jan Harkes
2018-09-06 12:16           ` Jan Harkes
2018-09-06 14:53         ` David Howells
2018-09-05 15:55 ` [PATCH 06/11] UAPI: netfilter: Fix symbol collision issues David Howells
2018-09-05 15:55 ` [PATCH 07/11] UAPI: nilfs2: Fix use of undefined byteswapping functions David Howells
2018-09-05 22:20   ` Al Viro
2018-09-05 15:55 ` [PATCH 08/11] UAPI: sound: Fix use of u32 and co. in UAPI headers David Howells
2018-09-05 15:55   ` David Howells
2018-09-06  5:59   ` Takashi Sakamoto
2018-09-06  5:59     ` Takashi Sakamoto
2018-09-06  8:17     ` David Howells
2018-09-05 15:55 ` [PATCH 10/11] UAPI: ndctl: Remove use of PAGE_SIZE David Howells
2018-09-05 15:55   ` David Howells
2018-09-05 15:55 ` [PATCH 11/11] UAPI: Check headers build for C++ David Howells
     [not found] ` <153616286704.23468.584491117180383924.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-09-05 15:55   ` [PATCH 09/11] UAPI: ndctl: Fix g++-unsupported initialisation in headers David Howells
2018-09-05 15:55     ` David Howells
2018-09-05 15:55     ` David Howells
2018-09-05 16:55   ` [RFC] UAPI: Check headers by compiling all together as C++ 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:50     ` David Howells
2018-09-05 17:50       ` David Howells
2018-09-05 17:50     ` David Howells
2018-09-05 19:22     ` Jan Engelhardt
     [not found]     ` <20180905165552.GB25206-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
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
     [not found]         ` <a1efae8d26cc5b73b180e9521d6b62590c55aa86.camel-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
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 16:55 ` Greg KH
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   ` [PATCH 02/11] UAPI: keys: Fix use of C++ keywords as structural members [ver #2] David Howells
2018-09-06  9:18     ` David Howells
2018-09-06  9:18   ` [PATCH 03/11] UAPI: virtio_net: " David Howells
2018-09-06 15:02     ` Michael S. Tsirkin
2018-09-06 15:02     ` Michael S. Tsirkin
2018-09-06  9:18   ` David Howells
2018-09-06  9:18   ` [PATCH 04/11] UAPI: bcache: Fix use of embedded flexible array " David Howells
2018-09-06  9:18   ` [PATCH 05/11] UAPI: coda: Move kernel internals out of public view " David Howells
2018-09-06  9:18     ` David Howells
2018-09-06  9:19   ` [PATCH 06/11] coda: Move internal defs out of include/linux/ " David Howells
2018-09-06  9:19   ` [PATCH 07/11] UAPI: netfilter: Fix symbol collision issues " David Howells
2018-09-10 17:32     ` kbuild test robot
2018-09-10 17:32       ` kbuild test robot
2018-09-10 17:32       ` kbuild test robot
2018-09-28 13:07     ` [netfilter-core] " Pablo Neira Ayuso
2018-10-09 15:35       ` David Howells
2018-09-06  9:19   ` [PATCH 08/11] UAPI: nilfs2: Fix use of undefined byteswapping functions " David Howells
     [not found]   ` <153622549721.14298.8116794954073122489.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-09-06  9:18     ` [PATCH 01/11] UAPI: drm: Fix use of C++ keywords as structural members " David Howells
2018-09-06  9:18       ` David Howells
2018-09-06  9:19     ` [PATCH 09/11] UAPI: ndctl: Fix g++-unsupported initialisation in headers " David Howells
2018-09-06  9:19       ` David Howells
2018-09-06  9:19       ` David Howells
     [not found]       ` <153622556444.14298.5971956747198405225.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-09-25 20:22         ` Dan Williams
2018-09-25 20:22           ` Dan Williams
2018-09-25 20:22           ` Dan Williams
2018-09-06  9:19     ` [PATCH 10/11] UAPI: ndctl: Remove use of PAGE_SIZE " David Howells
2018-09-06  9:19       ` David Howells
2018-09-06  9:19       ` David Howells
     [not found]       ` <153622557095.14298.10281337300003012767.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2018-09-25 20:17         ` Dan Williams
2018-09-25 20:17           ` Dan Williams
2018-09-25 20:17           ` Dan Williams
2018-10-09 15:36           ` David Howells
2018-10-09 15:36             ` David Howells
2018-09-06  9:19   ` [PATCH 11/11] UAPI: Check headers build for C++ " David Howells
2018-09-10 16:26     ` kbuild test robot
2018-09-10 16:26       ` kbuild test robot
2018-09-10 16:26       ` kbuild test robot
2018-09-10 17:02     ` kbuild test robot
2018-09-10 17:02       ` kbuild test robot
2018-09-10 17:02       ` kbuild test robot
2018-09-14  9:10     ` Arnd Bergmann

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.