------- Comment #7 from ro at techfak dot uni-bielefeld dot de 2009-09-03 13:53 ------- Subject: Re: [4.5 regression] ICE: in get_attr_got, at config/mips/mips.md:455 building stage1 N64 libgcc
> ------- Comment #5 from ubizjak at gmail dot com 2009-09-03 13:08 ------- > (In reply to comment #3) > > > I'm sort of stuck now. > > Add -save-temps to failing command on a native compiler, create a > crosscompiler > on i.e. x86_64 and debug ../gcc/cc1 from crosscompiler with -O2 -g > <some_file>.i in x86_64 host. You don't even need to create binutils cross to > create cc1, although the full build won't finish. Good point: I routinely forget about cross compilers until I really have to. This was really beneficial in this case, since the X4450 is a *much* faster box. I did have to build cross binutils, though, since the bug is only triggered when certain assembler features are present (I haven't checked exactly which ones, but a cross compiler without a cross gas 2.19.1 didn't ICE). I've come up with the following patch, similar to your's for the alpha: 2009-09-03 Rainer Orth <r...@cecitec.uni-bielefeld.de> PR target/41240 * config/mips/mips.c (mips_function_has_gp_insn): Ignore debug insn. Index: config/mips/mips.c =================================================================== --- config/mips/mips.c (revision 151371) +++ config/mips/mips.c (working copy) @@ -8579,7 +8579,7 @@ push_topmost_sequence (); for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) - if (USEFUL_INSN_P (insn) + if (USEFUL_INSN_P (insn) && !DEBUG_INSN_P (insn) && (get_attr_got (insn) != GOT_UNSET || mips_small_data_pattern_p (PATTERN (insn)))) { With it, my testcase passed and the cross-build ran until it hit missing target headers. I'm now continuing the really bootstrap and will submit it once that finishes. Thanks alot. Rainer -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41240