Red Hat Bugzilla – Bug 229808
libGL.so.1 no longer contains glXGetCurrentContext symbol
Last modified: 2007-11-30 17:11:57 EST
Packages that build with or detect freeglut-devel fail like this:
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to
Build Date: Mon 28 Aug 2006 06:26:05 AM CEST
Source RPM: freeglut-2.4.0-10.fc6.src.rpm
Please rebuild the package for Fedora 7.
This is not a freeglut problem, but rather a mesa-libGL problem, mesa-libGL used
to contain glXGetCurrentContext and now no longer does, thus breaking ABI
compatibilty and that while keeping the same hostname, also libGL.so.1 now has
week symbols itself, causing many apps trying to link against it to fail:
[hans@shalem comps]$ ldd -r /usr/lib64/libGL.so.1
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00002aaaaad4f000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00002aaaab05a000)
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00002aaaab26b000)
libm.so.6 => /lib64/libm.so.6 (0x00002aaaab471000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaab6f4000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaab90e000)
libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00002aaaabb13000)
libc.so.6 => /lib64/libc.so.6 (0x00002aaaabd1b000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00002aaaac069000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00002aaaac26c000)
undefined symbol: drmOpenOnce (/usr/lib64/libGL.so.1)
undefined symbol: drmCloseOnce (/usr/lib64/libGL.so.1)
Also simply rebuilding freeglut doesn't work because of this:
/usr/lib64/libGL.so: undefined reference to `drmOpenOnce'
../../../src/.libs/libglut.so: undefined reference to `glXGetCurrentContext'
/usr/lib64/libGL.so: undefined reference to `drmCloseOnce'
I'm going to bed now as its getting late over here, and take a closer look
tomorrow, but for now I tend to change the component of this bug to mesa-libGL
and reasign it to the mesa owner. If you agree feel free todo this while I'm
Hmm, I just had one last awake moment and decide to also upgrade libdrm, that
fixes the drmOpenOnce and CloseOnce problem, but still leaves the fact that
before I did a yum update 'mesa*' freeglut was fine, and thus the new libGL.so.1
isn't abi compatible with the old, which is bad (same soname)!
Further digging shows that glXGetCurrentContext still is declared in Mesa's
current source tree see:
I'm really pretty sure this is a mesa problem, changing component, description,
etc. Jackson, reassigning to you.
Oh, mesa-libGL-6.5.2-5 changelog mentions it was built with
-fvisibility=hidden, so most likely you're right.
The libdrm issue was due to needing new symbols available in 2.3.0 without
having an explicit Requires for them. Fixed. The missing glXGetCurrentContext
is actually a Mesa bug where it wasn't marked as public; fixed in rawhide, will
fix in upstream shortly.
Both will be sorted in 6.5.2-6, which is building now. Thanks!
*** Bug 230223 has been marked as a duplicate of this bug. ***