>> But now I am stuck with a internal errror. The bug >> reports can be found at >> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38124 >> http://sourceware.org/bugzilla/show_bug.cgi?id=7032 >> >> I had to file two bug reports since, the gcc guys think it is a >> problem with binutils. The binutils' maintainer thinks it is a problem >> with gcc! > > No, has says "a compiler bug". That means the compiler used to > build binutils. > I finally managed to compile gcc (4.4 20081107) using the following configure command nohup /home/raju/software/unZipped/gcc-4.4-20081107/configure --enable-languages=c,fortran --prefix=/home/raju/software/myroot/gcc-4.4-20081107 --with-gnu-as --with-as=/home/raju/software/myroot/bin/as --with-gnu-ld --with-ld=/home/raju/software/myroot/bin/ld --with-build-time-tools=/home/raju/software/myroot/bin/ 2>&1 > configure.log & I guess disabling the support for c++ language helped in circumventing the internal compiler error with eh_alloc.cc I needed the attached patches (four of them) for it to compile. Could someone please commit them to the main archive? I also needed the patches in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38088, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38100 . But since they are already committed, nothing needs to be done on that front. raju
Index: builtins.c =================================================================== --- builtins.c (revision 141575) +++ builtins.c (working copy) @@ -7619,8 +7619,11 @@ tree arg0 = CALL_EXPR_ARG (arg, 0); tree tree_root; /* The inner root was either sqrt or cbrt. */ - REAL_VALUE_TYPE dconstroot = - BUILTIN_SQRT_P (fcode) ? dconsthalf : dconst_third (); + REAL_VALUE_TYPE dconstroot; + if (BUILTIN_SQRT_P (fcode)) + dconstroot = dconsthalf; + else + dconstroot = dconst_third (); /* Adjust for the outer root. */ SET_REAL_EXP (&dconstroot, REAL_EXP (&dconstroot) - 1);
--- fixed-value.c.orig 2008-11-14 10:14:22.191502000 -0500 +++ fixed-value.c 2008-11-14 10:22:50.044126000 -0500 @@ -291,9 +291,17 @@ const FIXED_VALUE_TYPE *b, bool subtract_p, bool sat_p) { bool overflow_p = false; - double_int temp = subtract_p ? double_int_neg (b->data) : b->data; - bool unsigned_p = UNSIGNED_FIXED_POINT_MODE_P (a->mode); - int i_f_bits = GET_MODE_IBIT (a->mode) + GET_MODE_FBIT (a->mode); + bool unsigned_p; + double_int temp; + int i_f_bits; + + if (subtract_p) + temp = double_int_neg (b->data); + else + temp = b->data; + + unsigned_p = UNSIGNED_FIXED_POINT_MODE_P (a->mode); + i_f_bits = GET_MODE_IBIT (a->mode) + GET_MODE_FBIT (a->mode); f->mode = a->mode; f->data = double_int_add (a->data, temp); if (unsigned_p) /* Unsigned type. */
--- gimple.h.orig 2008-11-11 17:09:55.882233000 -0500 +++ gimple.h 2008-11-11 17:10:41.853525000 -0500 @@ -796,7 +796,7 @@ VEC(tree,gc) *); gimple gimple_build_catch (tree, gimple_seq); gimple gimple_build_eh_filter (tree, gimple_seq); -gimple gimple_build_try (gimple_seq, gimple_seq, unsigned int); +gimple gimple_build_try (gimple_seq, gimple_seq, enum gimple_try_flags); gimple gimple_build_wce (gimple_seq); gimple gimple_build_resx (int); gimple gimple_build_switch (unsigned, tree, tree, ...);
--- tree-ssa-loop-ivopts.c (revision 141575) +++ tree-ssa-loop-ivopts.c (working copy) @@ -4355,7 +4355,10 @@ static comp_cost iv_ca_cost (struct iv_ca *ivs) { - return (ivs->bad_uses ? infinite_cost : ivs->cost); + if (ivs->bad_uses) + return infinite_cost; + else + return ivs->cost; }