Object alignment, was: cygwin failures - assertion "!(addr & FLAGS)" failed:
Sun May 5 23:44:00 GMT 2002
On Sunday 05 May 2002 21:49, Tom Tromey wrote:
> >>>>> "Tim" == Tim Prince <email@example.com> writes:
> Tim> The binutils alignment parameter in coff-i386.c is set to 4-byte
> Tim> alignment. 4-byte alignment also is the default for gcc -Os, at
> Tim> least from gcc-3.1. Cases have been produced where gcc-3.1
> Tim> failed to give 16-byte alignment even with -O2, unless
> Tim> -mpreferred-stack-boundary=4 was specified.
> Are you talking about only the alignment of the stack? I don't think
> that should matter to libgcj. There used to be one place where we
> stack-allocated an object, but I believe that now there aren't any.
> All that matters to us is the alignment of statically allocated
> object, and objects created by the GC.
Stack alignment matters when you use <xmmintrin.h>. I didn't take the
question as being one where gcj and libgcj were to be built without regard to
other consequences, although I'm surprised if gcj doesn't allocate anything
on stack. Static objects are under the control of the alignment for which
binutils is built, so you don't get 8-byte alignment of statics with the
stock cygwin binutils build.
More information about the Java