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