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

Michael Meeks michael.meeks at novell.com
Tue Jul 26 10:19:47 PDT 2011


Hi Caolan,

On Tue, 2011-07-26 at 15:46 +0100, Caolán McNamara wrote:
> a) On a vanilla/universal build we build static .as under Linux from
> openssl-0.9.8, i.e. libssl.a and libcrypto.o. 

	Oooh - nice catch :-)

> 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

	That is really dumb :-) this is presumably the joy of using visibility
markup instead of map files. 

> 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.

	So some degree of munging the openssl build is necessary I think. If we
can be sure that we are going to link statically to that openssl - then
I believe if we compile it with:

	-fvisibility=hidden

	Then all of its symbols should disappear when we link them into liboox
- if we're lucky, perhaps some of the code will go too.

	Or perhaps I mis-understood ;-) is it easy to inject those flags ?

	ATB,

		Michael.


-- 
 michael.meeks at novell.com  <><, Pseudo Engineer, itinerant idiot




More information about the LibreOffice mailing list