• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#ifndef _LIBCPP_CONFIG_SITE
2#define _LIBCPP_CONFIG_SITE
3
4// We set a custom _LIBCPP_ABI_NAMESPACE for the following reasons:
5//
6// 1. When libcxx_is_shared is true, symbols from libc++.so are exported for all
7//    DSOs to use.  If the system libc++ gets loaded (indirectly through a
8//    a system library), then it will conflict with our libc++.so.
9// 2. The default value of _LIBCPP_ABI_NAMESPACE is the string
10//    "_LIBCPP_ABI_NAMESPACE". This contributes to an increase in binary size;
11//    on Windows, the increase is great enough that we go above the 4GB size
12//    limit for PDBs (https://crbug.com/1327710#c5). To fix this, we set
13//    _LIBCPP_ABI_NAMESPACE to a shorter value.
14#define _LIBCPP_ABI_NAMESPACE Cr
15#define _LIBCPP_ABI_VERSION 2
16
17/* #undef _LIBCPP_ABI_FORCE_ITANIUM */
18/* #undef _LIBCPP_ABI_FORCE_MICROSOFT */
19/* #undef _LIBCPP_HAS_NO_THREADS */
20/* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */
21/* #undef _LIBCPP_HAS_MUSL_LIBC */
22/* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */
23/* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */
24/* #undef _LIBCPP_HAS_THREAD_API_WIN32 */
25/* #undef _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL */
26/* #undef _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS */
27#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
28/* #undef _LIBCPP_NO_VCRUNTIME */
29/* #undef _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION */
30/* #undef _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY */
31/* #undef _LIBCPP_HAS_PARALLEL_ALGORITHMS */
32/* #undef _LIBCPP_HAS_NO_RANDOM_DEVICE */
33/* #undef _LIBCPP_HAS_NO_LOCALIZATION */
34/* #undef _LIBCPP_HAS_NO_WIDE_CHARACTERS */
35
36// Settings below aren't part of __config_site upstream.
37// We set them here since we want them to take effect everywhere,
38// unconditionally.
39
40// Prevent libc++ from embedding linker flags to try to automatically link
41// against its runtime library. This is unnecessary with our build system,
42// and can also result in build failures if libc++'s name for a library
43// does not match ours.  Only has an effect on Windows.
44#define _LIBCPP_NO_AUTO_LINK
45
46#define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
47
48// Don't add ABI tags to libc++ symbols. ABI tags increase mangled name sizes.
49// This only exists to allow multiple // libc++ versions to be linked into a
50// binary, which Chrome doesn't do.
51#define _LIBCPP_NO_ABI_TAG
52
53// Explicitly define  _LIBCPP_VERBOSE_ABORT(...) to call the termination
54// function because by default, this macro will does not call the verbose
55// termination function on Apple platforms.
56#define _LIBCPP_VERBOSE_ABORT(...) ::std::__libcpp_verbose_abort(__VA_ARGS__)
57
58#endif // _LIBCPP_CONFIG_SITE
59