about summary refs log tree commit diff homepage
path: root/scripts/build
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2020-01-23 15:25:45 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2020-02-13 17:39:21 +0000
commitdbda156217c532a7e1a65e8c216e593a64c0b8fc (patch)
tree015e9b05723106f58c7865f1636ad7157edd41bb /scripts/build
parent64a2b1a93648461f11daa44911d791c28bc00885 (diff)
downloadklee-dbda156217c532a7e1a65e8c216e593a64c0b8fc.tar.gz
Update ubuntu build dependencies for KLEE
Build dependencies for different components were tied to a specific Ubuntu version (16.04).
Although, they are the same for newer versions as well.

By renaming `p-component-linux-ubuntu-16.04.inc` to `p-component-linux-ubuntu.inc`, the script can be used for newer Ubuntu versions as well.

Do some minor cleaning up.
Diffstat (limited to 'scripts/build')
-rw-r--r--scripts/build/p-clang-linux-ubuntu.inc (renamed from scripts/build/p-clang-linux-ubuntu-16.04.inc)11
-rw-r--r--scripts/build/p-gtest-linux-ubuntu.inc (renamed from scripts/build/p-gtest-linux-ubuntu-16.04.inc)0
-rw-r--r--scripts/build/p-klee-linux-ubuntu.inc (renamed from scripts/build/p-klee-linux-ubuntu-16.04.inc)2
-rw-r--r--scripts/build/p-libcxx-linux-ubuntu.inc18
-rw-r--r--scripts/build/p-llvm-linux-ubuntu-18.04.inc49
-rw-r--r--scripts/build/p-llvm-linux-ubuntu.inc (renamed from scripts/build/p-llvm-linux-ubuntu-16.04.inc)17
-rw-r--r--scripts/build/p-metasmt-linux-ubuntu.inc (renamed from scripts/build/p-metasmt-linux-ubuntu-16.04.inc)4
-rw-r--r--scripts/build/p-sqlite-linux-ubuntu.inc (renamed from scripts/build/p-sqlite-linux-ubuntu-16.04.inc)12
-rw-r--r--scripts/build/p-stp-linux-ubuntu.inc (renamed from scripts/build/p-stp-linux-ubuntu-16.04.inc)0
-rw-r--r--scripts/build/p-tcmalloc-linux-ubuntu.inc (renamed from scripts/build/p-tcmalloc-linux-ubuntu-16.04.inc)0
-rw-r--r--scripts/build/p-uclibc-linux-ubuntu.inc (renamed from scripts/build/p-uclibc-linux-ubuntu-16.04.inc)0
-rw-r--r--scripts/build/p-z3-linux-ubuntu.inc (renamed from scripts/build/p-z3-linux-ubuntu-16.04.inc)3
12 files changed, 48 insertions, 68 deletions
diff --git a/scripts/build/p-clang-linux-ubuntu-16.04.inc b/scripts/build/p-clang-linux-ubuntu.inc
index 0fb30e52..b3159d3c 100644
--- a/scripts/build/p-clang-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-clang-linux-ubuntu.inc
@@ -13,13 +13,20 @@ install_binary_artifact_clang() {
     dependencies=(
       ca-certificates
       wget
+      lsb-release
+      gnupg
     )
 
     apt -y --no-install-recommends install "${dependencies[@]}"
     wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key| apt-key add -
 
     # Add repository
-    echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${version} main" >> /etc/apt/sources.list
+    codename="$(lsb_release --codename --short)"
+    apt_entry="deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}${version} main"
+    if [[ ! $(grep -q "${apt_entry}") ]]; then
+      echo "${apt_entry}" >> /etc/apt/sources.list
+      apt update -y
+    fi
   fi
 
   apt update -y
@@ -29,7 +36,7 @@ install_binary_artifact_clang() {
   )
 
   #Install essential dependencies
-  apt -y --no-install-recommends install "${dependencies[@]}"
+  apt -y --no-install-recommends install "${dependencies[@]}" || return 1
 }
 
 get_docker_config_id_clang() {
diff --git a/scripts/build/p-gtest-linux-ubuntu-16.04.inc b/scripts/build/p-gtest-linux-ubuntu.inc
index f636d321..f636d321 100644
--- a/scripts/build/p-gtest-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-gtest-linux-ubuntu.inc
diff --git a/scripts/build/p-klee-linux-ubuntu-16.04.inc b/scripts/build/p-klee-linux-ubuntu.inc
index 9109a27f..a19e6a3b 100644
--- a/scripts/build/p-klee-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-klee-linux-ubuntu.inc
@@ -20,6 +20,6 @@ install_build_dependencies_klee() {
 
   apt -y --no-install-recommends install "${dependencies[@]}"
 
-  pip install lit
+  pip3 install lit
   pip3 install tabulate
 }
diff --git a/scripts/build/p-libcxx-linux-ubuntu.inc b/scripts/build/p-libcxx-linux-ubuntu.inc
new file mode 100644
index 00000000..8fefd83e
--- /dev/null
+++ b/scripts/build/p-libcxx-linux-ubuntu.inc
@@ -0,0 +1,18 @@
+install_build_dependencies_libcxx() { 
+  apt-get update -y
+
+  dependencies=(
+    build-essential
+    ca-certificates
+    git
+    python3
+    python3-pip
+    cmake
+    curl
+    file # Needed for wllvm
+  )
+
+  apt -y --no-install-recommends install "${dependencies[@]}"
+
+  pip3 install wllvm
+}
\ No newline at end of file
diff --git a/scripts/build/p-llvm-linux-ubuntu-18.04.inc b/scripts/build/p-llvm-linux-ubuntu-18.04.inc
deleted file mode 100644
index f83112db..00000000
--- a/scripts/build/p-llvm-linux-ubuntu-18.04.inc
+++ /dev/null
@@ -1,49 +0,0 @@
-install_build_dependencies_llvm() { 
-	apt update -y
-
-	dependencies=(
-		build-essential
-
-		autoconf
-		automake
-		groff
-		gcc
-		g++
-		python-dev
-		make
-		subversion # Check out code
-		zlib1g-dev
-	)
-
-	#Install essential dependencies
-	apt -y --no-install-recommends install "${dependencies[@]}"
-}
-
-install_binary_artifact_llvm() {
-  apt update -y
-  
-  dependencies=(
-    "clang-${LLVM_VERSION}"
-  )
-
-  #Install essential dependencies
-  apt -y --no-install-recommends install "${dependencies[@]}"
-}
-
-# Check if the binary artifact is installed
-is_installed_llvm() {
-	local lc=""
-	# Check if llvm-config with the right version exists	
-	lc=$(which "llvm-config-${LLVM_VERSION}")
-	
-	local rtti
-	rtti="$(${lc} --has-rtti)"
-	local assertion
-	assertion="$(${lc} --assertion-mode)"
-	local build_mode
-	build_mode="$(${lc} --build-mode)"
-	
-	# Check requested mode with mode of the found item	
-	[[ $(to_bool "${REQUIRES_RTTI}") -eq $(to_bool "${rtti}") ]] || return 1
-	[[ $(to_bool "${DISABLE_ASSERTIONS}") -ne $(to_bool "${assertion}") ]] || return 1
-}
\ No newline at end of file
diff --git a/scripts/build/p-llvm-linux-ubuntu-16.04.inc b/scripts/build/p-llvm-linux-ubuntu.inc
index bab32d45..98fe9abe 100644
--- a/scripts/build/p-llvm-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-llvm-linux-ubuntu.inc
@@ -3,6 +3,7 @@ install_build_dependencies_llvm() {
   apt update -y
 
   dependencies=(
+    ca-certificates
     build-essential
     autoconf
     automake
@@ -11,7 +12,7 @@ install_build_dependencies_llvm() {
     g++
     python-dev
     make
-    subversion # To check out code
+    git # To check out code
     zlib1g-dev
     cmake
   )
@@ -49,6 +50,8 @@ install_binary_artifact_llvm() {
   dependencies=(
     ca-certificates
     wget
+    lsb-release
+    gnupg
   )
   apt -y --no-install-recommends install "${dependencies[@]}"
   wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key| apt-key add -
@@ -56,10 +59,14 @@ install_binary_artifact_llvm() {
   local version=""
   [[ "${LLVM_VERSION_MAJOR}" -le 6 ]] && version="-${LLVM_VERSION}"
   [[ "${LLVM_VERSION_MAJOR}" -ge 7 ]] && version="-${LLVM_VERSION_MAJOR}"
-  
+
   # Add repository
-  echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${version} main" >> /etc/apt/sources.list
-  apt update -y
+  codename="$(lsb_release --codename --short)"
+  apt_entry="deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}${version} main"
+  if [[ ! $(grep -q "${apt_entry}") ]]; then
+    echo  "${apt_entry}" >> /etc/apt/sources.list
+    apt update -y
+  fi
 
   dependencies=(
     "llvm${version}"
@@ -69,7 +76,7 @@ install_binary_artifact_llvm() {
   )
 
   #Install essential dependencies
-  apt -y --no-install-recommends install "${dependencies[@]}"
+  apt -y --no-install-recommends install "${dependencies[@]}" || return 1
 }
 
 # Check if the binary artifact is installed
diff --git a/scripts/build/p-metasmt-linux-ubuntu-16.04.inc b/scripts/build/p-metasmt-linux-ubuntu.inc
index 583f869a..1e381b78 100644
--- a/scripts/build/p-metasmt-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-metasmt-linux-ubuntu.inc
@@ -9,7 +9,8 @@ install_build_dependencies_metasmt() {
     # libgmp, gperf (required by yices2)
     gperf
     libgmp-dev
-
+    libbz2-dev
+    libboost-dev
     build-essential
     git
     wget
@@ -22,6 +23,7 @@ install_build_dependencies_metasmt() {
     python
     autoconf
     python3
+    curl
   )
 
   #Install essential dependencies
diff --git a/scripts/build/p-sqlite-linux-ubuntu-16.04.inc b/scripts/build/p-sqlite-linux-ubuntu.inc
index ee5531a2..158ea41c 100644
--- a/scripts/build/p-sqlite-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-sqlite-linux-ubuntu.inc
@@ -11,25 +11,21 @@ install_build_dependencies_sqlite() {
   apt -y --no-install-recommends install "${dependencies[@]}"
 }
 install_binary_artifact_sqlite() {
+  [[ "${SANITIZER_SUFFIX}x" == "x" ]] || return 1
 
-  if [[ "${SANITIZER_SUFFIX}x" != "x" ]]; then
-    return 1
-  fi
   apt update -y
-  
   dependencies=(
     libsqlite3-dev
   )
-
-  #Install essential dependencies
   apt -y --no-install-recommends install "${dependencies[@]}"
 }
 
 # Check if the binary artifact is installed
 is_installed_sqlite() {
-	[[ -f /usr/lib/x86_64-linux-gnu/libsqlite3.so ]] || return 1
+  [[ -f /usr/lib/x86_64-linux-gnu/libsqlite3.so ]] || return 1
+  return 0
 }
 
 get_docker_config_id_sqlite() {
-    return 0
+  return 0
 }
diff --git a/scripts/build/p-stp-linux-ubuntu-16.04.inc b/scripts/build/p-stp-linux-ubuntu.inc
index f4030023..f4030023 100644
--- a/scripts/build/p-stp-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-stp-linux-ubuntu.inc
diff --git a/scripts/build/p-tcmalloc-linux-ubuntu-16.04.inc b/scripts/build/p-tcmalloc-linux-ubuntu.inc
index 26bf2da9..26bf2da9 100644
--- a/scripts/build/p-tcmalloc-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-tcmalloc-linux-ubuntu.inc
diff --git a/scripts/build/p-uclibc-linux-ubuntu-16.04.inc b/scripts/build/p-uclibc-linux-ubuntu.inc
index 36bdce58..36bdce58 100644
--- a/scripts/build/p-uclibc-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-uclibc-linux-ubuntu.inc
diff --git a/scripts/build/p-z3-linux-ubuntu-16.04.inc b/scripts/build/p-z3-linux-ubuntu.inc
index 2f5e4086..2a46ac46 100644
--- a/scripts/build/p-z3-linux-ubuntu-16.04.inc
+++ b/scripts/build/p-z3-linux-ubuntu.inc
@@ -4,8 +4,7 @@ install_build_dependencies_z3() {
 
   dependencies=(
     build-essential
-
-	python
+    python
     git
     wget
     ca-certificates