Hi all,
There is unfortunately an error (!) in druntime CppRuntime version naming.
I think this arises from the wrong assumption that libstdc++ is bound to GCC and libc++ to clang. This is not the case. For those in the know, it is actually very confusing to read CppRuntime_Clang
in the code. "What is that?!" Clang works with both libstdc++ and libc++ and it very much depends on the OS/installation/user which library is actually used.
I had to find this bit in d_do_test.d
to learn what it stands for:
version (CppRuntime_Gcc)
envData.cxxCompatFlags = " -L-lstdc++ -L--no-demangle";
else version (CppRuntime_Clang)
envData.cxxCompatFlags = " -L-lc++ -L--no-demangle";
Ah, ok, so CppRuntime_Clang
stands for libc++.
Please, please rename
CppRuntime_Gcc
=> CppRuntime_libstdcpp
CppRuntime_Clang
=> CppRuntime_libcpp
The -target
option should be fixed similarly, but please debate that separately elsewhere.
I am happy to submit the patch with the rename, after I get your go-ahead that it will be merged.
Thank you very very much!
Johan