On Mon, Feb 21, 2011 at 03:58:32PM -0800, Yuri wrote: > On 02/21/2011 15:38, Joerg Sonnenberger wrote: > >That's a major difference. The Linux people decided a while ago that > >stack alignment should be 16 Byte. GCC effectively forces that down > >everyone's throat because until at least GCC 4.2 or 4.3, it can't > >correctly realign the stack and just fails miserable. I would be > >surprised if it was a conscious decision for the Solaris either. > > > > I filed gcc PR asking gcc to revert their behavior back to prescribed by > documentation: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47842
The i386 ABI was de-facto changed to require 16-byte stack alignment. The change is reasonable, both due to modern CPU cache behaviour, and to not put a block on the usage of the new CPU features (SSE instructions sets). There was a combination of bugs in gcc/glibc/bsd libc etc that made this not a reliable feature. I think there is no point of moving back to 4-byte alignment.
pgptQV11S5x0S.pgp
Description: PGP signature