summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2018-05-18 18:44:37 +0000
committerReid Kleckner <rnk@google.com>2018-05-18 18:44:37 +0000
commitf1588bfea7e2156d892b8feb730a71e934392609 (patch)
tree3002196f381db62abdf88148e10110f48adfcdf8 /cmake
parente9de4d9dcedd7c3ae3046692702d2c3ac0296de0 (diff)
Revert r332683 & r332684 relating to compiler runtime checks
r332683 passes flags to the compiler without first checking if they are supported. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@332754 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/CompilerRTUtils.cmake59
-rw-r--r--cmake/config-ix.cmake9
2 files changed, 4 insertions, 64 deletions
diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
index 764c09e7d..7ef1fc8d9 100644
--- a/cmake/Modules/CompilerRTUtils.cmake
+++ b/cmake/Modules/CompilerRTUtils.cmake
@@ -318,62 +318,3 @@ function(filter_builtin_sources output_var exclude_or_include excluded_list)
endforeach ()
set(${output_var} ${intermediate} PARENT_SCOPE)
endfunction()
-
-function(check_runtime_library variable)
- set(COMPILER_COMMAND ${CMAKE_CXX_COMPILER} ${SANITIZER_COMMON_CFLAGS}
- "--print-libgcc-file-name")
- if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_CXX_COMPILER_TARGET)
- list(APPEND COMPILER_COMMAND "--target=${CMAKE_CXX_COMPILER_TARGET}")
- endif()
- execute_process(
- COMMAND ${COMPILER_COMMAND}
- RESULT_VARIABLE COMMAND_RESULT
- OUTPUT_VARIABLE LIBRARY_FILE
- )
- string(STRIP "${LIBRARY_FILE}" LIBRARY_FILE)
- if(COMMAND_RESULT EQUAL 0)
- set(${variable} "${LIBRARY_FILE}" PARENT_SCOPE)
- endif()
-endfunction()
-
-function(check_link_libraries variable)
- set(COMPILER_COMMAND "${CMAKE_CXX_COMPILER}" "${SANITIZER_COMMON_CFLAGS}"
- "${CMAKE_ROOT}/Modules/DummyCXXFile.cxx" "-###")
- if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_CXX_COMPILER_TARGET)
- list(APPEND COMPILER_COMMAND "--target=${CMAKE_CXX_COMPILER_TARGET}")
- endif()
- execute_process(
- COMMAND ${COMPILER_COMMAND}
- RESULT_VARIABLE COMMAND_RESULT
- ERROR_VARIABLE COMMAND_OUTPUT
- )
- if(COMMAND_RESULT EQUAL 0)
- get_filename_component(linker ${CMAKE_LINKER} NAME)
- string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" linker "${linker}")
- set(LINKER_REGEX "^( *|.*[/\\])(${linker}|([^/\\]+-)?ld|collect2)[^/\\]*( |$)")
- set(EXCLUDE_REGEX "collect2 version |^[A-Za-z0-9_]+=")
- string(REGEX REPLACE "\r?\n" ";" output_lines "${COMMAND_OUTPUT}")
- foreach(line IN LISTS output_lines)
- if(line MATCHES "${LINKER_REGEX}" AND NOT line MATCHES "${EXCLUDE_REGEX}")
- if(UNIX)
- separate_arguments(args UNIX_COMMAND "${line}")
- else()
- separate_arguments(args WINDOWS_COMMAND "${line}")
- endif()
- list(GET args 0 cmd)
- endif()
- if("${cmd}" MATCHES "${LINKER_REGEX}")
- foreach(arg IN LISTS args)
- if("${arg}" MATCHES "^-l([^:].*)$")
- set(lib "${CMAKE_MATCH_1}")
- list(APPEND libs ${lib})
- elseif("${arg}" MATCHES "^(.:)?[/\\].*\\.a$")
- list(APPEND libs ${arg})
- endif()
- endforeach()
- break()
- endif()
- endforeach()
- set(${variable} "${libs}" PARENT_SCOPE)
- endif()
-endfunction()
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
index a61d92356..4a9d840b2 100644
--- a/cmake/config-ix.cmake
+++ b/cmake/config-ix.cmake
@@ -13,10 +13,7 @@ function(check_linker_flag flag out_var)
endfunction()
check_library_exists(c fopen "" COMPILER_RT_HAS_LIBC)
-if (COMPILER_RT_RUNTIME_LIBRARY STREQUAL "compiler-rt")
- include(HandleCompilerRT)
- find_compiler_rt_library(builtins COMPILER_RT_BUILTINS_LIBRARY)
-else()
+if (NOT SANITIZER_USE_COMPILER_RT)
if (ANDROID)
check_library_exists(gcc __gcc_personality_v0 "" COMPILER_RT_HAS_GCC_LIB)
else()
@@ -30,7 +27,9 @@ if (COMPILER_RT_HAS_NODEFAULTLIBS_FLAG)
if (COMPILER_RT_HAS_LIBC)
list(APPEND CMAKE_REQUIRED_LIBRARIES c)
endif ()
- if (COMPILER_RT_RUNTIME_LIBRARY STREQUAL "compiler-rt")
+ if (SANITIZER_USE_COMPILER_RT)
+ list(APPEND CMAKE_REQUIRED_FLAGS -rtlib=compiler-rt)
+ find_compiler_rt_library(builtins COMPILER_RT_BUILTINS_LIBRARY)
list(APPEND CMAKE_REQUIRED_LIBRARIES "${COMPILER_RT_BUILTINS_LIBRARY}")
elseif (COMPILER_RT_HAS_GCC_S_LIB)
list(APPEND CMAKE_REQUIRED_LIBRARIES gcc_s)