| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Specifically eliminated i_dld, a variable indicating that <dld.h> should be
included, and remove dld from the list of wanted libraries.
|
|
|
|
| |
This makes it easier to bisect when test scripts started failing.
|
|
|
|
|
|
|
| |
As of commit c8fde7fafa0a9cec (merged to blead with commit 4724da031eae31b4)
bisect.pl can be run in-place if the checkout is clean.
The most recent stable release that it will try is now v5.18.0.
|
| |
|
|
|
|
|
|
| |
This makes the output considerably less verbose. In particular, it becomes a
lot easier to spot the "revisions left to test after this" status message
from git bisect.
|
|
|
|
| |
Specifically, so that it can build revisions near 15f0808c5d67b362.
|
|
|
|
|
|
|
| |
The pattern to extract the file for diagnostics should a patch not apply was
failing to match (and generating a legitimate used of uninitialized value
warning) for the case where the patch was specified as --- b/ +++ a/
The pattern was only expecting --- a/ +++ b/
|
|
|
|
|
|
| |
This runs the user's test case directly against a clean checkout.
Using this gives a couple of features that a plain git bisect run can't
offer - automatic start revision detection, and test case timeouts.
|
|
|
|
|
|
|
| |
This permits bisection to locate the cause (or cure) of bugs which cause
programs to hang. When using a timeout, bisect-runner.pl defaults to
running the test case in its own process group, and tries hard to ensure
that all processes in that process group are killed if the timeout fires.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Configure is run using explicit fork, exec and waitpid so that it can be run
with with STDIN from /dev/null, but without going through the shell (to
avoid having to worry about quoting command line arguments). This code will
be useful for adding optional timeouts when running the user test case.
|
|
|
|
|
| |
A true first parameter now means "good". Previously the first parameter was
assumed to be a return value from system, and hence true meant "bad".
|
|
|
|
| |
This will permit the addition of timeouts when running the test user's case.
|
|
|
|
|
|
|
|
| |
Historically when bisect-runner.pl wanted to check out a known good recent
version of a file (such as makedepend.SH) it would check out the revision
from blead. However, that may not be wise as blead isn't guaranteed always to
be stable and therefore "known good". So default to using the most recent
tagged stable release.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commits fdbac266ba9ef2a6 and 599ee4f7809ae508 ensure that /usr/local/lib,
/lib and /usr/lib are searched on all platforms for shared libraries, and
that multiarch library locations gleaned from gcc are searched on x86_64.
However, on other Linux architectures it fails to pass the multiarch
locations to Configure. Version (just) prior to 5.14.0 do not contain the
logic to ask gcc, so they fail to build on multiarch setups.
This commit ensures that the correct library locations are available on
all platforms.
|
|
|
|
|
|
|
| |
Previously bisect.pl was using a hard coded list, which (obviously) will
become stale.
Also, note in the docs that we only use .0 stable releases, and why.
|
|
|
|
|
|
|
|
|
|
|
| |
Commit f2f0a0ff7250e0ba (in Nov 2011), consolidated all the code that
patches extensions. As a side effect, it moved all extension patching
after Configure is run. Unfortunately this introduced a bug, because one
test of DB_File.xs was to change the arguments to Configure to skip building
DB_File at all if it's too old. Return this logic to before when Configure
is run, so that bisect-runner.pl can once again build 5.005 and earlier on
machines with the Berkley DB headers installed, by forcibly skipping the
build of DB_File there.
|
|
|
|
|
|
|
|
|
|
|
| |
bisect-runner.pl already reverts a sequence of commits to doio.c related to
special case handling of union semun on Linux and Solaris, which cause the
build to fail on current Linux. The last of these, 9b599b2a63d2324d is
described as "[win32] merge change#887 from maintbranch". However, it uses
__sun__ and __svr4__ instead of the __sun and __SVR4 of the maint branch
commit 6cdf74fe31f049dc. Hence the code in bisect-runner.pl needs to be
taught about this variation in the maint-5.004 branch, so that it can also
unwind the problematic code in doio.c there.
|
|
|
|
|
|
|
| |
Without this, about 60 commits in a key area of history fail to build,
between the upgrade of Scalar-List-Utils to 1.03, and the commit that
amends makedef.pl to export Perl_cxinc, which Utils.xs indirectly started
using (via a macro).
|
|
|
|
|
| |
Without this typo fix about 700 revisions from 5.13.10 to 5.14.0-RC1 can't
be built on Solaris with Sun's compiler.
|
|
|
|
|
|
| |
Specifically this option prepends valgrind --error-exitcode=124
to the command line, so that git bisect run will treat this revision as a
failure if valgrind finds any problems.
|
|
|
|
|
|
|
|
|
|
| |
If the first argument of the test case given to bisect-runner.pl is a readable
file with a #! line of ./perl or ./miniperl (only), bisect-runner.pl with
prepend ./perl -Ilib or ./miniperl -Ilib to the command sent to system.
This increases flexibility somewhat, and will avoid problems with
inconsistencies between directly running system(...), and running
system('valgrind', ...). The former accepts a #!./perl line, the latter sends
it to /bin/sh.
|
|
|
|
|
|
|
|
| |
Commit c7b956bbbaff0c46 inadvertently added a GNU (and BSD) make specific
construction to the *nix Makefile, which other platforms' makes choke on.
It was corrected with commit cfe76a0a8e5b6f21 (and 0961731461727bea), but
those changes are not the simplest way to get things passing again, so use
a simpler custom patch here.
|
|
|
|
|
|
|
|
|
| |
These provide a way to run code or to conditionally or unconditionally
apply patches for each revision tested during git bisect. This is very
useful when for the commit range, operating system and configuration options
tested, the behaviour otherwise would be to fail to build for a wide range
of revisions, and hence the bisect would finish without finding culprit
commit due to getting bogged down in 'skipped' revisions.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Don't use die or croak, as these will exit with the value of $! or $? instead
of 255, and git bisect doesn't treat these as fatal errors, but ploughs on
before inevitably failing messily for some other reason, concealing the true
error message.
|
| |
|
|
|
|
|
|
|
|
|
| |
When forcing the library list on earlier perls to avoid versioned shared
objects, also look for static libraries. Also, ensure bisect-runner.pl
searches additional library paths given to it via -Alibpth
Without this, one can't test build against static libraries in non-standard
locations.
|
| |
|
|
|
|
|
| |
This is all that is needed to build 5.003 and earlier. bisect.pl can validate
all stable versions from blead back to 5.002
|
|
|
|
|
|
|
|
|
|
| |
Unlike AIX, HP-UX patch offers no meaningful clue as to its upstream version:
$ patch -v
$Header: patch.c,v 76.1.1.2.1.3 2001/12/03 12:24:52 abhinav Exp $
Patch level: 0
But it ignores unified diffs, so assume the worst and feed it context diffs.
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the code that attempts various ways to probe for the number of CPUs
from bisect-runner.pl to bisect.pl. Skip the probe entirely if a -j (--jobs)
options is passed to bisect.pl. For --jobs=0 (or -j0) entirely skip adding
-j to the make command line. (For heretical versions of make which don't use
-j for parallelism).
Previously the probe code always ran for each call to bisect-runner.pl,
which is completely redundant if bisect-runner.pl is being called for
argument validation or help text, and inefficient even when building, as the
number of CPUs rarely changes during a bisect run. Additionally there was no
way to avoid a -j in the make command line, which isn't going to fly on
systems where the make utility doesn't have a -j option.
|
| |
|
|
|
|
|
| |
Based on http://www.perlmonks.org/?node_id=1032501, these arguments could
be confusing.
|
|
|
|
|
| |
I found myself better able to understand what's really happening given
this rewording.
|
|
|
|
|
|
| |
./perl -Ilib t/op/sort.t won't do what you want, because tests that
don't use Test::More don't set an error code on their own, you need to
run it under the harness
|
| |
|
|
|
|
|
| |
ccache 2.4 doesn't support the --version parameter, only -V. ccache 3
supports both.
|
|
|
|
|
|
| |
ccache isn't needed to print a usage message. The current heuristic for
detecting ccache is noisy if it fails, which interferes with any usage or
error output.
|
|
|
|
|
|
|
| |
The initial paragraphs of documentation are actually more useful than most of
the options documentation. So show them too.
Suggested by David Leadbeater.
|
|
|
|
|
| |
This allows one to easily bisect to find when a something became, or stopped
being, a (compile-time) syntax error.
|
|
|
|
|
|
|
| |
bisect.pl --help now exits with 0 for success. The "that took" timing
message is no longer shown after the help text. The sanity test for "are we
running from the current checkout" is now moved after the argument checking,
so that bisect.pl --help will always show the help text.
|
| |
|
|
|
|
|
|
|
|
| |
Previously with --match it would ignore the command line options, and search
in all distribution files (no --target given), or the build products only
(--target given). These remain the defaults if there are no command line
arguments. But now if command line arguments are given, this are used as glob
patterns to give the list of files to match against.
|
|
|
|
|
|
|
|
|
| |
Commit 31940c077ae95db7 added some git log output. To avoid the need to
re-indent it, it was "commented out" using Pod. However, the Pod used was
buggy. It used a =for, when it should have used a =begin/=end pair.
Without this, Pod renderers display the "comment" as if it is part of the
documentation, which isn't desired.
|
|
|
|
|
| |
Only show the "converted to a context diff" version if it was actually
converted to one before (attempted) application.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This area of history is particularly hairy because of all the back-and-forth
merging between //depot/perl and //depot/cfgperl, which confuses bisect.
It's also potentially interesting, as it's the start of the 5.6.0 development
series, so many new features arrive in quick succession, making it a likely
spot for regressions to appear.
In particular, we can now build perl for this commit:
commit 4592e6caefc41a75573f112714d170071892a537
Author: Nick Ing-Simmons <nik@tiuk.ti.com>
Date: Sat May 8 14:16:30 1999 +0000
Implement OPEN, EOF, SEEK, TELL, BINMODE and FILENO as TIEHANDLE methods.
Provide Tie::StdHandle
Basic update of docs.
p4raw-id: //depot/perl@3330
|
|
|
|
|
|
|
| |
It had merely been testing that the target file was +x
For t/test it must also check that t/perl wasn't a symlink to miniperl
created as a side effect of make miniperl failing. To add to the fun, for
some revisions the symlink is to '.././perl', not '../perl'.
|