diff options
author | Randall S. Becker <randall.becker@nexbridge.ca> | 2024-01-25 22:11:27 +0000 |
---|---|---|
committer | Todd Short <todd.short@me.com> | 2024-02-01 20:26:42 -0500 |
commit | 99fb31c167e322186c6f576cfaa8f433f4fed117 (patch) | |
tree | fd3ac31732c03fc5d2d3b535521a9f7d6112229a /NOTES-NONSTOP.md | |
parent | afb19f07aecc84998eeea56c4d65f5e0499abb5a (diff) |
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)
Diffstat (limited to 'NOTES-NONSTOP.md')
-rw-r--r-- | NOTES-NONSTOP.md | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/NOTES-NONSTOP.md b/NOTES-NONSTOP.md index 65bfc1087d..6cf12042d5 100644 --- a/NOTES-NONSTOP.md +++ b/NOTES-NONSTOP.md @@ -57,7 +57,13 @@ relating to `atexit()` processing when a shared library is unloaded and when the program terminates. This limitation applies to all OpenSSL shared library components. -A resolution to this situation is under investigation. +A control has been added as of 3.3.x to disable calls to `atexit()` within the +`libcrypto` builds (specifically in `crypto/init.c`). This switch can be +controlled using `disable-atexit` or `enable-atexit`, and is disabled by default +for NonStop builds. If you need to have `atexit()` functionality, set +`enabled-atexit` when configuring OpenSSL to enable the `atexit()` call to +register `OPENSSL_cleanup()` automatically. Preferably, you can explicitly call +`OPENSSL_cleanup()` from your application. About Prefix and OpenSSLDir --------------------------- |