Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

18 lines
634 B
Diff
Raw Permalink Normal View History

2025-10-09 14:15:47 +02:00
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index c0ee9217e8..bf7737d6fa 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -1489,6 +1489,12 @@
LinkerDriver = Args.MakeArgString(tool.get());
}
+ // For Nix, prefer linking using the wrapped Nixpkgs clang, instead of using
+ // the unwrapped clang packaged with swift. The latter is unable to link, but
+ // we still want to use it for other purposes (clang importer).
+ if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {"@clang@/bin"}))
+ return Args.MakeArgString(tool.get());
+
return LinkerDriver;
}