Compiling my own 'yasm' executable

Peter Johnson peter at tortall.net
Wed May 31 23:41:33 PDT 2006


On Wed, 31 May 2006, Robert Riebisch wrote:

> I found another small 'nasm'-thing, that 'yasm' doesn't support:
>  .hd:      Db '1' - 80h, ':', ' ' + 80h
> or
>  badtext:  Db 'Bad partition table!', ' ' + 80h
> This will result in error message "label or instruction expected at
> start of line".
>
> Seems like '' constants mathematics are not allowed so far.

Good catch!  The reason for this is that it's hard in the parser to avoid 
a conflict between charconst+arith and strings.  As the "true" fix is 
somewhat hard (to handle multi-char constants), I've commited an initially 
easier fix (in r1548) that fixes the single-character case, as this seems 
to be the most likely use.

> Another problem:
> I cannot build our http://www.bttr-software.de/products/bootmgr/#down
> :-(
>
> I get "Exiting due to signal SIGABRT" with my minimized
> yasm-r1546.tar.gz DJGPP build or with yasm-r1546-dos.exe/yasm-r1546.exe
> it is:
>
> ***
>        c:\tmp\2\yasm.exe -o..\..\bootmgr.com  bootmgr.asm
> INTERNAL ERROR at libyasm/bytecode.c, line 284: written length does not
> match op
> timized length
> Abort!
> ***

Unfortunately this one is rather more difficult to fix :(.  It's an 
optimizer bug exhibiting itself in a nasty way.  I'm working on a new 
optimizer but it's going to be a little while until it's finished.  While 
it's possible to work around this by making all of your short jumps near 
jumps, I doubt that's a palatable solution for you.

Thanks,
Peter


More information about the yasm-devel mailing list