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]

Reply via email to