00_setup_env_native_asan.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 CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04" 10 11 # Only install BCC tracing packages in CI. Container has to match the host for BCC to work. 12 if [[ "${INSTALL_BCC_TRACING_TOOLS}" == "true" ]]; then 13 # Required for USDT functional tests to run 14 BPFCC_PACKAGE="bpfcc-tools linux-headers-$(uname --kernel-release)" 15 export CI_CONTAINER_CAP="--privileged -v /sys/kernel:/sys/kernel:rw" 16 else 17 BPFCC_PACKAGE="" 18 export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the container needs access to ptrace (https://github.com/google/sanitizers/issues/764) 19 fi 20 21 export CONTAINER_NAME=ci_native_asan 22 export APT_LLVM_V="21" 23 export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev mold python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE} libcapnp-dev capnproto python3-pip" 24 export PIP_PACKAGES="--break-system-packages pycapnp" 25 export NO_DEPENDS=1 26 export GOAL="install" 27 export CI_LIMIT_STACK_SIZE=1 28 export BITCOIN_CONFIG="\ 29 --preset=dev-mode \ 30 -DSANITIZERS=address,float-divide-by-zero,integer,undefined \ 31 -DCMAKE_C_COMPILER=clang \ 32 -DCMAKE_CXX_COMPILER=clang++ \ 33 -DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \ 34 -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \ 35 -DCMAKE_EXE_LINKER_FLAGS='-fuse-ld=mold' \ 36 -DAPPEND_CXXFLAGS='-std=c++23' \ 37 -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \ 38 "