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