ldionne added a comment.

In https://reviews.llvm.org/D50652#1197775, @rnk wrote:

> I'd prefer not to do this, since internal_linkage generates smaller, more 
> debuggable code by default. I think the symbol table size increase may be 
> specific to MachO, and it may be possible to work around this by changing 
> ld64 to pool strings for symbols by default. I don't know enough about MachO 
> to say if this is possible.
>
> I also think the symbol table size problem may be limited to "large" users of 
> C++: people with 500+ object files using libc++ in a DSO. I'm more 
> comfortable imposing a cost on these users to ask them to opt in to some 
> setting that disables internal_linkage and always_inline than I am leaving 
> always_inline on by default, which adversely affects all users.


One thing to keep in mind is that we do not have a solution that allows 
removing both `internal_linkage` and `always_inline`. It's either 
`internal_linkage` or `always_inline`, but you can't get rid of both until we 
fix some problems with extern template declarations and visibility attributes. 
What I can do, however, is reverse the default to use `internal_linkage`, and 
then have a temporary hook that allows Chromium to stay on `always_inline`. In 
the future, we'd remove that hook and the choice would be between 
`internal_linkage` and nothing at all.


Repository:
  rCXX libc++

https://reviews.llvm.org/D50652



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

Reply via email to