Index: lib/Driver/ToolChains.cpp
===================================================================
--- lib/Driver/ToolChains.cpp	(revision 139523)
+++ lib/Driver/ToolChains.cpp	(working copy)
@@ -1513,6 +1513,12 @@
     std::string t3 = "/usr/lib/" + GccTriple + "/gcc/" + Suffix;
     if (!llvm::sys::fs::exists(t3 + "/crtbegin.o", Exists) && Exists)
       return t3;
+    // For ubuntu 11.04
+    if (GccTriple == "i386-linux-gnu") {
+      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 +1584,9 @@
   } else if (Arch == llvm::Triple::x86) {
     if (!llvm::sys::fs::exists("/usr/lib/gcc/i686-linux-gnu", Exists) && Exists)
       GccTriple = "i686-linux-gnu";
+    // For ubuntu-11.04 x86
+    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";
