Building (a cross compiler) for ARM Linux currently breaks whilst building GLIBC. I believe this is due to the following patch (r159321):
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00766.html >From this commit, the ARM build initially failed in a way identical to #44197 (an ICE in varpool_remove_node). Unfortunately the patch in that PR does not fix the issue for ARM: from r159629, I get the following error whilst building GLIBC instead: ../include/stdlib.h:34:1: internal compiler error: in set_user_assembler_libfunc, at optabs.c:6104 which is: rtx set_user_assembler_libfunc (const char *name, const char *asmspec) { tree id, decl; void **slot; hashval_t hash; id = get_identifier (name); hash = htab_hash_string (name); slot = htab_find_slot_with_hash (libfunc_decls, id, hash, NO_INSERT); gcc_assert (slot); // <--- here decl = (tree) *slot; set_user_assembler_name (decl, asmspec); return XEXP (DECL_RTL (decl), 0); } In the attached test case, if abort is renamed to abort2, the crash goes away, which suggests the problem is related to the special handling of abort (and friends) in builtins.c:set_builtin_user_assembler_name. To reproduce: /path/to/cc1 -fpreprocessed init-first.i -- Summary: [4.6 regression] ICE in set_user_assembler_libfunc Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: critical Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jules at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44291