[Nasm-bugs] [Bug 3392358] New: NASM "forgets" macros and other defines.

no-reply at bugzilla-nasm.gorcunov.org no-reply at bugzilla-nasm.gorcunov.org
Mon Jun 27 09:33:04 PDT 2016


http://bugzilla.nasm.us/show_bug.cgi?id=3392358

            Bug ID: 3392358
           Summary: NASM "forgets" macros and other defines.
           Product: NASM
           Version: unspecified
          Hardware: PC
                OS: Windows
            Status: OPEN
          Severity: normal
          Priority: Medium
         Component: Assembler
          Assignee: nobody at nasm.us
          Reporter: krille_n_ at hotmail.com
                CC: gorcunov at gmail.com, hpa at zytor.com, nasm-bugs at nasm.us

Created attachment 411563
  --> http://bugzilla.nasm.us/attachment.cgi?id=411563&action=edit
Patch that will trigger this bug in NASM

I was adding a size optimization to the latest revision (r590) of XTIDE
Universal BIOS (http://xtideuniversalbios.org) and after adding a simple change
(attached here as a patch) NASM emits some strange error messages when doing a
'make'. For example, this is the output from running 'make all';

C:\Projects\XUB\XTIDE_Universal_BIOS>make all
Deleted "(*.*)" from "Build/"
Src/Initialization/DetectPrint.asm:249: error: symbol `.. at 304.Return' undefined
../Assembly_Library/Inc/Emulate.inc:282: ... from macro `eCMOVNS' defined here
Src/VariablesAndDPTs/CompatibleDPT.asm:230: error: symbol `.. at 312.Return'
undefi
ned
../Assembly_Library/Inc/Emulate.inc:262: ... from macro `eCMOVE' defined here
../Assembly_Library/Inc/Emulate.inc:250: ... from macro `eCMOVZ' defined here
Src/Handlers/Int19h/BootSector.asm:105: error: symbol `.. at 322.Return' undefined
../Assembly_Library/Inc/Emulate.inc:276: ... from macro `eCMOVS' defined here
Src/Device/IDE/IdeCommand.asm:230: error: symbol `.. at 357.Return' undefined
../Assembly_Library/Inc/Emulate.inc:262: ... from macro `eCMOVE' defined here
../Assembly_Library/Inc/Emulate.inc:250: ... from macro `eCMOVZ' defined here
Src/Device/IDE/IdeIrq.asm:73: error: symbol `.. at 418.NextInstruction' undefined
../Assembly_Library/Inc/Delay.inc:19: ... from macro `JMP_DELAY' defined here
Src/Handlers/Int13h/AH0h_HReset.asm:95: error: symbol `.. at 448.Return' undefined
../Assembly_Library/Inc/Emulate.inc:262: ... from macro `eCMOVE' defined here
../Assembly_Library/Inc/Emulate.inc:250: ... from macro `eCMOVZ' defined here
Src/Handlers/Int13h/AH8h_HParams.asm:155: error: symbol `.. at 465.Return'
undefine
d
../Assembly_Library/Inc/Math.inc:23: ... from macro `MIN_U' defined here
mingw32-make: *** [xt_tiny] Error 1

The attached patch will work as-is but changing it to use the eSHL_IM macro
instead of the shl-instruction will cause NASM to emit the above error
messages.

I discovered the problem with NASM version 2.11.02 where the error messages
were mostly, if not all, of the 'error: symbol .. at xxx.Return undefined' type,
then upgraded to 2.12.01 and 2.12.02rc9 and the only change was that the error
messages are now, mostly, about macros (as can be seen above).

Thanks for all your hard work with this great assembler!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are watching all bug changes.


More information about the Nasm-bugs mailing list