I have some programs compiled myself as 64-bit (with 64-bit libraries)
installed in /usr/local. When I started some of this program (e.g.
sshd) rld reports it cannot find some 64-libraries sshd depends on.
rld[783]: 783:/usr/local/sbin/sshd: rld: Fatal Error: Cannot
Successfully map soname 'libkrb.so.2' under any of the filenames
/usr/freeware/lib64/libkrb.so.2:/usr/lib64/libkrb.so.2:/usr/lib64/internal/libkrb.so.2:
/lib64/libkrb.so.2:/opt/lib64/libkrb.so.2:/usr/freeware/lib64/libkrb.so.2.2:
/usr/lib64/libkrb.so.2.2:/usr/lib64/internal/libkrb.so.2.2:/lib64/libkrb.so.2.2:
/opt/lib64/libkrb.so.2.2: (I built ssh with krb4 support, which I
need)
So I set LD_LIBRARY64_PATH in /etc/profile to point to my own
64-libraries (/usr/athena/lib:/usr/local/lib). After this path set,
sshd can be start OK. But the problem is, /etc/profile is proceeded
after init scripts.
Is there any way to set path to user 64-bit libraries internally to
rld??
I've read man rld, but only LD_LIBRARY64_PATH is the only way to do
it, but it should be possible, because after I install sgi freeware
package tcp_wrappers with swmgr, from that time in rld error log path
/usr/freeware/lib64 appeared (thats the tcp_wrappers 64bit libs were
installed).
Thanks for any suggestions
Adam Mikulic
What the freeware executables do is to set DT_RPATH to
/usr/freeware/lib
Using the static-linker (ld) -rpath option..
In your case set -rpath to /usr/local/lib or /usr/local/lib64
(lib64 I like better, but it's personal taste and whether you think
you might also have an n32 version on the same system)
when you build the executable. For initial testing
the -rpath may not do any good for you,( LD_LIBRARY64_PATH
is useful) but once installed the dynamic section DT_RPATH
entry will do what you want.
To see the dynamic section entry:
elfdump -L <executable> | grep RPATH
Regards,
David B. Anderson da...@sgi.com http://reality.sgiweb.org/davea
I'd recompile sshd and add a -Wl,-rpath,/usr/athena/lib
-Wl,-rpath,/usr/local/lib to the link line.
>
>Thanks for any suggestions
>
>Adam Mikulic
richard.
--
-----------------------------------------------------------------------
Richard Offer Technical Lead, Trust Technology.
"Specialization is for insects"
__________________________________________http://reality.sgi.com/offer/
> So I set LD_LIBRARY64_PATH in /etc/profile to point to my own
> 64-libraries (/usr/athena/lib:/usr/local/lib). After this path set,
> sshd can be start OK. But the problem is, /etc/profile is proceeded
> after init scripts.
Random idea:
LD_LIBRARY64_PATH=/usr/athena/lib:/usr/local/lib /usr/local/sbin/sshd
Damian Menscher
--
-=#| Physics Grad Student & SysAdmin @ U Illinois Urbana-Champaign |#=-
-=#| 488 LLP, 1110 W. Green St, Urbana, IL 61801 Ofc:(217)333-0038 |#=-
-=#| 1429 DCL, Workstation Services Group, CITES Ofc:(217)244-3862 |#=-
-=#| <mens...@uiuc.edu> www.uiuc.edu/~menscher/ Fax:(217)333-9819 |#=-