[Image-SIG] Linking issues with 1.1.5 on x86_64

Nick Bower nick at nickbower.com
Thu May 18 08:31:18 CEST 2006


This is resolved by setting LD_LIBRARY_PATH to bump /usr/lib64 higher up the 
library search order.

On Thu, 18 May 2006 01:37 pm, Nick Bower wrote:
> I've some experience building PIL, but for some reason JPEG and other
> decoders are not working for a particular architecture (FC4 on sun x86
> opterons).  The build script reports JPEG support ok after I configure
> setup.py
> for /usr/lib64 and the build even seems to link correctly, but at runtime
> such actions as Image.open('test.jpg').save('x.jpg') report the well known
> "Module PIL.Image, line 328, in _getdecoder IOError: decoder jpeg not
> available"
>
> --------------------------------------------------------------------
> PIL 1.1.5 BUILD SUMMARY
> --------------------------------------------------------------------
> version       1.1.5
> platform      linux2 2.4.3 (#1, Apr 11 2006, 08:14:37)
>               [GCC 4.0.2 20051125 (Red Hat 4.0.2-8)]
> --------------------------------------------------------------------
> *** TKINTER support not available
> --- JPEG support ok
> --- ZLIB (PNG/ZIP) support ok
> --- FREETYPE2 support ok
> --------------------------------------------------------------------
>
>
> gcc -pthread -shared build/temp.linux-x86_64-2.4/_imaging.o
> build/temp.linux-x86_64-2.4/decode.o build/temp.linux-x86_64-2.4/encode.o
> build/temp.linux-x86_64-2.4/map.o build/temp.linux-x86_64-2.4/display.o
> build/temp.linux-x86_64-2.4/outline.o build/temp.linux-x86_64-2.4/path.o
> build/temp.linux-x86_64-2.4/libImaging/Access.o
> [chop]
> build/temp.linux-x86_64-2.4/libImaging/JpegDecode.o
> build/temp.linux-x86_64-2.4/libImaging/JpegEncode.o
> [chop]
> -L/opt/ktstudio/python/python243/lib -L/usr/lib64 -L/usr/local/lib
> -L/usr/lib -ljpeg -lz -o build/lib.linux-x86_64-2.4/_imaging.so
>
> # ldd Imaging-1.1.5/build/lib.linux-x86_64-2.4/_imaging.so
>         libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00002aaaaabf5000)
>         libz.so.1 => /usr/lib64/libz.so.1 (0x00002aaaaad17000)
>         libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaaae4c000)
>         libc.so.6 => /lib64/libc.so.6 (0x00002aaaaaf62000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>
> # ls -l /usr/lib64/libjpeg.so.62*
> lrwxrwxrwx  1 root root     17 Jan 11 00:28 /usr/lib/libjpeg.so.62 ->
> libjpeg.so.62.0.0
> -rwxr-xr-x  1 root root 124696 Mar  3  2005 /usr/lib/libjpeg.so.62.0.0
>
> The only thing that is different is that there are also 32 bit versions
> in /usr/lib.  Perhaps this would generate a conflict for the loader?
>
> # ls -l /usr/lib/libjpeg*
> lrwxrwxrwx  1 root root     17 Jan 11 00:28 /usr/lib/libjpeg.so.62 ->
> libjpeg.so.62.0.0
> -rwxr-xr-x  1 root root 124696 Mar  3  2005 /usr/lib/libjpeg.so.62.0.0


More information about the Image-SIG mailing list