As some headers do not reside in include/drm we need to tweak our rules, and exclude headers that shouldn't be distributed [XXX: clarify why ?].
To avoid the extra magic of diving into the kernel tree running `make headers_install', just sed out the only reason why we need it - __user.
Cc: Alex Deucher alexander.deucher@amd.com Cc: Michel Dänzer michel.daenzer@amd.com Cc: Ben Skeggs bskeggs@redhat.com Cc: Dave Airlie airlied@redhat.com Cc: Daniel Stone daniels@collabora.com Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: Inki Dae inki.dae@samsung.com Cc: Rob Clark robclark@freedesktop.org Cc: Tomi Valkeinen tomi.valkeinen@ti.com Cc: Daniel Kurtz djkurtz@chromium.org Signed-off-by: Emil Velikov emil.l.velikov@gmail.com ---
Gents, As one runs `make copy-headers' we get a massive diff stat (+1500/-800) and a handful of issues gets pointed out. Please let me know of your prefered solution (regardless if one will get to it soon) and if we should consider it a blocker (B) or not (N).
Thanks Emil
- (N) Header license miss-match - omap, msm, exynos. Update the kernel ones ?
- (N) Broken compat ioctls - exynos (and the UMS drivers) - using unsigned int as opposed to _u32/64. Considering they're 32bit only, we can get away with 'breaking' the ABI and using the proper ones ?
- (N, keep local for now) C++ compat - libdrm has a hack/workaround (virtual is a keyword in C++), which I'd like us to upstream plus some extern C wrappers.
- (?) Missing UMS symbols - see _DRM_GEM
- (?) Non C89 compliant (see DRM_DRAWABLE_CLIPRECTS) - do we still want/need that ?
- (B) Using include <drm/...> as opposed to include "..." - drm.h, nouveau_drm.h. Should be fixed in kernel.
- (N) ABI 'break' + drm - struct drm_mode_get_connector extra pad + tegra - struct drm_tegra_gem_mmap extra pad
- (B) API break + drm - missing DRM_MODE_OBJECT_* + nouveau - missing (gs)etparam - both structs and macros. everything else is fine/unused. + radeon - RADEON_TILING_R600_NO_SCANOUT, CIK_TILE_MODE_COLOR_2D* and CIK_TILE_MODE_DEPTH_STENCIL_2D_TILESPLIT_* - quick grep shows no users + omap - struct drm_omap_get_base, DRM_OMAP_GET_BASE + IOCTL
- (N) (unneeded?) API additions - nouveau's DRM_IOCTL_NOUVEAU_GEM_*
- (N) __KERNEL__ condiditionals. Is it really an issue - sure if looks a bit spurious but that's about it.
Makefile.am | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am index ca41508..6c71d3a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,7 +126,14 @@ endif
copy-headers : cp -r $(kernel_source)/include/uapi/drm/*.h $(top_srcdir)/include/drm/ + sed -i "s/__user //g" $(top_srcdir)/include/drm/*.h + mv $(top_srcdir)/include/drm/exynos_drm.h $(top_srcdir)/exynos/ + mv $(top_srcdir)/include/drm/msm_drm.h $(top_srcdir)/freedreno/msm/ + mv $(top_srcdir)/include/drm/omap_drm.h $(top_srcdir)/omap/ + rm $(top_srcdir)/include/drm/armada_drm.h + rm $(top_srcdir)/include/drm/etnaviv_drm.h + rm $(top_srcdir)/include/drm/i810_drm.h + rm $(top_srcdir)/include/drm/vc4_drm.h
commit-headers : copy-headers - git add include/drm/*.h git commit -am "Copy headers from kernel $$(GIT_DIR=$(kernel_source)/.git git describe)"