On Thu, Aug 23, 2007 at 01:03:18PM +0100, Andy Whitcroft wrote: > It seems that this is a problem caused by the way we check for > compiler options in x86_64. Each compiler flag is checked for > individually and if available added to cflags-y, later that is > added to CFLAGS. However, this means that each flag is checked > in total isolation. On x86_64 (on this compiler at least) the > -mpreferred-stack-boundary and -m{32,64} flags are actually mutually > dependant, the alignment constraints vary based on the word size. > This leads to the compile failure: > > # gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO > # echo $? > 0 > # gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO > /dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12 > # echo $? > 1 > > In the main Makefile we always add each flag directly to CFLAGS > which means we check them all in combination, perhaps this is > prudent here also? Either way I suspect that changing the -m64 > check to add itself directly to CFLAGS will fix this us.
Ok that makes sense. Most people don't see it because they don't need -m64. I fixed it up with ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cflags-probe and then ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/less-stack-alignment (replacement for the mm patch) Can you test? -Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/