--as-needed compile option?
harald at redhat.com
Thu Mar 31 15:11:51 UTC 2005
Joe Orton wrote:
> We had all sorts of problems with Apache and OpenSSL in this arena:
> if httpd was not linked aganist -lssl -lcrypto, when mod_ssl, or any
> particular PHP extension using OpenSSL, was reloaded during a graceful
> restart, you risked getting libssl.so unmapped but not libcrypto.so,
> depending on the direction of the wind. This caused havoc because some
> global variables in libcrypto would not get reinitialized, but those in
> libssl.so would. Not fun.
> So when I link httpd using -lssl -lcrypto, despite the fact that httpd
> itself does not use any symbols from those libraries, I *must* get an
> httpd with DT_NEEDED of libssl and libcrypto to ensure both stay mapped
> for the lifetime of the process. That's why use of --as-needed must
> only be done as directed by the application.
Wow, global vars that are not static and are not properly initialized... hmm... design problem?
Also, maybe the libdl could be taught to unload/unmap the other libs as well (which would be the right fix)
More information about the test