fea2266290
Now most packages in the llvm suite are built as separate derivations. The exceptions are: * compiler-rt must currently be built with llvm. This increases llvm's size by 6 MB * clang-tools-extra must be built with clang In addition, the top-level llvm attribute is defaulted to llvm 3.4, and llvm 3.3 must be accessed by the llvm_33 attribute. This is to make the out-of-date packages obvious in the hope that eventually all will be updated to work with 3.4 and 3.3 can be removed. I think we should keep this policy in the future (latest llvm gets top-level name, the rest are versioned until they can be removed). The llvm packages (except libc++, which exception I will try to remove on the next update) can all be accessed via the llvmPackages attribute, and there are also aliases for the packages that already existed (llvm, clang, and dragonegg). Signed-off-by: Shea Levy <shea@shealevy.com>
42 lines
1.4 KiB
Nix
42 lines
1.4 KiB
Nix
{ stdenv, fetchurl, perl, groff, cmake, python, libffi, binutils }:
|
|
let
|
|
version = "3.3";
|
|
in stdenv.mkDerivation rec {
|
|
name = "llvm-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "http://llvm.org/releases/${version}/llvm-${version}.src.tar.gz";
|
|
sha256 = "0y3mfbb5qzcpw3v5qncn69x1hdrrrfirgs82ypi2annhf0g6nxk8";
|
|
};
|
|
|
|
patches = [
|
|
./more-memory-for-bugpoint.patch # The default rlimits in 3.3 are too low for shared libraries.
|
|
./no-rule-aarch64.patch # http://llvm.org/bugs/show_bug.cgi?id=16625
|
|
];
|
|
|
|
buildInputs = [ perl groff cmake python libffi ];
|
|
|
|
# hacky fix: created binaries need to be run before installation
|
|
preBuild = let LD = if stdenv.isDarwin then "DYLD" else "LD";
|
|
in "export ${LD}_LIBRARY_PATH='$$${LD}_LIBRARY_PATH:'`pwd`/lib";
|
|
|
|
cmakeFlags = with stdenv; [
|
|
"-DCMAKE_BUILD_TYPE=Release"
|
|
"-DLLVM_ENABLE_FFI=ON"
|
|
"-DLLVM_BINUTILS_INCDIR=${binutils}/include"
|
|
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=R600" # for mesa
|
|
] ++ stdenv.lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
doCheck = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Collection of modular and reusable compiler and toolchain technologies";
|
|
homepage = http://llvm.org/;
|
|
license = licenses.bsd3;
|
|
maintainers = with maintainers; [ lovek323 raskin viric ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|