/ ci / test / 00_setup_env_native_tsan.sh
00_setup_env_native_tsan.sh
 1  #!/usr/bin/env bash
 2  #
 3  # Copyright (c) 2019-present The Bitcoin Core developers
 4  # Distributed under the MIT software license, see the accompanying
 5  # file COPYING or http://www.opensource.org/licenses/mit-license.php.
 6  
 7  export LC_ALL=C.UTF-8
 8  
 9  export CONTAINER_NAME=ci_native_tsan
10  export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
11  export APT_LLVM_V="21"
12  LIBCXX_DIR="/cxx_build/"
13  LIBCXX_FLAGS="-fsanitize=thread -nostdinc++ -nostdlib++ -isystem ${LIBCXX_DIR}include/c++/v1 -L${LIBCXX_DIR}lib -Wl,-rpath,${LIBCXX_DIR}lib -lc++ -lc++abi -lpthread -Wno-unused-command-line-argument"
14  export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} llvm-${APT_LLVM_V}-dev libclang-${APT_LLVM_V}-dev libclang-rt-${APT_LLVM_V}-dev python3-zmq python3-pip"
15  export PIP_PACKAGES="--break-system-packages pycapnp"
16  export DEP_OPTS="CC=clang CXX=clang++ CXXFLAGS='${LIBCXX_FLAGS}' NO_QT=1"
17  export GOAL="install"
18  export CI_LIMIT_STACK_SIZE=1
19  export BITCOIN_CONFIG="\
20    --preset=dev-mode \
21    -DBUILD_GUI=OFF \
22    -DSANITIZERS=thread \
23    -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES' \
24  "
25  export USE_INSTRUMENTED_LIBCPP="Thread"