Bug 73777

Summary: xf86drm.h:40:17: error: drm.h: No such file or directory
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: medium CC: emil.l.velikov, idr, joqmos, robclark
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=73776
Whiteboard:
i915 platform: i915 features:
Attachments: handle builds whenever libdrm is not installed

Description Vinson Lee 2014-01-18 22:05:07 UTC
mesa: 66fd5057d3ee1b3a7bce484eb0856b318a8ae4a4 (master)

swrast build regression on Ubuntu 10.04

$ ./autogen.sh --disable-dri --disable-egl --with-dri-drivers=swrast --with-gallium-drivers=
$ make
[...]
  CC     libloader_la-loader.lo
In file included from loader.c:72:
/usr/include/xf86drm.h:40:17: error: drm.h: No such file or directory

8c2e7fd8460750543367053b1be9368cc38e1d6a is the first bad commit
commit 8c2e7fd8460750543367053b1be9368cc38e1d6a
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Jan 10 23:36:16 2014 +0000

    loader: introduce the loader util lib

    All the various window system integration layers duplicate roughly the
    same code for figuring out device and driver name, pci-id's, etc.  Which
    is sad.  So extract it out into a loader util lib.

    v2 (Emil)
    * Separate the introduction of libloader from the code de-duplication.
    * Strip out non-pci devices support.
    * Add scons + Android build system support.
    * Add VISIBILITY_CFLAGS to avoid exporting the loader funcs.

    v3 (Emil)
    * PIPE_OS_ANDROID is undefined at this scope, use ANDROID
    * Make sure we define _EGL_NO_DRM when building only swrast

    Signed-off-by: Rob Clark <robclark@freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Rob Clark <robdclark@gmail.com>
    Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>

:100644 100644 c3c1f08f01d2e27a1d38cb549dcd288b013ba09d 05ed62f594188852830b9683e1f39d3b04a82405 M      Android.mk
:100644 100644 4da6c51d36bbdecc55952f8b3de73bb7b124ee79 9ca6704a3e13dfb2fb9d5ffe4b363850b4186e48 M      configure.ac
:040000 040000 22d3dff995203b1a74224904b5f005f4abb486ce eded964be918ba2c0ea997a455b8e868f77274c6 M      include
:040000 040000 a7b6a5e28620f308a5a74cfe8f9a8038ca8e7b0c a917e5ed832cf30906b2de09a114d0ac0b0acbc0 M      src
Comment 1 Emil Velikov 2014-01-19 03:29:00 UTC
Created attachment 92371 [details] [review]
handle builds whenever libdrm is not installed

Nice catch Vinson, I had to move my libdrm.pc to reproduce this and the other issue (bug 73776) :)

Either way this patch handles all three build system failures, so let me know if you're still having problems.
Comment 2 Vinson Lee 2014-01-19 18:58:11 UTC
commit 26d380da69d3fc3a4ced291028c105c0ac0f1a92
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sun Jan 19 03:09:03 2014 +0000

    loader: ifdef libdrm specific code and include
    
    Mesa provides the flexibility of building without the
    need to have libdrm present on the system. The situation
    has regressed with the recent commit
    
    commit 8c2e7fd8460750543367053b1be9368cc38e1d6a
    Author: Emil Velikov <emil.l.velikov@gmail.com>
    Date:   Fri Jan 10 23:36:16 2014 +0000
    
        loader: introduce the loader util lib
    
    By isolating libdrm code by #ifndef __NOT_HAVE_DRM_H we
    can have libdrm-less builds on across all build systems.
    
    This patch converts Android's _EGL_NO_DRM to __NOT_HAVE_DRM_H
    to provide consistency with the other cases within mesa, allows
    compilation of libloader on libdrm-less scons and conditionally
    links against libdrm if present under automake.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73776
    BUgzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73777
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Comment 3 Joaquín Montero Salinas 2017-02-26 02:50:28 UTC
I'm having this exact issue with libdrm-2.4.75. The makefile installs DRM headers under /usr/local/include/libdrm on my system, while xf86drm.h and xf86drmMode.h include <drm.h>.
Comment 4 Emil Velikov 2017-02-26 10:40:54 UTC
Joaquín please don't reopen 2+ year old fixed bugs but clearly describe your issue in a new one.

In there mention the following - which mesa version you're building, the configure (scons) line and include a snippet of the error message.

Thanks
Comment 5 Joaquín Montero Salinas 2017-02-26 13:20:10 UTC
(In reply to Emil Velikov from comment #4)
> Joaquín please don't reopen 2+ year old fixed bugs but clearly describe your
> issue in a new one.
> 
> In there mention the following - which mesa version you're building, the
> configure (scons) line and include a snippet of the error message.
> 
> Thanks

Yeah, sorry about that. I didn't notice this bug was filed under Mesa, so I thought filing a new bug would be making a duplicate.

Thanks for the heads-up, Emil.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.