From f2650df77db1bcc3b9010bdedcdc79fcd5e82ca1 Mon Sep 17 00:00:00 2001 From: Shoaib Meenai Date: Tue, 24 Apr 2018 19:47:39 +0000 Subject: [cmake] Fix libc++ detection -stdlib=libc++ is added to both the compilation and the link flags, but the logic for adding it was only checking if it was supported during compilation and not linking. This could lead to false positives, for example when using clang with libstdc++ (where the compiler would support -stdlib=libc++ but then linking would fail because of libc++ actually being unavailable). llvm-svn: 330761 --- llvm/cmake/modules/HandleLLVMStdlib.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'llvm') diff --git a/llvm/cmake/modules/HandleLLVMStdlib.cmake b/llvm/cmake/modules/HandleLLVMStdlib.cmake index c0512ac34f6..a0706d8e084 100644 --- a/llvm/cmake/modules/HandleLLVMStdlib.cmake +++ b/llvm/cmake/modules/HandleLLVMStdlib.cmake @@ -13,10 +13,12 @@ if(NOT DEFINED LLVM_STDLIB_HANDLED) endfunction() include(CheckCXXCompilerFlag) + include(CheckLinkerFlag) if(LLVM_ENABLE_LIBCXX) if(LLVM_COMPILER_IS_GCC_COMPATIBLE) - check_cxx_compiler_flag("-stdlib=libc++" CXX_SUPPORTS_STDLIB) - if(CXX_SUPPORTS_STDLIB) + check_cxx_compiler_flag("-stdlib=libc++" CXX_COMPILER_SUPPORTS_STDLIB) + check_linker_flag("-stdlib=libc++" CXX_LINKER_SUPPORTS_STDLIB) + if(CXX_COMPILER_SUPPORTS_STDLIB AND CXX_LINKER_SUPPORTS_STDLIB) append("-stdlib=libc++" CMAKE_CXX_FLAGS CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS) -- cgit v1.2.3