From cf1dbbbf7278be6b6c9a531d8c9b781836200697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 10 May 2014 17:29:41 +0200 Subject: [PATCH] llvm+clang: maintenance update 3.4 -> 3.4.1 Slightly hacky for clang at some points, as directory names change strangely. --- pkgs/development/compilers/llvm/3.4/clang.nix | 16 +++++++------- .../compilers/llvm/3.4/default.nix | 22 ++++++++++++++----- pkgs/development/compilers/llvm/3.4/llvm.nix | 9 ++++---- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/pkgs/development/compilers/llvm/3.4/clang.nix b/pkgs/development/compilers/llvm/3.4/clang.nix index 7032056f7e4..7fe94cbf8d8 100644 --- a/pkgs/development/compilers/llvm/3.4/clang.nix +++ b/pkgs/development/compilers/llvm/3.4/clang.nix @@ -1,18 +1,18 @@ -{ stdenv, fetch, cmake, libxml2, libedit, llvm, version }: +{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, clang-tools-extra_src }: stdenv.mkDerivation { name = "clang-${version}"; unpackPhase = '' - unpackFile ${fetch "clang" "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92"} - mv clang-${version} clang + unpackFile ${fetch "cfe" "1dvbkld0a1aqj6wcn0ia1wa8lwha30yfgq16j1r7akdka44z70xb"} + mv cfe-${version}.src clang sourceRoot=$PWD/clang - unpackFile ${fetch "clang-tools-extra" "1d1822mwxxl9agmyacqjw800kzz5x8xr0sdmi8fgx5xfa5sii1ds"} - mv clang-tools-extra-${version} $sourceRoot/tools/extra + unpackFile ${clang-tools-extra_src} + mv clang-tools-extra-* $sourceRoot/tools/extra # !!! Hopefully won't be needed for 3.5 unpackFile ${llvm.src} - export cmakeFlags="$cmakeFlags -DCLANG_PATH_TO_LLVM_SOURCE=$PWD/llvm-${version}" - (cd llvm-${version} && patch -Np1 -i ${./llvm-separate-build.patch}) + export cmakeFlags="$cmakeFlags -DCLANG_PATH_TO_LLVM_SOURCE="`ls -d $PWD/llvm-*` + (cd llvm-* && patch -Np1 -i ${./llvm-separate-build.patch}) ''; patches = [ ./clang-separate-build.patch ./clang-purity.patch ]; @@ -31,7 +31,7 @@ stdenv.mkDerivation { # Clang expects to find sanitizer libraries in its own prefix postInstall = '' ln -sv ${llvm}/lib/LLVMgold.so $out/lib - ln -sv ${llvm}/lib/clang/3.4/lib $out/lib/clang/3.4/ + ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/ ''; passthru.gcc = stdenv.gcc.gcc; diff --git a/pkgs/development/compilers/llvm/3.4/default.nix b/pkgs/development/compilers/llvm/3.4/default.nix index 0a8a72f59a9..237c7f73d7f 100644 --- a/pkgs/development/compilers/llvm/3.4/default.nix +++ b/pkgs/development/compilers/llvm/3.4/default.nix @@ -4,15 +4,27 @@ let version = "3.4"; - fetch = name: sha256: fetchurl { - url = "http://llvm.org/releases/${version}/${name}-${version}.src.tar.gz"; + fetch = fetch_v version; + fetch_v = ver: name: sha256: fetchurl { + url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.gz"; inherit sha256; }; - self = { - llvm = callPackage ./llvm.nix {}; + compiler-rt_src = fetch "compiler-rt" "0p5b6varxdqn7q3n77xym63hhq4qqxd2981pfpa65r1w72qqjz7k"; + clang-tools-extra_src = fetch "clang-tools-extra" "1d1822mwxxl9agmyacqjw800kzz5x8xr0sdmi8fgx5xfa5sii1ds"; - clang = callPackage ./clang.nix {}; + self = { + llvm = callPackage ./llvm.nix rec { + version = "3.4.1"; + fetch = fetch_v version; + inherit compiler-rt_src; + }; + + clang = callPackage ./clang.nix rec { + version = "3.4.1"; + fetch = fetch_v version; + inherit clang-tools-extra_src; + }; lld = callPackage ./lld.nix {}; diff --git a/pkgs/development/compilers/llvm/3.4/llvm.nix b/pkgs/development/compilers/llvm/3.4/llvm.nix index fad11b7a123..3aea2a12a11 100644 --- a/pkgs/development/compilers/llvm/3.4/llvm.nix +++ b/pkgs/development/compilers/llvm/3.4/llvm.nix @@ -11,19 +11,20 @@ , ncurses , version , zlib +, compiler-rt_src }: let - src = fetch "llvm" "0a169ba045r4apb9cv6ncrwl83l7yiajnzirkcdlhj1cd4nn3995"; + src = fetch "llvm" "0fprxrilnlwk9qv7f0kplxc7kd8mp4x781asssv2nfi4r9pbna3x"; in stdenv.mkDerivation rec { name = "llvm-${version}"; unpackPhase = '' unpackFile ${src} - mv llvm-${version} llvm + mv llvm-${version}.src llvm sourceRoot=$PWD/llvm - unpackFile ${fetch "compiler-rt" "0p5b6varxdqn7q3n77xym63hhq4qqxd2981pfpa65r1w72qqjz7k"} - mv compiler-rt-${version} $sourceRoot/projects/compiler-rt + unpackFile ${compiler-rt_src} + mv compiler-rt-* $sourceRoot/projects/compiler-rt ''; buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;