Remaining Travis merge-2.064 failure

Kai Nacke via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Mon May 26 03:29:13 PDT 2014


On Monday, 26 May 2014 at 09:03:29 UTC, David Nadlinger via 
digitalmars-d-ldc wrote:
> Hi Kai,
>
> On 05/26/2014 07:56 AM, Kai Nacke via digitalmars-d-ldc wrote:
>> This creates the executable stdiobase without a link error and 
>> without
>> using -lcurl. I don't understand this. Any ideas? (All on 
>> Ubuntu 12 64bit.)
>
> As I mentioned, I suspect that the issue is dependent on the 
> order the linker searches the object files. Several object 
> files might have the missing template symbol, curl.o just being 
> one of them.
>
> If you run the failing compile with -L-M, you should see a 
> mention of why curl.o is pulled in near the top of the output. 
> IIRC the output also includes information about for which 
> specifc module the symbol was requested. Then, you'd need to 
> debug into LDC to see why the symbol in question is not emitted 
> to the module that needs it.
>
> Best,
> David

This reveals:

/build/work/ldc/runtime/../lib/libphobos-ldc.a(std_net_curl.o)
                               
/build/work/ldc/runtime/../lib/libphobos-ldc.a(std_stdio.o) 
(_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm)

The mentioned weak symbol is defined in several files:
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_uni.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_math.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_exception.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_conv.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_functional.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_string.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_typetuple.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_container.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_numeric.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_complex.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_array.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_algorithm.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_bitmanip.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_range.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_format.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_utf.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_traits.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_typecons.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_random.o
_D6object15__T8capacityTaZ8capacityFNaNbNdAaZm in std_net_curl.o

but std.stdio is missing. This at least explains it... Thanks.

Regards,
Kai


More information about the digitalmars-d-ldc mailing list