www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Tango Problems..

reply "seany" <seany uni-bonn.de> writes:
I have several files, which I am trying to import as modules to a 
central file.

However, whyile trying to complie with
dmd -L-ltango-dmd <list of files space separated>

However, I am getting this error :

/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function 
`_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput6formatMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':
./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput6formatMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12
ormatOutput+0x12b): 
undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function 
`_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput8formatlnMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':
./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput8formatlnMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12
ormatOutput+0x130): 
undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function 
`_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput5printMFYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':
./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput5printMFYC5tango2io6stream6Format20__T12FormatOutputTaZ12
ormatOutput+0x131): 
undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function 
`_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout6sprintMFAaAxaYAa':
./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout6spri
tMFAaAxaYAa+0x125): 
undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function 
`_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAxaYAa':
./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7con
ertMFAxaYAa+0x11e): 
undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
/usr/lib/libtango-dmd.a(tango-io-Stdout-release.o):./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMF
FAxaZmAxaYk+0x114): 
more undefined references to `_D4core4stdc6stdarg6va_endFPvZv' 
follow

I tried a small hellow owrld file, the same problem.

Yes, the 64 bit linux system updated today, and since then, this 
is a problem - how do I start to look for cause and solve?
Aug 31 2014
next sibling parent "seany" <seany uni-bonn.de> writes:
Oh, I am using netrunner linux with arch/manjaro core.
Aug 31 2014
prev sibling parent reply =?UTF-8?B?UsOpbXkgTW91w6t6YQ==?= <remy.moueza gmail.com> writes:
 From what I understand in the error message, the linker cannot find a 
druntime function: void core.stdc.stdarg.va_end(void*).

I would advise to check that the druntime lib is in the import path.
In your the dmd repository, you should have a dmd.conf file containing 
something like:
[Environment64]
DFLAGS=-I% P%/../src/phobos -I% P%/../src/druntime/import 
-L-L% P%/../lib64 -L--export-dynamic

(% P% means the compiler path).
This should help you to fix your command line adding for instance:
-I/usr/local/lib/dmd/druntime/

In my dmd installation (2.066.0), the druntime is contained in 
libphobos.a/libphobos.so. Are you linking with libphobos?



On 08/31/2014 03:53 PM, seany wrote:
 I have several files, which I am trying to import as modules to a
 central file.

 However, whyile trying to complie with
 dmd -L-ltango-dmd <list of files space separated>

 However, I am getting this error :

 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function
 `_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput6formatMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':

 ./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput6formatMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput+0x12b):
 undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function
 `_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput8formatlnMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':

 ./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput8formatlnMFxAaYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput+0x130):
 undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function
 `_D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput5printMFYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput':

 ./tango/io/Stdout.d:(.text._D5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput5printMFYC5tango2io6stream6Format20__T12FormatOutputTaZ12FormatOutput+0x131):
 undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function
 `_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout6sprintMFAaAxaYAa':
 ./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout6sprintMFAaAxaYAa+0x125):
 undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o): In function
 `_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAxaYAa':
 ./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAxaYAa+0x11e):
 undefined reference to `_D4core4stdc6stdarg6va_endFPvZv'
 /usr/lib/libtango-dmd.a(tango-io-Stdout-release.o):./tango/io/Stdout.d:(.text._D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFDFAxaZmAxaYk+0x114):
 more undefined references to `_D4core4stdc6stdarg6va_endFPvZv' follow

 I tried a small hellow owrld file, the same problem.

 Yes, the 64 bit linux system updated today, and since then, this is a
 problem - how do I start to look for cause and solve?
Aug 31 2014
parent reply "seany" <seany uni-bonn.de> writes:
On Sunday, 31 August 2014 at 15:40:04 UTC, Rémy Mouëza wrote:
 From what I understand in the error message, the linker cannot 
 find a druntime function: void core.stdc.stdarg.va_end(void*).

 I would advise to check that the druntime lib is in the import 
 path.
 In your the dmd repository, you should have a dmd.conf file 
 containing something like:
 [Environment64]
 DFLAGS=-I% P%/../src/phobos -I% P%/../src/druntime/import 
 -L-L% P%/../lib64 -L--export-dynamic

 (% P% means the compiler path).
 This should help you to fix your command line adding for 
 instance:
 -I/usr/local/lib/dmd/druntime/

 In my dmd installation (2.066.0), the druntime is contained in 
 libphobos.a/libphobos.so. Are you linking with libphobos?
This is what I have : Environment] DFLAGS=-I/usr/include/dlang/dmd -L-L/usr/lib -L-L/usr/lib32 -L--export-dynamic
Aug 31 2014
parent reply "seany" <seany uni-bonn.de> writes:
I am linking against tango

ldc -I/path/to/tango -L-L/path/to/tango  -L-ltango-dmd \
Aug 31 2014
parent reply =?UTF-8?B?UsOpbXkgTW91w6t6YQ==?= <remy.moueza gmail.com> writes:
I have checked my ldc installation: the druntime library is located in 
ldc2-0.12.0-linux-x86/x86/libdruntime-ldc.a

You should also add a some extra flags like: 
-L-L/path/to/ldc/lib/<architecture> -L-Ldruntime-ldc .


On 08/31/2014 05:52 PM, seany wrote:
 I am linking against tango

 ldc -I/path/to/tango -L-L/path/to/tango  -L-ltango-dmd \
Aug 31 2014
parent reply "seany" <seany uni-bonn.de> writes:
On Sunday, 31 August 2014 at 20:40:06 UTC, Rémy Mouëza wrote:

 -L-L/path/to/ldc/lib/<architecture> -L-Ldruntime-ldc .
there is no /path/to/ldc/lib in my system - i have an /etc/ldc.conf and a /usr/bin/ldc2
Aug 31 2014
parent reply =?UTF-8?B?UsOpbXkgTW91w6t6YQ==?= <remy.moueza gmail.com> writes:
Have you tried something like this:
     find /lib /usr/lib* /usr/local/lib* -name \*.a | grep -i druntime
or a simple:
     locate druntime
?

On 08/31/2014 10:50 PM, seany wrote:
 On Sunday, 31 August 2014 at 20:40:06 UTC, Rémy Mouëza wrote:

 -L-L/path/to/ldc/lib/<architecture> -L-Ldruntime-ldc .
there is no /path/to/ldc/lib in my system - i have an /etc/ldc.conf and a /usr/bin/ldc2
Aug 31 2014
parent reply =?UTF-8?B?UsOpbXkgTW91w6t6YQ==?= <remy.moueza gmail.com> writes:
In case you don't find any druntime library, try to see if the missing 
symbol is in the libphobos2.a file (you'll first have to identify the 
directory where phobos is located):

     $ nm libphobos2.a | ddemangle | grep stdc | grep va_end
     00000000 T nothrow void core.stdc.stdarg.va_end(char*)

If you get a similar result, your next step will be to try compiling 
your program with phobos.

On 08/31/2014 11:09 PM, Rémy Mouëza wrote:
 Have you tried something like this:
      find /lib /usr/lib* /usr/local/lib* -name \*.a | grep -i druntime
 or a simple:
      locate druntime
 ?

 On 08/31/2014 10:50 PM, seany wrote:
 On Sunday, 31 August 2014 at 20:40:06 UTC, Rémy Mouëza wrote:

 -L-L/path/to/ldc/lib/<architecture> -L-Ldruntime-ldc .
there is no /path/to/ldc/lib in my system - i have an /etc/ldc.conf and a /usr/bin/ldc2
Aug 31 2014
parent reply "seany" <seany uni-bonn.de> writes:
About find command :

I use find / -iname *druntime*.a with root permission - how else 
will i find what is where, kfind probably uses find internally 
too, or boost, egal ...

for the nm command :
without ddemangle, i dont have the command installed :

0000000000000000 T 
_D4core4stdc6stdarg6va_endFNbPS4core4stdc6stdarg13__va_list_tagZv
                  U 
_D4core4stdc6stdarg6va_endFNbPS4core4stdc6stdarg13__va_list_tagZv
                  U 
_D4core4stdc6stdarg6va_endFNbPS4core4stdc6stdarg13__va_list_tagZv

now what?
Aug 31 2014
parent reply "seany" <seany uni-bonn.de> writes:
On Sunday, 31 August 2014 at 21:40:51 UTC, seany wrote:
On the other hand, phobos works. But I want some tango 
functionality, without having to hack it all by hand ...
Aug 31 2014
parent =?UTF-8?B?UsOpbXkgTW91w6t6YQ==?= <remy.moueza gmail.com> writes:
I suggest to try linking with both phobos and tango.
Only the druntime functions contained in phobos should be used by the 
linker (if I am correct).

Otherwise, did you take a look at code.dlang.org? Depending on your 
needs, there might be a dub package you could use to fill in for the 
missing Tango functionalites.


On 08/31/2014 11:42 PM, seany wrote:
 On Sunday, 31 August 2014 at 21:40:51 UTC, seany wrote:
 On the other hand, phobos works. But I want some tango functionality,
 without having to hack it all by hand ...
Aug 31 2014