Hi, Having spoken to sthen and djm, I am still stuck on this, so I am posting on ports, incase someone here knows.
Im looking at porting something which uses ctypes to load first libGL and then libGLU. Once we strip the gunk away, the library loading looks like this: ---8<--- import ctypes ctypes.cdll.LoadLibrary("libGL.so") ctypes.cdll.LoadLibrary("libGLU.so") ---8<--- Try it on a python shell. The final line spews errors about missing symbols: ---8<--- python2.7:/usr/X11R6/lib/libGLU.so.7.0: undefined symbol 'glPixelStorei' python2.7:/usr/X11R6/lib/libGLU.so.7.0: undefined symbol 'glEvalPoint2' python2.7:/usr/X11R6/lib/libGLU.so.7.0: undefined symbol 'glMultMatrixd' python2.7:/usr/X11R6/lib/libGLU.so.7.0: undefined symbol 'glPopAttrib' ... ---8<--- These symbols are from libGL.so (i used nm to check this), which we supposedly loaded on the previous line. I have used LD_DEBUG to check libGL is correctly loaded, and it is, log here: http://theunixzoo.co.uk/files/pylog I can even see the functions from the python interpreter: >>> libgl = ctypes.cdll.LoadLibrary("libGL.so") >>> libgl <CDLL 'libGL.so', handle 80270010 at 7c08f8ac> >>> libgl.glEnd <_FuncPtr object at 0x7c07402c> If you use LD_PRELOAD, all is well: ---8<--- % LD_PRELOAD=/usr/X11R6/lib/libGLU.so.7.0 python2.7 Python 2.7.2 (default, Mar 16 2012, 06:30:10) [GCC 4.2.1 20070719 ] on openbsd5 Type "help", "copyright", "credits" or "license" for more information. >>> import ctypes >>> ctypes.cdll.LoadLibrary("libGLU.so") <CDLL 'libGLU.so', handle 20ec934f8 at 201f50790> ---8<--- So, why the undefined symbol errors? Any ideas? -- Best Regards Edd Barrett http://www.theunixzoo.co.uk