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 <b...@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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits