[flang-commits] [clang] [flang] [flang][Driver] When linking with the Fortran runtime also link with libexecinfo (PR #125998)

Brad Smith via flang-commits flang-commits at lists.llvm.org
Wed Feb 5 20:05:14 PST 2025


https://github.com/brad0 created https://github.com/llvm/llvm-project/pull/125998

Also link with libexecinfo on FreeBSD, NetBSD, OpenBSD and DragonFly
for the backtrace functions.

>From 3e25ca7b6cc62fe1cf9e6a1364f6bf6c0167f123 Mon Sep 17 00:00:00 2001
From: Brad Smith <brad at comstyle.com>
Date: Wed, 5 Feb 2025 22:52:59 -0500
Subject: [PATCH] [flang][Driver] When linking with the Fortran runtime also
 link with libexecinfo

Also link with libexecinfo on FreeBSD, NetBSD, OpenBSD and DragonFly
for the backtrace functions.
---
 clang/lib/Driver/ToolChains/CommonArgs.cpp | 5 +++++
 flang/test/Driver/backtrace.f90            | 3 +++
 2 files changed, 8 insertions(+)
 create mode 100644 flang/test/Driver/backtrace.f90

diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index c3c22a419f352a3..699aadec86dcba9 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1340,6 +1340,11 @@ void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args,
     CmdArgs.push_back("-lFortranRuntime");
     CmdArgs.push_back("-lFortranDecimal");
     addArchSpecificRPath(TC, Args, CmdArgs);
+
+    // needs libexecinfo for backtrace functions
+    if (TC.getTriple().isOSFreeBSD() || TC.getTriple().isOSNetBSD() ||
+        TC.getTriple().isOSOpenBSD() || TC.getTriple().isOSDragonFly())
+      CmdArgs.push_back("-lexecinfo");
   }
 
   // libomp needs libatomic for atomic operations if using libgcc
diff --git a/flang/test/Driver/backtrace.f90 b/flang/test/Driver/backtrace.f90
new file mode 100644
index 000000000000000..eb7f2208e5bbd4e
--- /dev/null
+++ b/flang/test/Driver/backtrace.f90
@@ -0,0 +1,3 @@
+!RUN: %flang --target=aarch64-unknown-openbsd -### %s 2>&1 | FileCheck --check-prefixes=BACKTRACE %s
+
+!BACKTRACE: -lexecinfo



More information about the flang-commits mailing list