llvm-project/libcxx/utils
Louis Dionne 61cd687009 [libcxx] By default, do not use internal_linkage to hide symbols from the ABI
Summary:
https://reviews.llvm.org/D49240 led to symbol size problems in Chromium, and
we expect this may be the case in other projects built in debug mode too.
Instead, unless users explicitly ask for internal_linkage, we use always_inline
like we used to.

In the future, when we have a solution that allows us to drop always_inline
without falling back on internal_linkage, we can replace always_inline by
that.

Note that this commit introduces a change in contract for existing libc++
users: by default, libc++ used to guarantee that TUs built with different
versions of libc++ could be linked together. With the introduction of the
_LIBCPP_HIDE_FROM_ABI_PER_TU macro, the default behavior is that TUs built
with different libc++ versions are not guaranteed to link. This is a change
in contract but not a change in behavior, since the current implementation
still allows linking TUs built with different libc++ versions together.

Reviewers: EricWF, mclow.lists, dexonsmith, hans, rnk

Subscribers: christof, cfe-commits

Differential Revision: https://reviews.llvm.org/D50652

llvm-svn: 339874
2018-08-16 12:44:28 +00:00
..
google-benchmark Remove BUILD file from google-benchmark 2018-07-10 13:25:26 +00:00
libcxx [libcxx] By default, do not use internal_linkage to hide symbols from the ABI 2018-08-16 12:44:28 +00:00
symcheck-blacklists Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00
cat_files.py Fix creating __generated_config on Windows 2017-01-03 03:55:29 +00:00
gen_link_script.py Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00
merge_archives.py Use CMAKE_AR instead of the system default 'ar' for merging static libraries 2017-09-13 06:55:44 +00:00
not.py Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00
sym_diff.py Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00
sym_extract.py Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00
sym_match.py Start libc++ python cleanup and consolidation. 2017-02-09 22:53:14 +00:00