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)
committerTodd Short <todd.short@me.com>
Fri, 2 Feb 2024 01:26:42 +0000 (20:26 -0500)
commit99fb31c167e322186c6f576cfaa8f433f4fed117
treefd3ac31732c03fc5d2d3b535521a9f7d6112229a
parentafb19f07aecc84998eeea56c4d65f5e0499abb5a
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.

The no-atexit option has been added to .github/workflows/run-checker-daily.yml.

Fixes: #23135
Signed-of-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Todd Short <todd.short@me.com>
(Merged from https://github.com/openssl/openssl/pull/23394)
.github/workflows/run-checker-daily.yml
CHANGES.md
Configurations/50-nonstop.conf
Configure
INSTALL.md
NOTES-NONSTOP.md
crypto/init.c