On Tue, Dec 25, 2007 at 04:41:27AM -0500, Francis Gendreau wrote:
>             GNU assembler 2.15 [FreeBSD] 2004-05-23
> [...]
> gcc -Iboot/i386/pc -I./boot/i386/pc -I. -Iinclude -I./include -Wall -W
> -DASM_FILE=1  -nostdinc -fno-builtin -m32 -MD -c -o
> lnxboot_img-boot_i386_pc_lnxboot.o boot/i386/pc/lnxboot.S
> lnxboot.S: Assembler messages:
> lnxboot.S:49: Error: `0x200+data_start - data_next(%ebx,%eax)' is not a
> valid 16 bit base/index expression
> lnxboot.S:264: Error: `(%esi,%eax)' is not a valid 16 bit base/index
> expression
> lnxboot.S:265: Error: `(%edi,%eax)' is not a valid 16 bit base/index
> expression
> gmake: *** [lnxboot_img-boot_i386_pc_lnxboot.o] Error 1
> 
> I hope someone here may have a clue how to fix the problem. I ignore
> almost everything about the Assembly language.

I don't see anything wrong in the code (`(%esi,%eax)' is indeed not a valid
16 bit base/index, but it AFAICT it isn't meant to be).

However, your binutils are a bit old.  Perhaps this is a bug they fixed ?

Anyway, maybe this solves the problem for you:

+       .code32
        leal    0x200 + data_start - data_next(%ebx,%eax), %eax
+       .code16

(please report if it does)

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to