summaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2021-08-23 08:54:37 +0200
committerRichard Levitte <levitte@openssl.org>2022-05-22 17:33:08 +0200
commit2522889620446f1e56338367d1b6b028ea952bb4 (patch)
tree09a1d409bddbc8510c9a6f5d428cda295b778e66 /Configure
parentConfiguration: only produce a new configdata.pm if it has changed contents (diff)
downloadopenssl-2522889620446f1e56338367d1b6b028ea952bb4.tar.xz
openssl-2522889620446f1e56338367d1b6b028ea952bb4.zip
Configuration: produce include/openssl/configuration.h when configuring
The goal is to avoid having too much of the OpenSSL source rebuilt because include/openssl/configuration.h, or even because it was a Makefile target that was called upon (some make implementations consider the use of a target as an update of that target, even if it wasn't really updated). To resolve this, we move the production of include/openssl/configuration.h to configdata.pm, and only update it if there were any actual changes. Fixes #16377 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/16378)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure7
1 files changed, 5 insertions, 2 deletions
diff --git a/Configure b/Configure
index 648fc0694e..1992f907aa 100755
--- a/Configure
+++ b/Configure
@@ -2854,8 +2854,11 @@ if (-f $configdata_outname) {
# like nothing happened
unlink "$configdata_outname.new";
- # We still run configdata.pm if the build file (Makefile) is missing
- $run_configdata = !( -f $target{build_file} );
+ # We still run configdata.pm if one of the build file (Makefile) or
+ # the configuration header file are missing
+ $run_configdata =
+ !( -f $target{build_file} )
+ || !( -f catfile('include', 'openssl', 'configuration.h') );
}
} else {
$update_configdata = 1;