"make std/concurrency.test" fails but others don't... why?

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 10 18:38:32 PDT 2015


On 4/10/15 7:04 PM, Andrei Alexandrescu wrote:
> Martin Nowak added recently a nice feature to the Phobos makefile: by
> specifying e.g.
>
> make std/stdio.test
>
> only the unittests for std/stdio.d would build and run. This greatly
> improves development turnaround for Phobos.
>
> I've used this feature regularly since introduction, but it seems to not
> work with at least std.concurrency. Running
>
> make std/concurrency.test
>
> produces:
>
> duplicate symbol _D3std11concurrency10MessageBox6__initZ in:
>      concurrency.o
>      generated/osx/release/64/libphobos2.a(concurrency_329_3ee.o)
> duplicate symbol _D3std11concurrency10MessageBox7__ClassZ in:
>      concurrency.o
>      generated/osx/release/64/libphobos2.a(concurrency_329_3ee.o)
> duplicate symbol _D3std11concurrency10MessageBox6__vtblZ in:
>      concurrency.o
>      generated/osx/release/64/libphobos2.a(concurrency_329_3ee.o)
> ld: 3 duplicate symbols for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
>
> What makes MessageBox special?
>
>
> Andrei

There is a bug somewhere that causes issues with dmd compiled with clang 
on OSX. I've had to disable a test in dmd test suite before. If this 
problem could be solved, we could switch default build on the auto 
tester to use clang (it currently uses gcc).

FWIW, I never had an issue with phobos unit tests.

-Steve


More information about the Digitalmars-d mailing list