00_setup_env_native_asan.sh raw

   1  #!/usr/bin/env bash
   2  #
   3  # Copyright (c) 2019-present The Limenka 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 python3-zmq qtbase5-dev qttools5-dev qttools5-dev-tools libevent-dev libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
  24  export NO_DEPENDS=1
  25  export GOAL="install"
  26  export LIMENKA_CONFIG="\
  27   -DWITH_USDT=ON -DWITH_ZMQ=ON -DWITH_BDB=ON -DWARN_INCOMPATIBLE_BDB=OFF -DBUILD_GUI=ON \
  28   -DSANITIZERS=address,float-divide-by-zero,integer,undefined \
  29   -DCMAKE_C_COMPILER=clang \
  30   -DCMAKE_CXX_COMPILER=clang++ \
  31   -DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \
  32   -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern -Wno-error=deprecated-declarations' \
  33   -DAPPEND_CXXFLAGS='-std=c++23' \
  34   -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' \
  35  "
  36