[including whole message in reply since the original was private] On Tue, Jan 12, 2010 at 11:37:33AM +0200, Alex Joni wrote: >> Traceback (most recent call last): >> File "/usr/bin/axis", line 54, in <module> >> from minigl import * >> ImportError: /usr/lib/libGL.so.1: undefined symbol: XGetErrorDatabaseText > > Hi Jeff, > > any idea what could cause this? (google came up pretty empty on this) > The guy having these issues mentions that glxgears is working on this > machine (a VM), so does any non-axis emc2 config. > > Many thanks, > Alex >
You didn't say what distribution or version. If a proprietary libGL, you didn't state which one. http://osdir.com/ml/freedesktop.xlibs.general/2004-01/msg00016.html the internet finds variations on this theme, and the underlying cause is a bad shared library that doesn't link to every shared library it requires. That post suggests how to determine if the system's libGL is buggy (ldd -r -d /usr/lib/libGL.so.1 will likely print the 'undefined symbol message' on its own). This post suggests that maybe the ATI proprietary OpenGL drivers had this problem back in the 2008 timeframe: dpkg-shlibdeps: warning: symbol XGetErrorDatabaseText used by debian/xorg-driver-fglrx/usr/lib/libGL.so.1.2 found in none of the libraries. http://ubuntuforums.org/showthread.php?t=696164&page=3 I have access to a 9.10 machine with xorg-driver-fglrx 8.660 which does *not* seem to have the problem (at least as shown by ldd). Probably linking -lX11 or -lXmu after -lGL for minigl.so will allow axis to work even if the underlying bug in libGL is not fixed. If someone wants to submit a configure test and Makefile changes to fix this problem, I'd be open to it. But we don't want to add the extra -l flag for platforms where it's not required. The following patch might provide an easy way to test whether adding the -l will fix the problem. If it changes the undefined symbol to a new undefined symbol, that's a sign of progress; use standard techniques to find the next needed library. But do not apply this patch to emc in its current form. Use a configure test to determine if this hack is necessary, as most libGLs do not require this. Jeff diff --git a/src/emc/usr_intf/axis/Submakefile b/src/emc/usr_intf/axis/Submakefile index 244104f..faf562c 100644 --- a/src/emc/usr_intf/axis/Submakefile +++ b/src/emc/usr_intf/axis/Submakefile @@ -16,12 +16,12 @@ $(call TOOBJSDEPS, $(EMCMODULESRCS)) : Makefile.inc $(EMCMODULE): $(call TOOBJS, $(EMCMODULESRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so $(ECHO) Linking python module $(notdir $@) - @$(CXX) $(LDFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lm -lGL + @$(CXX) $(LDFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lm -lGL -lX11 $(MINIGLMODULE): $(call TOOBJS, $(MINIGLMODULESRCS)) $(ECHO) Linking python module $(notdir $@) - @$(CC) $(LDFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lGLU -lGL + @$(CC) $(LDFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lGLU -lGL -lX11 $(SETICONMODULE): $(call TOOBJS, $(SETICONMODULESRCS)) $(ECHO) Linking python module $(notdir $@) ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers