OLD | NEW |
| (Empty) |
1 #!/bin/bash | |
2 | |
3 # Build Skia with one of Clang's many sanitizers. | |
4 # | |
5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to
make...] | |
6 # | |
7 # This script assumes the use of Clang >=3.2. | |
8 # | |
9 # For more information, see: | |
10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation | |
11 | |
12 set -e | |
13 set -x | |
14 | |
15 here=$(cd `dirname $0`; echo `pwd`) | |
16 cores=48 | |
17 | |
18 echo "Bootstrapping CMake" | |
19 pushd $here/../third_party/externals/cmake | |
20 ./bootstrap --parallel=$cores | |
21 make -j $cores cmake | |
22 popd | |
23 | |
24 cmake=$here/../third_party/externals/cmake/bin/cmake | |
25 | |
26 echo "Building Clang" | |
27 pushd $here/../third_party/externals/llvm | |
28 mkdir -p out/ | |
29 cd out/ | |
30 rm -f CMakeCache.txt # Force CMake to re-configure, in case DEPS has changed. | |
31 $cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. | |
32 ninja | |
33 popd | |
34 | |
35 export CC=$here/../third_party/externals/llvm/out/bin/clang | |
36 export CXX=$here/../third_party/externals/llvm/out/bin/clang++ | |
37 $CC --version | |
38 | |
39 if [[ "$1" == "memory" ]]; then | |
40 echo "Building libc++ with MSAN" | |
41 pushd $here/../third_party/externals/llvm | |
42 mkdir -p msan_out/ | |
43 cd msan_out/ | |
44 rm -f CMakeCache.txt # Force CMake to re-configure, in case DEPS has chang
ed. | |
45 $cmake -DLLVM_USE_SANITIZER=MemoryWithOrigins -DCMAKE_BUILD_TYPE=Release -G
Ninja .. | |
46 ninja cxx cxxabi # No need to build all of LLVM+Clang with MSAN, just libc
++. | |
47 popd | |
48 | |
49 msan_out=$here/../third_party/externals/llvm/msan_out | |
50 | |
51 export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 $
{GYP_DEFINES}" | |
52 export CXXFLAGS="-stdlib=libc++ -I$msan_out/include ${CXX_FLAGS}" | |
53 export LDFLAGS="-stdlib=libc++ -L$msan_out/lib -Wl,-rpath,$msan_out/lib ${LD
FLAGS}" | |
54 fi | |
55 export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}" | |
56 | |
57 shift | |
58 make $@ | |
OLD | NEW |