--- tools/clang/lib/Driver/ToolChains.cpp.orig 2011-03-21 22:29:27.000000000 +0100 +++ tools/clang/lib/Driver/ToolChains.cpp 2011-04-07 10:33:41.771314057 +0200 @@ -139,7 +139,7 @@ GCCVersion[2] = 1; // Set up the tool chain paths to match gcc. - ToolChainDir = "i686-apple-darwin"; + ToolChainDir = "@GENTOO_PORTAGE_CHOST@"; ToolChainDir += llvm::utostr(DarwinVersion[0]); ToolChainDir += "/"; ToolChainDir += llvm::utostr(GCCVersion[0]); @@ -149,10 +149,10 @@ ToolChainDir += llvm::utostr(GCCVersion[2]); // Try the next major version if that tool chain dir is invalid. - std::string Tmp = "/usr/lib/gcc/" + ToolChainDir; + std::string Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir; bool Exists; if (llvm::sys::fs::exists(Tmp, Exists) || Exists) { - std::string Next = "i686-apple-darwin"; + std::string Next = "@GENTOO_PORTAGE_CHOST_ARCH@"; Next += llvm::utostr(DarwinVersion[0] + 1); Next += "/"; Next += llvm::utostr(GCCVersion[0]); @@ -164,7 +164,7 @@ // Use that if it exists, otherwise hope the user isn't linking. // // FIXME: Drop dependency on gcc's tool chain. - Tmp = "/usr/lib/gcc/" + Next; + Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + Next; if (!llvm::sys::fs::exists(Tmp, Exists) && Exists) ToolChainDir = Next; } @@ -177,7 +177,7 @@ Path += "/x86_64"; getFilePaths().push_back(Path); - Path = "/usr/lib/gcc/"; + Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/"; Path += ToolChainDir; Path += "/x86_64"; getFilePaths().push_back(Path); @@ -188,7 +188,7 @@ Path += ToolChainDir; getFilePaths().push_back(Path); - Path = "/usr/lib/gcc/"; + Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/"; Path += ToolChainDir; getFilePaths().push_back(Path); @@ -197,7 +197,7 @@ Path += ToolChainDir; getProgramPaths().push_back(Path); - Path = "/usr/libexec/gcc/"; + Path = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/"; Path += ToolChainDir; getProgramPaths().push_back(Path); @@ -300,14 +300,14 @@ // FIXME: Derive these correctly. if (getArchName() == "x86_64") { - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir + + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir + "/x86_64")); // Intentionally duplicated for (temporary) gcc bug compatibility. - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir + + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir + "/x86_64")); } - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/" + ToolChainDir)); + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/" + ToolChainDir)); Tmp = getDriver().Dir + "/../lib/gcc/" + ToolChainDir; bool Exists; @@ -316,18 +316,18 @@ Tmp = getDriver().Dir + "/../lib/gcc"; if (!llvm::sys::fs::exists(Tmp, Exists) && Exists) CmdArgs.push_back(Args.MakeArgString("-L" + Tmp)); - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir)); + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir)); // Intentionally duplicated for (temporary) gcc bug compatibility. - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir)); + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir)); Tmp = getDriver().Dir + "/../lib/" + ToolChainDir; if (!llvm::sys::fs::exists(Tmp, Exists) && Exists) CmdArgs.push_back(Args.MakeArgString("-L" + Tmp)); Tmp = getDriver().Dir + "/../lib"; if (!llvm::sys::fs::exists(Tmp, Exists) && Exists) CmdArgs.push_back(Args.MakeArgString("-L" + Tmp)); - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir + + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir + "/../../../" + ToolChainDir)); - CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir + + CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir + "/../../..")); } @@ -416,22 +416,7 @@ P.eraseComponent(); // .../usr/bin -> ../usr P.appendComponent("lib"); P.appendComponent("gcc"); - switch (getTriple().getArch()) { - default: - assert(0 && "Invalid Darwin arch!"); - case llvm::Triple::x86: - case llvm::Triple::x86_64: - P.appendComponent("i686-apple-darwin10"); - break; - case llvm::Triple::arm: - case llvm::Triple::thumb: - P.appendComponent("arm-apple-darwin10"); - break; - case llvm::Triple::ppc: - case llvm::Triple::ppc64: - P.appendComponent("powerpc-apple-darwin10"); - break; - } + P.appendComponent("@GENTOO_PORTAGE_CHOST@"); P.appendComponent("4.2.1"); // Determine the arch specific GCC subdirectory.