aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Driver/ToolChains.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index bcd540084d..5e0378525b 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -1513,6 +1513,14 @@ static std::string findGCCBaseLibDir(const std::string &GccTriple) {
std::string t3 = "/usr/lib/" + GccTriple + "/gcc/" + Suffix;
if (!llvm::sys::fs::exists(t3 + "/crtbegin.o", Exists) && Exists)
return t3;
+ if (GccTriple == "i386-linux-gnu") {
+ // Ubuntu 11.04 uses an unusual path.
+ std::string t4 =
+ std::string("/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/") +
+ GccVersions[i];
+ if (!llvm::sys::fs::exists(t4 + "/crtbegin.o", Exists) && Exists)
+ return t4;
+ }
}
return "";
}
@@ -1578,6 +1586,9 @@ Linux::Linux(const HostInfo &Host, const llvm::Triple &Triple)
} else if (Arch == llvm::Triple::x86) {
if (!llvm::sys::fs::exists("/usr/lib/gcc/i686-linux-gnu", Exists) && Exists)
GccTriple = "i686-linux-gnu";
+ else if (!llvm::sys::fs::exists("/usr/lib/i386-linux-gnu", Exists) &&
+ Exists)
+ GccTriple = "i386-linux-gnu";
else if (!llvm::sys::fs::exists("/usr/lib/gcc/i686-pc-linux-gnu", Exists) &&
Exists)
GccTriple = "i686-pc-linux-gnu";