From 8b037333b56457457fb1e4e57c2390ec18ee45dd Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Tue, 22 May 2018 22:58:48 +0000 Subject: [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 --- CMakeLists.txt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'CMakeLists.txt') 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) -- cgit v1.2.3