Fix the path detection just like in clang 3.2 1~exp5

This commit is contained in:
Sylvestre Ledru 2013-01-15 14:06:34 +00:00
parent acf5d74a48
commit fc9d08477f

View File

@ -1,30 +1,25 @@
Index: llvm-3.2.src/clang/lib/Driver/ToolChains.cpp
Index: clang-3.2/tools/clang/lib/Driver/ToolChains.cpp
===================================================================
--- llvm-3.2.src.orig/clang/lib/Driver/ToolChains.cpp 2013-01-12 15:33:39.427064577 +0100
+++ llvm-3.2.src/clang/lib/Driver/ToolChains.cpp 2013-01-12 15:34:27.855063496 +0100
@@ -2124,7 +2124,7 @@
const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
const std::string &LibPath = GCCInstallation.getParentLibPath();
--- clang-3.2~rc1.orig/tools/clang/lib/Driver/ToolChains.cpp 2012-11-27 12:21:42.000000000 +0100
+++ clang-3.2~rc1/tools/clang/lib/Driver/ToolChains.cpp 2012-11-29 09:47:06.000000000 +0100
@@ -36,6 +36,9 @@
#include <cstdlib> // ::getenv
#include "clang/Config/config.h" // for GCC_INSTALL_PREFIX
+#include "clang/Debian/debian_path.h"
+
+#include <iostream>
- if (IsAndroid && isMipsR2Arch(Triple.getArch(), Args))
+ if (IsAndroid && isMipsR2Arch(Triple.getArch(), Args))
addPathIfExists(GCCInstallation.getInstallPath() +
GCCInstallation.getMultiarchSuffix() +
"/mips-r2",
@@ -2376,9 +2376,16 @@
StringRef InstallDir = GCCInstallation.getInstallPath();
StringRef Version = GCCInstallation.getVersion().Text;
StringRef TripleStr = GCCInstallation.getTriple().str();
+ llvm::Triple MultiarchTriple
+ = GCCInstallation.getTriple().isArch32Bit() ? GCCInstallation.getTriple().get64BitArchVariant()
+ : GCCInstallation.getTriple().get32BitArchVariant();
using namespace clang::driver;
using namespace clang::driver::toolchains;
@@ -2316,6 +2318,10 @@
const std::string IncludePathCandidates[] = {
LibDir.str() + "/../include/c++/" + Version.str(),
+ // Once more, Debian headers locations changed (since gcc version 4.7.2-5)
+ // See Debian bug tracker #693240
+ LibDir.str() + "/../include/"+ TripleStr.str() +"/c++/" + Version.str(),
+ LibDir.str() + "/../include/"+ MultiarchTriple.str() +"/c++/" + Version.str(),
+ LibDir.str() + "/../include/" + DEB_HOST_MULTIARCH_TRIPLET + "/c++/" + Version.str(),
// Gentoo is weird and places its headers inside the GCC install, so if the
// first attempt to find the headers fails, try this pattern.
InstallDir.str() + "/include/g++-v4",