November 25, 2014
https://issues.dlang.org/show_bug.cgi?id=13774

          Issue ID: 13774
           Summary: Multiple definition of `conv_50c_dc8` with three
                    libraries and `std.file` import
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: regression
          Priority: P1
         Component: Phobos
          Assignee: nobody@puremagic.com
          Reporter: verylonglogin.reg@gmail.com

The first library is Phobos. This code should build fine:

m1.d & m2.d:
---
import std.file;
---
Command (for Windows):
---
dmd -debug -lib m1.d
dmd -debug -lib m2.d m1.lib
---
m2.lib: Error: multiple definition of conv_50c_dc8: _D3std4conv52__T18emplaceInitializerTSАЕдfile15DirIterato∙АГкZАФ▒FNaNbNcNeKАЬ║4iАГ▓yАЫв and conv: _D3std4conv52__T18emplaceInitializerTSАЕдfile15DirIterato∙АГкZАФ▒FNaNbNcNeKАЬ║4iАГ▓yАЫв
---
(command output is probably encoded in CP1251)

This issue almost blocks Phobos usage in real projects as it breaks building libraries and linker error doesn't give any clue of its reason.

Also see Issue 13359.

Note: this report is about Phobos regression preventing its usage. Underlying compiler bug is some critical bug triggered by current Phobos version.


Tools versions:
dmd: c0e814350948feac34946c29186d17518ea954dd
druntime: 2350ee4ec77d7b919454eb2f16d91b23c3891cb6
phobos: e46ccaae82d6ddbd0c98ac233562204c7007f296

--