Please get rid of this nondescript error message and
replace it with something understandable or just omit
it altogether.
It may mean something to you developers but it means
nothing to many of us down here in the trenches.
Traditionally NASM required two passes over the the
input source code: one to figure out how big all the
code and data is, and one to actually emit it.
However, input source code which makes forward re-
ferences -- e.g. "emit X bytes" where X isn't known
until afterwards -- requires more than two passes.
(To be precise: multiple first passes.)
Hence NASM was updated to support multiple passes.
Take a look at the -O option for details.
Now, if you specify more passes than are actually
needed, then NASM can skip the unnecessary ones.
By contrast, it will tell you when you didn't give
it enough passes, and it cannot perform more passes
than you told it to. That's what a phase error is:
in essence NASM knows that it needs at least another
pass, but it won't just go out and perform it.
That said, the error message could be re-phrased to
say "phase error: try using -On with a larger n".
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Phase error between passes can be caused by a number of things, including some odd uses of the preprocessor. It's not likely to get replaced any time soon.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Logged In: YES
user_id=804543
Traditionally NASM required two passes over the the
input source code: one to figure out how big all the
code and data is, and one to actually emit it.
However, input source code which makes forward re-
ferences -- e.g. "emit X bytes" where X isn't known
until afterwards -- requires more than two passes.
(To be precise: multiple first passes.)
Hence NASM was updated to support multiple passes.
Take a look at the -O option for details.
Now, if you specify more passes than are actually
needed, then NASM can skip the unnecessary ones.
By contrast, it will tell you when you didn't give
it enough passes, and it cannot perform more passes
than you told it to. That's what a phase error is:
in essence NASM knows that it needs at least another
pass, but it won't just go out and perform it.
That said, the error message could be re-phrased to
say "phase error: try using -On with a larger n".
Logged In: YES
user_id=58697
Originator: NO
Phase error between passes can be caused by a number of things, including some odd uses of the preprocessor. It's not likely to get replaced any time soon.