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.
Context
- [Libreoffice] linking against a .a and *not* exporting those symbols ? · Caolán McNamara
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.