Add atexit configuration option to using atexit() in libcrypto at build-time.
authorRandall S. Becker <randall.becker@nexbridge.ca>
Thu, 25 Jan 2024 22:11:27 +0000 (22:11 +0000)
committerTomas Mraz <tomas@openssl.org>
Thu, 22 Feb 2024 09:38:53 +0000 (10:38 +0100)
commit906c67828956ad15200bc6e61d086b9fa73dc328
treea9e8b168dcef683a8fa9736650cb7a59fa1b6aa6
parentc8dd22a2b654bbc16c18da031921511ec7ba1db0
Add atexit configuration option to using atexit() in libcrypto at build-time.

This fixes an issue with a mix of atexit() usage in DLL and statically linked
libcrypto that came out in the test suite on NonStop, which has slightly
different DLL unload processing semantics compared to Linux. The change
allows a build configuration to select whether to register OPENSSL_cleanup()
with atexit() or not, so avoid situations where atexit() registration causes
SIGSEGV.

INSTALL.md and CHANGES.md have been modified to include and describe this
option.

Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Signed-off-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23642)

(cherry picked from commit 0e1989d4c7435809b60f614c23ba8c9a7c0373e8)
.github/workflows/run-checker-ci.yml
CHANGES.md
Configure
INSTALL.md
NOTES-NONSTOP.md
crypto/init.c
test/recipes/90-test_shlibload.t