OPTLINK needs to die.

Max Samukha samukha at voliacable.com.removethis
Tue Feb 17 07:14:50 PST 2009


On Tue, 17 Feb 2009 04:16:35 -0800, Walter Bright
<newshound1 at digitalmars.com> wrote:

>Tom S wrote:
>> So it seems that Main.d would have to reference symbols from each module 
>> in the program. Ouch.
>
>I found that problem, and fixed it.
>
>> Additionally, using such an approach breaks any possibility to use 
>> incremental compilation.
>
>It depends. If instead of a.obj, b.obj, and c.obj, think a.lib, b.lib, 
>c.lib, you can incrementally compile.
>
>> So there's also the option of having a .lib per 
>> .d file and linking that all together. So I've just tried it:
>> dmd -c Main.d
>> dmd -lib Mod.d
>> dmd -lib Mod2.d
>> dmd Main.obj Mod.lib Mod2.d
>> ... and OPTLINK crashed with the familiar MsgBox containing register 
>> values.
>
>Can't repro it. I'm pretty sure it has something to do with how 
>threading works on newer processors (mine is old).

Probably you typed literally. The last one should be 'dmd Main.obj
Mod.lib Mod2.lib'
>
>Vendor string:    GenuineIntel
>Processor string: Intel(R) Pentium(R) 4 CPU 1.60GHz
>Signature:        Family=15 Model=1 Stepping=2
>Features:         MMX FXSR SSE SSE2 HTT
>Multithreading:   1 threads / 1 cores
>
>What's your CPU?

>
>> While we're at incremental compilation, this bug: 
>> http://d.puremagic.com/issues/show_bug.cgi?id=1629 often kills it for me 
>> and it's been around for a few whiles already.
>
>Ok.

Checked on an old Celeron and Athlon. Both fail



More information about the Digitalmars-d mailing list