> 
> 
> alignment of Int with size 4 is 4
> alignment of Short with size 2 is 2
> alignment of Double with size 8 is 4
> alignment of LongLong with size 8 is 4
> alignment of Float with size 4 is 4
> alignment of Char with size 1 is 1
> 
> looks like the packing is dependent upon the arg size if i read this 
> right.  i am not that conversant with c (i program in Ada) but if i 
> read this right, char is not padded at all, short is padded with one 
> byte, and both long and longlong with 3. am i reading this correctly?

Yes.
However, what counts is not the padding that's inserted, but the resulting 
alignment of the int, char, short, double, etc. variable in the struct.

> 
> #define ALIGNMENT_OF_SIZE(S)    (((S>1)?2:1))
>  
> is what is defined for 68k which is obviously not correct for this 
> result.  can ou give me a macro that works for this result? thanks 
> for any insight.
> 

Looks like it's identical to the x86: 
+ types of sizes less than a word are aligned to their respective size; 
+ types of sizes greater than a word are aligned to a word boundary.

You should use this macro

#define ALIGNMENT_OF_SIZE(S)    ((S)>4?4:(S))

which is the same as the one used for the x86.

The segfault must be caused by something else.
What does your sysdepCallMethod() look like?

        - Godmar

Reply via email to