aboutsummaryrefslogtreecommitdiff
path: root/buildtools/libcxx_config/__config_site
blob: 2df8632ec45777b387988fea1f2932661ed5ff3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _LIBCPP_CONFIG_SITE
#define _LIBCPP_CONFIG_SITE

// We set a custom _LIBCPP_ABI_NAMESPACE for the following reasons:
//
// 1. When libcxx_is_shared is true, symbols from libc++.so are exported for all
//    DSOs to use.  If the system libc++ gets loaded (indirectly through a
//    a system library), then it will conflict with our libc++.so.
// 2. The default value of _LIBCPP_ABI_NAMESPACE is the string
//    "_LIBCPP_ABI_NAMESPACE". This contributes to an increase in binary size;
//    on Windows, the increase is great enough that we go above the 4GB size
//    limit for PDBs (https://crbug.com/1327710#c5). To fix this, we set
//    _LIBCPP_ABI_NAMESPACE to a shorter value.
#define _LIBCPP_ABI_NAMESPACE Cr
#define _LIBCPP_ABI_VERSION 2

/* #undef _LIBCPP_ABI_FORCE_ITANIUM */
/* #undef _LIBCPP_ABI_FORCE_MICROSOFT */
/* #undef _LIBCPP_HAS_NO_THREADS */
/* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */
/* #undef _LIBCPP_HAS_MUSL_LIBC */
/* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */
/* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */
/* #undef _LIBCPP_HAS_THREAD_API_WIN32 */
/* #undef _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL */
/* #undef _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS */
#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
/* #undef _LIBCPP_NO_VCRUNTIME */
/* #undef _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION */
/* #undef _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY */
/* #undef _LIBCPP_HAS_PARALLEL_ALGORITHMS */
/* #undef _LIBCPP_HAS_NO_RANDOM_DEVICE */
/* #undef _LIBCPP_HAS_NO_LOCALIZATION */
/* #undef _LIBCPP_HAS_NO_WIDE_CHARACTERS */

// Settings below aren't part of __config_site upstream.
// We set them here since we want them to take effect everywhere,
// unconditionally.

// Prevent libc++ from embedding linker flags to try to automatically link
// against its runtime library. This is unnecessary with our build system,
// and can also result in build failures if libc++'s name for a library
// does not match ours.  Only has an effect on Windows.
#define _LIBCPP_NO_AUTO_LINK

#define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES

#endif // _LIBCPP_CONFIG_SITE