Re: [x86] Build error at arch/x86/boot/bioscall.S

From: H. Peter Anvin
Date: Tue Jun 16 2009 - 14:33:56 EST


Amerigo Wang wrote:
>
> Huh?
> 16 bit mode doesn't allow 'esp' to be used as a base/index register?
>

16-bit mode does, but gas used to be utterly broken with regards to
32-bit address overrides. This has been fixed, but apparently these
old, broken versions of gas are still out there festering in the
environment.

One possible workaround is to switch .code16 to .code16gcc at the top of
the file; another is:

- movw 68(%esp), %di
+ movw %sp, %di
+ movw 68(%di), %di

Does changing .code16 to .code16gcc work for you?

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/