]> granicus.if.org Git - clang/commitdiff
Add support for Fedora16, gcc 4.6.0 and Fedora Rawhide.
authorEric Christopher <echristo@apple.com>
Wed, 6 Apr 2011 18:22:53 +0000 (18:22 +0000)
committerEric Christopher <echristo@apple.com>
Wed, 6 Apr 2011 18:22:53 +0000 (18:22 +0000)
Patch by Bobby Powers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129014 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
lib/Frontend/InitHeaderSearch.cpp

index f7bace0ed3a0cd8cd3cf9b0e692ee9690e1c4660..f127834f79c3bfd630d0b5ee0cb7e53a0e564675 100644 (file)
@@ -1141,6 +1141,8 @@ enum LinuxDistro {
   Exherbo,
   Fedora13,
   Fedora14,
+  Fedora15,
+  FedoraRawhide,
   OpenSuse11_3,
   UbuntuHardy,
   UbuntuIntrepid,
@@ -1153,7 +1155,8 @@ enum LinuxDistro {
 };
 
 static bool IsFedora(enum LinuxDistro Distro) {
-  return Distro == Fedora13 || Distro == Fedora14;
+  return Distro == Fedora13 || Distro == Fedora14 ||
+         Distro == Fedora15 || Distro == FedoraRawhide;
 }
 
 static bool IsOpenSuse(enum LinuxDistro Distro) {
@@ -1218,10 +1221,15 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) {
 
   if (!llvm::MemoryBuffer::getFile("/etc/redhat-release", File)) {
     llvm::StringRef Data = File.get()->getBuffer();
-    if (Data.startswith("Fedora release 14 (Laughlin)"))
+    if (Data.startswith("Fedora release 15"))
+      return Fedora15;
+    else if (Data.startswith("Fedora release 14"))
       return Fedora14;
-    else if (Data.startswith("Fedora release 13 (Goddard)"))
+    else if (Data.startswith("Fedora release 13"))
       return Fedora13;
+    else if (Data.startswith("Fedora release") &&
+             Data.find("Rawhide") != llvm::StringRef::npos)
+      return FedoraRawhide;
     return UnknownDistro;
   }
 
@@ -1327,10 +1335,11 @@ Linux::Linux(const HostInfo &Host, const llvm::Triple &Triple)
       GccTriple = "powerpc64-unknown-linux-gnu";
   }
 
-  const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
-                               "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
-                               "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
-                               "4.2"};
+  const char* GccVersions[] = {"4.6.0",
+                               "4.5.2", "4.5.1", "4.5",
+                               "4.4.5", "4.4.4", "4.4.3", "4.4",
+                               "4.3.4", "4.3.3", "4.3.2", "4.3",
+                               "4.2.4", "4.2.3", "4.2.2", "4.2.1", "4.2"};
   std::string Base = "";
   for (unsigned i = 0; i < sizeof(GccVersions)/sizeof(char*); ++i) {
     std::string Suffix = GccTriple + "/" + GccVersions[i];
index 78634d89826dcc4a34d129cce37364b5ab85b8c3..26d0b369609bd9b43b54e48c035ed732eb1be0c2 100644 (file)
@@ -681,6 +681,11 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) {
     //===------------------------------------------------------------------===//
     // Redhat based distros.
     //===------------------------------------------------------------------===//
+    // Fedora 15
+    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.6.0",
+                                "x86_64-redhat-linux", "32", "", triple);
+    AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.6.0",
+                                "i686-redhat-linux", "", "", triple);
     // Fedora 14
     AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5.1",
                                 "x86_64-redhat-linux", "32", "", triple);