From 86905c1e468b4df7f3ed096390f8d1a3e28dc801 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Mon, 9 Apr 2012 11:04:37 +0200 Subject: [PATCH] Add --all-fixups to bisect.pl, to apply all patches and fixups. bisect-runner.pl will minimally patch various files on a platform and version dependent basis to get the build to complete. Normally it defers doing this as long as possible - .SH files aren't patched until after Configure is run, and C and XS code isn't patched until after miniperl is built. If --all-fixups is specified, all the fixups are done before running Configure. --- Porting/bisect-runner.pl | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Porting/bisect-runner.pl b/Porting/bisect-runner.pl index 348d723..2f29840 100755 --- a/Porting/bisect-runner.pl +++ b/Porting/bisect-runner.pl @@ -53,6 +53,7 @@ unless(GetOptions(\%options, $options{'expect-pass'} = 0; }, 'force-manifest', 'force-regen', 'test-build', 'validate', + 'all-fixups', 'check-args', 'check-shebang!', 'usage|help|?', 'A=s@', 'D=s@' => sub { my (undef, $val) = @_; @@ -451,6 +452,20 @@ C<--expect-pass=0> is equivalent to C<--expect-fail>. I<1> is the default. =item * +--all-fixups + +F will minimally patch various files on a platform and +version dependent basis to get the build to complete. Normally it defers +doing this as long as possible - C<.SH> files aren't patched until after +F is run, and C and C code isn't patched until after +F is built. If C<--all-fixups> is specified, all the fixups are +done before running C. In rare cases adding this may cause a +bisect to abort, because an inapplicable patch or other fixup is attempted +for a revision which would usually have already Ied. If this happens, +please report it as a bug, giving the OS and problem revision. + +=item * + --no-clean Tell F not to clean up after the build. This allows one @@ -915,6 +930,11 @@ my $major patch_Configure(); patch_hints(); +if ($options{'all-fixups'}) { + patch_SH(); + patch_C(); + patch_ext(); +} # if Encode is not needed for the test, you can speed up the bisect by # excluding it from the runs with -Dnoextensions=Encode @@ -993,7 +1013,7 @@ if (!$pid) { waitpid $pid, 0 or die_255("wait for Configure, pid $pid failed: $!"); -patch_SH(); +patch_SH() unless $options{'all-fixups'}; if (-f 'config.sh') { # Emulate noextensions if Configure doesn't support it. @@ -1027,8 +1047,10 @@ if($options{'force-regen'} system_or_die('make regen_headers'); } -patch_C(); -patch_ext(); +unless ($options{'all-fixups'}) { + patch_C(); + patch_ext(); +} # Parallel build for miniperl is safe system "$options{make} $j miniperl