[Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B (too many fixups)

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Nov 3 10:38:44 PST 2009


http://d.puremagic.com/issues/show_bug.cgi?id=424



--- Comment #29 from Walter Bright <bugzilla at digitalmars.com> 2009-11-03 10:38:43 PST ---
Optlink is written entirely in rather impenetrable assembler code, and is
resistant to understanding and modification. Hence, over the last few months
I've been very slowly converting it to C, function by function.

One might ask, why not convert it to D? The answer is that I don't have a good
test suite for optlink, so I have to be very very careful to not make a mistake
in the translation. That means do one function at a time, rebuild, and retest,
which means the compiled C code has to match the segment, naming and calling
conventions used in optlink. I made a custom version of the dmc compiler to do
this. Also, C can be made to work without any runtime library support at all,
and since optlink does not use the C runtime library, this is useful.

Once it is in C and working, it will be trivial to translate it to D and start
rewriting it.

Anyhow, during this process I stumbled upon what the problem was. Optlink was
apparently trying to account for some Borland obscure extension to the OMF.
Remove this, and it works, although presumably it will no longer link Borland
object files (who cares!).

The fix will go out in the next update, if you need it sooner please email me.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list