1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
LLVM Bisect Scripts
===================
These scripts help you bisect LLVM/Clang for problems on build, check
and test-suite (on a specific test, not all of it). The only script
you should use is 'bisect.pl', as that will call all others in the
correct way for a given command line options.
You can rely on the power of run.sh to build and test (either check-all
or the test-suite), but you can also write your own test.sh script and
pass it to bisect.pl.
Usage:
$ ./bisect.sh [options] good_rev bad_rev
Options:
-c checkout_script (default: ./checkout.sh)
-b build_script (default: ./run.sh)
-t test_script (default: empty)
Notes:
* If the test script is empty, the success status will come from the build
script. So, if you're bisecting a build issue, or your build script is
also testing (ex: ./run.sh -c), leaving the test script empty will work
as expected.
* There is no support for Libc++, LLd etc. But it shouldn't be
too hard to add it to the list of checkout paths and symlinks on run.sh.
* It assumes your test-suite checkout is correct and on the same directory,
please see the test-suite scripts to help you set it up. If you have your
own setup, please write an according test script.
* The script creates a log for each checkout ($rev.log), so that you can tail
it while building. It will also move the log to .good and .bad once it
finishes, given run.sh or your test script's return status.
* I *strongly* advise you to use ccache, since we *must* clean up the build
directory before *every* build to avoid carrying on problems (one of the
reasons I moved back from a proper bisect).
|