Commit 478e78829a for openssl.org
commit 478e78829a58fffd05d56dc90e37ee0b126429b2
Author: Eugene Syromiatnikov <esyr@openssl.org>
Date: Fri Apr 10 19:35:49 2026 +0200
Configure, INSTALL.md: make atexit deprecated disablable
As the atexit handler was removed in [1], no-atexit configuration option
has no effect, make that explicit by disallowing enabling atexit, and
update the documentation accordingly.
[1] https://github.com/openssl/openssl/pull/29385
References: https://github.com/openssl/openssl/issues/30742
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
MergeDate: Thu Jun 18 12:20:34 2026
(Merged from https://github.com/openssl/openssl/pull/30767)
diff --git a/Configure b/Configure
index 3c49cb021d..918a7c7cc0 100755
--- a/Configure
+++ b/Configure
@@ -511,7 +511,6 @@ my @disablables_features = (
"asan",
"asm",
"async",
- "atexit",
"autoalginit",
"autoerrinit",
"autoload-config",
@@ -596,6 +595,7 @@ my @disablables_int = qw(
);
my %deprecated_disablables = (
+ "atexit" => undef,
"engine" => undef,
"static-engine" => undef,
"dynamic-engine" => undef,
@@ -619,6 +619,7 @@ my %deprecated_disablables = (
# All of the following are disabled by default:
our %disabled = ( # "what" => "comment"
+ "atexit" => "default",
"fips" => "default",
"fips-jitter" => "default",
"asan" => "default",
@@ -664,7 +665,7 @@ our %disabled = ( # "what" => "comment"
my @disable_cascades = (
# "what" => [ "cascade", ... ]
"bulk" => [ "shared", "dso",
- "argon2", "aria", "async", "atexit", "autoload-config",
+ "argon2", "aria", "async", "autoload-config",
"blake2", "bf", "camellia", "cast", "chacha",
"cmac", "cms", "cmp", "comp", "ct",
"des", "dgram", "dh", "dsa",
diff --git a/INSTALL.md b/INSTALL.md
index ae31b8207c..b44e2705c0 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -645,7 +645,8 @@ Do not use `atexit()` in libcrypto builds.
Before version 4.0, OpenSSL used to set `atexit()` handler for cleaning up
global data, and this option allowed to disable that functionality. `atexit()`
-handler setup was removed in OpenSSL 4.0, so this option does nothing now.
+handler setup was removed in OpenSSL 4.0, so `no-atexit` option is retained
+for compatibility reasons only, always present, and does nothing.
### no-autoalginit