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/