Andi Kleen wrote:
> 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?

Sure, will do that now and let you know.

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

Reply via email to