[llvm] [CMake] Don't pass --gc-sections to MSVC-style linkers when using clang's MSVC mode (PR #196393)
Artur Wojcik via llvm-commits
llvm-commits at lists.llvm.org
Mon May 11 00:45:53 PDT 2026
https://github.com/apwojcik updated https://github.com/llvm/llvm-project/pull/196393
>From 5c3050e4e6e8a78bd7efc5c73bbd1011edcaa97f Mon Sep 17 00:00:00 2001
From: Artur Wojcik <Artur.Wojcik at amd.com>
Date: Thu, 7 May 2026 20:50:18 +0200
Subject: [PATCH 1/2] llvm-ld.exe do not know --gc-sections option
---
llvm/cmake/modules/AddLLVM.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 28858db434f91..cbef77e4fd8d0 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -382,7 +382,7 @@ function(add_link_opts target_name)
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-z,discard-unused=sections")
endif()
- elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "AIX|OS390")
+ elseif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES "AIX|OS390")
# TODO Revisit this later on z/OS.
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,--gc-sections")
>From 64f3b28c7b11cc737177a0e1a757d3b4fdcfc0ff Mon Sep 17 00:00:00 2001
From: Artur Wojcik <Artur.Wojcik at amd.com>
Date: Fri, 8 May 2026 09:50:21 +0200
Subject: [PATCH 2/2] change to CMAKE_CXX_SIMULATE_ID
---
llvm/cmake/modules/AddLLVM.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index cbef77e4fd8d0..e8a1b8b948b5a 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -382,7 +382,7 @@ function(add_link_opts target_name)
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-z,discard-unused=sections")
endif()
- elseif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES "AIX|OS390")
+ elseif(NOT MSVC AND NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC" AND NOT CMAKE_SYSTEM_NAME MATCHES "AIX|OS390")
# TODO Revisit this later on z/OS.
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,--gc-sections")
More information about the llvm-commits
mailing list