https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/180971
>From 817bd34b58331741136da10d1e9e3cbbc1a07c58 Mon Sep 17 00:00:00 2001 From: Joseph Huber <[email protected]> Date: Wed, 11 Feb 2026 10:33:11 -0600 Subject: [PATCH] [Flang] Fix finding the Flang runtime for the GPU Summary: We were looking for `flang_rt.builtins` instead of `flang_rt.runtime`. Also adds a test so we know that it actually works. --- clang/lib/Driver/ToolChains/Clang.cpp | 10 +++++++--- .../lib/amdgcn-amd-amdhsa/libflang_rt.runtime.a | 0 clang/test/Driver/offload.f90 | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libflang_rt.runtime.a create mode 100644 clang/test/Driver/offload.f90 diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 87d4d73748940..9cbee494ea2ed 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -9403,13 +9403,17 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA, "--device-linker=" + TC.getTripleString() + "=" + "-lm")); } auto HasCompilerRT = getToolChain().getVFS().exists( - TC.getCompilerRT(Args, "builtins", ToolChain::FT_Static)); + TC.getCompilerRT(Args, "builtins", ToolChain::FT_Static, + /*IsFortran=*/false)); if (HasCompilerRT) CmdArgs.push_back( Args.MakeArgString("--device-linker=" + TC.getTripleString() + "=" + "-lclang_rt.builtins")); - bool HasFlangRT = HasCompilerRT && C.getDriver().IsFlangMode(); - if (HasFlangRT) + + bool HasFlangRT = getToolChain().getVFS().exists( + TC.getCompilerRT(Args, "runtime", ToolChain::FT_Static, + /*IsFortran=*/true)); + if (HasFlangRT && C.getDriver().IsFlangMode()) CmdArgs.push_back( Args.MakeArgString("--device-linker=" + TC.getTripleString() + "=" + "-lflang_rt.runtime")); diff --git a/clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libflang_rt.runtime.a b/clang/test/Driver/Inputs/resource_dir_with_per_target_subdir/lib/amdgcn-amd-amdhsa/libflang_rt.runtime.a new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/clang/test/Driver/offload.f90 b/clang/test/Driver/offload.f90 new file mode 100644 index 0000000000000..5f49f69f4d8f8 --- /dev/null +++ b/clang/test/Driver/offload.f90 @@ -0,0 +1,5 @@ +// RUN: %clang -### --driver-mode=flang --target=x86_64-unknown-linux-gnu \ +// RUN: -resource-dir %S/Inputs/resource_dir_with_per_target_subdir \ +// RUN: --rocm-path=%S/Inputs/rocm -fopenmp --offload-arch=gfx908 \ +// RUN: %s 2>&1 | FileCheck %s --check-prefix=CHECK-FLANG-RT +// CHECK-FLANG-RT: clang-linker-wrapper{{.*}}"--device-linker=amdgcn-amd-amdhsa=-lflang_rt.runtime"{{.*}}"-lflang_rt.runtime" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
