From 5fbf32b737631b7ea576210098a0cf93f0c70c75 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 3 Aug 2011 08:38:34 +0000 Subject: [PATCH] Missing files svn path=/nixpkgs/trunk/; revision=28133 --- .../llvm/clang-include-paths-svn.patch | 40 +++++++++++ pkgs/development/compilers/llvm/svn-head.nix | 66 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 108 insertions(+) create mode 100644 pkgs/development/compilers/llvm/clang-include-paths-svn.patch create mode 100644 pkgs/development/compilers/llvm/svn-head.nix diff --git a/pkgs/development/compilers/llvm/clang-include-paths-svn.patch b/pkgs/development/compilers/llvm/clang-include-paths-svn.patch new file mode 100644 index 000000000000..85c7a12d09be --- /dev/null +++ b/pkgs/development/compilers/llvm/clang-include-paths-svn.patch @@ -0,0 +1,40 @@ +diff -ru -x '*~' a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp +--- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2010-09-03 18:45:53.000000000 +0200 ++++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2011-02-05 14:59:08.669573190 +0100 +@@ -480,6 +480,7 @@ + AddPath(*i, System, false, false, false); + return; + } + ++#if 0 + switch (os) { + case llvm::Triple::Win32: { +@@ -593,7 +593,9 @@ + } + + if ( os != llvm::Triple::RTEMS ) + AddPath("/usr/include", System, false, false, false); ++#endif ++ AddPath(C_INCLUDE_PATH, System, false, false, false); + } + + void InitHeaderSearch:: +@@ -550,6 +553,7 @@ + triple); + return; + } ++#if 0 + // FIXME: temporary hack: hard-coded paths. + + if (triple.isOSDarwin()) { +@@ -769,6 +773,10 @@ + default: + break; + } ++#endif ++ AddGnuCPlusPlusIncludePaths( ++ CPP_INCLUDE_PATH, ++ CPP_HOST, "", "", triple); + } + + void InitHeaderSearch::AddDefaultSystemIncludePaths(const LangOptions &Lang, diff --git a/pkgs/development/compilers/llvm/svn-head.nix b/pkgs/development/compilers/llvm/svn-head.nix new file mode 100644 index 000000000000..f929815f8a21 --- /dev/null +++ b/pkgs/development/compilers/llvm/svn-head.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchurl, gcc, flex, perl, libtool, groff, fetchsvn +, buildClang ? false }: + +let rev = "134309"; in +stdenv.mkDerivation ({ + name = "llvm-r${rev}"; + + src = fetchsvn { + url = "http://llvm.org/svn/llvm-project/llvm/trunk"; + inherit rev; + sha256 = "136qwpcl22r5bl9y4kk94vgbha1m58xrggy7qw19lg7jkgxxj8s6"; + }; + + buildInputs = [ gcc flex perl groff ]; + + configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ]; + + meta = { + homepage = http://llvm.org/; + description = "Collection of modular and reusable compiler and toolchain technologies"; + license = "BSD"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; all; + }; +} +// stdenv.lib.optionalAttrs buildClang ( + # I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not + # evaluate properly (in the preConfigure below) + assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; + let + triplet = if (stdenv.system == "i686-linux") then "i686-unknown-linux-gnu" + else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu" + else throw "System not supported"; + in rec { + name = "clang-r${rev}"; + + srcClang = fetchsvn { + url = http://llvm.org/svn/llvm-project/cfe/trunk; + inherit rev; + sha256 = "0afbrjakfw6zgsplxblgzr2kwjndlnr2lnqjnbj16ggam5fcnhlr"; + }; + + prePatch = '' + cp -r ${srcClang} tools/clang + chmod u+rwX -R tools/clang + ''; + + patches = [ ./clang-include-paths-svn.patch ]; + + # Set up the header file paths + preConfigure = '' + sed -i -e 's,C_INCLUDE_PATH,"${gcc.libc}/include/",' \ + -e 's,CPP_HOST,"${triplet}",' \ + -e 's,CPP_INCLUDE_PATH,"${gcc.gcc}/include/c++/${gcc.gcc.version}",' \ + tools/clang/lib/Frontend/InitHeaderSearch.cpp + ''; + + meta = { + homepage = http://clang.llvm.org/; + description = "A C language family frontend for LLVM"; + license = "BSD"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + }; + } +)) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 73ae09f1aa83..daadf22fbf92 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2170,6 +2170,8 @@ let }; llvm = callPackage ../development/compilers/llvm { }; + + # Works partially llvmSVN = callPackage ../development/compilers/llvm/svn-head.nix { }; mitscheme = callPackage ../development/compilers/mit-scheme { };