================
@@ -684,6 +684,8 @@ static StringRef getArchNameForCompilerRTLib(const
ToolChain &TC,
StringRef ToolChain::getOSLibName() const {
if (Triple.isOSDarwin())
return "darwin";
+ if (Triple.isWindowsCygwinEnvironment())
+ return "cygwin";
----------------
tyan0 wrote:
I observed following behaviour.
In `ToolChain::getCompilerRT()`, the path
`/usr/lib/clang/22/lib/x86_64-pc-windows-cygnus/libclang_rt.builtins.a` is
checked first. Then,
`/usr/lib/clang/22/lib/windows/libclang_rt.builtins-x86_64.a` is checked.
This algorithm is not affected by `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` setting
in clang.
If `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON` in compiler-rt, the first
search will succeed. However, if `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `OFF`
in compiler-rt, the correct path should not be
`/usr/lib/clang/22/lib/windows/libclang_rt.builtins-x86_64.a`, but
`/usr/lib/clang/22/lib/cygwin/libclang_rt.builtins-x86_64.a`, therefore, both
search will fail. The patch above solves this issue.
As a conclusion, I’ve confirmed that the patch is indeed necessary after all.
So, I'll create another PR for that.
https://github.com/llvm/llvm-project/pull/147960
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits