assertion failure in coff-i386.c on .code16
Pavel Roskin
pavel_roskinATgeocities.com
Fri Sep 17 06:23:00 GMT 1999
Hello, Alan!
> > While configuring GNU GRUB I have noticed that "as" cannot compile the
> > following file:
> >
> > .code16
> > l1: addr32
> > movb %al, l1
> >
> > D:\home\proski\src\bfd>as test.s
> > test.s: Assembler messages:
> > test.s:2: Warning: stand-alone `addr32' prefix
> > as: bfd assertion fail coff-i386.c:498
> > test.s:3: Error: Cannot represent relocation type BFD_RELOC_16
>
> .code16 on ix86 works properly only for elf at the moment. It looks
> fairly easy to fix for coff though, but I'm not sure whether we need to
> add R_DIR16 support, and use that for the BFD_RELOC_16 case, or whether we
> should use R_RELWORD. To round out support, I suppose we need
> to add R_DIR8 (type 0??) or use R_RELBYTE. I'm no coff expert. Ian?
Just in case I was not clear the first time.
I don't need 16-bit relocation in COFF, but I do need .code16
Just replace assert() with an error message.
It maybe either
"16-bit relocation is not yet supported for COFF targets"
or
"16-bit relocation is impossible in COFF object files"
dependent on what is true :-)
But please don't disable ".code16" for COFF !!!
Pavel Roskin
More information about the Binutils
mailing list