On Mon, 9 Sep 2002, Andy Dougherty wrote: > 64-bit-int builds appear to be broken. This is from Linux/SPARC with > INTVAL='long long'. This configuration used to work quite recently.
The immediate culprit was config/gen/core_pmcs.pl, which now puts out prototypes of extern void Parrot_xxx_class_init(int); while classes/pmc2c.pl is using extern void Parrot_xxx_class_init(INTVAL); This won't necessarily work if sizeof(INTVAL) != sizeof(INT). (And since the prototypes are hidden in the C file, not in a shared header file, the compiler doesn't warn about them.) Upon reflection, however, since the number is used as an entry to look up in an array, I think 'int' is indeed the appropriate type, so I've changed classes/pmc2c.pl to match. This should reclaim the 64-bit tinderboxes, unless someone else has gone and broken them again in a different way :-(. --- parrot-orig/classes/pmc2c.pl Thu Sep 5 14:23:01 2002 +++ parrot-andy/classes/pmc2c.pl Tue Sep 10 11:54:51 2002 @@ -310,11 +310,11 @@ my $initline = 1+count_newlines($OUT)+1; $OUT .= qq(#line $initline "$cfile"\n) unless $suppress_lines; $HOUT .= <<EOH; -void $initname (INTVAL); +void $initname (int); EOH $OUT .= <<EOC; -void $initname (INTVAL entry) { +void $initname (int entry) { struct _vtable temp_base_vtable = { NULL, -- Andy Dougherty [EMAIL PROTECTED]