[csw-users] rsync throws libintl error on fresh install

James Lee james at opencsw.org
Thu Apr 2 11:04:56 CEST 2009


On 02/04/09, 06:09:02, David "N." Blank-Edelman <dnb at ccs.neu.edu> wrote 
regarding [csw-users] rsync throws libintl error on fresh install:

> # /opt/csw/bin/rsync
> ld.so.1: rsync: fatal: libintl.so.8: open failed: No such file or
> directory

...

> # ldd /opt/csw/bin/rsync
>          libc.so.1 =>     /usr/lib/libc.so.1
>          libdl.so.1 =>    /usr/lib/libdl.so.1
>          /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1

...


> # file /opt/csw/bin/rsync
> /opt/csw/bin/rsync: ELF 32-bit MSB executable, SPARC, version 1,
> dynamically linked (uses shared libs), stripped



rsync is isaexec which invokes an arch specific file, so no point
in directly perusing /opt/csw/bin/rsync.

$ diff /opt/csw/bin/rsync /opt/csw/bin/isaexec
ls -l /opt/csw/bin/rsync /opt/csw/bin/isaexec
-r-xr-xr-x  41 root     bin         5256 Jan  5  2000 
/opt/csw/bin/isaexec
-r-xr-xr-x  41 root     bin         5256 Jan  5  2000 /opt/csw/bin/rsync
$ cksum /opt/csw/bin/rsync /opt/csw/bin/isaexec
762992779	5256	/opt/csw/bin/rsync
762992779	5256	/opt/csw/bin/isaexec


$ file /opt/csw/bin/*/rsync
/opt/csw/bin/sparc/rsync:	ELF 32-bit MSB executable SPARC Version 1, 
dynamically linked, stripped
/opt/csw/bin/sparcv8/rsync:	ELF 32-bit MSB executable SPARC Version 1, 
dynamically linked, stripped
/opt/csw/bin/sparcv9/rsync:	ELF 64-bit MSB executable SPARCV9 Version 1, 
dynamically linked, not stripped



Run isalist and the first match in the list will be the one being used, 
or
run truss rsync and see what files are opened.



Run ldd on the actual executable which on a 280R I expect to be 
/opt/csw/bin/sparcv9/rsync.


My output (test system, Solaris 8 on U60)

$ ldd /opt/csw/bin/sparcv9/rsync
	libpopt.so.0 =>	 /opt/csw/lib/sparcv9/libpopt.so.0
	libsec.so.1 =>	 /usr/lib/64/libsec.so.1
	libiconv.so.2 =>	 /opt/csw/lib/sparcv9/libiconv.so.2
	libsocket.so.1 =>	 /usr/lib/64/libsocket.so.1
	libnsl.so.1 =>	 /usr/lib/64/libnsl.so.1
	libc.so.1 =>	 /usr/lib/64/libc.so.1
	libintl.so.8 =>	 /opt/csw/lib/64/libintl.so.8
	libdl.so.1 =>	 /usr/lib/64/libdl.so.1
	libmp.so.2 =>	 /usr/lib/64/libmp.so.2
	/usr/platform/SUNW,Ultra-60/lib/sparcv9/libc_psr.so.1

But are probably looking the wrong place as rsync doesn't directly
use libintl.

$ dump -Lv /opt/csw/bin/sparcv9/rsync | grep NEEDED
[1]	NEEDED          libpopt.so.0
[2]	NEEDED          libsec.so.1
[3]	NEEDED          libiconv.so.2
[4]	NEEDED          libsocket.so.1
[5]	NEEDED          libnsl.so.1
[6]	NEEDED          libc.so.1


So to find what is asking for libintl run ldd with -s

$ ldd -s /opt/csw/bin/sparcv9/rsync
(long output omitted)

So test libpopt.so.0




I can't see a fault myself, sorry I've not done my tests with
maximum rigour,  but I hope the isaexec bit is the key to
unlocking this problem.




James.














More information about the users mailing list