Massive linker error after upgrade to DMD 2.068.1-1

Nicholas Wilson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Sep 12 17:21:21 PDT 2015


On Saturday, 12 September 2015 at 20:05:28 UTC, rcorre wrote:
> After upgrading from DMD 2.068.0-1 to DMD 2.068.1-1, my project 
> began producing a large linker error (when built using dub).
>
> I was able to trace it down to a single line:
>
> target = target.adjacent(Diagonals.yes).randomSample(1).front;
>
> target is of type RowCol 
> (https://github.com/rcorre/dtiled/blob/master/src/dtiled/coords.d#L36),
> which has an `adjacent` property that leverages chain, only, 
> and take.
>
> When I comment this line out (or build on a system with DMD 
> 2.068.0-1), I can build fine. When uncommented, I see (post 
> ddemangle):
>
> http://dpaste.com/1PJB35V
>
> I've tried to break this down into a reduced example to prove 
> that I can call randomSample on the range returned by 
> RowCol.adjacent (http://dpaste.com/13G9WDE). This runs fine, so 
> it seems to be a deeper issue with my build environment (full 
> project at https://github.com/rcorre/damage_control if you're 
> curious).
>
> I don't want to turn this into "please debug my project for 
> me", but do people have general hints on how to track down 
> issues like this?
>
> Thanks!
>
> Side note: I see src/transition.d in the output, but I don't 
> see how it is relevant to the error (it isn't even imported by 
> the file causing the error).

there was talk of adding symbol name compression some time ago ( 
to reduce lib size ( and maybe make ddemangle not fail on long 
syms?). This might be the cause of your problems i.e. the new 
compiler emitting references to compressed names but built with 
the old compiler using the not compressed ones. Try rebuilding 
everything and see if that fixes it.


More information about the Digitalmars-d-learn mailing list