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

SVN install: Failed to build libtango-base-dmd.a

Moderators: kris

Posted: 07/24/08 04:26:24

Hi, I'm using DMD 1.030 on Ubuntu GNU/Linux 8.04 and have been able to compile Phobos-based programs just fine. I have now decided to switch from Phobos to Tango, but I somehow can't figure out how to install it.

First I tried the binary installation .sh.

./tango-0.99.6-dmd.1.029-posix.sh --prefix /usr/local

The only output I get is "Failed to install Tango core".

Next attempt: Checkout from SVN as per the step-by-step instructions (http://dsource.org/projects/tango/wiki/LinuxInstallDmd). When I run install-dmd.sh, I get the following output:

======== output ========

Binary prefix: /usr/local

Library prefix: /usr/local

Import prefix: /usr/local

libtango-base-dmd.a not found, trying to build it.

find . -name "*.di" | xargs rm -f

rm -f

rm -f

make -C ./common/tango -fposix.mak clean

make[1]: Entering directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/common/tango'

find . -name "*.di" | xargs rm -f

rm -f core/BitManip.o core/Exception.o core/Memory.o core/Runtime.o core/Thread.o core/ThreadASM.o stdc/wrap.o stdc/posix/pthread_darwin.o

rm -f

find . -name "libtango-cc-tango*.a" | xargs rm -f

make[1]: Leaving directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/common/tango'

make -C ./compiler/dmd -fposix.mak clean

make[1]: Entering directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/compiler/dmd'

find . -name "*.di" | xargs rm -f

rm -f aaA.o aApply.o aApplyR.o adi.o alloca.o arraycast.o arraycat.o arraydouble.o arrayfloat.o arrayreal.o cast.o cmath2.o complex.o cover.o critical.o deh2.o dmain2.o genobj.o invariant.o lifetime.o llmath.o memory.o memset.o monitor.o obj.o sort.o switch.o trace.o util/console.o util/cpuid.o util/ctype.o util/string.o util/utf.o typeinfo/ti_AC.o typeinfo/ti_Acdouble.o typeinfo/ti_Acfloat.o typeinfo/ti_Acreal.o typeinfo/ti_Adouble.o typeinfo/ti_Afloat.o typeinfo/ti_Ag.o typeinfo/ti_Aint.o typeinfo/ti_Along.o typeinfo/ti_Areal.o typeinfo/ti_Ashort.o typeinfo/ti_byte.o typeinfo/ti_C.o typeinfo/ti_cdouble.o typeinfo/ti_cfloat.o typeinfo/ti_char.o typeinfo/ti_creal.o typeinfo/ti_dchar.o typeinfo/ti_delegate.o typeinfo/ti_double.o typeinfo/ti_float.o typeinfo/ti_idouble.o typeinfo/ti_ifloat.o typeinfo/ti_int.o typeinfo/ti_ireal.o typeinfo/ti_long.o typeinfo/ti_ptr.o typeinfo/ti_real.o typeinfo/ti_short.o typeinfo/ti_ubyte.o typeinfo/ti_uint.o typeinfo/ti_ulong.o typeinfo/ti_ushort.o typeinfo/ti_void.o typeinfo/ti_wchar.o

rm -f

rm -f libtango-rt-dmd*.a

make[1]: Leaving directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/compiler/dmd'

make -C ./gc/basic -fposix.mak clean

make[1]: Entering directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/gc/basic'

find . -name "*.di" | xargs rm -f

rm -f gc.o gcalloc.o gcbits.o gcstats.o gcx.o

rm -f

rm -f libtango-gc-basic*.a

make[1]: Leaving directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/gc/basic'

make -C ./common/tango -fposix.mak lib DC=dmd ADD_DFLAGS="" ADD_CFLAGS="-m32"

make[1]: Entering directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/common/tango'

dmd -c -release -O -inline -w -nofloat -version=Posix -Hfcore/BitManip.di core/BitManip.d -ofcore/BitManip.o

object.d: module object cannot read file 'object.d'

make[1]: *** [core/BitManip.o] Error 1

make[1]: Leaving directory `/home/peter/Programmierung/Quellcode/Tango SVN/0.99.7/lib/common/tango'

make: *** [lib] Error 2

=

= *** Error ***

=

Failed to build libtango-base-dmd.a, try running build-dmd.sh

manually.

====================================

Running build-dmd.sh manually made no difference.

Perhaps I should change a path somewhere (because of object.d), but I don't know where and in what manner. Installation locations are as follows: dmd binaries in /usr/local/bin libphobos.a in /usr/lib phobos in /usr/include/phobos

I was previously using DMD 1.033 but then switched back to 1.030 when I read somewhere around here that 1.032 introduced installer issues. (Phobos-DMD still worked afterwards)

Author Message

Posted: 07/24/08 08:51:58

Sorry about the installer, it has a bug that we expect to be fixed in the next release, but it has been somewhat elusive.

As for which version, you should use, I will recommend 1.033, 1.032 is not supported.

At the point where make errors out, it looks very much like an error I had the other day - I suspect that it just looks for dmd in /bin and /usr/bin whereas it probably is installed elsewhere (/usr/local/bin ?). Probably has to do with something missing from the path in sub-processes, but whether this is related to the Tango scripts or something else I don't know. You could look at the output of

which dmd

and

whereis dmd

and

ls -l which dmd

to see if your installed dmd is executable or found.

Posted: 07/24/08 12:55:48

Also, I have uploaded the installers for 0.99.7 (coming release) - you can try it from

http://downdloads.dsource.org/projects/tango/0.99.7/tango-0.99.7-dmd.1.033-posix-withDMD.sh

It would be nice if you could give some feedback on it. Thanks for the report!

Posted: 07/24/08 23:57:36 -- Modified: 07/25/08 00:24:23 by
ADmiral

Yay, I've got a working tango install now!

I switched back to DMD 1.033 and placed links everywhere in /usr/local/bin, include, lib to the actual locations. I don't know if that did anything to help, though, because the real problem was that I did not run the script with sufficient permissions at first! Once I sudo'd it, it installed as expected.

Your link, btw, is broken. It points nowhere. In the end I found the script at http://downloads.dsource.org/projects/tango/0.99.7/tango-0.99.7-dmd.1.033-posix.sh .

Compiling also works fine, at least the IO module. Thanks for your help! -Peter

Edit:

When using Tango with Code::Blocks, change the linker settings in Settings -> Compiler and Debugger... -> Linker Settings to link both tango-user-dmd and tango-base-dmd instead of phobos! Just adding this information for the record; people with tango install questions might be happy to find it :-)