[flang] [llvm] [openmp] Fix Debug Build Using GCC 15 (PR #152223)

Patrick Simmons via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 7 10:52:28 PDT 2025


https://github.com/linuxrocks123 updated https://github.com/llvm/llvm-project/pull/152223

>From c7655737681e283bc4620567cfe9acb4123065fe Mon Sep 17 00:00:00 2001
From: Patrick Simmons <psimmons at pensando.io>
Date: Tue, 5 Aug 2025 18:36:35 -0500
Subject: [PATCH 1/4] Fix build on GCC 15

---
 flang/lib/Optimizer/Builder/CMakeLists.txt          | 1 +
 flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt | 2 ++
 openmp/runtime/src/CMakeLists.txt                   | 2 +-
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/flang/lib/Optimizer/Builder/CMakeLists.txt b/flang/lib/Optimizer/Builder/CMakeLists.txt
index 31ae395805faf..eb4413887e67e 100644
--- a/flang/lib/Optimizer/Builder/CMakeLists.txt
+++ b/flang/lib/Optimizer/Builder/CMakeLists.txt
@@ -49,6 +49,7 @@ add_flang_library(FIRBuilder
   FIRDialectSupport
   FIRSupport
   FortranEvaluate
+  FortranSupport
   HLFIRDialect
 
   MLIR_DEPS
diff --git a/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt b/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
index cc74273d9c5d9..3775a13e31e95 100644
--- a/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
+++ b/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
@@ -27,6 +27,8 @@ add_flang_library(HLFIRTransforms
   FIRSupport
   FIRTransforms
   FlangOpenMPTransforms
+  FortranEvaluate
+  FortranSupport
   HLFIRDialect
 
   LINK_COMPONENTS
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 569061c6494b8..9a2d490bdd65d 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -168,7 +168,7 @@ endif()
 # Disable libstdc++ assertions, even in an LLVM_ENABLE_ASSERTIONS build, to
 # avoid an unwanted dependency on libstdc++.so.
 if(NOT WIN32)
-  add_definitions(-U_GLIBCXX_ASSERTIONS)
+  add_definitions(-U_GLIBCXX_ASSERTIONS -D_GLIBCXX_NO_ASSERTIONS)
 endif()
 
 # Add the OpenMP library

>From 72b5c637d0e6622945790b63e16c7c37fb77618c Mon Sep 17 00:00:00 2001
From: Patrick Simmons <psimmons at pensando.io>
Date: Thu, 7 Aug 2025 11:46:45 -0500
Subject: [PATCH 2/4] Additional glibc assert flag

---
 flang-rt/lib/runtime/CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/flang-rt/lib/runtime/CMakeLists.txt b/flang-rt/lib/runtime/CMakeLists.txt
index dc2db1d9902cb..f5ffc670b2fab 100644
--- a/flang-rt/lib/runtime/CMakeLists.txt
+++ b/flang-rt/lib/runtime/CMakeLists.txt
@@ -183,6 +183,9 @@ endif ()
 
 
 if (NOT WIN32)
+  add_definitions(-U_GLIBCXX_ASSERTIONS -D_GLIBCXX_NO_ASSERTIONS)
+  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>)
+
   add_flangrt_library(flang_rt.runtime STATIC SHARED
     ${sources}
     LINK_LIBRARIES ${Backtrace_LIBRARY}

>From d5e848b54d4dacbd89d4d8685b4b7ebb5d8c4323 Mon Sep 17 00:00:00 2001
From: Patrick Simmons <psimmons at pensando.io>
Date: Thu, 7 Aug 2025 12:44:16 -0500
Subject: [PATCH 3/4] -O2 must be used even in debug mode so that DCE will get
 rid of unused std::exception symbols

---
 flang-rt/lib/runtime/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flang-rt/lib/runtime/CMakeLists.txt b/flang-rt/lib/runtime/CMakeLists.txt
index f5ffc670b2fab..ee07f844e854c 100644
--- a/flang-rt/lib/runtime/CMakeLists.txt
+++ b/flang-rt/lib/runtime/CMakeLists.txt
@@ -184,7 +184,7 @@ endif ()
 
 if (NOT WIN32)
   add_definitions(-U_GLIBCXX_ASSERTIONS -D_GLIBCXX_NO_ASSERTIONS)
-  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>)
+  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions -O2>)
 
   add_flangrt_library(flang_rt.runtime STATIC SHARED
     ${sources}

>From 79ee0e45cf9739989419d40d5b67c8dda1fb3cf8 Mon Sep 17 00:00:00 2001
From: Patrick Simmons <psimmons at pensando.io>
Date: Thu, 7 Aug 2025 12:52:14 -0500
Subject: [PATCH 4/4] Fix syntax

---
 flang-rt/lib/runtime/CMakeLists.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/flang-rt/lib/runtime/CMakeLists.txt b/flang-rt/lib/runtime/CMakeLists.txt
index ee07f844e854c..08db8b2e3a4db 100644
--- a/flang-rt/lib/runtime/CMakeLists.txt
+++ b/flang-rt/lib/runtime/CMakeLists.txt
@@ -184,7 +184,8 @@ endif ()
 
 if (NOT WIN32)
   add_definitions(-U_GLIBCXX_ASSERTIONS -D_GLIBCXX_NO_ASSERTIONS)
-  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions -O2>)
+  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>)
+  add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-O2>)
 
   add_flangrt_library(flang_rt.runtime STATIC SHARED
     ${sources}



More information about the llvm-commits mailing list