Add dladdr() for AIX
authorMatthias Kraft <Matthias.Kraft@softwareag.com>
Mon, 19 Mar 2018 17:37:46 +0000 (13:37 -0400)
committerRich Salz <rsalz@openssl.org>
Wed, 21 Mar 2018 01:33:50 +0000 (21:33 -0400)
commit4af14b7b018750bf3584587068211948924738fb
tree5092bda7cccadaedf680b3a3ad85a748f1910be6
parentd316cdcf6d8d6934663278145fe0a8191e14a8c5
Add dladdr() for AIX

Although it deviates from the actual prototype of DSO_dsobyaddr(), this
is now ISO C compliant and gcc -Wpedantic accepts the code.

Added DATA segment checking to catch ptrgl virtual addresses. Avoid
memleaks with every AIX/dladdr() call. Removed debug-fprintf()s.
Added test case for DSO_dsobyaddr(), which will eventually call dladdr().
Removed unecessary AIX ifdefs again.

The implementation can only lookup function symbols, no data symbols.
Added PIC-flag to aix*-cc build targets.

As AIX is missing a dladdr() implementation it is currently uncertain our
exit()-handlers can still be called when the application exits. After
dlclose() the whole library might have been unloaded already.

Signed-off-by: Matthias Kraft <makr@gmx.eu>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5668)
Configurations/10-main.conf
crypto/dso/dso_dlfcn.c
crypto/init.c
test/recipes/90-test_shlibload.t
test/shlibloadtest.c