>
>
> 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