INNER CODE UNIT · Java

ASAN_ARCH

objectbox/objectbox-java · scripts/test-with-asan.sh:22

    ASAN_ARCH=$(uname -m) # x86_64 or aarch64
    echo "No ASAN_LIB_SO defined, trying to locate dynamically..."
    # Known to work on Ubuntu 24.04: Find in the typical llvm directory (using `tail` for latest version; `head` would be oldest")
    ASAN_LIB_SO_CLANG_LATEST=$(find /usr/lib/llvm-*/ -name libclang_rt.asan-${ASAN_ARCH}.so | tail -1)
    # Known to work with clang 16 on Rocky Linux 8.10 (path is like /usr/local/lib/clang/16/lib/x86_64-unknown-linux-gnu/libclang_rt.asan.so)
    ASAN_LIB_SO_CLANG=$(clang -print-file-name=libclang_rt.asan.so || true)
    # Approach via https://stackoverflow.com/a/54386573/551269, but use libasan.so.8 instead of libasan.so
    # to not find the linker script, but the actual library (and to avoid parsing it out of the linker script).
    ASAN_LIB_SO_GCC=$(gcc -print-file-name=libasan.so.8 || true)
    echo "clang latest asan lib: ${ASAN_LIB_SO_CLANG_LATEST}"
    echo "       clang asan lib: ${ASAN_LIB_SO_CLANG}"
    echo "         gcc asan lib: ${ASAN_LIB_SO_GCC}"
    # prefer clang version in case clang llvm-symbolizer is used (see below)
    if [ -f "${ASAN_LIB_SO_CLANG_LATEST}" ]; then
        export ASAN_LIB_SO="${ASAN_LIB_SO_CLANG_LATEST}"
    elif [ -f "${ASAN_LIB_SO_CLANG}" ]; then
        export ASAN_LIB_SO="${ASAN_LIB_SO_CLANG}"
    elif [ -f "${ASAN_LIB_SO_GCC}" ]; then

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…