summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-01-13 21:38:44 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-01-13 21:53:50 +0100
commitae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb (patch)
treec0644f468d0362758f2a2a18c66f447e8982d061 /pkgs
parentc31a4c927d892d8d42e057e8ecc49c9bb4ffa68c (diff)
downloadnixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar.gz
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar.bz2
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar.lz
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar.xz
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.tar.zst
nixlib-ae0c9b626f5d66fb400a915a4c9c2d12dfd24fcb.zip
llvm: add 3.4, urge for versioned usage
The 3.4 code was tested preliminary in x-updates,
described by 2e4eab1228.

Updates to llvm break builds of dependent packages (in all cases I've seen),
and often upstream isn't too fast in porting to the newest version.
Consequently, it seems better to keep more versions (two ATM),
both in one file to share eventual changes.
Also, using versioned llvm_* attributes is proposed because of this.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/llvm/default.nix17
-rw-r--r--pkgs/top-level/all-packages.nix5
2 files changed, 15 insertions, 7 deletions
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index bed6bf1fc13b..7ef7adfa324e 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -1,17 +1,21 @@
-{ stdenv, fetchurl, perl, groff, cmake, python, libffi, binutils_gold }:
+{ stdenv, fetchurl, perl, groff, cmake, python, libffi, binutils_gold, version }:
 
-let version = "3.3"; in
+with { inherit (stdenv.lib) optional; };
+
+assert version == "3.4" || version == "3.3";
 
 stdenv.mkDerivation rec {
   name = "llvm-${version}";
 
   src = fetchurl {
     url    = "http://llvm.org/releases/${version}/llvm-${version}.src.tar.gz";
-    sha256 = "0y3mfbb5qzcpw3v5qncn69x1hdrrrfirgs82ypi2annhf0g6nxk8";
+    sha256 =
+      if version == "3.4" then "0a169ba045r4apb9cv6ncrwl83l7yiajnzirkcdlhj1cd4nn3995"
+        else       /*3.3*/     "0y3mfbb5qzcpw3v5qncn69x1hdrrrfirgs82ypi2annhf0g6nxk8";
   };
 
   # The default rlimits are too low for shared libraries.
-  patches = [ ./more-memory-for-bugpoint.patch ];
+  patches = optional (version == "3.3") [ ./more-memory-for-bugpoint.patch ];
 
   # libffi was propagated before, but it wasn't even being used, so
   # unless something needs it just an input is fine.
@@ -25,8 +29,9 @@ stdenv.mkDerivation rec {
     "-DCMAKE_BUILD_TYPE=Release"
     "-DLLVM_ENABLE_FFI=ON"
     "-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include"
-    "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=R600" # for mesa
-  ] ++ lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
+  ]
+    ++ optional (version == "3.3") "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=R600" # for mesa
+    ++ optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c7d86057fb4f..0a0ac731cd75 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2903,11 +2903,14 @@ let
 
   lessc = callPackage ../development/compilers/lessc { };
 
-  llvm = callPackage ../development/compilers/llvm {
+  llvm = llvm_33; # deprecated, depend on llvm_* directly
+  llvm_34 = callPackage ../development/compilers/llvm {
+    version = "3.4";
     stdenv = if stdenv.isDarwin
       then stdenvAdapters.overrideGCC stdenv gccApple
       else stdenv;
   };
+  llvm_33 = llvm_34.override { version = "3.3"; };
 
   mentorToolchains = recurseIntoAttrs (
     callPackage_i686 ../development/compilers/mentor {}