]> git.pld-linux.org Git - packages/llvm.git/commitdiff
- fix gcc toolchain paths on x32/x8664/ix86 auto/th/llvm-3.6.2-1
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 26 Jul 2015 20:54:50 +0000 (22:54 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 26 Jul 2015 20:54:50 +0000 (22:54 +0200)
- rel 1

llvm.spec
x32-gcc-toolchain.patch [new file with mode: 0644]

index cc766dd3454f477e021a83e1783d811be25069a6..9fe4c60e09e3451487c1e727d07acf0ff68a3072 100644 (file)
--- a/llvm.spec
+++ b/llvm.spec
@@ -17,7 +17,7 @@ Summary:      The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
 Summary(pl.UTF-8):     Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego)
 Name:          llvm
 Version:       3.6.2
-Release:       0.1
+Release:       1
 License:       University of Illinois/NCSA Open Source License
 Group:         Development/Languages
 #Source0Download: http://llvm.org/releases/download.html
@@ -43,6 +43,7 @@ Patch3:               %{name}-use-ocamlfind-for-ocamldoc.patch
 Patch4:                %{name}-lldb.patch
 Patch5:                %{name}-lldb-atomic.patch
 Patch6:                %{name}-lld-link.patch
+Patch7:                x32-gcc-toolchain.patch
 URL:           http://llvm.org/
 BuildRequires: autoconf >= 2.60
 BuildRequires: automake >= 1:1.9.6
@@ -432,6 +433,7 @@ mv lld-%{version}.src tools/lld
 %endif
 %endif
 %patch6 -p1
+%patch7 -p1
 
 # configure does not properly specify libdir
 %{__sed} -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}|g' Makefile.config.in
diff --git a/x32-gcc-toolchain.patch b/x32-gcc-toolchain.patch
new file mode 100644 (file)
index 0000000..3992875
--- /dev/null
@@ -0,0 +1,38 @@
+--- llvm-3.6.2.src/tools/clang/lib/Driver/ToolChains.cpp~      2015-07-26 12:48:18.000000000 +0200
++++ llvm-3.6.2.src/tools/clang/lib/Driver/ToolChains.cpp       2015-07-26 17:44:56.883613971 +0200
+@@ -1312,6 +1312,10 @@
+     "x86_64-linux-android", "x86_64-unknown-linux"
+   };
+   static const char *const X32LibDirs[] = { "/libx32" };
++  static const char *const X32Triples[] = {
++    "x86_64-pld-linux-gnux32", "amd64-pld-linux-gnux32",
++    "x86_64-linux-gnux32", "x86_64-unknown-linux-gnux32", "x86_64-pc-linux-gnux32"
++  };
+   static const char *const X86LibDirs[] = { "/lib32", "/lib" };
+   static const char *const X86Triples[] = {
+     "i686-pld-linux", "i586-pld-linux", "i486-pld-linux", "i386-pld-linux", "athlon-pld-linux",
+@@ -1407,15 +1407,19 @@
+     }
+     break;
+   case llvm::Triple::x86_64:
+-    LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
+-    TripleAliases.append(begin(X86_64Triples), end(X86_64Triples));
+-    // x32 is always available when x86_64 is available, so adding it as
+-    // secondary arch with x86_64 triples
+     if (TargetTriple.getEnvironment() == llvm::Triple::GNUX32) {
+-      BiarchLibDirs.append(begin(X32LibDirs), end(X32LibDirs));
++      LibDirs.append(begin(X32LibDirs), end(X32LibDirs));
++      TripleAliases.append(begin(X32Triples), end(X32Triples));
++      BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++      BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
+       BiarchTripleAliases.append(begin(X86_64Triples), end(X86_64Triples));
++      BiarchTripleAliases.append(begin(X86Triples), end(X86Triples));
+     } else {
++      LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
++      TripleAliases.append(begin(X86_64Triples), end(X86_64Triples));
++      BiarchLibDirs.append(begin(X32LibDirs), end(X32LibDirs));
+       BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
++      BiarchTripleAliases.append(begin(X32Triples), end(X32Triples));
+       BiarchTripleAliases.append(begin(X86Triples), end(X86Triples));
+     }
+     break;
This page took 0.039296 seconds and 4 git commands to generate.