You are not logged in.

#1 2018-09-13 12:53:24

SuperPrower
Member
Registered: 2018-09-13
Posts: 4

dub doesn't work with dmd 1:2.082.0-1.0

After dmd (D language compiler) was updated from version 1:2.081.2-1.0 to 1:2.082.0-1.0, I couldn't invoke dub (dlang package manager) for anything. Here is the attempt to run `dub --vverbose`:

Using dub registry url 'https://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/superprower/.dub/packages/local-packages.json
Try to load local package map at /home/superprower/.dub/packages/local-packages.json
iterating dir /home/superprower/.dub/packages/
iterating dir /home/superprower/.dub/packages/ entry ncurses-master
iterating dir /home/superprower/.dub/packages/ entry local-packages.json
iterating dir /home/superprower/.dub/packages/ entry d-profile-viewer-1.1.3
No package found in current working directory.
Failed to invoke the compiler /usr/bin/dmd to determine the build platform: Error: missing or null command line arguments

Full exception: object.Exception@source/dub/compilers/compiler.d(127): Failed to invoke the compiler /usr/bin/dmd to determine the build platform: Error: missing or null command line arguments

----------------
??:? pure @safe bool std.exception.enforce!().enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], uint) [0xa744bd]
??:? dub.platform.BuildPlatform dub.compilers.compiler.Compiler.probePlatform(immutable(char)[], immutable(char)[][], immutable(char)[]) [0x80759e]
??:? dub.platform.BuildPlatform dub.compilers.dmd.DMDCompiler.determinePlatform(ref dub.compilers.buildsettings.BuildSettings, immutable(char)[], immutable(char)[]) [0x81323f]
??:? [0x810de2]
??:? void dub.commandline.PackageBuildCommand.setupPackage(dub.dub.Dub, immutable(char)[], immutable(char)[]) [0x910e46]
??:? int dub.commandline.GenerateCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x92b158]
??:? int dub.commandline.RunCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x92b0ab]
??:? int dub.commandline.runDubCommandLine(immutable(char)[][]) [0x9f87e3]
??:? _Dmain [0x9fe3bf]

It doesn't happen, if I downgrade dmd back. I tried asking on Dlang forums, but it doesn't seems like last changes have anything to do with this problem. I suspect it has to do something with the fact that dub is still of version 1.10 while there is 1.11 available (on regular ArchLinux on my other device, and there is no problem) - maybe they are incompatible?

Offline

#2 2018-09-13 18:50:18

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 1,197

Re: dub doesn't work with dmd 1:2.082.0-1.0

Yes, I'm not sure if those intial messages are usual or not, but the first line that looks bad is the error:

Failed to invoke the compiler /usr/bin/dmd to determine the build platform: Error: missing or null command line arguments

If you run the same command using the downgraded dmd and it works, that sounds to me very much like a command line interface change.

Can you capture the first few lines of the same log using the downgraded dmd and compare them?  Also, can I assume the double v in '--vverbose' is a typo?


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#3 2018-09-14 07:00:09

andreas_baumann
Administrator
From: Zurich, Switzerland
Registered: 2017-08-10
Posts: 833
Website

Re: dub doesn't work with dmd 1:2.082.0-1.0

The PKGBUILD of dub doesn't list dmd as a dependency, so it didn't get rebuilt. Most likely this is the problem..

Offline

#4 2018-09-14 10:46:45

SuperPrower
Member
Registered: 2018-09-13
Posts: 4

Re: dub doesn't work with dmd 1:2.082.0-1.0

levi wrote:

Yes, I'm not sure if those intial messages are usual or not, but the first line that looks bad is the error:

Failed to invoke the compiler /usr/bin/dmd to determine the build platform: Error: missing or null command line arguments

It is. You get this error if your just try to invoke dub, without verbose flag. Sorry for not pointing it out.

levi wrote:

Can you capture the first few lines of the same log using the downgraded dmd and compare them?  Also, can I assume the double v in '--vverbose' is a typo?

With downgraded version it just works. Nothing really to compare. And no, it's like a second level of regular --verbose - in the help listing --vverbose described as debug output, opposed to regular diagnostic output in --verbose.

Offline

#5 2018-09-14 14:24:36

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 1,197

Re: dub doesn't work with dmd 1:2.082.0-1.0

andreas_baumann wrote:

The PKGBUILD of dub doesn't list dmd as a dependency, so it didn't get rebuilt. Most likely this is the problem..

To be strict, the problem seems to have caused a fault in the migration of packages from community-testing to community; something listed as the newer version required has been built and published to the community-testing repo, it just didn't get pushed to community stable because there was nothing requiring it.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#6 2018-09-14 15:06:31

SuperPrower
Member
Registered: 2018-09-13
Posts: 4

Re: dub doesn't work with dmd 1:2.082.0-1.0

andreas_baumann wrote:

The PKGBUILD of dub doesn't list dmd as a dependency, so it didn't get rebuilt. Most likely this is the problem..

If I understand correctly, dub can utilize different D compilers, not only dmd (for example, ldc), that's probably why it's not listed as a dependency.

Offline

#7 2018-09-14 16:29:35

levi
Moderator
From: Yorkshire, UK
Registered: 2018-06-16
Posts: 1,197

Re: dub doesn't work with dmd 1:2.082.0-1.0

dbd provides d-compiler=2.081-2, as does ldc.  Seems to me that dmd should have a dependency on that provides line to ensure that something that can compile D gets installed.  Not sure if that would help andreas, but that's be the most right thing to do I think.  The other option is a set of optional dependencies on different d compilers, but given the two examples I know about at the moment both provide that same d-compiler tag, it'd be better to use that as a positive dependency.


Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.

Offline

#8 2018-09-15 09:31:07

andreas_baumann
Administrator
From: Zurich, Switzerland
Registered: 2017-08-10
Posts: 833
Website

Re: dub doesn't work with dmd 1:2.082.0-1.0

dub doesn't build, looks like a bigint 64-bit thingy to me:

Generating version file...
collect2: fatal error: ld terminated with signal 6 [Aborted]
compilation terminated.
Error: /usr/bin/gcc failed with status: 1
==> ERROR: A failure occurred in build().
    Aborting...

/usr/include/dlang/ldc/std/internal/math/biguintcore.d:99: error: relocation refers to global symbol "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk", which is defined in a discarded section
  section group signature: "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk"
  prevailing definition is from /usr/lib/libphobos2-ldc.a(biguintx86.o)
/usr/include/dlang/ldc/std/internal/math/biguintcore.d:99: error: relocation refers to global symbol "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk", which is defined in a discarded section
  section group signature: "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk"
  prevailing definition is from /usr/lib/libphobos2-ldc.a(biguintx86.o)
/usr/include/dlang/ldc/std/internal/math/biguintcore.d:99: error: relocation refers to global symbol "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk", which is defined in a discarded section
  section group signature: "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk"
  prevailing definition is from /usr/lib/libphobos2-ldc.a(biguintx86.o)
/usr/include/dlang/ldc/std/internal/math/biguintcore.d:99: error: relocation refers to global symbol "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk", which is defined in a discarded section
  section group signature: "_D3std8internal4math10biguintx86__T24multibyteIncrementAssignVai43ZQBgFNaNbNiAkkZk"
  prevailing definition is from /usr/lib/libphobos2-ldc.a(biguintx86.o)
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1

Offline

Board footer

Powered by FluxBB