00_setup_env_native_tsan.sh raw

   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:26.04"
  11  export APT_LLVM_V="22"
  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  # Disable fortification with -U_FORTIFY_SOURCE to work around https://github.com/bitcoin/bitcoin/issues/30586
  20  export BITCOIN_CONFIG="\
  21    --preset=dev-mode \
  22    -DBUILD_GUI=OFF \
  23    -DSANITIZERS=thread \
  24    -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES -U_FORTIFY_SOURCE' \
  25  "
  26  export USE_INSTRUMENTED_LIBCPP="Thread"
  27