This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
genmddeps s390 bootstrap failure
- From: Andreas Krebbel <krebbel1 at de dot ibm dot com>
- To: gcc at gcc dot gnu dot org
- Cc: ian at airs dot com
- Date: Wed, 18 May 2005 10:02:46 +0200
- Subject: genmddeps s390 bootstrap failure
Hi,
mainline bootstrap on s390 currently fails with:
build/genmddeps ../../gcc/config/s390/s390.md > tmp-mddeps
../../gcc/config/s390/s390.md:2041: undefined attribute 'DBL<D0>' used for mode
../../gcc/config/s390/s390.md:2041: following context is `'
DBL is a macro attribute defined as:
(define_mode_attr DBL [(DI "TI") (SI "DI")])
The pattern in question is:
(define_insn "*clrmem_long"
[(clobber (match_operand:<DBL> 0 "register_operand" "=d"))
(set (mem:BLK (subreg:P (match_operand:<DBL> 2 "register_operand" "0") 0))
(const_int 0))
(use (match_dup 2))
(use (match_operand:<DBL> 1 "register_operand" "d"))
(clobber (reg:CC CC_REGNUM))]
""
"mvcle\t%0,%1,0\;jo\t.-4"
[(set_attr "length" "8")
(set_attr "type" "vs")])
I think the problem lies in genmddeps. genmddeps seems to randomly complain about
uses of the DBL attribute. Always with an again randomly appended character at the
end of the macro name in the error message.
At first glance it appears like a string null termination problem so I've added:
Index: gcc/read-rtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/read-rtl.c,v
retrieving revision 1.38
diff -p -c -r1.38 read-rtl.c
*** gcc/read-rtl.c 17 May 2005 12:50:32 -0000 1.38
--- gcc/read-rtl.c 18 May 2005 08:00:47 -0000
*************** mode_attr_index (struct map_value **mode
*** 323,328 ****
--- 323,330 ----
obstack_grow (&string_obstack, string + 1, strlen (string) - 2);
p = (char *) obstack_finish (&string_obstack);
+ p[strlen (string) - 2] = 0;
+
mv = XNEW (struct map_value);
mv->number = *mode_maps == 0 ? 0 : (*mode_maps)->number + 1;
mv->string = p;
... which takes s390 back to bootstrap land. This is probably not the proper fix
but it maybe helps debugging that issue.
Any ideas what goes wrong here?!
Bye,
-Andreas-