From 99b76c91a0e7e53b645a1db92b9cb1dd573a3e26 Mon Sep 17 00:00:00 2001 From: NLeeson <94591016+NLeeson@users.noreply.github.com> Date: Thu, 24 Sep 2026 03:11:54 +0200 Subject: [PATCH] build: handle IntelLLVM as Clang for warnings and mitigations IntelLLVM falls through to GCC-only flags, breaking the build and selecting unsupported Spectre mitigations. Signed-off-by: NLeeson <94591016+NLeeson@users.noreply.github.com> --- CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ae60308614f1..524c2daef9bae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -796,14 +796,14 @@ if(NOT NEO_DISABLE_MITIGATIONS) message(WARNING "Spectre mitigation is not supported by the compiler") endif() else() - if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") check_cxx_compiler_flag(-mretpoline COMPILER_SUPPORTS_RETPOLINE) if(COMPILER_SUPPORTS_RETPOLINE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mretpoline") else() message(WARNING "Spectre mitigation -mretpoline flag is not supported by the compiler") endif() - else() + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") check_cxx_compiler_flag(-mindirect-branch=thunk COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK) if(COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mindirect-branch=thunk") @@ -867,13 +867,13 @@ if(NOT MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") # needed for unused function arguments set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers") # needed for dependencies, e.g. gmmlib - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - # clang only + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") + # Clang and IntelLLVM diagnostics set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32 -Wno-extern-c-compat -Wno-instantiation-after-specialization") - if(WIN32 AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19) + if(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type-mismatch") endif() - else() + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # gcc only if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 12) # Disable specific warnings due to GCC bug for versions >= 12