From 5b56e4091e99d14068736c2965b223332387795b Mon Sep 17 00:00:00 2001 From: Ivan Radanov Ivanov Date: Wed, 16 Jul 2025 01:26:56 -0700 Subject: [PATCH] [clang-linker-wrapper] Pass on --cuda-path to child clang processes When using clang-linker-wrapper with --cuda-path, it does not get passed on to the child device linking processes. This causes it to fail when cuda linking is involved and nvlink is not in $PATH. This patch lets the child linking process find nvlink through --cuda-path. --- clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 9d34b62da20f5..b9e20a6534bf6 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -567,6 +567,8 @@ Expected clang(ArrayRef InputFiles, const ArgList &Args, CmdArgs.append({"-Xlinker", Args.MakeArgString(Arg)}); for (StringRef Arg : Args.getAllArgValues(OPT_compiler_arg_EQ)) CmdArgs.push_back(Args.MakeArgString(Arg)); + for (StringRef Arg : Args.getAllArgValues(OPT_cuda_path_EQ)) + CmdArgs.push_back(Args.MakeArgString("--cuda-path=" + Arg)); if (Error Err = executeCommands(*ClangPath, CmdArgs)) return std::move(Err);