libOSMesa appears to be completely broken. This is Mesa 7.8.1. Testcase t.c: (from tulip configure test) /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char OSMesaCreateContext (); int main () { OSMesaCreateContext (); ; return 0; } Compile command: gcc -DNDEBUG -O3 -funroll-loops -pipe -DI64 -I/usr/X11R6/include \ -L/usr/lib64 t.c -lOSMesa -I/usr/include -L/usr/lib64 -lGLEW -lGLU -lGL On 11.2: Produces binary On Factory: ... /usr/lib64/libOSMesa.so: undefined reference to `_mesa_create_visual' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_error' /usr/lib64/libOSMesa.so: undefined reference to `_vbo_InvalidateState' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_resize_framebuffer' /usr/lib64/libOSMesa.so: undefined reference to `_swrast_choose_line' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_add_renderbuffer' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_create_framebuffer' /usr/lib64/libOSMesa.so: undefined reference to `_swrast_CreateContext' /usr/lib64/libOSMesa.so: undefined reference to `_swsetup_DestroyContext' /usr/lib64/libOSMesa.so: undefined reference to `_swrast_choose_triangle' /usr/lib64/libOSMesa.so: undefined reference to `_swsetup_CreateContext' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_destroy_visual' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_update_framebuffer_visual' /usr/lib64/libOSMesa.so: undefined reference to `_tnl_DestroyContext' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_enable_2_1_extensions' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_enable_1_4_extensions' /usr/lib64/libOSMesa.so: undefined reference to `_swsetup_Wakeup' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_reference_renderbuffer' /usr/lib64/libOSMesa.so: undefined reference to `_swsetup_InvalidateState' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_remove_renderbuffer' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_initialize_context' /usr/lib64/libOSMesa.so: undefined reference to `_vbo_CreateContext' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_new_renderbuffer' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_meta_init' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_problem' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_enable_1_3_extensions' /usr/lib64/libOSMesa.so: undefined reference to `_tnl_run_pipeline' /usr/lib64/libOSMesa.so: undefined reference to `_mesa_get_current_context' collect2: ld returned 1 exit status
Looks like these symbols are not added to libGL, although they are part of the static libs (e.g. _mesa_create_visual is defined in libmesa.a, i.e. src/mesa/main/context.o). Mesa-7.8.1/src/mesa/drivers/x11> make /bin/sh ../../../../bin/mklib -o GL -linker 'gcc' -ldflags '' \ -major 1 -minor 5 -patch 070801 \ -install ../../../../lib64 \ -id /usr/lib64/libGL.1.dylib \ -lX11 -lXext -lm -lpthread fakeglx.o glxapi.o xfonts.o xm_api.o xm_buffer.o xm_dd.o xm_glide.o xm_image.o xm_line.o xm_span.o xm_tri.o ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi.a mklib: Making Linux shared library: libGL.so.1.5.070801 mklib: Installing libGL.so.1.5.070801 libGL.so.1 libGL.so in ../../../../lib64
Duplicate of Bug #28305? Need to verify that ...
(In reply to comment #2) > Duplicate of Bug #28305? Need to verify that ... Yes, please try again with 7.8.2. We now always link OSMesa directly against the internal static libs instead of GL. This prevents symbol resolution issues since we build with -fvisibility=hidden by default on gcc. I'm going to close this assuming it's fixed, but please reopen if not.
Thanks. Looks like this fixes the build of tlprender in tulip.
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.