[llvm] [flang-rt] Use -Wp to undefine macros (PR #156034)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 11 06:06:47 PDT 2025
https://github.com/nikic updated https://github.com/llvm/llvm-project/pull/156034
>From d7ac3b4d25c5551f0f3e7c4432fe6e3493dbf716 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Fri, 29 Aug 2025 16:35:42 +0200
Subject: [PATCH 1/2] [flang-rt] Use -Wp to undefine macros
If the macro was previously defined with `-Wp,-D` then a later
`-U` is *not* going to take effect, the `-Wp` flag takes precedence.
Instead use `-Wp,-U`. This works regardless of whether the original
definition was provided via `-D` or `-Wp,-D`.
---
flang-rt/cmake/modules/AddFlangRT.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/flang-rt/cmake/modules/AddFlangRT.cmake b/flang-rt/cmake/modules/AddFlangRT.cmake
index 66e54bd2103a3..ac7ceff6b3123 100644
--- a/flang-rt/cmake/modules/AddFlangRT.cmake
+++ b/flang-rt/cmake/modules/AddFlangRT.cmake
@@ -283,8 +283,8 @@ function (add_flangrt_library name)
# build, to avoid an unwanted dependency on libstdc++/libc++.so.
target_compile_definitions(${tgtname} PUBLIC _GLIBCXX_NO_ASSERTIONS)
if (FLANG_RT_SUPPORTS_UNDEFINE_FLAG)
- target_compile_options(${tgtname} PUBLIC -U_GLIBCXX_ASSERTIONS)
- target_compile_options(${tgtname} PUBLIC -U_LIBCPP_ENABLE_ASSERTIONS)
+ target_compile_options(${tgtname} PUBLIC -Wp,-U_GLIBCXX_ASSERTIONS)
+ target_compile_options(${tgtname} PUBLIC -Wp,-U_LIBCPP_ENABLE_ASSERTIONS)
endif ()
# Non-GTest unittests depend on LLVMSupport
>From ec8b81177ca28ec32a814d10b4b9500566660017 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 11 Sep 2025 15:06:13 +0200
Subject: [PATCH 2/2] Update the flag used in the feature check
---
flang-rt/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/flang-rt/CMakeLists.txt b/flang-rt/CMakeLists.txt
index d048ac4b3e5a4..a45a66be6f833 100644
--- a/flang-rt/CMakeLists.txt
+++ b/flang-rt/CMakeLists.txt
@@ -255,11 +255,11 @@ if (UNIX AND CMAKE_SYSTEM_NAME MATCHES "AIX")
add_compile_definitions(_LARGE_FILE_API)
endif ()
-# Check whether the compiler can undefine a macro using the "-U" flag.
+# Check whether the compiler can undefine a macro using the "-Wp,-U" flag.
# Aternatively, we could use
# CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU"
# but some older versions of CMake don't define it for GCC itself.
-check_cxx_compiler_flag("-UTESTFLAG" FLANG_RT_SUPPORTS_UNDEFINE_FLAG)
+check_cxx_compiler_flag("-Wp,-UTESTFLAG" FLANG_RT_SUPPORTS_UNDEFINE_FLAG)
# Check whether -fno-lto is supported.
check_cxx_compiler_flag(-fno-lto FLANG_RT_HAS_FNO_LTO_FLAG)
More information about the llvm-commits
mailing list