ldionne added a comment.

I think the root cause of the push back you're getting is that this is normally 
handled by vendors when they decide how they're going to ship libc++ on their 
platform or in their toolchain.

For example, on Apple platforms, we ship `libc++.dylib`, and we make sure to 
re-export `libc++abi.dylib`'s symbols from `libc++.dylib`. The result is that 
you only need to specify `-lc++` (which the compiler does by default), and 
everything "works". Since we don't ship `libc++.a`, there's no out-of-the-box 
solution to make it work - it's not officially supported. Some folks do diverge 
from that, however we assume they are willing to get their hands dirty and use 
the flags required to make it work (i.e. `-lc++ -lc++abi`). My understanding is 
that the same goes for other platforms, where each has their preferred way of 
shipping libc++. If we were to officially ship `libc++.a` in the SDKs for Apple 
platforms, I could imagine that we'd want to merge `libc++abi.a` into 
`libc++.a`, and there again you'd only need to specify `-static -lc++` and 
everything would work (unless I'm missing something).

Making that work out-of-the-box would be something we'd want to achieve in how 
we're building and shipping libc++, not by modifying the behaviour of the Clang 
driver on multiple platforms.

In D96070#2544297 <https://reviews.llvm.org/D96070#2544297>, @tbaeder wrote:

> [...]
>
> Or should clang just not do anything here and people should be aware they 
> need to pass additional flags when using libc++ (on Linux)?

The TL;DR of what I wrote above is that I believe this is the correct answer. 
My main area is Apple platforms and not Linux, though, so this is just my .02 
as someone who ships libc++.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96070/new/

https://reviews.llvm.org/D96070

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

Reply via email to