Most likely Mandrake's python was not using the RTLD_GLOBAL hack that
Red Hat Linux had.  If libimlib-jpeg.so needs a symbol called
"_gdk_malloc_image", it needs to have a DT_NEEDED entry that says what
library to get it from.  (i.e., it needs to include -lgdk on the link
line)

As you can see:

[msw@sid msw]$ ldd /usr/lib/libimlib-jpeg.so 
         libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x4001a000)
         libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

This would be OK if libgdk_imlib.so linked against libgdk, but:

[msw@sid 8.0]$ ldd /usr/lib/libgdk_imlib.so
         libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x4003c000)
         libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40046000)
         libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4005d000)
         libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x4006b000)
         libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
         libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4008f000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
         libdl.so.2 => /lib/libdl.so.2 (0x4016c000)

So it's all totally broken.  The RIGHT thing to do is fix gdkimlib.  I
think it would be much easier to make your application use gdkpixbuf
which doesn't suffer these coding errors.

Cheers,

Matt

On Fri, Jul 26, 2002 at 07:18:49AM -0600, Don Allingham wrote:
> I have been fighting the problem for quite a while, and I cannot come up
> with a workable solution. Under Mandrake 8.2, I keep getting the
> following error:
> 
> /usr/bin/python: relocation error: /usr/lib/libimlib-jpeg.so: undefined symbol: 
>_gdk_malloc_image
> 
> Things work fine under RedHat, SuSE, debian, any other distribution that
> I or anyone else has tested. I can get around the problem by using
> LD_PRELOAD, but this isn't a really good solution, as it is not very
> portable.
> 
> export LD_PRELOAD='/usr/X11R6/lib/libX11.so /usr/lib/libgdk_imlib.so.1 
>/usr/lib/libgdk.so'
> 
> I've tried forcing a load of GdkImlib, but this doesn't seem to have an
> effect. The first call to any image handling routine, either from python
> or from libglade, causes python to abort.
> 
> Any ideas on how to get around this problem?
> 
> Don
> 
> 
> -- 
> Don Allingham
> [EMAIL PROTECTED]
> http://gramps.sourceforge.net
> 
> 
> _______________________________________________
> pygtk mailing list   [EMAIL PROTECTED]
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
_______________________________________________
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to