|
2 | 2 |
|
3 | 3 | ## General considerations |
4 | 4 |
|
5 | | -Using Clang's sanitizers obviously require you to use Clang (`USECLANG=1`), but there's another |
| 5 | +Using Clang's sanitizers obviously requires you to use Clang (`USECLANG=1`), but there's another |
6 | 6 | catch: most sanitizers require a run-time library, provided by the host compiler, while the instrumented |
7 | 7 | code generated by Julia's JIT relies on functionality from that library. This implies that the |
8 | | -LLVM version of your host compiler matches that of the LLVM library used within Julia. |
| 8 | +LLVM version of your host compiler must match that of the LLVM library used within Julia. |
9 | 9 |
|
10 | | -An easy solution is to have an dedicated build folder for providing a matching toolchain, by building |
| 10 | +An easy solution is to have a dedicated build folder for providing a matching toolchain, by building |
11 | 11 | with `BUILD_LLVM_CLANG=1`. You can then refer to this toolchain from another build |
12 | 12 | folder by specifying `USECLANG=1` while overriding the `CC` and `CXX` variables. |
13 | 13 |
|
@@ -39,7 +39,7 @@ For detecting or debugging memory bugs, you can use Clang's [address sanitizer ( |
39 | 39 | By compiling with `SANITIZE_ADDRESS=1` you enable ASAN for the Julia compiler and its generated code. |
40 | 40 | In addition, you can specify `LLVM_SANITIZE=1` to sanitize the LLVM library as well. Note that |
41 | 41 | these options incur a high performance and memory cost. For example, using ASAN for Julia and |
42 | | -LLVM makes `testall1` takes 8-10 times as long while using 20 times as much memory (this can be |
| 42 | +LLVM makes `testall1` take 8-10 times as long while using 20 times as much memory (this can be |
43 | 43 | reduced to respectively a factor of 3 and 4 by using the options described below). |
44 | 44 |
|
45 | 45 | By default, Julia sets the `allow_user_segv_handler=1` ASAN flag, which is required for signal |
|
0 commit comments