Commit d5ab5aa63c for openssl.org
commit d5ab5aa63c70b05217444dd9842d7cd42bec5a00
Author: Bob Beck <beck@openssl.org>
Date: Fri Aug 7 18:45:25 2026 -0600
Keep the HTTP reason codes visible in no-http builds
no-http removes the HTTP client but still builds http_lib.c for URL
parsing, and it raises HTTP reason codes; mkerr must not wrap
httperr.h in OPENSSL_NO_HTTP, so HTTP joins SSL, ASYNC and DSO on
the list of libraries whose error codes survive disabling.
The committed httperr.h never had the guard -- it predates HTTP
becoming disablable and was never regenerated -- so no-http builds
have been quietly relying on the committed copy being stale. The
emitted header now matches the published one.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Andrew Dinh <andrewd@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Merge-date: Tue Sep 1 14:03:07 2026
Merged-from: https://github.com/openssl/openssl/pull/32243
diff --git a/util/mkerr.pl b/util/mkerr.pl
index 16976a0c80..b90cf86cbc 100755
--- a/util/mkerr.pl
+++ b/util/mkerr.pl
@@ -475,12 +475,15 @@ sub lib_disablable
# Flag if the sub-library is disablable.
# There are a few exceptions, where disabling the sub-library
# doesn't actually remove the whole sub-library, but rather
- # implements it with a NULL backend.
+ # implements it with a NULL backend or keeps part of it: no-http
+ # still builds http_lib.c for URL parsing, so the HTTP reason
+ # codes must remain visible.
return do {
# The 'once' warning does not know that require defines these.
no warnings 'once';
($lib ne "SSL" && $lib ne "ASYNC" && $lib ne "DSO"
+ && $lib ne "HTTP"
&& (grep { $lib eq uc $_ } @configdata::disablables,
@configdata::disablables_int));
};