about summary refs log tree commit diff homepage
path: root/scripts/build/p-sanitizer-linux.inc
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/p-sanitizer-linux.inc')
-rw-r--r--scripts/build/p-sanitizer-linux.inc42
1 files changed, 42 insertions, 0 deletions
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