summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-11-11 02:07:13 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-11-11 02:07:13 +0000
commit124798484af3c44014167afb27f636e5c22dff4c (patch)
tree5d93f694d3434d0498c49b19eaf98b0d24eefa6d /clang/lib/Driver/ToolChains.cpp
parentf18b951e18055654396a42ed5093aee8121b2e36 (diff)
downloadbcm5719-llvm-124798484af3c44014167afb27f636e5c22dff4c.tar.gz
bcm5719-llvm-124798484af3c44014167afb27f636e5c22dff4c.zip
Add support for Exherbo. Patch by Elias Pipping.
llvm-svn: 118769
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r--clang/lib/Driver/ToolChains.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 0ac1d9292f4..f1e3e7f85f0 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -1198,6 +1198,7 @@ Tool &AuroraUX::SelectTool(const Compilation &C, const JobAction &JA) const {
enum LinuxDistro {
DebianLenny,
DebianSqueeze,
+ Exherbo,
Fedora13,
Fedora14,
OpenSuse11_3,
@@ -1228,8 +1229,12 @@ static bool IsDebianBased(enum LinuxDistro Distro) {
}
static bool HasMultilib(llvm::Triple::ArchType Arch, enum LinuxDistro Distro) {
- if (Arch == llvm::Triple::x86_64)
+ if (Arch == llvm::Triple::x86_64) {
+ if (Distro == Exherbo && !llvm::sys::Path("/usr/lib32/libc.so").exists())
+ return false;
+
return true;
+ }
if (Arch == llvm::Triple::x86 && IsDebianBased(Distro))
return true;
return false;
@@ -1284,6 +1289,9 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) {
return UnknownDistro;
}
+ if (llvm::sys::Path("/etc/exherbo-release").exists())
+ return Exherbo;
+
return UnknownDistro;
}
@@ -1317,6 +1325,8 @@ Linux::Linux(const HostInfo &Host, const llvm::Triple& Triple)
} else if (Arch == llvm::Triple::x86_64) {
if (llvm::sys::Path("/usr/lib/gcc/x86_64-linux-gnu").exists())
GccTriple = "x86_64-linux-gnu";
+ else if (llvm::sys::Path("/usr/lib/gcc/x86_64-pc-linux-gnu").exists())
+ GccTriple = "x86_64-pc-linux-gnu";
else if (llvm::sys::Path("/usr/lib/gcc/x86_64-redhat-linux").exists())
GccTriple = "x86_64-redhat-linux";
else if (llvm::sys::Path("/usr/lib64/gcc/x86_64-suse-linux").exists())
OpenPOWER on IntegriCloud