On Sun, 27 Apr 2008, chromatic wrote:

> Here's another proposed patch for testing on various platforms.  I'm trying 
> to 
> get rid of some dodgy casts (which likely don't help C++ and processors with 
> stricter alignment than 32-bit x86).  I'd also like to remove unnecessary 
> members from a few structs.  This is the next step.
> 
> Are there any weird errors or unexpected crashes on anything more exotic than 
> 32-bit x86 GNU/Linux?

>  /* Parrot Object - base class for all others */
>  typedef struct pobj_t {
> +    Parrot_UInt flags;
>      UnionVal u;
> -    Parrot_UInt flags;
>  } pobj_t;

On 32-bit SPARC, at least, that's going to introduce a wasted 4 bytes of
padding.  (UnionVal will be aligned on an 8-byte boundary, but
Parrot_Uint is only 4 bytes long.)  This is, of course, not an error in
and of itself, but if any of those "dodgy" casts assume no padding, then
there will be an error.

I'll try building, but since there are 4 permutations to try (cc and gcc,
and with and without this patch) and since each build takes 1 to 2 hours
if everything goes well, it won't be until tomorrow at the earliest that
I can report anything back.  (Longer, if manual intervention is required
to fix unrelated errors.)

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to