Comment #1 by dlang-bugzilla — 2018-04-15T20:06:09Z
The problem seems to be that the same object file name is used when reading from stdin:
$ echo 'void main() {}' | dmd -v -run - | grep ^cc
cc __stdin.o -o /tmp/dmd_runIAGsLe -m64 -Xlinker --export-dynamic -L/home/vladimir/opt/dmd/bin/../lib64 -Xlinker -Bstatic -lphobos2 -Xlinker -Bdynamic -lpthread -lm -lrt -ldl
This cannot work reliably in multiple threads, as several concurrent DMD instances will write __stdin.o, and several concurrent linkers will attempt to read it.
Comment #2 by dlang-bugzilla — 2018-04-16T13:40:30Z