diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Driver/ToolChains.cpp | 11 |
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"; |