Bug 38537 - Can't find X headers during 'make'
Summary: Can't find X headers during 'make'
Status: RESOLVED WORKSFORME
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium blocker
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-21 12:05 UTC by David
Modified: 2014-09-09 09:22 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description David 2011-06-21 12:05:50 UTC
I did not search for existing bugs but I did view the release notes for the current mesa release.

I am using the build.sh script to install X.
I have modified the script to use local repository mirrors on my HDD.
However, the environment variable assignments of the script are
unchanged.

I have had a problem compiling mesa for the last year (at least).
The problem has to do with gcc not finding the X headers that were
installed by build.sh.
BTW, I have this problem when using ./configure|make|ETC without using
build.sh.

Without confusing you, let's just say that nouveau and gallium are
disabled because enabling those caused drm and mesa to fail to compile.
I had to butcher both drm and the mesa main makefiles to do that.
(The creator of build.sh is going to get my help passing options to
modules when I get my new system up and running.)
Though I think that I did have gallium enabled several months back when
I last installed X and I still had this same problem.

I have two errors that I'm reporting.

I am attaching a partial output from the make showing the errors.

Building to run Linux / i686 ()
Fri Jun 10 22:39:45 America 2011

Environment variables that build.sh sees :
Libdir = lib ??? set via build.sh. I don't know what it's for.
ACLOCAL = aclocal -I /opt/X/share/aclocal
PKG_CONFIG_PATH
= /opt/X/share/pkgconfig:/opt/X/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/X/lib/pkgconfig:/opt/GNOME/lib/pkgconfig:/opt/GNOME/share/pkgconfig:/usr/local/apr/lib/pkgconfig:/opt/QT/lib/pkgconfig
LD_LIBRARY_PATH
= /opt/X/lib:/lib:/usr/lib:/usr/local/lib:/opt/X/lib:/opt/GNOME/lib:/usr/local/apr/lib:/opt/JAVA/lib/i386:/srv/mysql/lib/mysql:/opt/QT/lib
PATH
= /opt/X/bin:/bin:/usr/bin:/usr/local/bin:/opt/X/bin:/opt/GNOME/bin:/opt/JAVA/bin:/opt/QT/bin
SHELL=/bin/bash MAKEFLAGS=-j 1

======================================================================
==  Processing module/component:  "mesa/"
.
.
.
checking for X11... yes
checking for GLPROTO... yes
checking for LIBDRM... yes
checking for DRI2PROTO... yes
checking for XF86VIDMODE... yes
checking for DRIGL... yes
checking for LIBDRM_RADEON... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate in -lexpat... yes
checking for INTEL... yes
checking for LIBUDEV... yes
checking for XCB_DRI2... yes
checking for xcb_dri2_connect_alignment_pad in -lxcb-dri2... no
checking for GLW... yes
checking for GLUT... yes
checking for llvm-config... no <---- What is this ???
checking for XORG... no
configure: creating ./config.status
config.status: creating configs/autoconf
config.status: executing configs commands

        prefix:          /opt/X
        exec_prefix:     ${prefix}
        libdir:          /opt/X/lib
        includedir:      ${prefix}/include

        OpenGL:          yes (ES1: no ES2: no)
        OpenVG:          no

        Driver:          dri
        OSMesa:          no
        DRI drivers:     i810 i915 i965 mach64 mga r128 r200 r300 r600
        radeon savage sis tdfx unichrome swrast DRI driver dir:
        ${libdir}/dri Use XCB:         no
        Shared dricore:  no

        GLU:             yes
        GLw:             yes (Motif: no)
        glut:            yes

        EGL:             yes
        EGL platforms:   x11 drm
        EGL drivers:     builtin:egl_glx builtin:egl_dri2 egl_gallium
        EGL Gallium STs: $(GL_LIB)

        llvm:            no

        Gallium:         yes
        Gallium dirs:    auxiliary drivers state_trackers
        Target dirs:      egl
        Winsys dirs:     sw sw/xlib sw/dri
        Driver dirs:     softpipe failover galahad trace rbug noop
        identity Trackers dirs:   dri egl

        Shared libs:     yes
        Static libs:     no

        CFLAGS:          -g -O2 -Wall -Wmissing-prototypes -std=c99
        -ffast-math -fno-strict-aliasing -fPIC CXXFLAGS:        -g -O2
        -Wall -fno-strict-aliasing -fPIC Macros:          -D_GNU_SOURCE
        -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_EXTERNAL_DXTN_LIB=1
        -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING
        -DHAVE_ALIAS -DHAVE_LIBUDEV -DHAVE_XCB_DRI2
        -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -DUSE_X86_ASM
        -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM

        PYTHON2:         python

        Run 'make' to build Mesa
.
.
.
make[3]: Entering directory
        `/home/david/sources/XSOURCES/mesa/src/egl/main'
        running /opt/X/bin/makedepend
/opt/X/bin/makedepend -fdepend
-I/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/include
-I/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/include-fixed
-D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN
-DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER
-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS
-DHAVE_LIBUDEV -DHAVE_XCB_DRI2
-DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -I../../../include \
eglapi.c eglarray.c eglconfig.c eglcontext.c eglcurrent.c 
egldisplay.c egldriver.c eglfallbacks.c eglglobals.c eglimage.c 
egllog.c eglmisc.c eglmode.c eglscreen.c eglstring.c 
eglsurface.c eglsync.c eglcompiler.h eglconfig.h eglcontext.h 
eglcurrent.h egldefines.h egldisplay.h egldriver.h eglglobals.h 
eglimage.h egllog.h eglmisc.h eglmode.h eglmutex.h eglscreen.h 
eglstring.h eglsurface.h eglsync.h > /dev/null 2>/dev/null
make[3]: Leaving directory
        `/home/david/sources/XSOURCES/mesa/src/egl/main'
make[3]: Entering directory
        `/home/david/sources/XSOURCES/mesa/src/egl/main'
gcc -c -I../../../include -g -O2 -Wall -Wmissing-prototypes -std=c99
-ffast-math -fno-strict-aliasing  -fPIC  -DUSE_X86_ASM
-DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE
-DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_EXTERNAL_DXTN_LIB=1
-DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING
-DHAVE_ALIAS -DHAVE_LIBUDEV -DHAVE_XCB_DRI2
-DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -fvisibility=hidden
-D_EGL_OS_UNIX=1 -D_EGL_BUILT_IN_DRIVER_DRI2
-D_EGL_BUILT_IN_DRIVER_GLX
-D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11
-D_EGL_DRIVER_SEARCH_DIR=\"/opt/X/lib/egl\" eglapi.c -o eglapi.o
In file included from ../../../include/EGL/egl.h:36:0, from
        egltypedefs.h:6,
 from eglcontext.h:5,
 from eglapi.c:60: ../../../include/EGL/eglplatform.h:98:22:
 fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make[3]: *** [eglapi.o] Error 1


Problem : Can't find X11/Xlib.h :
6x Confirmed 10 Jun 2011 : /mesa/src/egl/main/Makefile :
Add -I/opt/X/include to INCLUDE_DIRS
Or Add $(X11_INCLUDES) to INCLUDE_DIRS

Did that and started over.
.
.
.
make[4]: Entering directory
`/home/david/sources/XSOURCES/mesa/src/gallium/state_trackers/egl'
rm -f depend
touch depend
/opt/X/bin/makedepend -fdepend
-I/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/include
-I/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/include-fixed -I.
-I../../../../src/gallium/include -I../../../../src/gallium/auxiliary
-I../../../../src/egl/main -I../../../../src/egl/wayland/wayland-drm/
-I../../../../include -I../../../../src/gallium/drivers
-I../../../../src/glx -I../../../../src/mapi -I../../../../src/mesa
-I/opt/X/include   -I/opt/X/include -I/opt/X/include/libdrm
-I../../../../src/gallium/winsys -I/opt/X/include
-I/opt/X/include/libdrm   -I../../../../src/gallium/winsys/sw
common/native_wayland_drm_bufmgr_helper.c common/egl_g3d_image.c
common/egl_g3d_st.c common/egl_g3d_api.c common/native_helper.c
common/egl_g3d.c common/egl_g3d_sync.c x11/native_ximage.c
x11/native_dri2.c x11/x11_screen.c x11/native_x11.c
x11/glxinit.c ../../../../src/glx/dri2.c drm/native_drm.c drm/modeset.c
fbdev/native_fbdev.c 2> /dev/null
make[4]: Leaving directory
`/home/david/sources/XSOURCES/mesa/src/gallium/state_trackers/egl'
make[4]: Entering directory
`/home/david/sources/XSOURCES/mesa/src/gallium/state_trackers/egl'
gcc -c -I. -I../../../../src/gallium/include
-I../../../../src/gallium/auxiliary -I../../../../src/egl/main
-I../../../../src/egl/wayland/wayland-drm/ -I../../../../include
-DHAVE_X11_BACKEND -DHAVE_DRM_BACKEND -D_GNU_SOURCE -DPTHREADS
-DHAVE_POSIX_MEMALIGN -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER
-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS
-DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -g
-O2 -Wall -Wmissing-prototypes -std=c99 -ffast-math
-fno-strict-aliasing  -fPIC  -DUSE_X86_ASM -DUSE_MMX_ASM
-DUSE_3DNOW_ASM -DUSE_SSE_ASM -D_GNU_SOURCE -DPTHREADS
-DHAVE_POSIX_MEMALIGN -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER
-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS
-DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN
-fvisibility=hidden common/native_wayland_drm_bufmgr_helper.c -o
common/native_wayland_drm_bufmgr_helper.o
In file included from ../../../../include/EGL/egl.h:36:0,
 from common/native.h:29,
 from common/native_wayland_drm_bufmgr_helper.c:4:
../../../../include/EGL/eglplatform.h:98:22: fatal error: X11/Xlib.h:
No such file or directory
compilation terminated.
make[4]: *** [common/native_wayland_drm_bufmgr_helper.o]
Error 1
make[4]: Leaving directory
`/home/david/sources/XSOURCES/mesa/src/gallium/state_trackers/egl'
make[3]: *** [subdirs] Error 1


Problem : Can't find X11/Xlib.h :
3x confirmed 10 Jun
2011 : /mesa/src/gallium/state_trackers/egl/Makefile :
Add $(shell pkg-config --cflags-only-I x11) to common_INCLUDES.
That 'x' is NOT a typo. It is a lowercase x.


Did that and started over.
Compile successful.
I'm not finished installing X yet. But I've done it 2-3 times the last
few months so I'm sure that it will work. This is the last time BTW.

I've noticed that other problems finding X's includes and libraries
have been fixed over the last few years. I've hesitated to file this
bug report because I'm tired of hearing "Fix it yourself" or "Get a
decent distro". I can't see any difference between what I have and
Redhat,Slackware,ETC-based systems. Other than that I compile
everything myself. I'm not an automake/autoconf expert so I figured
that I'd let someone else do the bug reporting that is. But these two
problems remain and nobody seems to be fixing them. So I'm filing this
report.

Now, if someone could just tell me what gallium is and especially how
to get ATI's or nVidia's headers installed and get X and other apps
that I compile to use them, I'd appreciate it. Somebody needs to make a
nice chart that shows how the kernel, X, drm, mesa, cairo, ETC fit
together. It won't be me because I need the chart to figure it all out
so that I can make the chart. Which I then wouldn't have to make
because someone already did it :) Linux and circular dependancies go
together like ham and cheese. haha. Oh well.

UPDATE : After my hacks, X is installed just fine. But I'm not sure what effects mesa/drm/etc are having on how my screen works.
Comment 1 Tapani Pälli 2014-09-09 07:04:38 UTC
From what I can understand from the bug description is that this is probably not a Mesa bug but an issue with the build environment and the way configure is being run. A lot has been changed in the Mesa build system since this bug has been filed so my proposal is that you will try running configure again (without using any external scripts) and file a new bug if there are still build problems.
Comment 2 Emil Velikov 2014-09-09 08:55:47 UTC
Actually the bug can be almost anywhere. Here is some more info:

Commit 1a7275de (from the 9.2 devel cycle) adds a MESA_EGL_NO_X11_HEADERS define which should avoid the X11/Xlib.h inclusion from include/EGL/eglplatform.h.

That will happen when the "x11" egl platform is not selected :)

If there is a problem with recent mesa (10.2 or later) feel free to reopen or report a new bug.
Comment 3 David 2014-09-09 09:22:12 UTC
I quit using mesa when I bought a nvidia graphics card. Mesa and nvidia's
drivers seemed to be mutually exclusive.

Returning to college forced a change back to MS Windows.
I will rebuild my Linux software again in a few months and see what has
changed with mesa.



On Tue, Sep 9, 2014 at 4:55 AM, <bugzilla-daemon@freedesktop.org> wrote:

>   *Comment # 2 <https://bugs.freedesktop.org/show_bug.cgi?id=38537#c2> on
> bug 38537 <https://bugs.freedesktop.org/show_bug.cgi?id=38537> from Emil
> Velikov <emil.l.velikov@gmail.com> *
>
> Actually the bug can be almost anywhere. Here is some more info:
>
> Commit 1a7275de (from the 9.2 devel cycle) adds a MESA_EGL_NO_X11_HEADERS
> define which should avoid the X11/Xlib.h inclusion from
> include/EGL/eglplatform.h.
>
> That will happen when the "x11" egl platform is not selected :)
>
> If there is a problem with recent mesa (10.2 or later) feel free to reopen or
> report a new bug.
>
>  ------------------------------
> You are receiving this mail because:
>
>    - You reported the bug.
>
>


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.