> On Wed, Jan 25, 2006 at 01:01:17PM -0800, Steve Ellcey wrote: > > > > I took Zack's advice and put all the includes from insn-attrtab.c into > > insn-automata.c. My current problem is that I get: > > > > | insn-automata.c: In function 'print_reservation': > > | insn-automata.c:22466: warning: string length '669' is greater than the > > length ' > > | 509' ISO C89 compilers are required to support > > | make[3]: *** [insn-automata.o] Error 1 > > | make[3]: Target `all' not remade because of errors. > > Odd. I don't see how my changes could possibly have triggered that.
It seems to be coming from the reservation_names array set up in print_reservation. One of the entries is: "(1_0m_bs,1_m_cont)|(1_0mi_bs,1_mi_cont|nothing)|(1_0mm_bs,1_mm_cont)|(1_0mf_bs,1_mf_cont|nothing)|(1_0b_bs,1_b_cont|nothing)|(1_0bb_bs,1_bb_cont|nothing)|(1_0mb_bs,1_mb_cont|nothing)|(1_1m_bs,1_m_cont)|(1_1mi_bs,1_mi_cont|nothing)|(1_1mm_bs,1_mm_cont)|(1_1mf_bs,1_mf_cont|nothing)|(1_1b_bs,1_b_cont|nothing)|(1_1bb_bs,1_bb_cont|nothing)|(1_1mb_bs,1_mb_cont|nothing)|(1_m_cont_only,1_m_cont|nothing)|(1_b_cont_only,1_b_cont|nothing)|(1_mi_cont_only,1_mi_cont|nothing)|(1_mm_cont_only,1_mm_cont|nothing)|(1_mf_cont_only,1_mf_cont|nothing)|(1_mb_cont_only,1_mb_cont|nothing)|(1_bb_cont_only,1_bb_cont|nothing)|(1_m_stop,1_0mmi_cont|nothing)|(1_mi_stop,1_0mii_cont|nothing)" This in turn seems to be coming from config/ia64/itanium1.md: (define_insn_reservation "1_pre_cycle" 0 (and (and (eq_attr "cpu" "itanium") (eq_attr "itanium_class" "pre_cycle")) (eq (symbol_ref "bundling_p") (const_int 0))) "(1_0m_bs, 1_m_cont) \ | (1_0mi_bs, (1_mi_cont|nothing)) \ | (1_0mm_bs, 1_mm_cont) \ | (1_0mf_bs, (1_mf_cont|nothing)) \ | (1_0b_bs, (1_b_cont|nothing)) \ | (1_0bb_bs, (1_bb_cont|nothing)) \ | (1_0mb_bs, (1_mb_cont|nothing)) \ | (1_1m_bs, 1_m_cont) \ | (1_1mi_bs, (1_mi_cont|nothing)) \ | (1_1mm_bs, 1_mm_cont) \ | (1_1mf_bs, (1_mf_cont|nothing)) \ | (1_1b_bs, (1_b_cont|nothing)) \ | (1_1bb_bs, (1_bb_cont|nothing)) \ | (1_1mb_bs, (1_mb_cont|nothing)) \ | (1_m_cont_only, (1_m_cont|nothing)) \ | (1_b_cont_only, (1_b_cont|nothing)) \ | (1_mi_cont_only, (1_mi_cont|nothing)) \ | (1_mm_cont_only, (1_mm_cont|nothing)) \ | (1_mf_cont_only, (1_mf_cont|nothing)) \ | (1_mb_cont_only, (1_mb_cont|nothing)) \ | (1_bb_cont_only, (1_bb_cont|nothing)) \ | (1_m_stop, (1_0mmi_cont|nothing)) \ | (1_mi_stop, (1_0mii_cont|nothing))") I am not sure why this long string was not a problem before but is now. > > Here is the patch I used: > > Um. I think you sent the wrong patch. Woops, I meant to include: Index: Makefile.in =================================================================== --- Makefile.in (revision 110226) +++ Makefile.in (working copy) @@ -2640,7 +2640,8 @@ insn-attrtab.o : insn-attrtab.c $(CONFIG $(TM_H) $(RTL_H) $(REGS_H) real.h output.h $(INSN_ATTR_H) \ insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H) insn-automata.o : insn-automata.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ - $(TM_H) $(RTL_H) $(INSN_ATTR_H) + $(TM_H) $(RTL_H) $(REGS_H) real.h output.h $(INSN_ATTR_H) \ + insn-config.h toplev.h $(RECOG_H) $(TM_P_H) $(FLAGS_H) insn-emit.o : insn-emit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) $(EXPR_H) real.h output.h insn-config.h $(OPTABS_H) \ reload.h $(RECOG_H) toplev.h $(FUNCTION_H) $(FLAGS_H) hard-reg-set.h \ Index: genautomata.c =================================================================== --- genautomata.c (revision 110226) +++ genautomata.c (working copy) @@ -9255,7 +9257,16 @@ main (int argc, char **argv) "#include \"coretypes.h\"\n" "#include \"tm.h\"\n" "#include \"rtl.h\"\n" - "#include \"insn-attr.h\"\n"); + "#include \"tm_p.h\"\n" + "#include \"insn-config.h\"\n" + "#include \"recog.h\"\n" + "#include \"regs.h\"\n" + "#include \"real.h\"\n" + "#include \"output.h\"\n" + "#include \"insn-attr.h\"\n" + "#include \"toplev.h\"\n" + "#include \"flags.h\"\n" + "#include \"function.h\"\n"); if (VEC_length (decl_t, decls) > 0) {