httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sorin Manolache <sor...@gmail.com>
Subject Re: Followup to earlier thread about "How to compiling/link/use Apache module that uses shared library?"
Date Fri, 22 Jun 2012 20:38:43 GMT
On 2012-06-22 21:22, ohaya@cox.net wrote:
>
> Does that confirm that they statically linked stuff from openssl (and libcrypto) into
libobaccess.so?

I think so.

Also you can run nm -aC liboaccess.so. The symbols marked with "U" are 
undefined => they are external to the lib. The functions marked with "T" 
or "t" are defined by the lib => their code is in the binary.

Functions marked with upper-case ("T") are exported, i.e. another module 
may use the function. Functions marked with lower-case ("t") are not 
exported. Those functions can be run by other functions in the same 
module only. If the libcrypto functions in liboaccess were not exported 
(marked with lower-case letter) you wouldn't have a problem: the 
functions in liboaccess would execute the libcrypto functions in 
liboaccess and the functions in mod_ssl would execute the libcrypto 
functions in your system's libcrypto.

But I suppose that's not the case.

> Assuming that's the case, is there any way around this?

The easiest way would be to have a liboaccess _dynamically_ linked with 
libcrypto. In this case, the first module between mod_ssl and your 
module that loads would load libcrypto. When the second module loads, 
the loader tries to resolve the undefined symbols of the second module 
and it will find them in the already loaded libcrypto.

If you cannot obtain a liboaccess dynamically linked with libcrypto, you 
_could_ try to recompile mod_ssl such that it does not export any 
libcrypto functions, but I don't know if it is possible.

S

Mime
View raw message