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.
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