Ginn Chen wrote: > I want to my library work smoothly on both Solaris 10 and Nevada. > > My library links with libssl and libcrypto, I use -L/usr/sfw/lib > -R/usr/sfw/lib -lssl -lcrypto. > I got libssl.so.0.9.8 => /usr/sfw/libssl.so.0.9.8 when I ldd my library. > But Solaris 10 has libssl.so.0.9.7 not libssl.so.0.9.8. > > So my program can't run on Solaris 10 unless user creates a symbol link > for libssl.so.0.9.8. > > If I dump -vL libssl.so.0.9.8, I got > SONAME libssl.so.0.9.8 > Maybe it's the cause.
Yes. The SONAME value goes into the dependency of the a.out. Unless there is a library that's present on both kinds of systems, then you can't use that library in a binary that has to run on both systems. Of course making symlinks in /usr/sfw/lib *might* work. Or it might crash. For most libraries in Solaris we don't remove the old libraries until the new ones have been available for a long time. But the software in /usr/sfw is much more fast-moving and unstable. --chris