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

Linux install of tango and how to compile

Moderators: larsivi kris

Posted: 09/23/07 15:45:31

I've followed the instructions at http://www.dsource.org/projects/tango/wiki/UnixInstallGdc, even doing all the optional steps (actual steps shown at bottom of post). I still haven't gotten as much success as I'd like. The manual steps work, but building with dsss fails (in different ways depending on the configuration). dsss.conf file and various build output follows.

My dsss.conf is very simple:

[housebot.d]

target=housebot-0.6

buildflags=-Dddoc/ddoc -unittest -w -g

Manual build with dmd works:

$ dmd -unittest -w -g *.d -Dddoc -oddsss_objs -ofhousebot-0.6

gcc goban.o gogui.o gtp.o hb_version.o housebot.o ipc.o log.o random.o search.o sleep.o tangoBind.o -o housebot-0.6 -m32 -Xlinker -L/bin/../lib -ltango -lphobos -lpthread -lm

Manual build with gdc works:

gdmd -unittest -w -g *.d -Dddoc -oddsss_objs -ofhousebot-0.6 -I/import -version=Posix -L-lgtango

dsss with /etc/rebuild/default set to "profile=gdc-posix-tango" fails:

housebot.d => housebot-0.6

+ /bin/rebuild -Idsss_imports/ -I. -S./ -I/home/jhouse/d/include/d -S/home/jhouse/d/lib/ -I/include/d -S/lib -I/home/jhouse/d/include/d -S/home/jhouse/d/lib -oqdsss_objs -Dddoc/ddoc -unittest -w -g housebot.d -ofhousebot-0.6

dsss_objs/_ipc.o: In function `_D3ipc24synchronizedCommandQueue5_ctorMFZC3ipc24synchronizedCommandQueue':

/home/jhouse/housebot/0.6/ipc.d:231: undefined reference to `_D5tango4core4sync5Mutex5Mutex7ClassZ'

/home/jhouse/housebot/0.6/ipc.d:231: undefined reference to `_D5tango4core4sync5Mutex5Mutex5_ctorMFZC5tango4core4sync5Mutex5Mutex'

/home/jhouse/housebot/0.6/ipc.d:232: undefined reference to `_D5tango4core4sync9Condition9Condition7ClassZ'

/home/jhouse/housebot/0.6/ipc.d:232: undefined reference to `_D5tango4core4sync9Condition9Condition5_ctorMFC5tango4core4sync5Mutex5MutexZC5tango4core4sync9Condition9Condition'

dsss_objs/_ipc.o:(.data+0x36c): undefined reference to `_D5tango4core4sync5Mutex12ModuleInfoZ'

dsss_objs/_ipc.o:(.data+0x370): undefined reference to `_D5tango4core4sync9Condition12ModuleInfoZ'

collect2: ld returned 1 exit status

Command /bin/rebuild returned with code 65280, aborting.

dsss with /etc/rebuild/default set to "profile=dmd-posix-tango" fails:

housebot.d => housebot-0.6

+ /bin/rebuild -Idsss_imports/ -I. -S./ -I/home/jhouse/d/include/d -S/home/jhouse/d/lib/ -I/include/d -S/lib -I/home/jhouse/d/include/d -S/home/jhouse/d/lib -oqdsss_objs -Dddoc/ddoc -unittest -w -g housebot.d -ofhousebot-0.6

gcc dsss_objs/_housebot.o dsss_objs/_goban.o dsss_objs/tango.text.Ascii.o dsss_objs/tango.text.Regex.o dsss_objs/tango.stdc.string.o dsss_objs/tango.stdc.stddef.o dsss_objs/tango.stdc.stdio.o dsss_objs/tango.stdc.stdarg.o dsss_objs/tango.stdc.config.o dsss_objs/tango.stdc.ctype.o dsss_objs/tango.stdc.stdlib.o dsss_objs/tango.core.BitArray?.o dsss_objs/tango.core.Vararg.o dsss_objs/tango.text.convert.Layout.o dsss_objs/tango.text.convert.Utf.o dsss_objs/tango.text.convert.Float.o dsss_objs/tango.text.convert.Integer.o dsss_objs/tango.core.Tuple.o dsss_objs/_log.o dsss_objs/tango.io.Stdout.o dsss_objs/tango.io.Print.o dsss_objs/tango.io.model.IBuffer.o dsss_objs/tango.io.model.IConduit.o dsss_objs/tango.io.Console.o dsss_objs/tango.sys.Common.o dsss_objs/tango.sys.linux.linux.o dsss_objs/tango.stdc.time.o dsss_objs/tango.stdc.posix.dlfcn.o dsss_objs/tango.stdc.posix.config.o dsss_objs/tango.stdc.posix.fcntl.o dsss_objs/tango.stdc.stdint.o dsss_objs/tango.stdc.posix.sys.types.o dsss_objs/tango.stdc.posix.sys.stat.o dsss_objs/tango.stdc.posix.time.o dsss_objs/tango.stdc.posix.signal.o dsss_objs/tango.stdc.signal.o dsss_objs/tango.stdc.posix.poll.o dsss_objs/tango.stdc.posix.pwd.o dsss_objs/tango.stdc.posix.unistd.o dsss_objs/tango.stdc.posix.inttypes.o dsss_objs/tango.stdc.inttypes.o dsss_objs/tango.stdc.posix.sys.select.o dsss_objs/tango.stdc.posix.sys.time.o dsss_objs/tango.sys.linux.epoll.o dsss_objs/tango.stdc.errno.o dsss_objs/tango.io.Buffer.o dsss_objs/tango.io.DeviceConduit?.o dsss_objs/tango.io.Conduit.o dsss_objs/_gogui.o dsss_objs/tango.core.Traits.o dsss_objs/_ipc.o dsss_objs/tango.math.Math.o dsss_objs/tango.stdc.math.o dsss_objs/tango.math.IEEE.o dsss_objs/_tangoBind.o dsss_objs/tango.util.time.DateTime?.o dsss_objs/tango.util.time.Clock.o dsss_objs/tango.util.time.Date.o dsss_objs/tango.core.Type.o dsss_objs/tango.util.time.WallClock?.o dsss_objs/_gtp.o dsss_objs/_sleep.o dsss_objs/tango.stdc.posix.semaphore.o dsss_objs/tango.stdc.posix.pthread.o dsss_objs/tango.stdc.posix.sched.o dsss_objs/tango.stdc.posix.sys.mman.o dsss_objs/tango.stdc.posix.stdlib.o dsss_objs/tango.stdc.posix.sys.wait.o dsss_objs/tango.util.time.StopWatch?.o dsss_objs/tango.text.stream.LineIterator?.o dsss_objs/tango.text.stream.StreamIterator?.o dsss_objs/tango.text.Util.o dsss_objs/_hb_version.o dsss_objs/_search.o dsss_objs/_random.o dsss_objs/tango.math.Random.o -o housebot-0.6 -g -m32 -Xlinker --start-group -lphobos -Xlinker -L./ -Xlinker -L/home/jhouse/d/lib/ -Xlinker -L/lib -Xlinker -L/home/jhouse/d/lib -Xlinker -L/bin/../lib -ltango -Xlinker -L/bin/../lib -ltango -lphobos -lpthread -lm

dsss_objs/_search.o: In function `_D9tangoBind43T7_assignTC5goban5colorTC5goban5colorVb0Z7_assignFKC5goban5colorKC5goban5colorZv':

/home/jhouse/housebot/0.6/goban.d:298: multiple definition of `_D9tangoBind38T18isStaticArray_implTC5goban5colorZ4instC5goban5color'

dsss_objs/_housebot.o:(.bss+0x28): first defined here

dsss_objs/_search.o: In function `_D9tangoBind43T7_assignTC5goban5colorTC5goban5colorVb0Z7_assignFKC5goban5colorKC5goban5colorZv':

/home/jhouse/housebot/0.6/goban.d:298: multiple definition of `_D9tangoBind41T18isStaticArray_implTC5goban8positionZ4instC5goban8position'

dsss_objs/_housebot.o:(.bss+0x34): first defined here

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

.gnu.linkonce.t_D5goban38__T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' referenced in section .data' of dsss_objs/_search.o: defined in discarded section `.gnu.linkonce.t_D5goban38T7board2DTiTC5goban14simplePositionZ7board2D6toUtf8MFZAa' of dsss_objs/_search.o

collect2: ld returned 1 exit status

--- errorlevel 1

Command /bin/rebuild returned with code 65280, aborting.

For reference, the tango installation steps that I did:

cd /path/to/tango/lib

./build-gdc.sh

sudo ./install-gdc.sh

sudo cp -Rf ../tango /include/d/4.1.2/

cd /include/d/4.1.2/

for dir in find . -type d ; do sudo chmod 755 $dir ; done

for file in find . -type f ; do sudo chmod 644 $file ; done

cd /path/to/tango/lib # Minor issue with instructions - not mentioned

./build-tango.sh gdc

export GDC_TEMP="gdc -print-file-name=libgcc.a"

export GDC_LIB_DIR="dirname $GDC_TEMP"

sudo cp libgtango.a $GDC_LIB_DIR

There are no responses to display.