The branch OpenSSL_1_0_2-stable has been updated via f4ef1c53486d378ab2e2ef3427c0eb1c2fea358f (commit) via 7a9d7128d87d1572a0b7f99ff7b19d704395c8db (commit) via 62f16de2d17af4ac1f3df4622b7bec850b60820a (commit) via 22cc44d6b63e070cbff9770497f4fe6b3fa8d2a5 (commit) via ecc955157af5f0fa19bcd74caaf52ec3fa18f755 (commit) from 8ac70bef694e733cec0f19a9438af98991cb5fa3 (commit)
- Log ----------------------------------------------------------------- commit f4ef1c53486d378ab2e2ef3427c0eb1c2fea358f Author: Orgad Shaneh <org...@gmail.com> Date: Mon Sep 19 15:12:08 2016 +0300 domd: Preserve Makefile time when it is unchanged also on systems with makedepend that does not report its version, or that its version does not contain "gcc" or "clang". Some versions of makedepends just overwrite Makefile. Preserve the timestamp of the previous Makefile, and copy it back if it is unchanged. Reviewed-by: Rich Salz <rs...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1370) commit 7a9d7128d87d1572a0b7f99ff7b19d704395c8db Author: Orgad Shaneh <org...@gmail.com> Date: Sun Jul 31 09:18:22 2016 +0300 mklink: Do not needlessly overwrite linked files... ... on systems with symlinks. Creating or overwriting a symlink sets the file ctime to the current time. This causes needless rebuilds because the time of all the headers is changed, and apparently make considers the link's time rather than the time of the target. Reviewed-by: Rich Salz <rs...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1370) commit 62f16de2d17af4ac1f3df4622b7bec850b60820a Author: Orgad Shaneh <org...@gmail.com> Date: Sun Jul 31 15:34:57 2016 +0300 domd: Do not needlessly overwrite Makefiles Reviewed-by: Rich Salz <rs...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1370) commit 22cc44d6b63e070cbff9770497f4fe6b3fa8d2a5 Author: Orgad Shaneh <org...@gmail.com> Date: Sun Jul 31 09:18:22 2016 +0300 mklink: Do not needlessly overwrite linked files... ... on systems without symlinks. Overwriting all the headers on each Configure causes full rebuild even if nothing has changed. Reviewed-by: Rich Salz <rs...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1370) commit ecc955157af5f0fa19bcd74caaf52ec3fa18f755 Author: Orgad Shaneh <org...@gmail.com> Date: Sun Jul 31 09:13:13 2016 +0300 Configure: Improve incremental build time When Makefile/opensslconf.h is unchanged, don't write it at all. Currently every time Configure is executed, these files are overwritten. Makefile leads to regeneration of buildinf.h, and opensslconf.h is itself a central header. As a result, Configure triggers full rebuild, even if nothing is changed. Reviewed-by: Rich Salz <rs...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1370) ----------------------------------------------------------------------- Summary of changes: Configure | 29 ++++++++++++++++++++++++----- util/domd | 11 +++++++++-- util/mklink.pl | 8 +++++--- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/Configure b/Configure index c39f71a..c26c9d7 100755 --- a/Configure +++ b/Configure @@ -7,6 +7,7 @@ eval 'exec perl -S $0 ${1+"$@"}' require 5.000; use strict; +use File::Compare; # see INSTALL for instructions. @@ -1792,8 +1793,16 @@ while (<IN>) } close(IN); close(OUT); -rename($Makefile,"$Makefile.bak") || die "unable to rename $Makefile\n" if -e $Makefile; -rename("$Makefile.new",$Makefile) || die "unable to rename $Makefile.new\n"; +if ((compare($Makefile, "$Makefile.new")) + or file_newer('Configure', $Makefile) + or file_newer('config', $Makefile) + or file_newer('Makefile.org', $Makefile)) + { + rename($Makefile,"$Makefile.bak") || die "unable to rename $Makefile\n" if -e $Makefile; + rename("$Makefile.new",$Makefile) || die "unable to rename $Makefile.new\n"; + } +else + { unlink("$Makefile.new"); } print "CC =$cc\n"; print "CFLAG =$cflags\n"; @@ -1985,9 +1994,13 @@ print OUT "#ifdef __cplusplus\n"; print OUT "}\n"; print OUT "#endif\n"; close(OUT); -rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h"; -rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n"; - +if (compare("crypto/opensslconf.h.new","crypto/opensslconf.h")) + { + rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h"; + rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n"; + } +else + { unlink("crypto/opensslconf.h.new"); } # Fix the date @@ -2289,3 +2302,9 @@ sub test_sanity print STDERR "No sanity errors detected!\n" if $errorcnt == 0; return $errorcnt; } + +sub file_newer + { + my ($file1, $file2) = @_; + return (stat($file1))[9] > (stat($file2))[9] + } diff --git a/util/domd b/util/domd index 95bb1b0..bc2a85f 100755 --- a/util/domd +++ b/util/domd @@ -11,7 +11,9 @@ if [ "$1" = "-MD" ]; then fi if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi -cp Makefile Makefile.save +# Preserve Makefile timestamp by moving instead of copying (cp -p is GNU only) +mv Makefile Makefile.save +cp Makefile.save Makefile # fake the presence of Kerberos touch $TOP/krb5.h if ${MAKEDEPEND} --version 2>&1 | grep "clang" > /dev/null || @@ -32,7 +34,12 @@ else ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new RC=$? fi -mv Makefile.new Makefile +if ! cmp -s Makefile.save Makefile.new; then + mv Makefile.new Makefile +else + mv Makefile.save Makefile + rm -f Makefile.new +fi # unfake the presence of Kerberos rm $TOP/krb5.h diff --git a/util/mklink.pl b/util/mklink.pl index 61db12c..a937606 100755 --- a/util/mklink.pl +++ b/util/mklink.pl @@ -55,9 +55,11 @@ if ($^O eq "msys") { $symlink_exists=0 }; foreach $file (@files) { my $err = ""; if ($symlink_exists) { - unlink "$from/$file"; - symlink("$to/$file", "$from/$file") or $err = " [$!]"; - } else { + if (!-l "$from/$file") { + unlink "$from/$file"; + symlink("$to/$file", "$from/$file") or $err = " [$!]"; + } + } elsif (-d "$from" && (!-f "$from/$file" || ((stat("$file"))[9] > (stat("$from/$file"))[9]))) { unlink "$from/$file"; open (OLD, "<$file") or die "Can't open $file: $!"; open (NEW, ">$from/$file") or die "Can't open $from/$file: $!"; _____ openssl-commits mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits