On Fri, Feb 08, 2008 at 09:20:30PM +0100, Arnaud Charlet wrote: > I can confirm that I had no troubles building i686-linux with latest > sources. > > I suspect a miscompilation of the previous stage compiler, possibly caused > by a bad initial compiler used to start the bootstrap, or the use of > "dangerous" compiler option during bootstrap. > > I'd suggest trying again with the default switches to see if it makes a > difference.
My patch http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00184.html breaks Ada on ia32. My patch changes long long alignment on ia32 from 8 byte to 4 byte, as the psABI suggested. We alreay align long long to 4 byte in structure: sh-3.2$ cat x.c #include <stdio.h> struct foo { int x; long long y; }; struct bar { int x; long long y [2]; }; int main () { printf ("%d\n", __builtin_offsetof (struct foo, y)); printf ("%d\n", __builtin_offsetof (struct bar, y)); } bash-3.2$ gcc -m32 x.c bash-3.2$ ./a.out 4 4 bash-3.2$ gcc -m64 x.c bash-3.2$ ./a.out 8 8 bash-3.2$ My patch will only change alignment for long long scalars and arrays. What alignments do Ada expect for long long on ia32? Does Ada expect 8 byte alignments for struct/record? H.J.