about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2019-03-13 13:31:06 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2019-03-17 15:43:21 +0000
commitae1539e421cc225e77cf23d7662644321e78a8ed (patch)
tree707dfdb4438ffa1f3c87fa3225da6ea113d52ef5
parentdccfb3d1b62f0c00e3e16547f3d9ec02de49be52 (diff)
downloadklee-ae1539e421cc225e77cf23d7662644321e78a8ed.tar.gz
Add libc++ as build dependency to KLEE
-rw-r--r--scripts/build/p-klee.inc16
-rwxr-xr-xscripts/build/run-tests.sh5
-rw-r--r--scripts/build/v-klee.inc12
3 files changed, 26 insertions, 7 deletions
diff --git a/scripts/build/p-klee.inc b/scripts/build/p-klee.inc
index a9982fc0..5872ba4a 100644
--- a/scripts/build/p-klee.inc
+++ b/scripts/build/p-klee.inc
@@ -30,7 +30,6 @@ build_klee() {
 ###############################################################################
 # klee-uclibc
 ###############################################################################
-  local KLEE_UCLIBC_CONFIGURE_OPTION
 
   if [ "${UCLIBC_VERSION}" != "0" ]; then
     CMAKE_ARGUMENTS+=(
@@ -45,6 +44,21 @@ build_klee() {
     )
   fi
 
+###############################################################################
+# libc++
+###############################################################################
+
+if [ "${USE_LIBCXX}" -eq 1 ]; then
+  CMAKE_ARGUMENTS+=(
+    "-DENABLE_KLEE_LIBCXX=TRUE"
+    "-DKLEE_LIBCXX_DIR=${LIBCXX_INSTALL}"
+    "-DKLEE_LIBCXX_INCLUDE_DIR=${LIBCXX_INSTALL}/include/c++/v1"
+  )
+else
+  CMAKE_ARGUMENTS+=(
+    "-DENABLE_KLEE_LIBCXX=FALSE"
+  )
+fi
 
 
 ###############################################################################
diff --git a/scripts/build/run-tests.sh b/scripts/build/run-tests.sh
index f39dcad8..387ef8f3 100755
--- a/scripts/build/run-tests.sh
+++ b/scripts/build/run-tests.sh
@@ -57,6 +57,11 @@ run_tests() {
   if [ "${COVERAGE}" -eq 1 ]; then
     coverage_setup "${build_dir}"
   fi
+
+  if [[ -n "${SANITIZER_BUILD+x}" ]]; then
+    for num in {1..10}; do sleep 120; echo 'Keep Travis alive'; done &
+  fi
+
   make systemtests || return 1
   
   # If metaSMT is the only solver, then rerun lit tests with non-default metaSMT backends
diff --git a/scripts/build/v-klee.inc b/scripts/build/v-klee.inc
index d90892f4..7ed69001 100644
--- a/scripts/build/v-klee.inc
+++ b/scripts/build/v-klee.inc
@@ -2,11 +2,13 @@
 required_variables_klee=(
   "COVERAGE"
   "USE_TCMALLOC"
+  "USE_LIBCXX"
 )
 
 required_variables_check_klee() {
   check_bool "COVERAGE"
   check_bool "USE_TCMALLOC"
+  check_bool "USE_LIBCXX"
 }
 
 # On which artifacts does KLEE depend on
@@ -16,9 +18,8 @@ artifact_dependency_klee(){
     dependencies+=(uclibc)
   fi
 
-  if [[ "${USE_TCMALLOC}" -eq 1 ]]; then
-    dependencies+=("tcmalloc")
-  fi
+  [[ "${USE_TCMALLOC}" -eq 1 ]] && dependencies+=("tcmalloc")
+  [[ "${USE_LIBCXX}" -eq 1 ]] && dependencies+=("libcxx")
 
   for d in "${dependencies[@]}"; do
     echo "${d}"
@@ -32,9 +33,8 @@ runtime_artifact_dependency_klee(){
   fi
   dependencies+=("llvm" "solvers" "gtest")
 
-  if [[ "${USE_TCMALLOC}" -eq 1 ]]; then
-    dependencies+=("tcmalloc")
-  fi
+  [[ "${USE_TCMALLOC}" -eq 1 ]] && dependencies+=("tcmalloc")
+  [[ "${USE_LIBCXX}" -eq 1 ]] && dependencies+=("libcxx")
 
   for d in "${dependencies[@]}"; do
     echo "${d}"