summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2018-10-16 16:42:07 -0700
committerGitHub <noreply@github.com>2018-10-16 16:42:07 -0700
commit5c2c5961a6142fc0bf0c9f992ff76b4a32ad65e4 (patch)
tree52676844f336fc89dbeb77c4c5cf5a64ad020d82
parent116461030e106f14d7fc53a2143930db21d6eaa6 (diff)
downloadcoreclr-5c2c5961a6142fc0bf0c9f992ff76b4a32ad65e4.tar.gz
coreclr-5c2c5961a6142fc0bf0c9f992ff76b4a32ad65e4.tar.bz2
coreclr-5c2c5961a6142fc0bf0c9f992ff76b4a32ad65e4.zip
Enable building with Clang 7 (#20417)
The Clang 7 is the first version in which only the major version is used in file names and paths. So the change needed to massage the build files a bit more than what was needed for the previous versions.
-rwxr-xr-xbuild.sh15
-rw-r--r--src/ToolBox/SOS/lldbplugin/CMakeLists.txt5
-rwxr-xr-xsrc/pal/tools/gen-buildsys-clang.sh28
3 files changed, 24 insertions, 24 deletions
diff --git a/build.sh b/build.sh
index 031d294317..914953f620 100755
--- a/build.sh
+++ b/build.sh
@@ -162,7 +162,11 @@ check_prereqs()
fi
# Check for clang
- hash clang-$__ClangMajorVersion.$__ClangMinorVersion 2>/dev/null || hash clang$__ClangMajorVersion$__ClangMinorVersion 2>/dev/null || hash clang 2>/dev/null || { echo >&2 "Please install clang-$__ClangMajorVersion.$__ClangMinorVersion before running this script"; exit 1; }
+ __ClangCombinedDottedVersion=$__ClangMajorVersion;
+ if [[ "$__ClangMinorVersion" != "" ]]; then
+ __ClangCombinedDottedVersion=$__ClangCombinedDottedVersion.$__ClangMinorVersion
+ fi
+ hash clang-$__ClangCombinedDottedVersion 2>/dev/null || hash clang$__ClangMajorVersion$__ClangMinorVersion 2>/dev/null || hash clang 2>/dev/null || { echo >&2 "Please install clang-$__ClangMajorVersion.$__ClangMinorVersion before running this script"; exit 1; }
}
@@ -301,8 +305,8 @@ build_native()
pushd "$intermediatesForBuild"
# Regenerate the CMake solution
- echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion $__ClangMinorVersion $platformArch $__BuildType $__CodeCoverage $generator $extraCmakeArguments $__cmakeargs"
- "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion $__ClangMinorVersion $platformArch $__BuildType $__CodeCoverage $generator "$extraCmakeArguments" "$__cmakeargs"
+ echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion \"$__ClangMinorVersion\" $platformArch $__BuildType $__CodeCoverage $generator $extraCmakeArguments $__cmakeargs"
+ "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion "$__ClangMinorVersion" $platformArch $__BuildType $__CodeCoverage $generator "$extraCmakeArguments" "$__cmakeargs"
popd
fi
@@ -788,6 +792,11 @@ while :; do
__ClangMinorVersion=0
;;
+ clang7|-clang7)
+ __ClangMajorVersion=7
+ __ClangMinorVersion=
+ ;;
+
ninja|-ninja)
__UseNinja=1
;;
diff --git a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt
index 96aec3019b..623d6153b3 100644
--- a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt
+++ b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt
@@ -66,8 +66,8 @@ if(NOT $ENV{LLDB_LIB} STREQUAL "")
else()
# Check for LLDB library
if(CLR_CMAKE_PLATFORM_DARWIN)
- find_library(LLDB_LIB NAMES LLDB lldb lldb-6.0 lldb-5.0 lldb-4.0 lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH)
- find_library(LLDB_LIB NAMES LLDB lldb lldb-6.0 lldb-5.0 lldb-4.0 lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm)
+ find_library(LLDB_LIB NAMES LLDB lldb lldb-7 lldb-6.0 lldb-5.0 lldb-4.0 lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH)
+ find_library(LLDB_LIB NAMES LLDB lldb lldb-7 lldb-6.0 lldb-5.0 lldb-4.0 lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm)
if(LLDB_LIB STREQUAL LLDB_LIB-NOTFOUND)
if(REQUIRE_LLDBPLUGIN)
set(MESSAGE_MODE FATAL_ERROR)
@@ -90,6 +90,7 @@ else()
# If the file in a directory is found the result is stored in the variable and the search will not be repeated unless the variable is cleared.
find_path(LLDB_H "lldb/API/LLDB.h" PATHS "${WITH_LLDB_INCLUDES}" NO_DEFAULT_PATH)
find_path(LLDB_H "lldb/API/LLDB.h")
+ find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-7/include")
find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-6.0/include")
find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-5.0/include")
find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-4.0/include")
diff --git a/src/pal/tools/gen-buildsys-clang.sh b/src/pal/tools/gen-buildsys-clang.sh
index 32a217f301..a644653350 100755
--- a/src/pal/tools/gen-buildsys-clang.sh
+++ b/src/pal/tools/gen-buildsys-clang.sh
@@ -20,21 +20,24 @@ fi
# Set up the environment to be used for building with clang.
if command -v "clang-$2.$3" > /dev/null
then
- export CC="$(command -v clang-$2.$3)"
- export CXX="$(command -v clang++-$2.$3)"
+ desired_llvm_version="-$2.$3"
elif command -v "clang$2$3" > /dev/null
then
- export CC="$(command -v clang$2$3)"
- export CXX="$(command -v clang++$2$3)"
+ desired_llvm_version="$2$3"
+elif command -v "clang-$2$3" > /dev/null
+ then
+ desired_llvm_version="-$2$3"
elif command -v clang > /dev/null
then
- export CC="$(command -v clang)"
- export CXX="$(command -v clang++)"
+ desired_llvm_version=
else
echo "Unable to find Clang Compiler"
exit 1
fi
+export CC="$(command -v clang$desired_llvm_version)"
+export CXX="$(command -v clang++$desired_llvm_version)"
+
build_arch="$4"
buildtype=DEBUG
code_coverage=OFF
@@ -79,19 +82,6 @@ else
exit 1
fi
-desired_llvm_major_version=$2
-desired_llvm_minor_version=$3
-if [ $OS = "FreeBSD" ]; then
- desired_llvm_version="$desired_llvm_major_version$desired_llvm_minor_version"
-elif [ $OS = "OpenBSD" ]; then
- desired_llvm_version=""
-elif [ $OS = "NetBSD" ]; then
- desired_llvm_version=""
-elif [ $OS = "SunOS" ]; then
- desired_llvm_version=""
-else
- desired_llvm_version="-$desired_llvm_major_version.$desired_llvm_minor_version"
-fi
locate_llvm_exec() {
if command -v "$llvm_prefix$1$desired_llvm_version" > /dev/null 2>&1
then