On Thu, Apr 21, 2016 at 09:17:13PM +0100, Emil Velikov wrote: > [Re-sending to the correct mailing list. Apologies if you've seen it already] > > Hi all, David Howells > > Dave Airlie pointed out that "polluting" the headers in a manner as seen > with this series might not be too wise. David H, can we hear your view > on the topic ? > > Note that these headers are meant to be used by more than just Linux > (various BSD and Solaris come to mind), making things more complicated. > > > The change: > > > As some of you may know there are some subtle distinctions between C and > C++ structs/enums, thus one should wrap/annotate them roughly like below. > > > ... > #if defined(__cplusplus) > extern "C" { > #endif > > struct foo { > int bar; > ... > }; > > ... > > #if defined(__cplusplus) > } > #endif > > > In order to work around the lack of these users can wrap the header > inclusion in the same way. For example: > > > ... > #if defined(__cplusplus) > extern "C" { > #endif > > #include <i915_drm.h> > > #if defined(__cplusplus) > } > #endif > > > Yet we should avoid this approach, as it might cause issues [1] [2] [3]. > Thus here is a series which systematically updates all the UAPI headers > in one go. > > I would prefer if we get this merged in one go. Daniel, is it possible > to go through drm-misc ? The series is already based on it. > > Maintainers, does this sound reasonable, can we get a few acks ? Ack on the concept. I really want that new uapi flows from the kernel, anything we can do to make conversion to headers suitable for libdrm fully automatic has my approval - currently we have headaches with divergent evolution sometimes. I want this. -Daniel > > > Thanks > Emil > > [1] http://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/ > [2] https://isocpp.org/wiki/faq/mixing-c-and-cpp > [3] http://www.oracle.com/technetwork/articles/servers-storage-dev/mixingcandcpluspluscode-305840.html > > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx> > Cc: Ben Skeggs <bskeggs@xxxxxxxxxx> > Cc: Brian Paul <brianp@xxxxxxxxxx> > Cc: Christian Gmeiner <christian.gmeiner@xxxxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxxx> > Cc: Dave Airlie <airlied@xxxxxxxxxx> > Cc: David Howells <dhowells@xxxxxxxxxx> > Cc: Eric Anholt <eric@xxxxxxxxxx> > Cc: Erik Faye-Lund <kusmabite@xxxxxxxxx> > Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> > Cc: Inki Dae <inki.dae@xxxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > Cc: Michel Dänzer <michel.daenzer@xxxxxxx> > Cc: Rob Clark <robdclark@xxxxxxxxx> > Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> > Cc: Sinclair Yeh <syeh@xxxxxxxxxx> > Cc: Thierry Reding <thierry.reding@xxxxxxxxx> > Cc: Thomas Hellstrom <thellstrom@xxxxxxxxxx> > Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > > > Emil Velikov (24): > drm/amdgpu: add extern C guard for the UAPI header > drm/armada: add extern C guard for the UAPI header > drm: add extern C guard for the UAPI headers > drm/etnaviv: add extern C guard for the UAPI header > drm/exynos: add extern C guard for the UAPI header > drm/i810: add extern C guard for the UAPI header > drm/i915: add extern C guard for the UAPI header > drm/mga: add extern C guard for the UAPI header > drm/msm: add extern C guard for the UAPI header > drm/nouveau: add extern C guard for the UAPI header > drm/nouveau: drop drm/ prefix from include > drm/omap: add extern C guard for the UAPI header > drm/qxl: add extern C guard for the UAPI header > drm/qxl: remove XXX comment from the UAPI header > drm/r128: add extern C guard for the UAPI header > drm/radeon: add extern C guard for the UAPI header > drm/savage: add extern C guard for the UAPI header > drm/sis: add extern C guard for the UAPI header > drm/sis: add missing include drm.h for the UAPI header > drm/tegra: add extern C guard for the UAPI header > drm/vc4: add extern C guard for the UAPI header > drm/via: add extern C guard for the UAPI header > drm/virgl: add extern C guard for the UAPI header > drm/vmwgfx: add extern C guard for the UAPI header > > include/uapi/drm/amdgpu_drm.h | 8 ++++++++ > include/uapi/drm/armada_drm.h | 8 ++++++++ > include/uapi/drm/drm.h | 16 ++++++++++++++++ > include/uapi/drm/drm_fourcc.h | 8 ++++++++ > include/uapi/drm/drm_mode.h | 8 ++++++++ > include/uapi/drm/drm_sarea.h | 8 ++++++++ > include/uapi/drm/etnaviv_drm.h | 8 ++++++++ > include/uapi/drm/exynos_drm.h | 8 ++++++++ > include/uapi/drm/i810_drm.h | 8 ++++++++ > include/uapi/drm/i915_drm.h | 8 ++++++++ > include/uapi/drm/mga_drm.h | 8 ++++++++ > include/uapi/drm/msm_drm.h | 8 ++++++++ > include/uapi/drm/nouveau_drm.h | 10 +++++++++- > include/uapi/drm/omap_drm.h | 8 ++++++++ > include/uapi/drm/qxl_drm.h | 9 ++++++++- > include/uapi/drm/r128_drm.h | 8 ++++++++ > include/uapi/drm/radeon_drm.h | 8 ++++++++ > include/uapi/drm/savage_drm.h | 8 ++++++++ > include/uapi/drm/sis_drm.h | 10 ++++++++++ > include/uapi/drm/tegra_drm.h | 8 ++++++++ > include/uapi/drm/vc4_drm.h | 8 ++++++++ > include/uapi/drm/via_drm.h | 8 ++++++++ > include/uapi/drm/virtgpu_drm.h | 8 ++++++++ > include/uapi/drm/vmwgfx_drm.h | 9 +++++++++ > 24 files changed, 204 insertions(+), 2 deletions(-) > > -- > 2.6.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel