[clang] d280a76 - [Driver][Linux] Fix regression when -DLIBCXX_LIBDIR_SUFFIX=64
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 25 23:50:22 PDT 2021
Author: Lin Sun
Date: 2021-08-25T23:50:17-07:00
New Revision: d280a76908e841da9e956a113d219e35247272bf
URL: https://github.com/llvm/llvm-project/commit/d280a76908e841da9e956a113d219e35247272bf
DIFF: https://github.com/llvm/llvm-project/commit/d280a76908e841da9e956a113d219e35247272bf.diff
LOG: [Driver][Linux] Fix regression when -DLIBCXX_LIBDIR_SUFFIX=64
This patch allows an installed (`ninja install-clang`) Clang to find
`../lib64/libc++.so`
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D108286
Added:
Modified:
clang/lib/Driver/ToolChains/Linux.cpp
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index caebab3a9aeb..3604a222ba4b 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -303,8 +303,13 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
// searched.
// FIXME: It's not clear whether we should use the driver's installed
// directory ('Dir' below) or the ResourceDir.
- if (StringRef(D.Dir).startswith(SysRoot))
+ if (StringRef(D.Dir).startswith(SysRoot)) {
+ // Even if OSLibDir != "lib", this is needed for Clang in the build
+ // directory (not installed) to find libc++.
addPathIfExists(D, D.Dir + "/../lib", Paths);
+ if (OSLibDir != "lib")
+ addPathIfExists(D, D.Dir + "/../" + OSLibDir, Paths);
+ }
addPathIfExists(D, SysRoot + "/lib", Paths);
addPathIfExists(D, SysRoot + "/usr/lib", Paths);
More information about the cfe-commits
mailing list