diff options
Diffstat (limited to 'sys-devel/clang/files/clang-3.0-linux-runtime-gcc-detection.patch')
-rw-r--r-- | sys-devel/clang/files/clang-3.0-linux-runtime-gcc-detection.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sys-devel/clang/files/clang-3.0-linux-runtime-gcc-detection.patch b/sys-devel/clang/files/clang-3.0-linux-runtime-gcc-detection.patch new file mode 100644 index 000000000000..a1f7ce2a98fb --- /dev/null +++ b/sys-devel/clang/files/clang-3.0-linux-runtime-gcc-detection.patch @@ -0,0 +1,43 @@ +diff -upNr a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp +--- a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 15:39:01.070411000 -0400 ++++ b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 15:39:22.371785000 -0400 +@@ -1382,6 +1382,7 @@ enum LinuxDistro { + DebianSqueeze, + DebianWheezy, + Exherbo, ++ Gentoo, + RHEL4, + RHEL5, + RHEL6, +@@ -1403,6 +1404,10 @@ enum LinuxDistro { + UnknownDistro + }; + ++static bool IsGentoo(enum LinuxDistro Distro) { ++ return Distro == Gentoo; ++} ++ + static bool IsRedhat(enum LinuxDistro Distro) { + return Distro == Fedora13 || Distro == Fedora14 || + Distro == Fedora15 || Distro == FedoraRawhide || +@@ -1433,7 +1438,9 @@ static LinuxDistro DetectLinuxDistro(llv + SmallVector<StringRef, 8> Lines; + Data.split(Lines, "\n"); + for (unsigned int i = 0, s = Lines.size(); i < s; ++ i) { +- if (Lines[i] == "DISTRIB_CODENAME=hardy") ++ if (Lines[i] == "DISTRIB_ID=\"Gentoo\"") ++ return Gentoo; ++ else if (Lines[i] == "DISTRIB_CODENAME=hardy") + return UbuntuHardy; + else if (Lines[i] == "DISTRIB_CODENAME=intrepid") + return UbuntuIntrepid; +@@ -1597,6 +1604,9 @@ Linux::GCCInstallationDetector::GCCInsta + GccInstallPath.append("/"); + GccInstallPath.append(CXX_INCLUDE_ARCH); + GccInstallPath.append("/"); ++ llvm::OwningPtr<llvm::MemoryBuffer> File; ++ if (!llvm::MemoryBuffer::getFile("/etc/env.d/gcc/config-" + D.DefaultHostTriple, File)) ++ Version = File.get()->getBuffer().rsplit('-').second.substr(0,5); + GccInstallPath.append(Version); + GccParentLibPath = GccInstallPath + "/../../.."; + IsValid = true; |