From e6ad6259022941afc129f6f7f7214e24689a8a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Sat, 12 Jun 2010 17:42:33 +0000 Subject: [PATCH] llvm update attempt + dragonegg svn path=/nixpkgs/trunk/; revision=22234 --- .../development/compilers/gcc-4.5/default.nix | 4 +- .../compilers/gcc-4.5/dragonegg-2.7.patch | 46 +++++++++++++++++++ pkgs/development/compilers/llvm/default.nix | 10 ++-- .../libraries/dragonegg/default.nix | 15 ++++++ pkgs/top-level/all-packages.nix | 7 ++- 5 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/compilers/gcc-4.5/dragonegg-2.7.patch create mode 100644 pkgs/development/libraries/dragonegg/default.nix diff --git a/pkgs/development/compilers/gcc-4.5/default.nix b/pkgs/development/compilers/gcc-4.5/default.nix index ecc5746be237..ce4a3944c66a 100644 --- a/pkgs/development/compilers/gcc-4.5/default.nix +++ b/pkgs/development/compilers/gcc-4.5/default.nix @@ -136,7 +136,7 @@ stdenv.mkDerivation ({ }; patches = - [ ./softfp-hurd.patch ] + [ ./softfp-hurd.patch ./dragonegg-2.7.patch ] ++ optional (cross != null) ./libstdc++-target.patch ++ optional noSysDirs ./no-sys-dirs.patch # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its @@ -204,6 +204,8 @@ stdenv.mkDerivation ({ --disable-libstdcxx-pch --without-included-gettext --with-system-zlib + --enable-lto + --enable-plugin --enable-languages=${ concatStrings (intersperse "," ( optional langC "c" diff --git a/pkgs/development/compilers/gcc-4.5/dragonegg-2.7.patch b/pkgs/development/compilers/gcc-4.5/dragonegg-2.7.patch new file mode 100644 index 000000000000..6b37672ddef0 --- /dev/null +++ b/pkgs/development/compilers/gcc-4.5/dragonegg-2.7.patch @@ -0,0 +1,46 @@ +Index: mainline/gcc/config/i386/i386.c +=================================================================== +--- mainline.orig/gcc/config/i386/i386.c 2010-04-02 09:11:58.733574308 +0200 ++++ mainline/gcc/config/i386/i386.c 2010-04-02 09:29:11.276111437 +0200 +@@ -4992,7 +4992,8 @@ + case, we return the original mode and warn ABI change if CUM isn't + NULL. */ + +-static enum machine_mode ++extern enum machine_mode type_natural_mode (const_tree, CUMULATIVE_ARGS *); ++enum machine_mode + type_natural_mode (const_tree type, CUMULATIVE_ARGS *cum) + { + enum machine_mode mode = TYPE_MODE (type); +@@ -5123,7 +5124,9 @@ + See the x86-64 PS ABI for details. + */ + +-static int ++extern int classify_argument (enum machine_mode, const_tree, ++ enum x86_64_reg_class [MAX_CLASSES], int); ++int + classify_argument (enum machine_mode mode, const_tree type, + enum x86_64_reg_class classes[MAX_CLASSES], int bit_offset) + { +@@ -5504,7 +5507,9 @@ + + /* Examine the argument and return set number of register required in each + class. Return 0 iff parameter should be passed in memory. */ +-static int ++extern int examine_argument (enum machine_mode, const_tree, int, ++ int *, int *); ++int + examine_argument (enum machine_mode mode, const_tree type, int in_return, + int *int_nregs, int *sse_nregs) + { +@@ -6186,7 +6191,8 @@ + + /* Return true when TYPE should be 128bit aligned for 32bit argument passing + ABI. */ +-static bool ++extern bool contains_aligned_value_p (tree); ++bool + contains_aligned_value_p (tree type) + { + enum machine_mode mode = TYPE_MODE (type); diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index dd13441468c4..f01a7acf261f 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -1,11 +1,11 @@ -{stdenv, fetchurl, gcc, flex, perl, libtool }: +{stdenv, fetchurl, gcc, flex, perl, libtool, groff }: stdenv.mkDerivation { - name = "llvm-2.2"; + name = "llvm-2.7"; src = fetchurl { - url = http://llvm.org/releases/2.2/llvm-2.2.tar.gz; - sha256 = "788d871aec139e0c61d49533d0252b21c4cd030e91405491ee8cb9b2d0311072"; + url = http://llvm.org/releases/2.7/llvm-2.7.tgz; + sha256 = "19dwvfyxr851fjfsaxbm56gdj9mlivr37bv6h41hd8q3hpf4nrlr"; }; - buildInputs = [ gcc flex perl libtool ]; + buildInputs = [ gcc flex perl libtool groff ]; } diff --git a/pkgs/development/libraries/dragonegg/default.nix b/pkgs/development/libraries/dragonegg/default.nix new file mode 100644 index 000000000000..46dcf5e90010 --- /dev/null +++ b/pkgs/development/libraries/dragonegg/default.nix @@ -0,0 +1,15 @@ +{stdenv, fetchsvn, llvm}: + +stdenv.mkDerivation { + name = "dragonegg-2.7"; + + GCC = "gcc"; + + buildInputs = [ llvm ]; + + src = fetchsvn { + url = http://llvm.org/svn/llvm-project/dragonegg/branches/release_27; + rev = 105882; + sha256 = "0j0mj3zm1nd8kaj3b28b3w2dlzc1xbywq4mcdxk5nq4yds6rx5np"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 73533e2b75b7..37d3e301db7e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2506,7 +2506,7 @@ let }; llvm = import ../development/compilers/llvm { - inherit fetchurl stdenv gcc flex perl libtool; + inherit fetchurl stdenv gcc flex perl libtool groff; }; llvmGCC = builderDefsPackage (import ../development/compilers/llvm/llvm-gcc.nix) { @@ -3709,6 +3709,11 @@ let libXrender; }; + dragonegg = import ../development/libraries/dragonegg { + inherit fetchsvn llvm; + stdenv = overrideGCC stdenv gcc45; + }; + enchant = makeOverridable (import ../development/libraries/enchant) { inherit fetchurl stdenv aspell pkgconfig; inherit (gnome) glib;