llvm+clang: maintenance update 3.4 -> 3.4.1
Slightly hacky for clang at some points, as directory names change strangely.
This commit is contained in:
parent
0c142b2a18
commit
cf1dbbbf72
@ -1,18 +1,18 @@
|
|||||||
{ stdenv, fetch, cmake, libxml2, libedit, llvm, version }:
|
{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, clang-tools-extra_src }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "clang-${version}";
|
name = "clang-${version}";
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
unpackFile ${fetch "clang" "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92"}
|
unpackFile ${fetch "cfe" "1dvbkld0a1aqj6wcn0ia1wa8lwha30yfgq16j1r7akdka44z70xb"}
|
||||||
mv clang-${version} clang
|
mv cfe-${version}.src clang
|
||||||
sourceRoot=$PWD/clang
|
sourceRoot=$PWD/clang
|
||||||
unpackFile ${fetch "clang-tools-extra" "1d1822mwxxl9agmyacqjw800kzz5x8xr0sdmi8fgx5xfa5sii1ds"}
|
unpackFile ${clang-tools-extra_src}
|
||||||
mv clang-tools-extra-${version} $sourceRoot/tools/extra
|
mv clang-tools-extra-* $sourceRoot/tools/extra
|
||||||
# !!! Hopefully won't be needed for 3.5
|
# !!! Hopefully won't be needed for 3.5
|
||||||
unpackFile ${llvm.src}
|
unpackFile ${llvm.src}
|
||||||
export cmakeFlags="$cmakeFlags -DCLANG_PATH_TO_LLVM_SOURCE=$PWD/llvm-${version}"
|
export cmakeFlags="$cmakeFlags -DCLANG_PATH_TO_LLVM_SOURCE="`ls -d $PWD/llvm-*`
|
||||||
(cd llvm-${version} && patch -Np1 -i ${./llvm-separate-build.patch})
|
(cd llvm-* && patch -Np1 -i ${./llvm-separate-build.patch})
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patches = [ ./clang-separate-build.patch ./clang-purity.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
|
# Clang expects to find sanitizer libraries in its own prefix
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
ln -sv ${llvm}/lib/LLVMgold.so $out/lib
|
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;
|
passthru.gcc = stdenv.gcc.gcc;
|
||||||
|
@ -4,15 +4,27 @@ let
|
|||||||
|
|
||||||
version = "3.4";
|
version = "3.4";
|
||||||
|
|
||||||
fetch = name: sha256: fetchurl {
|
fetch = fetch_v version;
|
||||||
url = "http://llvm.org/releases/${version}/${name}-${version}.src.tar.gz";
|
fetch_v = ver: name: sha256: fetchurl {
|
||||||
|
url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.gz";
|
||||||
inherit sha256;
|
inherit sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
self = {
|
compiler-rt_src = fetch "compiler-rt" "0p5b6varxdqn7q3n77xym63hhq4qqxd2981pfpa65r1w72qqjz7k";
|
||||||
llvm = callPackage ./llvm.nix {};
|
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 {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
|
||||||
|
@ -11,19 +11,20 @@
|
|||||||
, ncurses
|
, ncurses
|
||||||
, version
|
, version
|
||||||
, zlib
|
, zlib
|
||||||
|
, compiler-rt_src
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
src = fetch "llvm" "0a169ba045r4apb9cv6ncrwl83l7yiajnzirkcdlhj1cd4nn3995";
|
src = fetch "llvm" "0fprxrilnlwk9qv7f0kplxc7kd8mp4x781asssv2nfi4r9pbna3x";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "llvm-${version}";
|
name = "llvm-${version}";
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
unpackFile ${src}
|
unpackFile ${src}
|
||||||
mv llvm-${version} llvm
|
mv llvm-${version}.src llvm
|
||||||
sourceRoot=$PWD/llvm
|
sourceRoot=$PWD/llvm
|
||||||
unpackFile ${fetch "compiler-rt" "0p5b6varxdqn7q3n77xym63hhq4qqxd2981pfpa65r1w72qqjz7k"}
|
unpackFile ${compiler-rt_src}
|
||||||
mv compiler-rt-${version} $sourceRoot/projects/compiler-rt
|
mv compiler-rt-* $sourceRoot/projects/compiler-rt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
|
buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user