[libcxx] [llvm] [libcxx][llvm]: Fix misidentification of GNU-style clang as clang-cl (PR #225124)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 08:55:08 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Jacob Abel (OneDeuxTriSeiGo)

<details>
<summary>Changes</summary>

Update cmake to prefer CMAKE_CXX_COMPILER_FRONTEND_VARIANT so that it matches clang (gnu frontend) vs clang-cl properly.

---
Full diff: https://github.com/llvm/llvm-project/pull/225124.diff


2 Files Affected:

- (modified) libcxx/CMakeLists.txt (+1-1) 
- (modified) llvm/cmake/modules/CheckCompilerVersion.cmake (+3-1) 


``````````diff
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index d163f0f579c395..4f9e2eac01c558 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -43,7 +43,7 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD(
  "${PROJECT_NAME} requires an out of source build. Please create a separate
  build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there."
  )
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND "${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
   message(STATUS "Configuring for clang-cl")
   set(LIBCXX_TARGETING_CLANG_CL ON)
 endif()
diff --git a/llvm/cmake/modules/CheckCompilerVersion.cmake b/llvm/cmake/modules/CheckCompilerVersion.cmake
index c550df7b08c844..bf2919ad08aa24 100644
--- a/llvm/cmake/modules/CheckCompilerVersion.cmake
+++ b/llvm/cmake/modules/CheckCompilerVersion.cmake
@@ -68,7 +68,9 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
     if (CMAKE_CXX_SIMULATE_VERSION VERSION_LESS MSVC_MIN)
       message(FATAL_ERROR "Host Clang must have at least -fms-compatibility-version=${MSVC_MIN}, your version is ${CMAKE_CXX_SIMULATE_VERSION}.")
     endif()
-    set(CLANG_CL 1)
+    if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC")
+      set(CLANG_CL 1)
+    endif()
   elseif(NOT LLVM_ENABLE_LIBCXX)
     # Test that we aren't using too old of a version of libstdc++.
     set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})

``````````

</details>


https://github.com/llvm/llvm-project/pull/225124


More information about the llvm-commits mailing list