Bug 19503 – lld: Native PDB Error: The entry already exists. The specified module already exists

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2018-12-19T20:17:42Z
Last change time
2024-12-13T19:01:39Z
Assigned to
No Owner
Creator
Andre
Moved to GitHub: dmd#19518 →

Attachments

IDFilenameSummaryContent-TypeSize
1720testcase.ziptestcaseapplication/x-zip-compressed1080

Comments

Comment #0 by andre — 2018-12-19T20:17:42Z
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
Comment #1 by kinke — 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.
Comment #2 by greeenify — 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.
Comment #3 by andre — 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>
Comment #4 by greeenify — 2018-12-24T19:40:02Z
DMD 2.084-beta.2 should come with lld 7.0
Comment #5 by robert.schadek — 2024-12-13T19:01:39Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19518 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB