summaryrefslogtreecommitdiff
blob: 555b8ee0bcc965610e56130e503de2f9c7110e7b (plain)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
This code looks as if it is written by Apple, lots of assumptions that
only hold for them and their scenario.

--- tools/clang/lib/Driver/ToolChains.cpp
+++ tools/clang/lib/Driver/ToolChains.cpp
@@ -131,7 +131,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]);
@@ -141,9 +141,9 @@
   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;
   if (!llvm::sys::Path(Tmp).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]);
@@ -155,7 +155,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::Path(Tmp).exists())
       ToolChainDir = Next;
   }
@@ -168,7 +168,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);
@@ -179,7 +179,7 @@
   Path += ToolChainDir;
   getFilePaths().push_back(Path);
 
-  Path = "/usr/lib/gcc/";
+  Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/";
   Path += ToolChainDir;
   getFilePaths().push_back(Path);
 
@@ -188,7 +188,7 @@
   Path += ToolChainDir;
   getProgramPaths().push_back(Path);
 
-  Path = "/usr/libexec/gcc/";
+  Path = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/";
   Path += ToolChainDir;
   getProgramPaths().push_back(Path);
 
@@ -291,14 +291,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;
   if (llvm::sys::Path(Tmp).exists())
@@ -306,18 +306,18 @@
   Tmp = getDriver().Dir + "/../lib/gcc";
   if (llvm::sys::Path(Tmp).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::Path(Tmp).exists())
     CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
   Tmp = getDriver().Dir + "/../lib";
   if (llvm::sys::Path(Tmp).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 +
                                        "/../../.."));
 }
 
@@ -386,22 +386,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.