llvm-project/libcxx/lib/abi
Louis Dionne 9b3222f613 [libc++] Make sure we can build libc++ with -fvisibility=hidden
Summary:
When building with -fvisibility=hidden, some symbols do not get exported from
libc++.dylib. This means that some entities are not explicitly given default
visibility in the source code, and that we rely on the fact -fvisibility=default
is the default. This commit explicitly gives default visibility to those
symbols to avoid being dependent on the command line flags used.

The commit also remove symbols from the dylib -- those symbols do not
actually need to be exported from the dylib and this should not be an
ABI break.

Finally, in the future, we may want to mark the whole std:: namespace as
having hidden visibility (to switch from opt-out to opt-in), in which
case the changes done in this commit will be required.

Reviewers: EricWF

Subscribers: mgorny, christof, dexonsmith, libcxx-commits

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

llvm-svn: 345260
2018-10-25 12:13:43 +00:00
..
3.9 Fix handling of Apple target triple when checking the ABI lists. 2017-01-20 00:57:08 +00:00
4.0 Update ABI list for 4.0 release 2017-03-02 19:59:53 +00:00
5.0 Update ABI lists after change in r333467. 2018-05-29 23:52:14 +00:00
6.0 Update ABI lists after change in r333467. 2018-05-29 23:52:14 +00:00
CHANGELOG.TXT [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
CMakeLists.txt [libcxx] Fix the definition of the check-cxx-abilist target on Darwin 2018-09-22 18:39:38 +00:00
README.TXT
x86_64-apple-darwin.v1.abilist [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
x86_64-apple-darwin.v2.abilist [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
x86_64-unknown-linux-gnu.v1.abilist [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00

README.TXT

This directory contains abi lists representing the symbols exported
by the libc++ library. The lists are generated using sym_extract.py.

Every time a symbol is added or removed from the libc++ library each of the
lists *MUST* be updated to reflect the changes.

TODO Add more documentation about generating and using the lists.
TODO Add more documentation about the build configuration the lists are generated against.