#1471 Wrong OpenSSL libraries provided for Solaris x64 32-bit

Sharon Lucas
Build (10)
Sharon Lucas

This bug is similar to Bug #3560820 "STAFProc can't start on Solaris 11 using 32-bit installer" but is for the STAF Solaris x64 32-bit build.

After installing using STAF3410-setup-solaris-x64.bin (or any other STAF installer for solaris-x64 32-bit), the output from " ldd STAFProc" shows that it is not linking to the libssl.so.0.9.8 and libcrypto.so.0.9.8 libraries provided in STAF's lib directory. For example, on staf5a, the ldd output shows that STAFProc is being linked to OpenSSL libraries /usr/sfw/lib/libssl.so.0.9.7 and /usr/sfw/lib/libcrypto.so.0.9.7.

# pwd
# ldd STAFProc
libpthread.so.1 => /lib/libpthread.so.1
libsocket.so.1 => /lib/libsocket.so.1
libresolv.so.2 => /lib/libresolv.so.2
libSTAF.so => /usr/local/staf/lib/libSTAF.so
libssl.so.0.9.7 => /usr/sfw/lib/libssl.so.0.9.7
libcrypto.so.0.9.7 => /usr/sfw/lib/libcrypto.so.0.9.7
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libnsl.so.1 => /lib/libnsl.so.1
libdl.so.1 => /lib/libdl.so.1
libmp.so.2 => /lib/libmp.so.2
libmd5.so.1 => /lib/libmd5.so.1
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1

If these OpenSSL libraries in /usr/sfw/lib were not in the path, an error would have been raised when starting STAFProc since it couldn't find compatible OpenSSL libraries. The reason that the OpenSSL libraries /usr/local/staf/lib/libssl.so.0.9.8 and /usr/lcoal/staf/lib/libcrypto.so.0.9.8 are not being linked with is because they are not compatible (e.g. they are 64-bit OpenSSL libraries, not 32-bit).

This bug is to figure out how to build the OpenSSL libraries from source in a compatible way for the STAF Solaris x64 32-bit build. We were using the OpenSSL libraries that we built for the STAF Solaris x64-64 build as follows:

# PATH=$PATH:/usr/ccs/bin
# export PATH
# cd /opt/dev/autobuild/tools/openssl-0.9.8e
# ./Configure solaris64-x86_64-gcc --openssldir=/opt/dev/autobuild/tools/openssl-0.9.8e-root threads shared no-zlib no-rc5 no-idea no-ec no-ecdh no-ecdsa
# make clean
# make depend
# make
# make test
# make install

However specifying the solaris64-x86_64-gcc option to the Configure command is not correct for the Solaris x64 32-bit platform.
But, specifying the solaris-x86-gcc option to the Configure command (like we did when building OpenSSL for the Solaris x86 32-bit platform) doesn't work either. We need to determine how to properly build OpenSSL from source for the Solaris x64 32-bit platform and then set the OPENSSL_ROOT environment variable to the OpenSSL binaries that are built properly when building STAF for Solaris x64 32-bit.