Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 81199 - GL headers & symlinks cause compilation of qt to fail
Summary: GL headers & symlinks cause compilation of qt to fail
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: x86 Linux
: High normal
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
: 81333 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-02-07 23:50 UTC by Peter Volkov (RETIRED)
Modified: 2005-02-09 23:23 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Volkov (RETIRED) gentoo-dev 2005-02-07 23:50:06 UTC
Hello.
About 12h ago I've done emerge sync. Now I'm doing emerge -e world. Recompile qt library failed because of this error:
In file included from /usr/include/GL/glx.h:117,
                 from opengl/qgl.cpp:52:
/usr/include/GL/glxext.h:355:2: invalid preprocessing directive #warn

I've looked in the /usr/include/GL dirrectory and found there some problems.
1. Symlinks are pointing into nowhere.
   glxmd.h -> /usr/lib/opengl/global/include/glxmd.h
   glxproto.h -> /usr/lib/opengl/global/include/glxproto.h
Question here. Why emerge did not substitute this symlinks with the files from xorg's installation? So may be this is because of portage version I'm using? I'm sure I should have this files there. The output of qpkg -l has this lines:
/usr/include/GL/glxproto.h
/usr/include/GL/glxmd.h

2. Same problem with this file:
   glxext.h -> /usr/lib/opengl/global/include/glxext.h
The difference is, that /usr/lib/opengl/global/include/glxext.h exist.

I'm not sure this is ebuild's problem. As mentioned in 1. may be this is the problem of portage version I'm using.

Reproducible: Always
Steps to Reproduce:



Expected Results:  
camobap GL # emerge --info 
 
Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.3.5, 
glibc-2.3.4.20040808-r1, 2.6.10-gentoo-r6 i686) 
================================================================= 
System uname: 2.6.10-gentoo-r6 i686 Intel(R) Pentium(R) M processor 1700MHz 
Gentoo Base System version 1.6.9 
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  7 2005, 
22:53:03)] 
distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) 
[disabled] 
dev-lang/python:     2.3.4-r1 
sys-devel/autoconf:  2.59-r6, 2.13 
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4 
sys-devel/binutils:  2.15.92.0.2-r1 
sys-devel/libtool:   1.5.10-r4 
virtual/os-headers:  2.6.8.1-r2 
ACCEPT_KEYWORDS="x86" 
AUTOCLEAN="yes" 
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe -mcpu=pentium4" 
CHOST="i686-pc-linux-gnu" 
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe -mcpu=pentium4" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" 
GENTOO_MIRRORS="http://ftp.citkit.ru/pub/Linux/gentoo/ 
ftp://mirror.gentoo.ru/pub/mirror/gentoo/ http://ftp.du.se/pub/os/gentoo 
ftp://ftp.du.se/pub/os/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo 
http://mirror.pudas.net/gentoo" 
LANG="ru_RU.UTF-8" 
MAKEOPTS="-j3" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/usr/local/portage" 
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage" 
USE="x86 X acl alsa arts audiofile avi bluetooth cdparanoia crypt cups dga 
divx4linux dvd dvdread encode erandom extensions flac gif gimpprint glut 
gnokii gnome gtk gtk2 hal howl imlib irda java jce jpeg kde lirc mad mikmod 
mmx mng mozilla mpeg mppe-mppc nls nomotif nptl oggvorbis opengl pam pdflib 
pic plotutils png povray python qt quicktime readline real rtc samba sdl slp 
sms speex spell sse sse2 ssl svg tetex tiff truetype unicode wifi wmf xml xml2 
xmms xprint xscreensaver xv xvid zlib linguas_ru" 
Unset:  ASFLAGS, CBUILD, CTARGET, LC_ALL, LDFLAGS
Comment 1 Peter Volkov (RETIRED) gentoo-dev 2005-02-08 01:22:47 UTC
Donnie. I've CC you here, because I think you will be interested in this. Seems that this is an error in /usr/include/GL/glxext.h. Now I saw on the list this message with subject: "What does invalid preprocessing directive #warn mean?" This is the same problem. I've changed #warn->#warning as Mike Frysinger told there and seems that this fixes my problem with qt compilation.

But. Broken symlinks after manual removing them and reinstalling xorg are still there.

Also I've noted this message during installation:
ln: creating symbolic link `/var/tmp/portage/xorg-x11-6.8.1.904/image//usr/X11R6/lib/X11/doc' to `../../../share/doc/xorg-x11-6.8.1.904': No such file or directory
This is also bug I think.
Comment 2 Caleb Tennis (RETIRED) gentoo-dev 2005-02-08 03:13:23 UTC
I have the same problem as well.
Comment 3 Peter Volkov (RETIRED) gentoo-dev 2005-02-08 05:47:40 UTC
And I think this is related.

During compilation of tuxracer, configure ends with error:
checking for GL/glx.h... no
configure: error: Cannot find GL/glx.h

Strange. I have this header. But this last line in configure log are:
configure:4017: checking for GL/glx.h
configure:4027: gcc -E    -DTUXRACER_NO_ASSERT=1  -DTCL_HEADER=\<tcl.h\> -DHAVE_SDL=1 -DHAVE_SDL_MIXER=1 conftest.c >/dev/null 2>con
ftest.out
In file included from /usr/include/GL/glx.h:117,
                 from configure:4023:
/usr/include/GL/glxext.h:355:2: warning: #warning "int32_t and int64_t are undefined!"
configure: failed program was:
#line 4022 "configure"
#include "confdefs.h"
#include <GL/glx.h>
Comment 4 Donnie Berkholz (RETIRED) gentoo-dev 2005-02-08 19:57:11 UTC
Jeremy, looks like some of the symlinks are pointing into global that shouldn't be.
Comment 5 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 00:18:35 UTC
The symlinks-pointing-nowhere thing is fixed in 2.1.0  Previously, they were pointing to global if none existed in the profile dir.  Now they point to the profile dir first, then global if they don't exist there, and finally fall back on xorg-x11 if they don't exist in either place.

Please try 2.1.0 and report if that fixes your problem.
Comment 6 Peter Volkov (RETIRED) gentoo-dev 2005-02-09 03:03:45 UTC
Something strange again. After installation I have such headers/symlinks in /usr/include/GL:
-rw-r--r--  1 root root 10381 &#1060;&#1077;&#1074;  8 23:26 gle.h
lrwxrwxrwx  1 root root    37 &#1060;&#1077;&#1074;  8 11:17 gl.h -> /usr/lib/opengl/xorg-x11/include/gl.h
-r--r--r--  1 root root 15981 &#1060;&#1077;&#1074;  9 13:33 glu.h
-rw-r--r--  1 root root  4109 &#1060;&#1077;&#1074;  8 19:14 glutf90.h
-rw-r--r--  1 root root 30192 &#1060;&#1077;&#1074;  8 19:14 glut.h
-r--r--r--  1 root root  7946 &#1060;&#1077;&#1074;  9 13:33 GLwDrawA.h
-r--r--r--  1 root root  4433 &#1060;&#1077;&#1074;  9 13:33 GLwDrawAP.h
-r--r--r--  1 root root  2309 &#1060;&#1077;&#1074;  9 13:33 GLwMDrawA.h
-r--r--r--  1 root root  2311 &#1060;&#1077;&#1074;  9 13:33 GLwMDrawAP.h
-r--r--r--  1 root root 29020 &#1060;&#1077;&#1074;  9 13:33 glxext.h
lrwxrwxrwx  1 root root    38 &#1060;&#1077;&#1074;  8 11:17 glx.h -> /usr/lib/opengl/xorg-x11/include/glx.h
-r--r--r--  1 root root  4257 &#1060;&#1077;&#1074;  9 13:33 glxint.h
-r--r--r--  1 root root  2453 &#1060;&#1077;&#1074;  9 13:33 glxmd.h
-r--r--r--  1 root root 71034 &#1060;&#1077;&#1074;  9 13:33 glxproto.h
lrwxrwxrwx  1 root root    44 &#1060;&#1077;&#1074;  8 11:17 glxtokens.h -> /usr/lib/opengl/xorg-x11/include/glxtokens.h
-r--r--r--  1 root root  8349 &#1060;&#1077;&#1074;  9 13:33 osmesa.h

An attempt to configure tuxracer ends with the error that I do not have openGL library. Ok. I'm doing `opengl-update xorg-x11`. After that configure manage to find library but fails to find /usr/include/GL/gl.h. After that I have to create this links:
lrwxrwxrwx  1 root root   41 &#1060;&#1077;&#1074;  9 13:56 glext.h -> ../../lib/opengl/xorg-x11/include/glext.h
lrwxrwxrwx  1 root root   38 &#1060;&#1077;&#1074;  9 13:55 gl.h -> ../../lib/opengl/xorg-x11/include/gl.h
lrwxrwxrwx  1 root root   40 &#1060;&#1077;&#1074;  9 13:57 glxext.h -> ../../lib/opengl/global/include/glxext.h
lrwxrwxrwx  1 root root   39 &#1060;&#1077;&#1074;  9 13:56 glx.h -> ../../lib/opengl/xorg-x11/include/glx.h
lrwxrwxrwx  1 root root   40 &#1060;&#1077;&#1074;  9 13:58 glxtokens.h -> ../../lib/opengl/ati/include/glxtokens.h

Again fix in glxext.h #warn -> #warning. And still I could not compile tuxracer. From config.log:
configure:4017: checking for GL/glx.h
configure:4027: gcc -E    -DTUXRACER_NO_ASSERT=1  -DTCL_HEADER=\<tcl.h\> -DHAVE_SDL=1 -DHAVE_SDL_MIXER=1 conftest.c >/dev/null 2>con
ftest.out
In file included from /usr/include/GL/glx.h:117,
                 from configure:4023:
/usr/include/GL/glxext.h:355:2: warning: #warning "int32_t and int64_t are undefined!"
configure: failed program was:
#line 4022 "configure"
#include "confdefs.h"
#include <GL/glx.h>

Summarizing. Something is still broken.

Thank you for your attention,
_________
Peter.
Comment 7 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 03:36:51 UTC
*** Bug 81333 has been marked as a duplicate of this bug. ***
Comment 8 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 03:44:25 UTC
fixed in 2.1.0-r1.  Thanks.
Comment 9 Peter Volkov (RETIRED) gentoo-dev 2005-02-09 03:53:34 UTC
Thank you Jeremy! I'll try this in the evening. But.
Can I ask a question?

Of course you already saw a piece of code with that #warn.
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#include <inttypes.h>
[snip]
#else
#warn "int32_t and int64_t are undefined!"
#endif

I have inttypes.h that includes stdint.h. So I have typedefed int32_t and int64_t. So I don't understand why the first if statment is not true. So what is the magic with this 199901L number? Why we come into that #warn?

Thank you for your attention,
Peter.
Comment 10 Peter Volkov (RETIRED) gentoo-dev 2005-02-09 10:36:13 UTC
Hello.

Just updated the system to opengl-2.1.0-r1 reemerged xorg-x11 (just to be sure). But everything is the same as in #6. Here is my contents of /usr/include/GL after opengl-update xorg-x11:
peter@camobap /usr/include/GL $ ll
&#1080;&#1090;&#1086;&#1075;&#1086; 112
-rw-r--r--  1 root root 10381 &#1060;&#1077;&#1074;  8 23:26 gle.h
-r--r--r--  1 root root 15981 &#1060;&#1077;&#1074;  9 20:48 glu.h
-rw-r--r--  1 root root  4109 &#1060;&#1077;&#1074;  8 19:14 glutf90.h
-rw-r--r--  1 root root 30192 &#1060;&#1077;&#1074;  8 19:14 glut.h
-r--r--r--  1 root root  7946 &#1060;&#1077;&#1074;  9 20:48 GLwDrawA.h
-r--r--r--  1 root root  4433 &#1060;&#1077;&#1074;  9 20:48 GLwDrawAP.h
-r--r--r--  1 root root  2309 &#1060;&#1077;&#1074;  9 20:48 GLwMDrawA.h
-r--r--r--  1 root root  2311 &#1060;&#1077;&#1074;  9 20:48 GLwMDrawAP.h
-r--r--r--  1 root root  4257 &#1060;&#1077;&#1074;  9 20:48 glxint.h
-r--r--r--  1 root root  8349 &#1060;&#1077;&#1074;  9 20:48 osmesa.h

There is no gl.h! So it seems I have to reopen bug. Or may be I misunderstand something?
Comment 11 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 11:55:57 UTC
Volkov, do you have /usr/lib32 or /usr/lib64 on your system?  This looks like it may be bug #81385

Can you ls /usr/lib/opengl/xorg-x11/include

Thanks
Comment 12 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 16:06:40 UTC
Ok, bug #81385 is fixed in opengl-update-2.1.1.  Can you please try:

emerge -v \=x11-base/opengl-update-2.1.0-r1
cp /usr/portage/x11-base/opengl-update/files/opengl-update-2.1.1 /sbin/opengl-update
opengl-update xorg-x11

That should get you the right headers and test out the opengl-update-2.1.1 fix.
Comment 13 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 17:42:36 UTC
Also, please check the header of the opengl-update-2.1.1.  It should be revision 1.2:

# $Header: /var/cvsroot/gentoo-x86/x11-base/opengl-update/files/opengl-update-2.1.1,v 1.2 2005/02/10 01:37:59 eradicator Exp $

Thanks.
Comment 14 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 22:47:53 UTC
I verified that the #warn -> #warning change causes qt to compile.
Comment 15 Jeremy Huddleston (RETIRED) gentoo-dev 2005-02-09 22:48:09 UTC
marking fixed.
Comment 16 Peter Volkov (RETIRED) gentoo-dev 2005-02-09 23:23:50 UTC
Thank you, Jeremy.

I had that /usr/lib32, so update of opengl-update to /usr/sbin solves problem with symlinks.

But the problem mentioned in #3 is still the same. So:
1. I can not compile tuxracer.
2. And the new problem. I do not have glx extention in my system.

But I think I'd better open two new bugs, after little more experimenting with xorg-x11...

Thank you again, Jeremy.
BTW. Volkov is my surname and Peter is my name.