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 `glXGetCurrentContext' 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) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) 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 sleeping :)
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: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=blob;h=973f3940451935e4ffcc5e0e5aeb7b658c1968bc;hb=5e66843733c8123e73cadc1bc5c6111d64abaf25;f=src/mesa/drivers/x11/glxapi.c 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.
Good catch. 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. ***