From 0373fd7d10fb5b23c86ebec2e932ea8f059f5b71 Mon Sep 17 00:00:00 2001 From: Martin Nowack Date: Fri, 25 Mar 2022 23:07:40 +0000 Subject: Clearly separate between LLVM, a bitcode compiler, and sanitizer compiler All three can be different but also provided by the same package. By separating the different use-cases, it allows to set them independently. --- scripts/build/p-sanitizer-linux.inc | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 scripts/build/p-sanitizer-linux.inc (limited to 'scripts/build/p-sanitizer-linux.inc') diff --git a/scripts/build/p-sanitizer-linux.inc b/scripts/build/p-sanitizer-linux.inc new file mode 100644 index 00000000..b7a7718e --- /dev/null +++ b/scripts/build/p-sanitizer-linux.inc @@ -0,0 +1,42 @@ +setup_artifact_variables_sanitizer() { + local SANITIZER_LLVM_VERSION_MAJOR="${SANITIZER_LLVM_VERSION/.*/}" + local SANITIZER_LLVM_VERSION_MINOR="${SANITIZER_LLVM_VERSION/*./}" + local version="" + [[ "${SANITIZER_LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${SANITIZER_LLVM_VERSION}" + [[ "${SANITIZER_LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${SANITIZER_LLVM_VERSION_MAJOR}" + + # Only set LLVM_CONFIG if not set yet + if [[ -z "${SANITIZER_LLVM_CONFIG-}" ]]; then + SANITIZER_LLVM_CONFIG=$(which "llvm-config${version}") + fi + + + local bin_path="" + bin_path="$(dirname "$(readlink -f "$(which "clang${version}")")")" + + SANITIZER_BITCODE_CC="${bin_path}/clang" + SANITIZER_BITCODE_CXX="${bin_path}/clang++" + + if [[ -z ${SANITIZER_C_COMPILER:=} ]]; then + SANITIZER_C_COMPILER="${SANITIZER_BITCODE_CC}" + fi + + if [[ -z ${SANITIZER_CXX_COMPILER:=} ]]; then + SANITIZER_CXX_COMPILER="${SANITIZER_BITCODE_CXX}" + fi +} + +# Check if the binary artifact is installed +is_installed_sanitizer() { + if [[ -z ${SANITIZER_BUILD:-} ]]; then + return 1 + fi + local SANITIZER_LLVM_VERSION_MAJOR="${SANITIZER_LLVM_VERSION/.*/}" + local SANITIZER_LLVM_VERSION_MINOR="${SANITIZER_LLVM_VERSION/*./}" + local version="" + [[ "${SANITIZER_LLVM_VERSION_MAJOR}" -le 6 ]] && version="${SANITIZER_LLVM_VERSION}" + [[ "${SANITIZER_LLVM_VERSION_MAJOR}" -ge 7 ]] && version="${SANITIZER_LLVM_VERSION_MAJOR}" + + # Check if clang with the right version exists + which "clang-${version}" +} \ No newline at end of file -- cgit 1.4.1