Skip to content

link-failure optlink crash EIP=00000000 #33

@dlang-bugzilla-migration

Description

Issue.7960.attachement.1.repro.zip
Transferred from: https://issues.dlang.org/show_bug.cgi?id=7960

User @Ingrater reported (2012-Apr-21 02:31:52):

Created attachment 1098
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.

User @Ingrater responded (2012-Apr-21 02:34:34):

I'm going to try adding a reduced source to reproduce the issue.

User @rainers responded (2013-Nov-23 02:35:25):

Maybe related: #11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions