[PATCH] D50652: [libcxx] By default, do not use internal_linkage to hide symbols from the ABI

Louis Dionne via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 15 12:45:18 PDT 2018


ldionne added a comment.

In https://reviews.llvm.org/D50652#1201236, @thakis wrote:

> I haven't read all the messages in these threads, forgive me if someone asked this already. It's a bit weird to me that we have to override this behavior in Chromium while the default is different. Why isn't the executable size blowup we see in chromium a problem for everyone else too? Is the plan to fix ld64's string pooling at the same time as rolling this change out, and this is just a workaround for people who have head libc++ but not head ld64?


It's the other way around -- the default behavior introduced in this patch is the one before the `internal_linkage` change. If you want to opt-in, you can define `_LIBCPP_HIDE_FROM_ABI_PER_TU`.

As a separate goal, we will (in the future) make things better for the default case, i.e. we will get rid of `__always_inline__` too and allow ODR-deduplication.

Does that make sense?


Repository:
  rCXX libc++

https://reviews.llvm.org/D50652





More information about the cfe-commits mailing list