aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/build
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2019-03-12 09:49:14 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2019-03-17 15:43:21 +0000
commite06ab0db462c1c64bf26f856f4a8448d1ebf199d (patch)
treea9c54b7c950290fc96e05042089cf29a2ca06fd7 /scripts/build
parent1126134d15a293e0f7fceed881282b78ac8a37ef (diff)
downloadklee-e06ab0db462c1c64bf26f856f4a8448d1ebf199d.tar.gz
Generalise clang package detection for linux and mac osx
Diffstat (limited to 'scripts/build')
-rw-r--r--scripts/build/p-clang-linux-ubuntu-16.04.inc29
-rw-r--r--scripts/build/p-clang-linux.inc28
-rw-r--r--scripts/build/p-clang-osx.inc11
3 files changed, 41 insertions, 27 deletions
diff --git a/scripts/build/p-clang-linux-ubuntu-16.04.inc b/scripts/build/p-clang-linux-ubuntu-16.04.inc
index 75023628..5e140f5d 100644
--- a/scripts/build/p-clang-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-clang-linux-ubuntu-16.04.inc
@@ -10,8 +10,8 @@ install_binary_artifact_clang() {
[[ "${LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${LLVM_VERSION}"
[[ "${LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${LLVM_VERSION_MAJOR}"
-
- if [[ "${LLVM_VERSION_MAJOR}" -eq 3 && "${LLVM_VERSION_MINOR}" -gt 7 ]]; then
+ # apt.llvm packages for Trusty clang 5.0 package is broken with atomics. Don't use it.
+ if [[ "${LLVM_VERSION_MAJOR}" -gt 6 ]]; then
# Add certificate
apt update -y
dependencies=(
@@ -36,31 +36,6 @@ install_binary_artifact_clang() {
apt -y --no-install-recommends install "${dependencies[@]}"
}
-setup_artifact_variables_clang() {
- local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
- local LLVM_VERSION_MINOR="${LLVM_VERSION/*./}"
- local version=""
- [[ "${LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${LLVM_VERSION}"
- [[ "${LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${LLVM_VERSION_MAJOR}"
-
- # Only set LLVM_CONFIG if not set yet
- if [[ -z ${LLVM_CONFIG+x} ]]; then
- LLVM_CONFIG=$(which "llvm-config${version}")
- fi
-
- BITCODE_CC=$(which "clang${version}")
- BITCODE_CXX=$(which "clang++${version}")
-
- SANITIZER_C_COMPILER="${BITCODE_CC}"
- SANITIZER_CXX_COMPILER="${BITCODE_CXX}"
-}
-
-# Check if the binary artifact is installed
-is_installed_clang() {
- # Check if llvm-config with the right version exists
- which "llvm-config-${LLVM_VERSION}"
-}
-
get_docker_config_id_clang() {
return 0
}
diff --git a/scripts/build/p-clang-linux.inc b/scripts/build/p-clang-linux.inc
new file mode 100644
index 00000000..ff9b8b81
--- /dev/null
+++ b/scripts/build/p-clang-linux.inc
@@ -0,0 +1,28 @@
+setup_artifact_variables_clang() {
+ local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
+ local LLVM_VERSION_MINOR="${LLVM_VERSION/*./}"
+ local version=""
+ [[ "${LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${LLVM_VERSION}"
+ [[ "${LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${LLVM_VERSION_MAJOR}"
+
+ # Only set LLVM_CONFIG if not set yet
+ [[ -z ${LLVM_CONFIG+x} ]] && LLVM_CONFIG=$(which "llvm-config${version}")
+
+
+ local bin_path=""
+ bin_path="$(dirname "$(readlink -f "$(which "clang${version}")")")"
+
+ BITCODE_CC="${bin_path}/clang"
+ BITCODE_CXX="${bin_path}/clang++"
+
+ #[[ -z ${SANITIZER_C_COMPILER+x} ]] &&
+ SANITIZER_C_COMPILER="${BITCODE_CC}"
+ #[[ -z ${SANITIZER_CXX_COMPILER+x} ]] &&
+ SANITIZER_CXX_COMPILER="${BITCODE_CXX}"
+}
+
+# Check if the binary artifact is installed
+is_installed_clang() {
+ # Check if llvm-config with the right version exists
+ which "llvm-config-${LLVM_VERSION}"
+} \ No newline at end of file
diff --git a/scripts/build/p-clang-osx.inc b/scripts/build/p-clang-osx.inc
index fde236ca..e3634e5a 100644
--- a/scripts/build/p-clang-osx.inc
+++ b/scripts/build/p-clang-osx.inc
@@ -11,3 +11,14 @@ is_installed_clang() {
LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
[[ -f "/usr/local/opt/llvm@${LLVM_VERSION_MAJOR}/bin/llvm-config" ]]
}
+
+setup_artifact_variables_clang() {
+ local LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
+
+ BITCODE_CC="/usr/local/opt/llvm@${LLVM_VERSION_MAJOR}/bin/clang"
+ BITCODE_CXX="/usr/local/opt/llvm@${LLVM_VERSION_MAJOR}/bin/clang++"
+
+ SANITIZER_C_COMPILER="${BITCODE_CC}"
+ SANITIZER_CXX_COMPILER="${BITCODE_CXX}"
+ LLVM_CONFIG="/usr/local/opt/llvm@${LLVM_VERSION_MAJOR}/bin/llvm-config"
+} \ No newline at end of file