llvm-project/libcxx
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
..
benchmarks Add benchmark for std::set. 2018-10-23 14:49:27 +00:00
cmake [CMake] Use just basename when copying C++ ABI headers 2018-10-04 05:38:53 +00:00
docs [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
fuzzing Wrote my own version of is_permutation; that was dominating the timings 2018-01-19 03:17:45 +00:00
include [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
lib [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
src [libc++] Make sure we can build libc++ with -fvisibility=hidden 2018-10-25 12:13:43 +00:00
test Temporarily Revert "Implement sized deallocation for std::allocator and friends." 2018-10-25 06:20:12 +00:00
utils [libcxx] Improve reporting when running the lit test suite 2018-10-17 16:12:04 +00:00
www Updated the issue notes. 2018-10-23 01:30:14 +00:00
.arcconfig [libcxx] Set up .arcconfig to point to new Diffusion CXX repository 2017-12-04 17:55:28 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt Remove one more warning from clang-cl build 2018-10-01 03:59:05 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:53 +00:00
LICENSE.TXT Update year to 2017 2017-01-03 11:20:43 +00:00
NOTES.TXT Reland "Use custom command and target to install libc++ headers" 2018-06-12 03:10:02 +00:00
TODO.TXT Add list of filesystem NB comments to TODO.TXT so they can be tracked separately 2017-03-06 21:23:36 +00:00
appveyor-reqs-install.cmd Update Clang version on Appveyor bots 2018-04-04 04:33:09 +00:00
appveyor.yml Rename Appveyor install helper script. 2017-05-10 02:43:02 +00:00