[Libreoffice] linking against a .a and *not* exporting those symbols ?

Caolán McNamara caolanm at redhat.com
Tue Jul 26 07:46:42 PDT 2011


a) On a vanilla/universal build we build static .as under Linux from
openssl-0.9.8, i.e. libssl.a and libcrypto.o. 
b) liboox links against these .a's. The resulting .so by default exports
the symbols of the .a which it used e.g. 

nm -D workdir/unxlngx6/LinkTarget/Library/libooxlo.so|grep
EVP_MD_CTX_create
0000000000666d00 T EVP_MD_CTX_create

:-(

c) now python's libssl.so, whether system or internal, will link against
the system openssl.

Looking at some debug output here, it appears to me that on email-merge
(which goes out through python) we're screwed when liboox is dlopened
before ssl.so is dlopened, seeing as liboox now exports its copies of
the openssl-0.9.8 symbols and those ones win over the system openssl
libs that the python ssl.so apparently needs to function happily.

Is there a *easy* way to force the symbols of the .a to hidden
visibility at oox link-time ?. Munging the openssl build itself would be
painful, making a version-script would be painful, using objcopy or
something sounds insane.

C.



More information about the LibreOffice mailing list