Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 115029 - xorg-server-0.99.4-r2 fails: GL/glxproto.h: No such file or directory
Summary: xorg-server-0.99.4-r2 fails: GL/glxproto.h: No such file or directory
Status: VERIFIED DUPLICATE of bug 109922
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Highest critical (vote)
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
: 116501 (view as bug list)
Depends on:
Blocks: 112004
  Show dependency tree
 
Reported: 2005-12-09 14:51 UTC by Jaak Ristioja
Modified: 2008-06-05 17:24 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Mesa-6.4.1-r1 compilation output (MesaLog,19.48 KB, text/plain)
2005-12-20 14:44 UTC, Jaak Ristioja
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jaak Ristioja 2005-12-09 14:51:43 UTC
After handling this problem:

https://bugs.gentoo.org/show_bug.cgi?id=111877#c11 (see comment #11)

with:

rm -r /usr/lib32/opengl
eselect opengl set xorg-x11

emerging xorg-server fails.

Reproducible: Always
Steps to Reproduce:
USE="dri -ipv6 -minimal xprint" emerge --oneshot =xorg-x11-0.99.4-r2
Actual Results:  
if /bin/sh ../../libtool --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H
-I. -I. -I../../include -I../../include -I../../include -I../../include
-I../../include -I../../include -I../../GL/include -I../../hw/xfree86/os-support
  -DHAVE_DIX_CONFIG_H
-I/var/tmp/portage/xorg-server-0.99.4-r2/work/Mesa-6.4.1/include -DXFree86Server
-DIN_MODULE -DXFree86Module -DXFree86LOADER -Wall -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs
-fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT  
-I../../include -I../../include -I../../Xext -I../../composite -I../../damageext
-I../../xfixes -I../../Xi -I../../mi -I../../miext/shadow  -I../../miext/damage
-I../../render -I../../randr -I../../fb -I../../lbx   -O2 -pipe
-fomit-frame-pointer -m64 -MT g_disptab.lo -MD -MP -MF ".deps/g_disptab.Tpo" \
  -c -o g_disptab.lo `test -f 'g_disptab.c' || echo './'`g_disptab.c; \
then mv -f ".deps/g_disptab.Tpo" ".deps/g_disptab.Plo"; \
else rm -f ".deps/g_disptab.Tpo"; exit 1; \
fi
 x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
-I../../include -I../../include -I../../include -I../../include
-I../../GL/include -I../../hw/xfree86/os-support -DHAVE_DIX_CONFIG_H
-I/var/tmp/portage/xorg-server-0.99.4-r2/work/Mesa-6.4.1/include -DXFree86Server
-DIN_MODULE -DXFree86Module -DXFree86LOADER -Wall -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs
-fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT
-I../../include -I../../include -I../../Xext -I../../composite -I../../damageext
-I../../xfixes -I../../Xi -I../../mi -I../../miext/shadow -I../../miext/damage
-I../../render -I../../randr -I../../fb -I../../lbx -O2 -pipe
-fomit-frame-pointer -m64 -MT g_disptab.lo -MD -MP -MF .deps/g_disptab.Tpo -c
g_disptab.c  -fPIC -o .libs/g_disptab.o
In file included from g_disptab.c:36:
glxserver.h:65:25: GL/glxproto.h: No such file or directory
In file included from g_disptab.c:36:
glxserver.h:107: error: parse error before "GLXContextTag"
glxserver.h:107: warning: function declaration isn't a prototype
glxserver.h:209: error: parse error before "xGLXMakeCurrentReply"
glxserver.h:209: warning: function declaration isn't a prototype
glxserver.h:211: error: parse error before "xGLXIsDirectReply"
glxserver.h:211: warning: function declaration isn't a prototype
glxserver.h:213: error: parse error before "xGLXQueryVersionReply"
glxserver.h:213: warning: function declaration isn't a prototype
glxserver.h:215: error: parse error before "xGLXQueryContextInfoEXTReply"
glxserver.h:216: warning: function declaration isn't a prototype
glxserver.h:218: error: parse error before "xGLXQueryExtensionsStringReply"
glxserver.h:218: warning: function declaration isn't a prototype
glxserver.h:220: error: parse error before "xGLXQueryServerStringReply"
glxserver.h:220: warning: function declaration isn't a prototype
In file included from g_disptab.c:37:
glxext.h:81: error: parse error before "GLXContextTag"
glxext.h:81: warning: function declaration isn't a prototype
make: *** [g_disptab.lo] Error 1
Comment 1 Michael Short 2005-12-11 07:30:53 UTC
I can confirm this bug with my x86 machine, so its not AMD64 specific.
Comment 2 Michael Short 2005-12-11 07:33:12 UTC
(In reply to comment #1)
> I can confirm this bug with my x86 machine, so its not AMD64 specific.

Oh, and its specific to the +dri flag.
Comment 3 Jaak Ristioja 2005-12-20 14:44:58 UTC
Created attachment 75234 [details]
Mesa-6.4.1-r1 compilation output

This is probably related to the bug at hand.
Comment 4 Jaak Ristioja 2005-12-23 08:26:51 UTC
I found out, that what caused the problem, was emul-linux-x86-xlibs-2.2-r1, which ran "eselect opengl set --use-old", which in turn somehow managed to break the symlinks to link to emul-linux libraries in /usr/include/GL:

lrwxrwxrwx  1 root root    39 Dec 23 16:16 gl.h -> /usr/lib32/opengl/xorg-x11/include/gl.h
lrwxrwxrwx  1 root root    42 Dec 23 16:16 glext.h -> /usr/lib32/opengl/xorg-x11/include/glext.h
lrwxrwxrwx  1 root root    40 Dec 23 16:16 glx.h -> /usr/lib32/opengl/xorg-x11/include/glx.h
lrwxrwxrwx  1 root root    43 Dec 23 16:16 glxext.h -> /usr/lib32/opengl/xorg-x11/include/glxext.h
lrwxrwxrwx  1 root root    42 Dec 23 16:16 glxmd.h -> /usr/lib32/opengl/xorg-x11/include/glxmd.h
lrwxrwxrwx  1 root root    45 Dec 23 16:16 glxproto.h -> /usr/lib32/opengl/xorg-x11/include/glxproto.h
lrwxrwxrwx  1 root root    46 Dec 23 16:16 glxtokens.h -> /usr/lib32/opengl/xorg-x11/include/glxtokens.h

So one must manually relink them to the headers in /usr/lib64/opengl/xorg-x11/include/. I was unable to fix this by running "eselect opengl set xorg-x11".
Comment 5 Jaak Ristioja 2005-12-23 08:47:30 UTC
xorg-server-1.0.1.ebuild:

switch_opengl_implem() {
                # Switch to the xorg implementation.
                # Use new opengl-update that will not reset user selected
                # OpenGL interface ...
                echo
                eselect opengl set --use-old ${OPENGL_DIR}
}

This DID RESET the symlinks thou, so again i had to RESET them myself during compilation.
Comment 6 Donnie Berkholz (RETIRED) gentoo-dev 2005-12-23 09:07:00 UTC
*** Bug 116501 has been marked as a duplicate of this bug. ***
Comment 7 Waldo 2005-12-27 23:06:44 UTC
I can confirm the same problem.  I'm manually relinking, and if I continue to have problems, I'll post them here.   Here's what I did (in case anyone else wants to avoid retyping):

 eselect opengl set xorg-x11  
 cd /usr/include/GL
 rm gl.h
 ln -s /usr/lib64/opengl/xorg-x11/include/gl.h gl.h
 rm glext.h
 ln -s /usr/lib64/opengl/global/include/glext.h glext.h
  rm glx.h
 ln -s /usr/lib64/opengl/xorg-x11/include/glx.h glx.h
  rm glxext.h
 ln -s /usr/lib64/opengl/global/include/glxext.h glxext.h
  rm glxmd.h
 ln -s /usr/lib64/opengl/xorg-x11/include/glxmd.h glxmd.h
  rm glxproto.h
 ln -s /usr/lib64/opengl/xorg-x11/include/glxproto.h glxproto.h
  rm glxtokens.h
 ln -s /usr/lib64/opengl/xorg-x11/include/glxtokens.h glxtokens.h

This is with xorg-server-1.0.1  (might want to update the summary)

UPDATE:  This seems to have worked, xorg-server compiled :)

W
Comment 8 Jaak Ristioja 2005-12-28 00:04:59 UTC
> Here's what I did (in case anyone else wants to avoid retyping):

I just figured out, that one can save a lot of typing by using

ln -sf /usr/lib64/opengl/xorg-x11/* /usr/include/GL/

I noticed that you linked some files from /usr/lib64/opengl/global. I'm just wondering, but didn't glxext.h and glext.h exist in /usr/lib64/opengl/xorg-x11/?
Comment 9 Michal Pytasz 2005-12-28 08:12:24 UTC
I've been looking for /usr/lib32/opengl in etc (and some other places) to see why such symlinks are created in the first place. What I thought is if it was problem with eselect? 

Having edited /etc/env.d/03opengl which originally was:
# Configuration file for eselect
# This file has been automatically generated.
LDPATH="/usr/lib32/opengl/xorg-x11/lib"
OPENGL_PROFILE="xorg-x11"

changing:
LDPATH to "/usr/lib64/opengl/xorg-x11/lib"

and running eselect set opengl xorg-x11 causes original file to restore. 
lib32 can be found in /usr/share/eselect/modules/opengl.eselect and it is said handle "specially" emul libs. Aren't just emul - libs too old?
Also, what is this path used for anyway (env-update does not re-create symlinks...) ?
Comment 10 Herbie Hopkins (RETIRED) gentoo-dev 2005-12-28 08:25:56 UTC
Yes, this is a known problem with eselect.

*** This bug has been marked as a duplicate of 109922 ***

*** This bug has been marked as a duplicate of 109922 ***
Comment 11 Michal Pytasz 2005-12-28 08:28:50 UTC
I suppose not only with eselect but with app-emulation/emul-linux-x86-xlibs as well ;)