Re: 2.6.21-mm1 -- x86 verify_cpu.S compile failure

Andy Whitcroft
2007-05-09T16:07:50Z

Andi Kleen wrote:
> On Tue, May 08, 2007 at 10:46:20AM +0100, Andy Whitcroft wrote:
>> We are seeing the following compile error on older x86 installs:
>>
>> arch/i386/kernel/verify_cpu.S: Assembler messages:
>> arch/i386/kernel/verify_cpu.S:13: Error: `(%esp)' is
>> not a valid 16 bit base/index expression
>>
>> Seems to come from:
>>
>> x86_64-mm-i386-verify-cpu
>>
>> Compiler:
>>
>> gcc version 3.3.4 (Debian 1:3.3.4-3)
>
> Your compiler must be a brother in spirit of Andrew's vaio.
>
> Does this patch help?
>
> -Andi
>
>
> Index: linux/arch/i386/kernel/verify_cpu.S
> ===================================================================
> --- linux.orig/arch/i386/kernel/verify_cpu.S
> +++ linux/arch/i386/kernel/verify_cpu.S
> @@ -10,7 +10,9 @@ verify_cpu:
>
> #if CONFIG_X86_MINIMUM_CPU_MODEL >= 4
> pushfl
> - orl $(1<<18),(%esp) # try setting AC
> + pop %eax
> + orl $(1<<18),%eax # try setting AC
> + push %eax
> popfl
> pushfl
> popl %eax
>
>

Yep that gets us past the compile problems. Of course she then blows up
cause SLUB does not work on x86 in that version ... but ...

Acked-by: Andy Whitcroft <apw@shadowen.org>

-apw