diff options
author | Reid Kleckner <rnk@google.com> | 2018-05-18 18:44:37 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2018-05-18 18:44:37 +0000 |
commit | f1588bfea7e2156d892b8feb730a71e934392609 (patch) | |
tree | 3002196f381db62abdf88148e10110f48adfcdf8 /cmake | |
parent | e9de4d9dcedd7c3ae3046692702d2c3ac0296de0 (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.cmake | 59 | ||||
-rw-r--r-- | cmake/config-ix.cmake | 9 |
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) |