0da8537555
The errors that we see should now change to the unexplainable, rather than the explainable errors at head. We suspect that the original reason to blacklist was this, not building libc++ with MSAN. So unblacklist everything to start fresh. BUG=skia:4903,skia:4900 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1694353004 Review URL: https://codereview.chromium.org/1694353004
59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Build Skia with one of Clang's many sanitizers.
|
|
#
|
|
# $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to make...]
|
|
#
|
|
# This script assumes the use of Clang >=3.2.
|
|
#
|
|
# For more information, see:
|
|
# http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
|
|
|
set -e
|
|
set -x
|
|
|
|
here=$(cd `dirname $0`; echo `pwd`)
|
|
cores=48
|
|
|
|
echo "Bootstrapping CMake"
|
|
pushd $here/../third_party/externals/cmake
|
|
./bootstrap --parallel=$cores
|
|
make -j $cores cmake
|
|
popd
|
|
|
|
cmake=$here/../third_party/externals/cmake/bin/cmake
|
|
|
|
echo "Building Clang"
|
|
pushd $here/../third_party/externals/llvm
|
|
mkdir -p out/
|
|
cd out/
|
|
rm -f CMakeCache.txt # Force CMake to re-configure, in case DEPS has changed.
|
|
$cmake -DCMAKE_BUILD_TYPE=Release -G Ninja ..
|
|
ninja
|
|
popd
|
|
|
|
export CC=$here/../third_party/externals/llvm/out/bin/clang
|
|
export CXX=$here/../third_party/externals/llvm/out/bin/clang++
|
|
$CC --version
|
|
|
|
if [[ "$1" == "memory" ]]; then
|
|
echo "Building libc++ with MSAN"
|
|
pushd $here/../third_party/externals/llvm
|
|
mkdir -p msan_out/
|
|
cd msan_out/
|
|
rm -f CMakeCache.txt # Force CMake to re-configure, in case DEPS has changed.
|
|
$cmake -DLLVM_USE_SANITIZER=MemoryWithOrigins -DCMAKE_BUILD_TYPE=Release -G Ninja ..
|
|
ninja cxx cxxabi # No need to build all of LLVM+Clang with MSAN, just libc++.
|
|
popd
|
|
|
|
msan_out=$here/../third_party/externals/llvm/msan_out
|
|
|
|
export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 ${GYP_DEFINES}"
|
|
export CXXFLAGS="-stdlib=libc++ -I$msan_out/include ${CXX_FLAGS}"
|
|
export LDFLAGS="-stdlib=libc++ -L$msan_out/lib -Wl,-rpath,$msan_out/lib ${LDFLAGS}"
|
|
fi
|
|
export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}"
|
|
|
|
shift
|
|
make $@
|