ldconfig multiarch: Probleme beim Linken von libpng.so.2
Hallo,
Ich brauche libpng.so.2 für PTStitcher aus den Panotools.
http://www.path.unimelb.edu.au/~dersch/
http://www.path.unimelb.edu.au/~dersch/PanoTools.tar.gz
Es liegt nur als 32bit binary vor und es fehlt libpng.so.2 (32bit),
weshalb ich es nicht in hugin 64bit nutzen kann.
Es fehlte auch noch libpano12 und libtif.so.3 für 32bit.
Diese wurden aber richtig gelinkt, nachdem ich sie
aus /var/chroot/usr/lib nach /usr/lib32 kopierte und ldconfig aufrief.
libpng.so.2 kopierte ich ebenfalls, wie auch libpng10.so.1.0.18 und
libpng10.so.0.
libpng.so.2 ist nur ein link auf libpng10.so.0, und libpng10.so.0 ein
link auf libpng10.so.1.0.18.
libpng.so.2 wird aber nicht gelinkt:
$ sudo /sbin/ldconfig -v -l /lib32/libpng.so.2
/sbin/ldconfig: Ignored file /lib32/libpng.so.2 since it is not a
regular file.
libtiff.so.3 ist aber auch nur ein link ldconfig hat die tiff lib aber
korrekt gelinkt:
$ ldconfig -p|grep libtiff.so.3
libtiff.so.3 (libc6) => /usr/lib32/libtiff.so.3
$ ls -l /usr/lib32/libtiff.so.3
lrwxrwxrwx 1 root root 16 2005-11-05 14:23 /usr/lib32/libtiff.so.3
-> libtiff.so.3.6.1
Weshalb linkt ldconfig aber nicht libpng.so.2 ?
$ ls -l /usr/lib32/libpng.so.2
lrwxrwxrwx 1 root root 13 2005-11-05 18:31 /usr/lib32/libpng.so.2 ->
libpng10.so.0
etwa weil das auf libpng10.so.0 weist (damit auf libpng10.so.1.0.18),
und nicht auf etwas wie libpng.so.2.0.18 ?
Ganz merkwürdig, dass das *selbe* PTStitcher binary im 32bit i386_chroot
läuft, obwohl dort libpng.so.2 auch nicht gelinkt ist:
(i386_chroot)gerhard@ubuntu:~$ ldconfig -p |grep libpng
libpng12.so.0 (libc6) => /usr/lib/libpng12.so.0
libpng10.so.0 (libc6) => /usr/lib/libpng10.so.0
Dort bedient sich PTStitcher (richtig) bei libpng10.so.0 und fordert
nicht libpng.so.2:
$ ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
linux-gate.so.1 => (0xffffe000)
libpano12.so => /usr/lib/libpano12.so (0x55576000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x555b4000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x556dc000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x556f9000)
libtiff.so.4 => /usr/lib/libtiff.so.4 (0x5571d000)
libz.so.1 => /usr/lib/libz.so.1 (0x55769000)
/lib/ld-linux.so.2 (0x55555000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x5577a000)
zum Vergleich amd64 x86_64:
gerhard@ubuntu:~$ ldconfig -p |grep libpng
libpng12.so.0 (libc6,x86-64) => /usr/lib/libpng12.so.0
libpng12.so.0 (libc6) => /usr/lib32/libpng12.so.0
libpng12.so (libc6,x86-64) => /usr/lib/libpng12.so
libpng10.so.0 (libc6,x86-64) => /usr/lib/libpng10.so.0
libpng10.so.0 (libc6) => /lib32/libpng10.so.0
gerhard@ubuntu:~$ ldd ~/download/panorama/PTLinux/Helpers/PTStitcher
linux-gate.so.1 => (0xffffe000)
libpano12.so => /lib32/libpano12.so (0x5558f000)
libc.so.6 => /lib32/tls/libc.so.6 (0x555c6000)
libm.so.6 => /lib32/tls/libm.so.6 (0x556f4000)
libjpeg.so.62 => /usr/lib32/libjpeg.so.62 (0x55716000)
libtiff.so.3 => /usr/lib32/libtiff.so.3 (0x55735000)
/lib/ld-linux.so.2 (0x55555000)
libpng.so.2 => not found
libz.so.1 => /usr/lib32/libz.so.1 (0x55783000)
Tut mir leid aber das kapier ich nicht mehr.
Weitere Gegenüberstellung (i386_chroot vs. amd64 x86_64):
(i386_chroot)gerhard@ubuntu:~$ cat /etc/ld.so.conf
/usr/X11R6/lib
gerhard@ubuntu:~$ cat /etc/ld.so.conf
/usr/X11R6/lib
/lib32
/usr/lib32
/usr/X11R6/lib32
/usr/local/lib
/usr/lib/pango/1.4.0/modules/
/usr/lib/GNUstep/System/Library/Libraries
Weiß jemand was hier falsch läuft?
ciao
Gerhard
Reply to: