[Crossposting to both python-dev and ctypes-users, please respond to the list that seems most appropriate]
Guido van Rossum wrote: > I see test failures in current HEAD on my Google Red Hat Linux desktop > that the buildbots don't seem to have: > > ./python -E -tt ../Lib/test/regrtest.py test_ctypes > test_ctypes > test test_ctypes failed -- errors occurred; run in verbose mode for details > > More details from running this manually: > $ ./python ../Lib/test/test_ctypes.py > . > . (lots of passing tests; then:) > . > test_gl (ctypes.test.test_find.Test_OpenGL_libs) ... ERROR > test_glu (ctypes.test.test_find.Test_OpenGL_libs) ... ERROR > test_glut (ctypes.test.test_find.Test_OpenGL_libs) ... ERROR > > ====================================================================== > ERROR: test_gl (ctypes.test.test_find.Test_OpenGL_libs) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "/home/guido/projects/python/trunk/Lib/ctypes/test/test_find.py", > line 42, in setUp > self.glut = CDLL(lib_glut) > File "/home/guido/projects/python/trunk/Lib/ctypes/__init__.py", > line 288, in __init__ > self._handle = _dlopen(self._name, mode) > OSError: /usr/lib/libglut.so.3: undefined symbol: XGetExtensionVersion I have now changed the test to ignore the case when the libglut.so library cannot be loaded because of missing symbols. I could not reproduce the failure on any of the systems I have access to. I've installed fedora 5, but the test succeeds on this system (I assume redhat desktop is different from fedora, though). Unfortunately I don't know enough about shared libs on linux to make the test more correct. I would appreciate explanations or pointers to explanations how shard library loading on linux works in detail. The most important questions now is: - When I load shared libs, sometimes it is required to use the RTLD_GLOBAL flag (RTLD_LOCAL is the default), although in most casesthis is not needed. I think I do understand what RTLD_GLOBAL does, I just do not know how to determine if it is required or not. The runtime loader seems to have access to this information - is there a way for me to find out? Thanks, Thomas _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com