Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

dsss and tango problem.

Moderators: larsivi kris

Posted: 11/17/08 02:12:07

Hello, If I try to compile this

import tango.io.Stdout;

void main() {
  Stdout("hello world").newline;
}

with "dsss build testtango.d" but I get this error:

$ dsss build testtango.d
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
Error: gdc is not in $PATH
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
Error: gdc is not in $PATH
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
Error: gdc is not in $PATH
testtango.d => testtango
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
/home/flashdog/d/dsss/bin/rebuild: /usr/lib/libstdc++.so.6: no version information available (required by /home/flashdog/d/dsss/bin/rebuild)
Error: gdc is not in $PATH
Command /home/flashdog/d/dsss/bin/rebuild returned with code 256, aborting.
Error: Command failed, aborting.

But "dmd testtango.d" works.

My all installation steps for DMD 1.033, DSSS 0.78-x86-gnuWlinux and tango-0.99.7:

DMD install

$ unzip dmd.1.033.zip 
$ chmod u+x dmd/bin/dmd dmd/bin/obj2asm dmd/bin/dumpobj
$ PATH="/home/flashdog/d/dmd/bin:$PATH"; export PATH

DSSS install

$ tar -xvjf dsss-0.78-x86-gnuWlinux.tar.bz2
$ mv dsss-0.78-x86-gnuWlinux/ dsss
$ export PATH="/home/flashdog/d/dsss/bin:$PATH"

Tango install

$ tar -xvzf tango*.tar.gz
$ cd tango*/lib
$ ./build-dmd.sh
$ cp -Rf libtango-base-dmd.a /home/flashdog/d/dmd/lib

$ mkdir /home/flashdog/d/dmd/include/ 
$ mkdir /home/flashdog/d/dmd/include/d

$ cp -f ../object.di /home/flashdog/d/dmd/include/d
$ cp -Rf ../tango /home/flashdog/d/dmd/include/d
$ cp -Rf ../std /home/flashdog/d/dmd/include/d

/home/flashdog/d/dmd/bin/dmd.conf
[Environment]
DFLAGS=-I/home/flashdog/d/dmd/include/d -defaultlib=tango-base-dmd -debuglib=tango-base-dmd -version=Tango -version=Posix -L-L%@P%/../lib -L-ltango-user-dmd

$ cp -f libtango-user-dmd.a /home/flashdog/d/dmd/lib
$ ./build-tango.sh dmd

Why does dsss looking for gdc? I use dmd.

$ cd /usr/lib/libstdc++.
libstdc++.a         libstdc++.so        libstdc++.so.6.0.6
libstdc++.la        libstdc++.so.6

What do I wrong?

Best regards,

Author Message

Posted: 12/29/08 22:46:39 -- Modified: 12/29/08 22:49:24 by
debio -- Modified 2 Times

This is a DSSS problem and you really shouldn't ask about it in the tango forums, but...

"Error: gdc is not in $PATH" This shows that DSSS (and it's helper compilation program, rebuild) is trying to use GDC (the GNU D Compiler) instead of DMD (the Digital Mars D Compiler). To fix this, you need to edit your rebuild config to make it use the correct compiler. Rebuild uses profiles to store settings, so you want to edit /home/flashdog/d/dsss/etc/rebuild/default and change the "profile=gdc-*" line to "profile=dmd-posix-tango".

As for the libstdc++ errors, I think you need to compile dsss for your system instead of using prebuilt binaries, because something is different between the binaries on your system and the binaries that DSSS was compiled against.