Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: tools/xsan_build

Issue 1694353004: MSAN: build libc++ with MSAN, link to it. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: unblacklist Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/dm_flags.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Build Skia with one of Clang's many sanitizers. 3 # Build Skia with one of Clang's many sanitizers.
4 # 4 #
5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to make...] 5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to make...]
6 # 6 #
7 # This script assumes the use of Clang >=3.2. 7 # This script assumes the use of Clang >=3.2.
8 # 8 #
9 # For more information, see: 9 # For more information, see:
10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation 10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
11 11
12 set -e 12 set -e
13 set -x 13 set -x
14 14
15 here=$(cd `dirname $0`; echo `pwd`) 15 here=$(cd `dirname $0`; echo `pwd`)
16 cores=48 16 cores=48
17 17
18 echo "Bootstrapping CMake" 18 echo "Bootstrapping CMake"
19 pushd $here/../third_party/externals/cmake 19 pushd $here/../third_party/externals/cmake
20 ./bootstrap --parallel=$cores 20 ./bootstrap --parallel=$cores
21 make -j $cores cmake 21 make -j $cores cmake
22 popd 22 popd
23 23
24 cmake=$here/../third_party/externals/cmake/bin/cmake
25
24 echo "Building Clang" 26 echo "Building Clang"
25 pushd $here/../third_party/externals/llvm 27 pushd $here/../third_party/externals/llvm
26 mkdir -p out/ 28 mkdir -p out/
27 cd out/ 29 cd out/
28 $here/../third_party/externals/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Release -G Nin ja .. 30 rm -f CMakeCache.txt # Force CMake to re-configure, in case DEPS has changed.
31 $cmake -DCMAKE_BUILD_TYPE=Release -G Ninja ..
29 ninja 32 ninja
30 popd 33 popd
31 34
32 export CC=$here/../third_party/externals/llvm/out/bin/clang 35 export CC=$here/../third_party/externals/llvm/out/bin/clang
33 export CXX=$here/../third_party/externals/llvm/out/bin/clang++ 36 export CXX=$here/../third_party/externals/llvm/out/bin/clang++
34 $CC --version 37 $CC --version
35 38
36 if [[ "$1" == "memory" ]]; then 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
37 export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 $ {GYP_DEFINES}" 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}"
38 fi 54 fi
39 export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}" 55 export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}"
40 56
41 shift 57 shift
42 make $@ 58 make $@
OLDNEW
« no previous file with comments | « tools/dm_flags.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698