Created attachment 1098 [details] repro case This crash might have multiple causes. I compile my project with: dmd -g -unittest -debug -X -Xf"Debug\thBase.json" -IC:\Users\Benjamin\Documents\d-projects\druntime\import -IC:\Users\Benjamin\Documents\d-projects\phobos -version=NOGCSAFE -version=thBase_test -deps="Debug\thBase.dep" -of"Debug\thBase.exe_cv" -map "Debug\thBase.map" -L/NOMAP -defaultlib=phobosnogc -debuglib=phobosnogc gcstub.obj -v @Debug\thBase.build.rsp Dmd launches optlink with: link.exe gcstub+"Debug\thBase","Debug\thBase.exe_cv","Debug\thBase.map",user32+kernel32/m/co/noi/NOMAP; Which causes optlink to crash with EIP=00000000 The first thing which might be a bug in dmd is, that the phobosnogc library is missing in the link command which I specified both with defaultlib and debuglib. If I manually specifiy the phobosnogc.lib in the build command dmd generates the following link command: link.exe gcstub+"Debug\thBase","Debug\thBase.exe_cv","Debug\thBase.map","phobosnogc.lib"+user32+kernel32/m/co/noi/NOMAP; Which still causes optlink to crash with EIP=00000000. If I however let dmd only compile and then manually link with: link.exe "phobosnogc"+gcstub+"Debug\thBase","Debug\thBase.exe_cv","Debug\thBase.map",user32+kernel32/m/co/noi/NOMAP; Optlink links everything fine and the executable works just as it should. So there seem to be 3 different issues here: 1) dmd does not pass the library specified with debuglib defaultlib to optlink 2) Optlink crashes with EIP=00000000 3) The order in which you pass the library files to optlink changes optlink behaviour. This issue exists with dmd 2.058 and optlink 8.00.12. See attached repro case.
I'm going to try adding a reduced source to reproduce the issue.
Maybe related: https://github.com/DigitalMars/optlink/pull/11
Issue transferred to: https://github.com/DigitalMars/optlink/issues/33