Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lld: Native PDB Error: The entry already exists. The specified module already exists #19518

Open
dlangBugzillaToGithub opened this issue Dec 19, 2018 · 4 comments

Comments

@dlangBugzillaToGithub
Copy link

Andre reported this on 2018-12-19T20:17:42Z

Transferred from https://issues.dlang.org/show_bug.cgi?id=19503

CC List

  • Seb
  • kinke

Description

Created attachment 1720
testcase

Execute "dub test --arch x86_64" for attached example. LLD linker will fail with:


C:\Users\pc\Desktop\testcase>dub test --arch x86_64
Running custom 'unittest' configuration.
Performing "unittest" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
d-unit 0.9.0: target for configuration "library" is up to date.
testcase ~master: building configuration "unittest"...
Linking...
Native PDB Error: The entry already exists.  The specified module already exists
Error: linker exited with status 1
C:\D\dmd2\windows\bin\dmd.exe failed with exit code 1.

Very often also NOLOGO error is shown:
C:\Users\pc\Desktop\testcase>dub test --arch x86_64
Running custom 'unittest' configuration.
Performing "unittest" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
d-unit 0.9.0: target for configuration "library" is up to date.
testcase ~master: building configuration "unittest"...
Linking...
Error: module `NOLOGO` is in file '\NOLOGO.d' which cannot be read
import path[0] = C:\D\dmd2\windows\bin\..\..\src\phobos
import path[1] = C:\D\dmd2\windows\bin\..\..\src\druntime\import
Error: linker exited with status 1
C:\D\dmd2\windows\bin\dmd.exe failed with exit code 1.


DMD32 D Compiler v2.084.0-beta.1

!!!There are attachements in the bugzilla issue that have not been copied over!!!

@dlangBugzillaToGithub
Copy link
Author

kinke commented on 2018-12-19T22:50:07Z

The PDB issue is likely fixed with a recent LLD version; the 7z archive of v2.084.0-beta.1 still ships with v5.0.1, although https://github.com/dlang/installer/pull/351 was merged 1.5 months ago (upgrade to v7.0, the first LLD version considered production-ready for Windows targets).

As to NOLOGO, that's rather strange; it's supposed to be an LLD flag (`-L=/NOLOGO` in DMD command line). The error seems to indicate that the DMD command line (issued by dub) is the problem, not DMD itself. So running dub with `-v` to output the command lines would probably shed some light on this.

@dlangBugzillaToGithub
Copy link
Author

greeenify commented on 2018-12-20T20:22:10Z

Should be fixed by https://github.com/dlang/installer/pull/355 for the next nightly. I will have to backport this to stable.

@dlangBugzillaToGithub
Copy link
Author

andre commented on 2018-12-21T09:20:19Z

Thanks a lot!
I can confirm, version v7.0 solves the PDB issue.

The NOLOGO issue still occurs on every third/fourth try and the dmd compile / link commands looks identical for the cases where NOLOGO issue occurs and not occurs.

--------nologo error --------
PS C:\Users\user\Desktop\testcase> dub test --vverbose
Refreshing local packages (refresh existing: true)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Note: Failed to determine version of package testcase at .. Assuming ~master.
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Version selection for dependency d-unit (d-unit) of testcase is missing.
  Missing dependency d-unit 0.9.0 of testcase
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Version selection for dependency d-unit (d-unit) of testcase is missing.
  Missing dependency d-unit 0.9.0 of testcase
Checking for missing dependencies.
Search for versions of d-unit (1 package suppliers)
Downloading maven metadata for d-unit
Getting from http://nexus.wdf.sap.corp:8081/nexus/content/groups/build.snapshots/dubpackages/d-unit/maven-metadata.xml
Getting http://nexus.wdf.sap.corp:8081/nexus/content/groups/build.snapshots/dubpackages/d-unit/maven-metadata.xml...
Return for d-unit: [0.9.0, 0.8.2]
Dependency resolution result:
  d-unit: 0.9.0
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Found dependency d-unit 0.9.0
  Collecting dependencies for d-unit
Creating build generator.
Add config testcase unittest
Add config d-unit library
Including testcase unittest -> d-unit library
    testcase unittest -> d-unit library
Using configuration 'unittest' for testcase
Using configuration 'library' for d-unit
Gathering build settings for testcase (unittest)
Gathering build settings for d-unit (library)
Running custom 'unittest' configuration.
Add config testcase unittest
Add config d-unit library
Including testcase unittest -> d-unit library
    testcase unittest -> d-unit library
Using configuration 'unittest' for testcase
Using configuration 'library' for d-unit
Configuring target testcase (executable C:\Users\user\Desktop\testcase unittest)
deps: testcase -> "d-unit"
  Configuring target d-unit (staticLibrary C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit d-unit)
deps: d-unit ->
Configure dependencies of testcase, deps:"d-unit"
  Configure dependencies of d-unit, deps:
Configuring dependent testcase, deps:"d-unit"
  Configuring dependent d-unit, deps:
Performing "unittest" build using C:\Develop\D\dmd2\windows\bin\dmd.exe for x86_64.
d-unit 0.9.0: target for configuration "library" is up to date.
Using existing build in C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\.
Copying target from C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\d-unit.lib to C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit
Target 'C:\Users\user\Desktop\testcase\.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.exe' doesn't exist, need rebuild.
testcase ~master: building configuration "unittest"...
C:\Develop\D\dmd2\windows\bin\dmd.exe -m64 -c -of.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.obj -debug -g -unittest -w -version=Have_testcase -version=Have_d_unit -Isource -I..\..\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\src source\app.d source\command.d -vcolumns
Linking...
C:\Develop\D\dmd2\windows\bin\dmd.exe -of.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.exe .dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.obj ..\..\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\d-unit.lib -m64 -g
Error: module `NOLOGO` is in file '\NOLOGO.d' which cannot be read
import path[0] = C:\Develop\D\dmd2\windows\bin\..\..\src\phobos
import path[1] = C:\Develop\D\dmd2\windows\bin\..\..\src\druntime\import
Error: linker exited with status 1
FAIL .dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\ unittest executable
C:\Develop\D\dmd2\windows\bin\dmd.exe failed with exit code 1.
Full exception: object.Exception@source\dub\compilers\compiler.d(115): C:\Develop\D\dmd2\windows\bin\dmd.exe failed with exit code 1.
----------------
0x00478A63 in pure @safe void std.exception.bailOut!(Exception).bailOut(immutable(char)[], uint, scope const(char)[]) at C:\Users\vagrant\old-dmd\dmd2\windows\bin\..\..\src\phobos\std\exception.d(526)
0x00478A0A in pure @safe bool std.exception.enforce!().enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], uint) at C:\Users\vagrant\old-dmd\dmd2\windows\bin\..\..\src\phobos\std\exception.d(437)
0x005233DB in void dub.compilers.compiler.Compiler.invokeTool(immutable(char)[][], void delegate(int, immutable(char)[])) at C:\Users\vagrant\clones\dub\source\dub\compilers\compiler.d(116)
0x005247D2 in void dub.compilers.dmd.DMDCompiler.invokeLinker(const(dub.compilers.buildsettings.BuildSettings), const(dub.platform.BuildPlatform), immutable(char)[][], void delegate(int, immutable(char)[])) at C:\Users\vagrant\clones\dub\source\dub\compilers\dmd.d(228)
0x0053048A in void dub.generators.build.BuildGenerator.buildWithCompiler(dub.generators.generator.GeneratorSettings, dub.compilers.buildsettings.BuildSettings) at C:\Users\vagrant\clones\dub\source\dub\generators\build.d(505)
0x0052E1EB in _D3dub10generators5build14BuildGenerator18performCachedBuildMFSQCjQCi9generator17GeneratorSettinAB13E6469B7DA3A01D359E5FEEE7FF08 at C:\Users\vagrant\clones\dub\source\dub\generators\build.d(198)
0x0052DB97 in _D3dub10generators5build14BuildGenerator11buildTargetMFSQCcQCb9generator17GeneratorSettingsSQDm9D1AAD2BDB82AFFDECA436631199928C9 at C:\Users\vagrant\clones\dub\source\dub\generators\build.d(136)
0x0052D784 in void dub.generators.build.BuildGenerator.generateTargets(dub.generators.generator.GeneratorSettings, const(dub.generators.generator.ProjectGenerator.TargetInfo[immutable(char)[]])).buildTargetRec(immutable(char)[]) at C:\Users\vagrant\clones\dub\source\dub\generators\build.d(85)
0x0052D31B in void dub.generators.build.BuildGenerator.generateTargets(dub.generators.generator.GeneratorSettings, const(dub.generators.generator.ProjectGenerator.TargetInfo[immutable(char)[]])) at C:\Users\vagrant\clones\dub\source\dub\generators\build.d(99)
0x00533EEE in void dub.generators.generator.ProjectGenerator.generate(dub.generators.generator.GeneratorSettings) at C:\Users\vagrant\clones\dub\source\dub\generators\generator.d(113)
0x00444017 in void dub.dub.Dub.testProject(dub.generators.generator.GeneratorSettings, immutable(char)[], dub.internal.vibecompat.inet.path.NativePath) at C:\Users\vagrant\clones\dub\source\dub\dub.d(735)
0x0040E2A8 in int dub.commandline.TestCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) at C:\Users\vagrant\clones\dub\source\dub\commandline.d(957)
0x00409B96 in int dub.commandline.runDubCommandLine(immutable(char)[][]) at C:\Users\vagrant\clones\dub\source\dub\commandline.d(263)
0x0040256E in _Dmain at C:\Users\vagrant\clones\dub\source\app.d(15)
0x00592DD3 in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll().__lambda1()
0x00592D55 in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()
0x00592BEF in _d_run_main
0x0040894C in main at C:\Users\vagrant\clones\dub\source\app.d(7)
0x0060D525 in mainCRTStartup
0x74048484 in BaseThreadInitThunk
0x7753302C in RtlValidSecurityDescriptor
0x77532FFA in RtlValidSecurityDescriptor


--------success --------
PS C:\Users\user\Desktop\testcase> dub test --vverbose
Refreshing local packages (refresh existing: true)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Note: Failed to determine version of package testcase at .. Assuming ~master.
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Version selection for dependency d-unit (d-unit) of testcase is missing.
  Missing dependency d-unit 0.9.0 of testcase
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Version selection for dependency d-unit (d-unit) of testcase is missing.
  Missing dependency d-unit 0.9.0 of testcase
Checking for missing dependencies.
Search for versions of d-unit (1 package suppliers)
Downloading maven metadata for d-unit
Getting from http://nexus.wdf.sap.corp:8081/nexus/content/groups/build.snapshots/dubpackages/d-unit/maven-metadata.xml
Getting http://nexus.wdf.sap.corp:8081/nexus/content/groups/build.snapshots/dubpackages/d-unit/maven-metadata.xml...
Return for d-unit: [0.9.0, 0.8.2]
Dependency resolution result:
  d-unit: 0.9.0
Refreshing local packages (refresh existing: false)...
Looking for local package map at C:\ProgramData\dub\packages\local-packages.json
Looking for local package map at C:\Users\user\AppData\Local\dub\packages\local-packages.json
iterating dir C:\Users\user\AppData\Local\dub\packages\
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.2
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry arsd-official-2.1.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry d-unit-0.9.0
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libasync-0.8.3
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry libevent-2.0.2_2.0.16
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry memutils-0.4.13
iterating dir C:\Users\user\AppData\Local\dub\packages\ entry vibe-d-0.7.33
Collecting dependencies for testcase
  Found dependency d-unit 0.9.0
  Collecting dependencies for d-unit
Creating build generator.
Add config testcase unittest
Add config d-unit library
Including testcase unittest -> d-unit library
    testcase unittest -> d-unit library
Using configuration 'unittest' for testcase
Using configuration 'library' for d-unit
Gathering build settings for testcase (unittest)
Gathering build settings for d-unit (library)
Running custom 'unittest' configuration.
Add config testcase unittest
Add config d-unit library
Including testcase unittest -> d-unit library
    testcase unittest -> d-unit library
Using configuration 'unittest' for testcase
Using configuration 'library' for d-unit
Configuring target testcase (executable C:\Users\user\Desktop\testcase unittest)
deps: testcase -> "d-unit"
  Configuring target d-unit (staticLibrary C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit d-unit)
deps: d-unit ->
Configure dependencies of testcase, deps:"d-unit"
  Configure dependencies of d-unit, deps:
Configuring dependent testcase, deps:"d-unit"
  Configuring dependent d-unit, deps:
Performing "unittest" build using C:\Develop\D\dmd2\windows\bin\dmd.exe for x86_64.
d-unit 0.9.0: target for configuration "library" is up to date.
Using existing build in C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\.
Copying target from C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\d-unit.lib to C:\Users\user\AppData\Local\dub\packages\d-unit-0.9.0\d-unit
Target 'C:\Users\user\Desktop\testcase\.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.exe' doesn't exist, need rebuild.
testcase ~master: building configuration "unittest"...
C:\Develop\D\dmd2\windows\bin\dmd.exe -m64 -c -of.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.obj -debug -g -unittest -w -version=Have_testcase -version=Have_d_unit -Isource -I..\..\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\src source\app.d source\command.d -vcolumns
Linking...
C:\Develop\D\dmd2\windows\bin\dmd.exe -of.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.exe .dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.obj ..\..\AppData\Local\dub\packages\d-unit-0.9.0\d-unit\.dub\build\library-unittest-windows-x86_64-dmd_2083-9589D14001E3DC607370A77B60623B0E\d-unit.lib -m64 -g
Copying target from C:\Users\user\Desktop\testcase\.dub\build\unittest-unittest-windows-x86_64-dmd_2083-8265062FD6D0C3ABF2D49E838999674C\unittest.exe to C:\Users\user\Desktop\testcase
To force a rebuild of up-to-date targets, run again with --force.
Running .\unittest.exe


Tests run: 0, Failures: 0, Errors: 0, Skips: 0
OK
PS C:\Users\user\Desktop\testcase>

@dlangBugzillaToGithub
Copy link
Author

greeenify commented on 2018-12-24T19:40:02Z

DMD 2.084-beta.2 should come with lld 7.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants