This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
On HP-UX, bisect without any -j option as the system make is "special".
authorNicholas Clark <nick@ccl4.org>
Tue, 10 Apr 2012 13:18:03 +0000 (15:18 +0200)
committerNicholas Clark <nick@ccl4.org>
Tue, 28 May 2013 07:19:27 +0000 (09:19 +0200)
HP-UX system make offers parallelism with -P not -j. (But doesn't deliver on
it, so we're not going to attempt to work round its crankiness and failings.)

Porting/bisect-runner.pl
Porting/bisect.pl

index 8797e9a..46e6366 100755 (executable)
@@ -348,10 +348,11 @@ to use F<gmake> in place of the system F<make>.
 
 -j I<jobs>
 
-Number of C<make> jobs to run in parallel. If F</proc/cpuinfo> exists and
-can be parsed, or F</sbin/sysctl> exists and reports C<hw.ncpu>, or
-F</usr/bin/getconf> exists and reports C<_NPROCESSORS_ONLN> defaults to 1 +
-I<number of CPUs>. Otherwise defaults to 2.
+Number of C<make> jobs to run in parallel. A value of 0 suppresses
+parallelism. If F</proc/cpuinfo> exists and can be parsed, or F</sbin/sysctl>
+exists and reports C<hw.ncpu>, or F</usr/bin/getconf> exists and reports
+C<_NPROCESSORS_ONLN> defaults to 1 + I<number of CPUs>. On HP-UX with the
+system make defaults to 0, otherwise defaults to 2.
 
 =item *
 
index 7c0ba07..96d7b8c 100755 (executable)
@@ -11,8 +11,9 @@ Documentation for this is in bisect-runner.pl
 # Which isn't what we want.
 use Getopt::Long qw(:config pass_through no_auto_abbrev);
 
-my ($start, $end, $validate, $usage, $bad, $jobs);
-$bad = !GetOptions('start=s' => \$start, 'end=s' => \$end, 'jobs|j=i' => \$jobs,
+my ($start, $end, $validate, $usage, $bad, $jobs, $make);
+$bad = !GetOptions('start=s' => \$start, 'end=s' => \$end,
+                   'jobs|j=i' => \$jobs, 'make=s' => \$make,
                    validate => \$validate, 'usage|help|?' => \$usage);
 unshift @ARGV, '--help' if $bad || $usage;
 unshift @ARGV, '--validate' if $validate;
@@ -36,7 +37,9 @@ exit 0 if $usage;
 
 my $start_time = time;
 
-if (!defined $jobs) {
+if (!defined $jobs &&
+    !($^O eq 'hpux' && system((defined $make ? $make : 'make')
+                              . ' --version >/dev/null 2>&1'))) {
     # Try to default to (ab)use all the CPUs:
     my $cpus;
     if (open my $fh, '<', '/proc/cpuinfo') {
@@ -51,7 +54,8 @@ if (!defined $jobs) {
     $jobs = defined $cpus ? $cpus + 1 : 2;
 }
 
-unshift @ARGV, '--jobs', $jobs;
+unshift @ARGV, '--jobs', $jobs if defined $jobs;
+unshift @ARGV, '--make', $make if defined $make;
 
 # We try these in this order for the start revision if none is specified.
 my @stable = qw(perl-5.005 perl-5.6.0 perl-5.8.0 v5.10.0 v5.12.0 v5.14.0);