forked from OSchip/llvm-project
10953974ed
This works around a known issue in ASan. ASan doesn't instrument weak symbols. Because instrumentation increases object size, the binary can end up with two versions of the same object, one instrumented and one not instrumented, with different sizes, which ASan will report as an ODR violation. In libc++, this affects typeinfo for `std::bad_function_call` which is emitted as a weak symbol in the test executable and as a strong symbol in the shared library. The main open issue for ASan appears to be https://github.com/google/sanitizers/issues/1017. Differential Revision: https://reviews.llvm.org/D119410 |
||
---|---|---|
.. | ||
AArch64.cmake | ||
AIX.cmake | ||
Apple.cmake | ||
Armv7Arm.cmake | ||
Armv7Thumb-noexceptions.cmake | ||
Armv8Arm.cmake | ||
Armv8Thumb-noexceptions.cmake | ||
FreeBSD.cmake | ||
Generic-abi-unstable.cmake | ||
Generic-asan.cmake | ||
Generic-assertions.cmake | ||
Generic-cxx2b.cmake | ||
Generic-cxx03.cmake | ||
Generic-cxx11.cmake | ||
Generic-cxx14.cmake | ||
Generic-cxx17.cmake | ||
Generic-cxx20.cmake | ||
Generic-debug-iterators.cmake | ||
Generic-modules.cmake | ||
Generic-msan.cmake | ||
Generic-no-debug.cmake | ||
Generic-no-experimental.cmake | ||
Generic-no-filesystem.cmake | ||
Generic-no-localization.cmake | ||
Generic-no-random_device.cmake | ||
Generic-no-unicode.cmake | ||
Generic-no-wide-characters.cmake | ||
Generic-noexceptions.cmake | ||
Generic-singlethreaded.cmake | ||
Generic-static.cmake | ||
Generic-tsan.cmake | ||
Generic-ubsan.cmake | ||
MinGW.cmake | ||
README.md |
README.md
libc++ / libc++abi configuration caches
This directory contains CMake caches for the supported configurations of libc++. Some of the configurations are specific to a vendor, others are generic and not tied to any vendor.
While we won't explicitly work to break configurations not listed here, any configuration not listed here is not explicitly supported. If you use or ship libc++ under a configuration not listed here, you should work with the libc++ maintainers to make it into a supported configuration and add it here.
Similarly, adding any new configuration that's not already covered must be discussed with the libc++ maintainers as it entails a maintenance burden.