|
101 | 101 | # define _LIBCPP_AVAILABILITY_HAS_BAD_ANY_CAST 1 |
102 | 102 | # define _LIBCPP_AVAILABILITY_BAD_ANY_CAST |
103 | 103 |
|
104 | | -// These macros controls the availability of __cxa_init_primary_exception |
105 | | -// in the built library, which std::make_exception_ptr might use |
106 | | -// (see libcxx/include/__exception/exception_ptr.h). |
107 | | -# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 1 |
108 | | -# define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION |
109 | | - |
110 | 104 | // These macros control the availability of all parts of <filesystem> that |
111 | 105 | // depend on something in the dylib. |
112 | 106 | # define _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY 1 |
113 | 107 | # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY |
114 | 108 | # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH |
115 | 109 | # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_POP |
116 | 110 |
|
117 | | -// This controls the availability of floating-point std::to_chars functions. |
118 | | -// These overloads were added later than the integer overloads. |
119 | | -# define _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT 1 |
120 | | -# define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT |
121 | | - |
122 | 111 | // This controls the availability of the C++20 synchronization library, |
123 | 112 | // which requires shared library support for various operations |
124 | 113 | // (see libcxx/src/atomic.cpp). This includes <barier>, <latch>, |
125 | 114 | // <semaphore>, and notification functions on std::atomic. |
126 | 115 | # define _LIBCPP_AVAILABILITY_HAS_SYNC 1 |
127 | 116 | # define _LIBCPP_AVAILABILITY_SYNC |
128 | 117 |
|
| 118 | +// Enable additional explicit instantiations of iostreams components. This |
| 119 | +// reduces the number of weak definitions generated in programs that use |
| 120 | +// iostreams by providing a single strong definition in the shared library. |
| 121 | +// |
| 122 | +// TODO: Enable additional explicit instantiations on GCC once it supports exclude_from_explicit_instantiation, |
| 123 | +// or once libc++ doesn't use the attribute anymore. |
| 124 | +// TODO: Enable them on Windows once https://llvm.org/PR41018 has been fixed. |
| 125 | +# if !defined(_LIBCPP_COMPILER_GCC) && !defined(_WIN32) |
| 126 | +# define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 1 |
| 127 | +# else |
| 128 | +# define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 0 |
| 129 | +# endif |
| 130 | + |
| 131 | +// This controls the availability of floating-point std::to_chars functions. |
| 132 | +// These overloads were added later than the integer overloads. |
| 133 | +# define _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT 1 |
| 134 | +# define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT |
| 135 | + |
129 | 136 | // This controls whether the library claims to provide a default verbose |
130 | 137 | // termination function, and consequently whether the headers will try |
131 | 138 | // to use it when the mechanism isn't overriden at compile-time. |
|
137 | 144 | # define _LIBCPP_AVAILABILITY_HAS_PMR 1 |
138 | 145 | # define _LIBCPP_AVAILABILITY_PMR |
139 | 146 |
|
140 | | -// This controls the availability of the C++20 time zone database. |
141 | | -// The parser code is built in the library. |
142 | | -# define _LIBCPP_AVAILABILITY_HAS_TZDB 1 |
143 | | -# define _LIBCPP_AVAILABILITY_TZDB |
| 147 | +// These macros controls the availability of __cxa_init_primary_exception |
| 148 | +// in the built library, which std::make_exception_ptr might use |
| 149 | +// (see libcxx/include/__exception/exception_ptr.h). |
| 150 | +# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 1 |
| 151 | +# define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION |
144 | 152 |
|
145 | 153 | // This controls the availability of C++23 <print>, which |
146 | 154 | // has a dependency on the built library (it needs access to |
147 | 155 | // the underlying buffer types of std::cout, std::cerr, and std::clog. |
148 | 156 | # define _LIBCPP_AVAILABILITY_HAS_PRINT 1 |
149 | 157 | # define _LIBCPP_AVAILABILITY_PRINT |
150 | 158 |
|
151 | | -// Enable additional explicit instantiations of iostreams components. This |
152 | | -// reduces the number of weak definitions generated in programs that use |
153 | | -// iostreams by providing a single strong definition in the shared library. |
154 | | -// |
155 | | -// TODO: Enable additional explicit instantiations on GCC once it supports exclude_from_explicit_instantiation, |
156 | | -// or once libc++ doesn't use the attribute anymore. |
157 | | -// TODO: Enable them on Windows once https://llvm.org/PR41018 has been fixed. |
158 | | -# if !defined(_LIBCPP_COMPILER_GCC) && !defined(_WIN32) |
159 | | -# define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 1 |
160 | | -# else |
161 | | -# define _LIBCPP_AVAILABILITY_HAS_ADDITIONAL_IOSTREAM_EXPLICIT_INSTANTIATIONS_1 0 |
162 | | -# endif |
| 159 | +// This controls the availability of the C++20 time zone database. |
| 160 | +// The parser code is built in the library. |
| 161 | +# define _LIBCPP_AVAILABILITY_HAS_TZDB 1 |
| 162 | +# define _LIBCPP_AVAILABILITY_TZDB |
163 | 163 |
|
164 | 164 | #elif defined(__APPLE__) |
165 | 165 |
|
|
0 commit comments