1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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;
|