[PATCH] D49240: [libc++] Introduce _LIBCPP_HIDE_FROM_ABI to replace _LIBCPP_INLINE_VISIBILITY

Hans Wennborg via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 13 07:05:31 PDT 2018


hans added a comment.

In https://reviews.llvm.org/D49240#1197052, @ldionne wrote:

> In https://reviews.llvm.org/D49240#1196878, @hans wrote:
>
> > The reason we noticed this was that it caused a *50 GB* size increase of the build output on our buildbots, which was enough to cause infrastructure problems.
> >
> > This change was also committed shortly before the 7.0 branch, so it's part of the 7.0.0 release candidates.
> >
> > Should we back it out until a solution is found?
>
>
> The thing is -- there's no solution without changing the guarantees that libc++ make. Today, libc++ guarantees that you can link TUs that were built with different versions of libc++ together. If we remove that guarantee, then we can use linkonce_odr and solve the problem that Chromium is having.
>
> Is that guarantee something that Chromium is relying upon?


I'm not sure (thakis can probably answer better), but isn't it enough to link against some system libraries that might use libc++ for this to be true?

The previous solution, using inlining, while not very elegant didn't have this giant binary size problem, so maybe it was better?

What should we put in the release notes, that folks should expect significantly larger binaries using the 7.0.0 version?


Repository:
  rCXX libc++

https://reviews.llvm.org/D49240





More information about the cfe-commits mailing list