phosek added a comment.

In https://reviews.llvm.org/D54724#1303809, @dim wrote:

> I think this is the wrong direction, placing "common" code in 
> `addCXXStdlibLinkDeps`, which then has all kinds of ugly ifs and switches for 
> different OSes?  Let different OSes handle this in their own way, maybe.


You mean handling this in individual `ToolChain` subclasses? I've considered 
doing that. The reason I went with a single method is because we already use 
this approach for other types of runtimes like sanitizers, XRay, etc. There'd 
be still some duplication for handling different C++ libraries, but I'd be fine 
changing the implementation to use that approach if there's a strong preference 
for doing so.

> Until now I have not encountered an issue where I needed to add -lpthread to 
> the link command line for a static C++ application; I think that is only 
> needed when you actually use threading primitives?  But still, I would rather 
> see this in the OS-dependent handling functions.

Have you been using libc++ or just libstdc++? libstdc++ is cheating a bit, 
because it relies on threading functions that are provided by libgcc (which in 
turn call into pthread), so -lpthread is not needed when using libstdc++, even 
when you link it statically. libc++ doesn't rely on these functions because it 
supports different builtin libraries (like compiler-rt) hence having to specify 
-lpthread explicitly.


Repository:
  rC Clang

https://reviews.llvm.org/D54724



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to