llvm update attempt + dragonegg

svn path=/nixpkgs/trunk/; revision=22234
This commit is contained in:
Lluís Batlle i Rossell 2010-06-12 17:42:33 +00:00
parent 7ac1e6a12b
commit e6ad625902
5 changed files with 75 additions and 7 deletions

View file

@ -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"

View file

@ -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);

View file

@ -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 ];
}

View file

@ -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";
};
}

View file

@ -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;