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

Jacob Abel via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 08:53:52 PDT 2026


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

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

>From bf657e83a09608a5d7c3d2c76cfc1bfd11c30aba Mon Sep 17 00:00:00 2001
From: Jacob Abel <jacobabel at nullpo.dev>
Date: Mon, 21 Sep 2026 11:46:45 -0400
Subject: [PATCH] [libcxx][llvm]: Fix misidentification of GNU-style clang as
 clang-cl

Signed-off-by: Jacob Abel <jacobabel at nullpo.dev>
---
 libcxx/CMakeLists.txt                         | 2 +-
 llvm/cmake/modules/CheckCompilerVersion.cmake | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index d163f0f579c39..4f9e2eac01c55 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 c550df7b08c84..bf2919ad08aa2 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})



More information about the llvm-commits mailing list