summaryrefslogtreecommitdiff
path: root/libcxx/docs
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2018-10-29 17:30:04 +0000
committerLouis Dionne <ldionne@apple.com>2018-10-29 17:30:04 +0000
commitc4314126040416a7e1b1d90549f13372a5ea1d80 (patch)
tree190e6628312113f6fe9dc0aa0d37a834150a1b2d /libcxx/docs
parent4a0c43cbdaf22a844cf6bcfd64a4ede0cc34e469 (diff)
[libc++] Use exclude_from_explicit_instantiation instead of always_inline
Summary: This commit adopts the exclude_from_explicit_instantiation attribute discussed at [1] and reviewed in [2] in libc++ to supplant the use of __always_inline__ for visibility purposes. This change means that users wanting to link together translation units built with different versions of libc++'s headers into the same final linked image MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those TUs. Doing otherwise will lead to ODR violations and ABI issues. [1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html [2]: https://reviews.llvm.org/D51789 Reviewers: rsmith, EricWF Subscribers: dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D52405
Diffstat (limited to 'libcxx/docs')
-rw-r--r--libcxx/docs/ReleaseNotes.rst7
1 files changed, 7 insertions, 0 deletions
diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 52d7a1ed42f..4cf5182a7f3 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -41,3 +41,10 @@ New Features
API Changes
-----------
- Building libc++ for Mac OSX 10.6 is not supported anymore.
+- Starting with LLVM 8.0.0, users that wish to link together translation units
+ built with different versions of libc++'s headers into the same final linked
+ image MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building
+ those translation units. Not defining _LIBCPP_HIDE_FROM_ABI_PER_TU to 1 and
+ linking translation units built with different versions of libc++'s headers
+ together may lead to ODR violations and ABI issues. On the flipside, code
+ size improvements should be expected for everyone not defining the macro.