From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932543AbcHVPkW (ORCPT ); Mon, 22 Aug 2016 11:40:22 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:34283 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754732AbcHVPkU (ORCPT ); Mon, 22 Aug 2016 11:40:20 -0400 Date: Mon, 22 Aug 2016 17:40:15 +0200 From: Daniel Vetter To: Emil Velikov Cc: Daniel Vetter , Rob Clark , Mikko Rapeli , Linux Kernel Mailing List , ML dri-devel Subject: Re: [RFC] Using C99 stdint vs kernel __uX types in kernel drmUAPI (was Re: [PATCH 1/2] Revert "include/uapi/drm/amdgpu_drm.h: use __u32 and __u64 from ") Message-ID: <20160822154015.GH24290@phenom.ffwll.local> Mail-Followup-To: Emil Velikov , Rob Clark , Mikko Rapeli , Linux Kernel Mailing List , ML dri-devel References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 4.6.0-1-amd64 User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 22, 2016 at 04:05:21PM +0100, Emil Velikov wrote: > On 22 August 2016 at 15:38, Daniel Vetter wrote: > > On Mon, Aug 22, 2016 at 12:38 PM, Rob Clark wrote: > >>> That said, _note_ that some applications are built with -C89 -pedantic > >>> [1] which means that using stdint.h may or may not work as expected. > >>> So we'll want a __STDC_VESION__ check + #error in case of pre-C99 ? > >>> If the affected programs are proprietary ones we should be safe, > >>> otherwise we want to update them ~alongside the transition. > >> > >> naw, at least for msm_drm.h, just don't build libdrm_freedreno w/ > >> -C89.. problem solved! > > > > Yeah, I think sprinkling an > > > > #ifdef __kernel___ > > #include > > #else > > #include > > #endif > > > Guess i was too vague :-] > > I was thinking about the following cases: > - using old/incomplete stdint.h - thus the __STDC_VESION__ check. > - building non-libdrm software - for libdrm we've (implicitly and > explicitly) required C99 for a long time. > > > at the opt of all drm uapi headers should be good enough. Or at least > > those which opt to choose stdints. Since our userspace is very > > limited, and our headers will never leak to general applications we > > can just require c99, at least for driver headers. For kms/general drm > > uapi that might not be the best idea. > Won't doing so bring more confusion to an already convoluted topic ? > If we opt for it, let's have a juicy comment that clarifies things. If we require C99 in libdrm since ages then I think there's no problem with outright requiring working stdint support in drm uapi headers everywhere. We still need a bit of #ifdef though I think to impendence match between kernel and userspace. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch