summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-11-21 16:12:04 +0000
committerNicholas Clark <nick@ccl4.org>2011-11-22 08:47:12 +0000
commit93a0b6a3d232eae4bac48664365f35f55bb68549 (patch)
treeac019bcf194f1879cf8275295987738a5074bbdf
parent74adbdfacd83589c2b1c2016c0daf51aa3ffa36d (diff)
downloadperl-93a0b6a3d232eae4bac48664365f35f55bb68549.tar.gz
bisect-runner.pl now fixes more 5.11-era make bugs.
bisect-runner.pl now patches Makefile.SH to ensure that git_version.h is built before perl.o, for revisions between the addition of git_version.h, and the addition of rules to ensure the correct build sequence.
-rwxr-xr-xPorting/bisect-runner.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/Porting/bisect-runner.pl b/Porting/bisect-runner.pl
index fdf68cd760..df36968760 100755
--- a/Porting/bisect-runner.pl
+++ b/Porting/bisect-runner.pl
@@ -1702,6 +1702,46 @@ EOPATCH
# fixed in 0f13ebd5d71f8177
$code =~ s{^(uudmap\.h) (bitcount\.h): }
{$1: $2\n\n$2: }m;
+
+ # The rats nest of getting git_version.h correct
+
+ if ($code =~ s{git_version\.h: stock_git_version\.h
+\tcp stock_git_version\.h git_version\.h}
+ {}m) {
+ # before 486cd780047ff224
+
+ # We probably can't build between
+ # 953f6acfa20ec275^ and 8565263ab8a47cda
+ # inclusive, but all commits in that range
+ # relate to getting make_patchnum.sh working,
+ # so it is extremely unlikely to be an
+ # interesting bisect target. They will skip.
+
+ # No, don't spawn a submake if
+ # make_patchnum.sh or make_patchnum.pl fails
+ $code =~ s{\|\| \$\(MAKE\) miniperl.*}
+ {}m;
+ $code =~ s{^\t(sh.*make_patchnum\.sh.*)}
+ {\t-$1}m;
+
+ # Use an external perl to run make_patchnum.pl
+ # because miniperl still depends on
+ # git_version.h
+ $code =~ s{^\t.*make_patchnum\.pl}
+ {\t-$^X make_patchnum.pl}m;
+
+
+ # "Truth in advertising" - running
+ # make_patchnum generates 2 files.
+ $code =~ s{^make_patchnum:.*}{
+make_patchnum: lib/Config_git.pl
+
+git_version.h: lib/Config_git.pl
+
+perlmini\$(OBJ_EXT): git_version.h
+
+lib/Config_git.pl:}m;
+ }
return $code;
});
}