summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2018-05-22 22:58:48 +0000
committerPetr Hosek <phosek@chromium.org>2018-05-22 22:58:48 +0000
commit8b037333b56457457fb1e4e57c2390ec18ee45dd (patch)
treed7830bfc932a0a011276d395fadb8e7bc87e80dc /CMakeLists.txt
parentfb98f1095aa66e72ab36738c4eac597193de7a8a (diff)
[CMake] Support builtins as Clang default rtlib in compiler-rt
Use compiler-rt builtins when selected as default Clang rtlib and avoid explicitly passing -rtlib= flag to avoid the "argument unused during compilation" warning. This is a partial alternative to D47094 that does not rely on compiler runtime checks. Differential Revision: https://reviews.llvm.org/D47115 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@333037 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt18
1 files changed, 13 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 428458b61..1e8290f38 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -152,9 +152,19 @@ else()
set(SANITIZER_CXX_ABI_SYSTEM 1)
endif()
-option(SANITIZER_USE_COMPILER_RT "Use compiler-rt builtins instead of libgcc" OFF)
+set(COMPILER_RT_RUNTIME "default" CACHE STRING
+ "Compiler runtime to use.")
+
+if (COMPILER_RT_RUNTIME STREQUAL "default")
+ if (CLANG_DEFAULT_RTLIB STREQUAL "compiler-rt")
+ set(COMPILER_RT_RUNTIME_LIBRARY "builtins")
+ elseif (FUCHSIA)
+ set(COMPILER_RT_RUNTIME_LIBRARY "builtins")
+ endif()
+else()
+ set(COMPILER_RT_RUNTIME_LIBRARY "${COMPILER_RT_RUNTIME}")
+endif()
-include(HandleCompilerRT)
include(config-ix)
#================================
@@ -303,9 +313,7 @@ append_list_if(COMPILER_RT_HAS_WD4800_FLAG /wd4800 SANITIZER_COMMON_CFLAGS)
# Set common link flags.
append_list_if(COMPILER_RT_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs SANITIZER_COMMON_LINK_FLAGS)
-if (SANITIZER_USE_COMPILER_RT)
- list(APPEND SANITIZER_COMMON_LINK_FLAGS -rtlib=compiler-rt)
- find_compiler_rt_library(builtins COMPILER_RT_BUILTINS_LIBRARY)
+if (COMPILER_RT_RUNTIME_LIBRARY STREQUAL "builtins")
list(APPEND SANITIZER_COMMON_LINK_LIBS ${COMPILER_RT_BUILTINS_LIBRARY})
else()
if (ANDROID)