[wxPython] Undefined symbol -- can't load glcanvasc.so

I've got a Debian woody/sid system with the following packages
installed :
    python2.1 2.1.1-7
    libwxgtk2.2 2.2.9.5
    libwxgtk2.2-contrib 2.2.9.5
    libwxgtk2.2-python 2.2.9.5

Whenever I try to run a demo or test that uses OpenGL I get the
following stack trace :

Traceback (most recent call last):
  File "wxglcanvas.py", line 6, in ?
    import wxPython.glcanvas
  File "/usr/lib/python2.1/site-packages/wxPython/glcanvas.py", line 2, in
    import glcanvasc
ImportError: /usr/lib/python2.1/site-packages/wxPython/glcanvasc.so:
                        undefined symbol: SetCurrent__11wxGLContext

(this particular trace was running the wxglcanvas.py that Mike Fletcher
posted to the list on 13-Dec-1999, I get the same thing when trying to
run the PyOpenGL tests too)

I didn't find any mention of this symbol in the wxWindows
documentation, nor have I found any mention of it in the list archives
(I downloaded the whole mbox archive and grepped through it, and read
some of the messages too).

Where is this symbol supposed to be defined?

TIA,
-D

···

--

Bugs come in through open windows. Keep Windows shut!

...

/usr/lib/python2.1/site-packages/wxPython/glcanvasc.so:
          undefined symbol: SetCurrent__11wxGLContext

...

Where is this symbol supposed to be defined?

Ok, I need to add "-D" to nm (otherwise I am told "no symbols"). I
found the symbol in /usr/lib/libwx_gtk_gl-2.2.so.6.
("000041e8 T SetCurrent__11wxGLContext" means its defined, right?).
However running 'ldd' on glcanvasc.so shows that it is not linked to
libwx_gtk_gl*.so.

Is there a way to make it link that library without recompiling it?
(I'd like the quickest/easiest solution, I'll also mention this to the
package maintainer since it appears to be a bug at that level)

TIA,
-D

···

On Sat, Jan 05, 2002 at 12:48:41PM -0500, dman wrote:

--

A)bort, R)etry, D)o it right this time

I also discovered this just now.

btw, You can try:

LD_PRELOAD=/usr/lib/libwx_gtk_gl-2.2.so.6 python

(or export LD_PRELOAD= ... etc.) as a cheap trick to fix that symbol
problem. Then you get the problem papanikos@freemail.gr posted about
today. So it doesn't get you much further. :wink:

Have you mentioned this to the package maintainer yet? If my memory
isn't failing me very badly, I reported it as a bug today, and didn't
see any such bug against libwxgtk2.2-python - though I didn't check the
related packages, e.g. the source package, for reports.

Later,
Hugo

···

On Sat, Jan 05, 2002 at 01:01:31PM -0500, dman wrote:

On Sat, Jan 05, 2002 at 12:48:41PM -0500, dman wrote:
...
> /usr/lib/python2.1/site-packages/wxPython/glcanvasc.so:
> undefined symbol: SetCurrent__11wxGLContext
...
> Where is this symbol supposed to be defined?

Ok, I need to add "-D" to nm (otherwise I am told "no symbols"). I
found the symbol in /usr/lib/libwx_gtk_gl-2.2.so.6.
("000041e8 T SetCurrent__11wxGLContext" means its defined, right?).
However running 'ldd' on glcanvasc.so shows that it is not linked to
libwx_gtk_gl*.so.

Is there a way to make it link that library without recompiling it?
(I'd like the quickest/easiest solution, I'll also mention this to the
package maintainer since it appears to be a bug at that level)