about summary refs log tree commit diff homepage
path: root/scripts/build/common-functions
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/common-functions')
-rw-r--r--scripts/build/common-functions211
1 files changed, 13 insertions, 198 deletions
diff --git a/scripts/build/common-functions b/scripts/build/common-functions
index 499b51b7..6d810d73 100644
--- a/scripts/build/common-functions
+++ b/scripts/build/common-functions
@@ -16,203 +16,18 @@ function git_clone_or_update() {
   fi
 }
 
-function to_upper() {
-  echo "$1" | tr '[:lower:]' '[:upper:]'
-}
-
-function to_lower() {
-  echo "$1" | tr '[:upper:]' '[:lower:]'
-}
-
-# This file is meant to be included by shell scripts
-# that need to do a sanitized build.
-
-# Users of this script can use this variable
-# to detect if a Sanitized build was enabled.
-IS_SANITIZED_BUILD=0
-
-# Remove ":" separator
-sanitizers=(${SANITIZER_BUILD//:/ })
-# Sort sanitizers
-IFS=$'\n' sorted_sanitizers=($(sort <<<"${sanitizers[*]}"))
-unset IFS
-
-# Set variables used by clients.
-## Build variables
-SANITIZER_CXX_FLAGS=""
-SANITIZER_C_FLAGS=""
-SANITIZER_LD_FLAGS=""
-# Docker_suffix
-SANITIZER_SUFFIX=""
-
-#
-for sanitizer in ${sorted_sanitizers[@]}; do
-  # AddressSanitizer
-  if [ "X${sanitizer}" == "Xaddress" ]; then
-    echo "Using ASan"
-    flags=" -fsanitize=address -fno-omit-frame-pointer -g"
-    SANITIZER_CXX_FLAGS+=" ${flags}"
-    SANITIZER_C_FLAGS+=" ${flags}"
-    SANITIZER_LD_FLAGS+=" ${flags}"
-    SANITIZER_SUFFIX+="_asan"
-    IS_SANITIZED_BUILD=1
-    continue
-  fi
-
-  # Undefined Behaviour Sanitizer
-  if [ "X${sanitizer}" == "Xundefined" ]; then
-    echo "Using UBSan"
-    flags="-fsanitize=undefined -fno-omit-frame-pointer -g"
-    SANITIZER_CXX_FLAGS+=" ${flags}"
-    SANITIZER_C_FLAGS+=" ${flags}"
-    SANITIZER_LD_FLAGS+=" ${flags} -lubsan -fuse-ld=gold"
-    SANITIZER_SUFFIX+="_ubsan"
-    IS_SANITIZED_BUILD=1
-    continue
-  fi
-
-  # Undefined Behaviour Sanitizer
-  if [ "X${sanitizer}" == "Xmemory" ]; then
-    echo "Using Memory Sanitizer"
-    if [[ "X${PACKAGED}" == "X1" ]]; then
-      echo "simultanously memory sanitizer and packaged is not supported "
-      exit 1
-    fi
-
-    SANITIZER_SUFFIX+="_memsan"
-    SANITIZER_LLVM_UNINSTRUMENTED="${LLVM_BUILD}_uninstrumented"
-    SANITIZER_LLVM_LIBCXX="${LLVM_BUILD}_libcxx"
-
-    SANITIZER_C_COMPILER="${SANITIZER_LLVM_UNINSTRUMENTED}/bin/clang"
-    SANITIZER_CXX_COMPILER="${SANITIZER_LLVM_UNINSTRUMENTED}/bin/clang++"
-    SANITIZER_CMAKE_C_COMPILER="-DCMAKE_C_COMPILER=${SANITIZER_C_COMPILER}"
-    SANITIZER_CMAKE_CXX_COMPILER="-DCMAKE_CXX_COMPILER=${SANITIZER_CXX_COMPILER}"
-
-    MSAN_LINK_FLAGS="-lc++abi -Wl,--rpath=${SANITIZER_LLVM_LIBCXX}/lib -L${SANITIZER_LLVM_LIBCXX}/lib";
-    MSAN_FLAGS="$MSAN_LINK_FLAGS -nostdinc++ \
-       -isystem ${SANITIZER_LLVM_LIBCXX}/include \
-       -isystem ${SANITIZER_LLVM_LIBCXX}/include/c++/v1  \
-       -fsanitize=memory \
-       -fsanitize-memory-track-origins \
-       -w -fno-omit-frame-pointer -g";
-
-    SANITIZER_CXX_FLAGS+="${MSAN_FLAGS} -stdlib=libc++"
-    SANITIZER_C_FLAGS+="${MSAN_FLAGS}"
-    SANITIZER_LD_FLAGS+="${MSAN_LINK_FLAGS}"
-
-    IS_SANITIZED_BUILD=1
-    continue
-  fi
-
-  echo "Unknown sanitizer: $sanitizer"
-  exit 1
-done
-
-# This file is meant to be included by shell scripts
-# that need to retrieve llvm-specifi variables
-
-LLVM_VERSION_SHORT="${LLVM_VERSION/./}"
-LLVM_VERSION_MAJOR="${LLVM_VERSION/.*/}"
-LLVM_SUFFIX=""
-
-BuildMode=''
-
-# Build from source
-if [[ "${PACKAGED}x" == "1x" ]]; then
-  LLVM_SUFFIX+="_packaged"
-  set +e
-  llvm_config_path=$(which llvm-config-${LLVM_VERSION})
-  if [[ -e "${llvm_config_path}" ]]; then
-    LLVM_BIN="$(llvm-config-${LLVM_VERSION} --bindir)"
-  fi
-  set -e
-else
-  if [[ "${ENABLE_OPTIMIZED}" == "1" ]]; then
-    LLVM_SUFFIX+="_O"
-    BuildMode="Release"
-  else
-    LLVM_SUFFIX+="_NO"
-  fi
-
-  if [[ ("${ENABLE_DEBUG}" == "1") || ("${ENABLE_OPTIMIZED}" != "1") ]]; then
-    LLVM_SUFFIX+="_D"
-    [ -z "$BuildMode" ] && BuildMode="Debug" || BuildMode="$BuildMode+Debug"
-  else
-    LLVM_SUFFIX+="_ND"
-  fi
-
-  if [[ "${DISABLE_ASSERTIONS}" == "1" || -z "${DISABLE_ASSERTIONS}" ]]; then
-    LLVM_SUFFIX+="_NA"
-  else
-    LLVM_SUFFIX+="_A"
-    [ -z "$BuildMode" ] && BuildMode="Asserts" || BuildMode="$BuildMode+Asserts"
-  fi
-
-  if [[ "${REQUIRES_RTTI}" == "1" ]]; then
-    LLVM_SUFFIX+="_RTTI"
-  fi
-
-  if [[ "${SANITIZER_SUFFIX}x" != "x" ]]; then
-    LLVM_SUFFIX+="${SANITIZER_SUFFIX}"
-  fi
-
-  LLVM_BASE="${BASE}/llvm-${LLVM_VERSION_SHORT}"
-  LLVM_BUILD="${LLVM_BASE}-build${LLVM_SUFFIX}"
-  LLVM_INSTALL="${LLVM_BASE}-install${LLVM_SUFFIX}"
-  LLVM_BIN="${LLVM_INSTALL}/bin"
-  if [[ ${LLVM_VERSION_SHORT} -le 37 ]]; then
-    LLVM_BUILDMODE="$BuildMode"
-    LLVM_BUILD_BIN="${LLVM_BUILD}/${LLVM_BUILDMODE}/bin"
+function get_git_hash() {
+  local url="$1"
+  local branch="$2"
+  local commit_id=""
+  
+  # List remote git branches and get the commit id of the branch
+  commit_id="$(git ls-remote -h "$url" |grep "$branch" | cut -d$'\t' -f 1)"
+  
+  # If that doesn't work use the branch instead of the commit id
+  if [[ -z "${commit_id}" ]]; then 
+    echo "${branch}"
   else
-    LLVM_BUILD_BIN="${LLVM_BUILD}/bin"
-  fi
-fi
-
-# Generate the suffix used for the solver combination
-# Every solver needs to have a version explicitly specified
-SOLVER_SUFFIX=""
-
-# Remove ":" separator
-solvers=(${SOLVERS//:/ })
-
-# Sort solvers
-IFS=$'\n' sorted_solvers=($(sort <<<"${solvers[*]}"))
-unset IFS
-
-for solver in ${sorted_solvers[@]}; do
-  # Make sure version a solver specific version variable is used
-  solver_var="$(to_upper "$solver")_VERSION"
-  SOLVER_VERSION="${!solver_var}"
-  if [[ -z "${SOLVER_VERSION}" ]] ; then
-  	echo "Solver version for $solver not defined"
-  	exit 1
-  fi
-  # Add the solver to the suffix and lower case it
-  SOLVER_SUFFIX+="_$(to_lower "$solver")$(to_lower "$SOLVER_VERSION")"
-  echo $SOLVER_SUFFIX
-  if [[ "$(to_lower "$solver")" == "metasmt" ]]; then
-    if [[ "${REQUIRES_RTTI}x" != "1x" ]]; then
-      echo "METASMT requires an RTTI build"
-      exit 1
-    fi
-    if [[ -z "${METASMT_DEFAULT}" ]]; then
-      echo "METASMT_DEFAULT not defined"
-      exit 1
-    fi
-    if [[ -z "${METASMT_BOOST_VERSION}" ]] ; then
-      echo "METASMT_BOOST_VERSION not defined - use default"
-      SOLVER_SUFFIX+="_$(to_lower "$METASMT_DEFAULT")_boost-dev"
-    else
-      SOLVER_SUFFIX+="_$(to_lower "$METASMT_DEFAULT")_$(to_lower "$METASMT_BOOST_VERSION")"
-    fi
+    echo "${commit_id:0:7}"
   fi
-done
-
-# This file is meant to be included by shell scripts that handle dependencies by
-# KLEE beside LLVM and solvers
-#
-# Generate the suffix used for direct dependencies of KLEE like uclibc
-DEPS_SUFFIX=""
-if [[ "${KLEE_UCLIBC}" != "0" ]]; then
-  DEPS_SUFFIX+="_${KLEE_UCLIBC}"
-fi
+}
\ No newline at end of file