On Tue, Feb 2, 2021 at 4:57 PM Emil Velikov wrote: > On Tue, 2 Feb 2021 at 23:25, James Park > wrote: > > > > On Tue, Feb 2, 2021 at 2:47 PM Emil Velikov > wrote: > > > > > > Currently, the drm_fourcc.h header depends on drm.h for __u32 and > __u64. > > > At the same time drm.h pulls a lot of unneeded symbols. > > > > > > Add new guard DRM_FOURCC_STANDALONE, which when set will use local > > > declaration of said symbols. > > > > > > When used on linux - this is a trivial but only when building in > strict c99 > > > mode. One is welcome to ignore the warning, silence it or use c11. If > neither > > > of the three is an option, then do _not_ set the new guard. > > > > > > Cc: James Park > > > Cc: Pekka Paalanen > > > Cc: Simon Ser > > > Signed-off-by: Emil Velikov > > > --- > > > As mentioned before - there's little point in having yet another header > > > since keeping those in sync has been a PITA in the past. > > > --- > > > include/uapi/drm/drm_fourcc.h | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/include/uapi/drm/drm_fourcc.h > b/include/uapi/drm/drm_fourcc.h > > > index 6f0628eb13a6..c1522902f6c9 100644 > > > --- a/include/uapi/drm/drm_fourcc.h > > > +++ b/include/uapi/drm/drm_fourcc.h > > > @@ -24,7 +24,26 @@ > > > #ifndef DRM_FOURCC_H > > > #define DRM_FOURCC_H > > > > > > +/* > > > + * Define DRM_FOURCC_STANDALONE you're interested only FOURCC and do > not want > > > + * to pull drm.h into your application. > > > + */ > > > +#ifdef DRM_FOURCC_STANDALONE > > > +#if defined(__linux__) > > > + > > > +#include > > > + > > > +#else /* One of the BSDs */ > > > + > > > +#include > > > +typedef uint32_t __u32; > > > +typedef uint64_t __u64; > > > + > > > +#endif /* __linux __ */ > > > + > > > +#else > > > #include "drm.h" > > > +#endif /* DRM_FOURCC_STANDALONE */ > > > > > > #if defined(__cplusplus) > > > extern "C" { > > > -- > > > 2.30.0 > > > > > > > One of my earlier solutions similarly would have forced people to deal > > with duplicate typedefs, and we arrived at the current solution > > because we didn't want to burden anyone with that. > > As summed in the commit message the burden is only applicable when all > of the following are set: > - non-linux > - force DRM_FOURCC_STANDALONE > - c99 -pedantic > > Even then, we're talking about a compilation warning. So yeah - let's > keep things short and sweet. > > Side note: AFAICT MSVC will not trigger a warning so your logs should be > clean. > > -Emil > I'm having trouble reading your commit message, this sentence in particular: "When used on linux - this is a trivial but only when building in strict c99 mode." This asymmetric copy/paste grosses me out so much. I don't think a patch like this should be opinionated about someone's build settings. Am I alone? Doesn't this bother anyone else? - James