Unilink - alternative linker for win32/64, DMD OMF extensions?

Jonathan M Davis jmdavisProg at gmx.com
Sat Feb 12 23:07:34 PST 2011


On Saturday 12 February 2011 17:09:36 Walter Bright wrote:
> Akakima wrote:
> >> Making optlink open source won't make any difference. Few are skilled at
> >> asm anymore, and likely none of them would want to work on optlink for
> >> free.
> > 
> > That's true. But the real problem is not optlink. Optlink is a very good
> > linker.
> > 
> > The problem is OMF. 11 years ago OMF was a good choice. But not anymore.
> > 
> > I know you are a competent (probably very competent) compiler writer. You
> > modified D on linux, so it produce ELF. How much time would that take to
> > modify DMD so it produce COFF ? Given all the bad publicity OMF gives to
> > D, it should be viewed as a good choice.
> > 
> > There are many (not much), but there are open source linkers. Of course
> > ld is not as fast as optlink, but it's good. And there is a faster
> > version made by the project Ultimate++ IDE.
> > 
> > Going to COFF would have a lot of advantages for everybody and for D.
> > 
> > Do you agree ?
> 
> Changing the object module format is not sufficient. The symbolic debug
> info would have to be changed (and Microsoft's is undocumented) and then
> there's the dependency on Microsoft's C runtime library if linking with VC
> generated object files.

That's a problem for some code and pretty much an absolute necessity for other 
code. Any project that I'd do at work would _have_ to use Microsoft's runtime 
library. In the long run, we really do need a solution which is compatible with 
Microsoft's compiler. Without that, there are a lot of programmers who just 
won't be able to use D in any project which would be using C or C++ code, and 
not being able to use any C or C++ code in D can be a major problem - especially 
if you're trying to use D with an existing code base.

So, I really don't know what the best way to handle all of this is, and I really 
don't know all that much about linkers, but the fact that you can't link D code 
with C code generated by Microsoft's compiler is crippling for Windows 
development.

- Jonathan M Davis


More information about the Digitalmars-d mailing list