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"