about summary refs log tree commit diff homepage
path: root/.travis/klee.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis/klee.sh')
-rwxr-xr-x.travis/klee.sh209
1 files changed, 65 insertions, 144 deletions
diff --git a/.travis/klee.sh b/.travis/klee.sh
index 119fbb47..33299780 100755
--- a/.travis/klee.sh
+++ b/.travis/klee.sh
@@ -3,9 +3,6 @@
 set -e
 : ${SOLVERS?"Solvers must be specified"}
 
-# Calculate LLVM branch name to retrieve missing files from
-SVN_BRANCH="release_$( echo ${LLVM_VERSION} | sed 's/\.//g')"
-
 ###############################################################################
 # Select the compiler to use to generate LLVM bitcode
 ###############################################################################
@@ -28,18 +25,10 @@ if [ "${KLEE_UCLIBC}" != "0" ]; then
     cd klee-uclibc
     ./configure --make-llvm-lib --with-cc "${KLEE_CC}" --with-llvm-config /usr/bin/llvm-config-${LLVM_VERSION}
     make
-    if [ "X${USE_CMAKE}" == "X1" ]; then
-      KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=TRUE -DKLEE_UCLIBC_PATH=$(pwd) -DENABLE_POSIX_RUNTIME=TRUE"
-    else
-      KLEE_UCLIBC_CONFIGURE_OPTION="--with-uclibc=$(pwd) --enable-posix-runtime"
-    fi
+    KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=TRUE -DKLEE_UCLIBC_PATH=$(pwd) -DENABLE_POSIX_RUNTIME=TRUE"
     cd ../
 else
-    if [ "X${USE_CMAKE}" == "X1" ]; then
-      KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=FALSE -DENABLE_POSIX_RUNTIME=FALSE"
-    else
-      KLEE_UCLIBC_CONFIGURE_OPTION=""
-    fi
+    KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=FALSE -DENABLE_POSIX_RUNTIME=FALSE"
 fi
 
 COVERAGE_FLAGS=""
@@ -53,60 +42,37 @@ fi
 ###############################################################################
 SOLVER_LIST=$(echo "${SOLVERS}" | sed 's/:/ /')
 
-if [ "X${USE_CMAKE}" == "X1" ]; then
-  # Set CMake configure options
-  KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=OFF"
-  KLEE_STP_CONFIGURE_OPTION="-DENABLE_SOLVER_STP=OFF"
-  KLEE_METASMT_CONFIGURE_OPTION="-DENABLE_SOLVER_METASMT=OFF"
-  for solver in ${SOLVER_LIST}; do
-    echo "Setting CMake configuration option for ${solver}"
-    case ${solver} in
-    STP)
-      KLEE_STP_CONFIGURE_OPTION="-DENABLE_SOLVER_STP=TRUE -DSTP_DIR=${BUILD_DIR}/stp/build"
-      ;;
-    Z3)
-      echo "Z3"
-      KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=TRUE"
-      ;;
-    metaSMT)
-      echo "metaSMT"
-      if [ "X${METASMT_DEFAULT}" == "X" ]; then
-        METASMT_DEFAULT=STP
-      fi
-      KLEE_METASMT_CONFIGURE_OPTION="-DENABLE_SOLVER_METASMT=TRUE -DmetaSMT_DIR=${BUILD_DIR}/metaSMT/build -DMETASMT_DEFAULT_BACKEND=${METASMT_DEFAULT}"
-      ;;
-    *)
-      echo "Unknown solver ${solver}"
-      exit 1
-    esac
-  done
-  TCMALLOC_OPTION=$([ "${USE_TCMALLOC:-0}" == 1 ] && echo "-DENABLE_TCMALLOC=TRUE" || echo "-DENABLE_TCMALLOC=FALSE")
-else
-  KLEE_Z3_CONFIGURE_OPTION=""
-  KLEE_STP_CONFIGURE_OPTION=""
-  KLEE_METASMT_CONFIGURE_OPTION=""
-  for solver in ${SOLVER_LIST}; do
-    echo "Setting configuration option for ${solver}"
-    case ${solver} in
-    STP)
-      KLEE_STP_CONFIGURE_OPTION="--with-stp=${BUILD_DIR}/stp/build"
-      ;;
-    Z3)
-      echo "Z3"
-      KLEE_Z3_CONFIGURE_OPTION="--with-z3=/usr"
-      ;;
-    metaSMT)
-      echo "metaSMT"
-      KLEE_METASMT_CONFIGURE_OPTION="--with-metasmt=${BUILD_DIR}/metaSMT/build/root --with-metasmt-default-backend=${METASMT_DEFAULT}"
-      ;;
-    *)
-      echo "Unknown solver ${solver}"
-      exit 1
-    esac
-  done
+# Set CMake configure options
+KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=OFF"
+KLEE_STP_CONFIGURE_OPTION="-DENABLE_SOLVER_STP=OFF"
+KLEE_METASMT_CONFIGURE_OPTION="-DENABLE_SOLVER_METASMT=OFF"
+for solver in ${SOLVER_LIST}; do
+  echo "Setting CMake configuration option for ${solver}"
+  case ${solver} in
+  STP)
+    KLEE_STP_CONFIGURE_OPTION="-DENABLE_SOLVER_STP=TRUE -DSTP_DIR=${BUILD_DIR}/stp/build"
+    ;;
+  Z3)
+    echo "Z3"
+    KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=TRUE"
+    ;;
+  metaSMT)
+    echo "metaSMT"
+    if [ "X${METASMT_DEFAULT}" == "X" ]; then
+      METASMT_DEFAULT=STP
+    fi
+    KLEE_METASMT_CONFIGURE_OPTION="-DENABLE_SOLVER_METASMT=TRUE -DmetaSMT_DIR=${BUILD_DIR}/metaSMT/build -DMETASMT_DEFAULT_BACKEND=${METASMT_DEFAULT}"
+    ;;
+  *)
+    echo "Unknown solver ${solver}"
+    exit 1
+  esac
+done
 
-  TCMALLOC_OPTION=$([ "${USE_TCMALLOC:-0}" == 1 ] && echo "--with-tcmalloc" || echo "--without-tcmalloc")
-fi
+###############################################################################
+# Handle additional configure flags
+###############################################################################
+TCMALLOC_OPTION=$([ "${USE_TCMALLOC:-0}" == 1 ] && echo "-DENABLE_TCMALLOC=TRUE" || echo "-DENABLE_TCMALLOC=FALSE")
 
 ###############################################################################
 # Handle Sanitizer flags
@@ -133,95 +99,50 @@ fi
 mkdir klee
 cd klee
 
-if [ "X${USE_CMAKE}" == "X1" ]; then
-  GTEST_SRC_DIR="${BUILD_DIR}/test-utils/googletest-release-1.7.0/"
-  if [ "X${DISABLE_ASSERTIONS}" == "X1" ]; then
-    KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=FALSE"
-  else
-    KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=TRUE"
-  fi
+GTEST_SRC_DIR="${BUILD_DIR}/test-utils/googletest-release-1.7.0/"
+if [ "X${DISABLE_ASSERTIONS}" == "X1" ]; then
+  KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=FALSE"
+else
+  KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=TRUE"
+fi
 
-  if [ "X${ENABLE_OPTIMIZED}" == "X1" ]; then
-    CMAKE_BUILD_TYPE="RelWithDebInfo"
-  else
-    CMAKE_BUILD_TYPE="Debug"
-  fi
-  # Compute CMake build type
-  CXXFLAGS="${COVERAGE_FLAGS} ${SANITIZER_CXX_FLAGS}" \
-  CFLAGS="${COVERAGE_FLAGS} ${SANITIZER_C_FLAGS}" \
-  cmake \
-    -DLLVM_CONFIG_BINARY="${LLVM_CONFIG}" \
-    -DLLVMCC="${KLEE_CC}" \
-    -DLLVMCXX="${KLEE_CXX}" \
-    ${KLEE_STP_CONFIGURE_OPTION} \
-    ${KLEE_Z3_CONFIGURE_OPTION} \
-    ${KLEE_METASMT_CONFIGURE_OPTION} \
-    ${KLEE_UCLIBC_CONFIGURE_OPTION} \
-    ${TCMALLOC_OPTION} \
-    -DGTEST_SRC_DIR=${GTEST_SRC_DIR} \
-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-    ${KLEE_ASSERTS_OPTION} \
-    -DENABLE_UNIT_TESTS=TRUE \
-    -DENABLE_SYSTEM_TESTS=TRUE \
-    -DLIT_ARGS="-v" \
-    ${KLEE_SRC}
-  make
+if [ "X${ENABLE_OPTIMIZED}" == "X1" ]; then
+  CMAKE_BUILD_TYPE="RelWithDebInfo"
 else
-  # Build KLEE
-  # Note: ENABLE_SHARED=0 is required because llvm-2.9 is incorectly packaged
-  # and is missing the shared library that was supposed to be built that the build
-  # system will try to use by default.
-  ${KLEE_SRC}/configure --with-llvmsrc=${LLVM_BUILD_DIR} \
-              --with-llvmobj=${LLVM_BUILD_DIR} \
-              --with-llvmcc=${KLEE_CC} \
-              --with-llvmcxx=${KLEE_CXX} \
-              ${KLEE_STP_CONFIGURE_OPTION} \
-              ${KLEE_Z3_CONFIGURE_OPTION} \
-              ${KLEE_METASMT_CONFIGURE_OPTION} \
-              ${KLEE_UCLIBC_CONFIGURE_OPTION} \
-              ${TCMALLOC_OPTION} \
-              CXXFLAGS="${COVERAGE_FLAGS} ${SANITIZER_CXX_FLAGS}" \
-              CFLAGS="${COVERAGE_FLAGS} ${SANITIZER_C_FLAGS}" \
-              LDFLAGS="${SANITIZER_LD_FLAGS}"
-  make  DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \
-        ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \
-        ENABLE_SHARED=0
+  CMAKE_BUILD_TYPE="Debug"
 fi
 
+# TODO: We should support Ninja too
+# Configure KLEE
+CXXFLAGS="${COVERAGE_FLAGS} ${SANITIZER_CXX_FLAGS}" \
+CFLAGS="${COVERAGE_FLAGS} ${SANITIZER_C_FLAGS}" \
+cmake \
+  -DLLVM_CONFIG_BINARY="${LLVM_CONFIG}" \
+  -DLLVMCC="${KLEE_CC}" \
+  -DLLVMCXX="${KLEE_CXX}" \
+  ${KLEE_STP_CONFIGURE_OPTION} \
+  ${KLEE_Z3_CONFIGURE_OPTION} \
+  ${KLEE_METASMT_CONFIGURE_OPTION} \
+  ${KLEE_UCLIBC_CONFIGURE_OPTION} \
+  ${TCMALLOC_OPTION} \
+  -DGTEST_SRC_DIR=${GTEST_SRC_DIR} \
+  -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
+  ${KLEE_ASSERTS_OPTION} \
+  -DENABLE_UNIT_TESTS=TRUE \
+  -DENABLE_SYSTEM_TESTS=TRUE \
+  -DLIT_ARGS="-v" \
+  ${KLEE_SRC}
+make
+
 ###############################################################################
 # Unit tests
 ###############################################################################
-if [ "X${USE_CMAKE}" == "X1" ]; then
-  make unittests
-else
-  # The unittests makefile doesn't seem to have been packaged so get it from SVN
-  sudo mkdir -p /usr/lib/llvm-${LLVM_VERSION}/build/unittests/
-  svn export  http://llvm.org/svn/llvm-project/llvm/branches/${SVN_BRANCH}/unittests/Makefile.unittest \
-      ../Makefile.unittest
-  sudo mv ../Makefile.unittest /usr/lib/llvm-${LLVM_VERSION}/build/unittests/
-
-  make unittests \
-      DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \
-      ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \
-      ENABLE_SHARED=0
-fi
+make unittests
 
 ###############################################################################
 # lit tests
 ###############################################################################
-if [ "X${USE_CMAKE}" == "X1" ]; then
-  make systemtests
-else
-  # Note can't use ``make check`` because llvm-lit is not available
-  cd test
-  # The build system needs to generate this file before we can run lit
-  make lit.site.cfg \
-      DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \
-      ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \
-      ENABLE_SHARED=0
-  cd ../
-  lit -v test/
-fi
+make systemtests
 
 # If metaSMT is the only solver, then rerun lit tests with non-default metaSMT backends
 if [ "X${SOLVERS}" == "XmetaSMT" ]; then