OLD | NEW |
1 // -*- C++ -*- | 1 // -*- C++ -*- |
2 //===--------------------------- __config ---------------------------------===// | 2 //===--------------------------- __config ---------------------------------===// |
3 // | 3 // |
4 // The LLVM Compiler Infrastructure | 4 // The LLVM Compiler Infrastructure |
5 // | 5 // |
6 // This file is dual licensed under the MIT and the University of Illinois Open | 6 // This file is dual licensed under the MIT and the University of Illinois Open |
7 // Source Licenses. See LICENSE.TXT for details. | 7 // Source Licenses. See LICENSE.TXT for details. |
8 // | 8 // |
9 //===----------------------------------------------------------------------===// | 9 //===----------------------------------------------------------------------===// |
10 | 10 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 # endif | 111 # endif |
112 #endif // __sun__ | 112 #endif // __sun__ |
113 | 113 |
114 #if defined(__native_client__) | 114 #if defined(__native_client__) |
115 // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, | 115 // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, |
116 // including accesses to the special files under /dev. C++11's | 116 // including accesses to the special files under /dev. C++11's |
117 // std::random_device is instead exposed through a NaCl syscall. | 117 // std::random_device is instead exposed through a NaCl syscall. |
118 # define _LIBCPP_USING_NACL_RANDOM | 118 # define _LIBCPP_USING_NACL_RANDOM |
119 #endif // defined(__native_client__) | 119 #endif // defined(__native_client__) |
120 | 120 |
| 121 #ifdef __musl__ |
| 122 #define _LIBCPP_HAS_MUSL_LIBC |
| 123 #endif // defined(__musl__) |
| 124 |
121 #if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) | 125 #if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) |
122 # include <endian.h> | 126 # include <endian.h> |
123 # if __BYTE_ORDER == __LITTLE_ENDIAN | 127 # if __BYTE_ORDER == __LITTLE_ENDIAN |
124 # define _LIBCPP_LITTLE_ENDIAN 1 | 128 # define _LIBCPP_LITTLE_ENDIAN 1 |
125 # define _LIBCPP_BIG_ENDIAN 0 | 129 # define _LIBCPP_BIG_ENDIAN 0 |
126 # elif __BYTE_ORDER == __BIG_ENDIAN | 130 # elif __BYTE_ORDER == __BIG_ENDIAN |
127 # define _LIBCPP_LITTLE_ENDIAN 0 | 131 # define _LIBCPP_LITTLE_ENDIAN 0 |
128 # define _LIBCPP_BIG_ENDIAN 1 | 132 # define _LIBCPP_BIG_ENDIAN 1 |
129 # else // __BYTE_ORDER == __BIG_ENDIAN | 133 # else // __BYTE_ORDER == __BIG_ENDIAN |
130 # error unable to determine endian | 134 # error unable to determine endian |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR | 329 #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR |
326 #endif | 330 #endif |
327 | 331 |
328 #if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L | 332 #if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L |
329 #if defined(__FreeBSD__) | 333 #if defined(__FreeBSD__) |
330 #define _LIBCPP_HAS_QUICK_EXIT | 334 #define _LIBCPP_HAS_QUICK_EXIT |
331 #define _LIBCPP_HAS_C11_FEATURES | 335 #define _LIBCPP_HAS_C11_FEATURES |
332 #elif defined(__ANDROID__) | 336 #elif defined(__ANDROID__) |
333 #define _LIBCPP_HAS_QUICK_EXIT | 337 #define _LIBCPP_HAS_QUICK_EXIT |
334 #elif defined(__linux__) | 338 #elif defined(__linux__) |
335 #include <features.h> | 339 #if !defined(_LIBCPP_HAS_MUSL_LIBC) |
| 340 # include <features.h> |
336 #if __GLIBC_PREREQ(2, 15) | 341 #if __GLIBC_PREREQ(2, 15) |
337 #define _LIBCPP_HAS_QUICK_EXIT | 342 #define _LIBCPP_HAS_QUICK_EXIT |
338 #endif | 343 #endif |
339 #if __GLIBC_PREREQ(2, 17) | 344 #if __GLIBC_PREREQ(2, 17) |
340 #define _LIBCPP_HAS_C11_FEATURES | 345 #define _LIBCPP_HAS_C11_FEATURES |
341 #endif | 346 #endif |
| 347 #else // defined(_LIBCPP_HAS_MUSL_LIBC) |
| 348 #define _LIBCPP_HAS_QUICK_EXIT |
| 349 #define _LIBCPP_HAS_C11_FEATURES |
342 #endif | 350 #endif |
| 351 #endif // __linux__ |
343 #endif | 352 #endif |
344 | 353 |
345 #if (__has_feature(cxx_noexcept)) | 354 #if (__has_feature(cxx_noexcept)) |
346 # define _NOEXCEPT noexcept | 355 # define _NOEXCEPT noexcept |
347 # define _NOEXCEPT_(x) noexcept(x) | 356 # define _NOEXCEPT_(x) noexcept(x) |
348 # define _NOEXCEPT_OR_FALSE(x) noexcept(x) | 357 # define _NOEXCEPT_OR_FALSE(x) noexcept(x) |
349 #else | 358 #else |
350 # define _NOEXCEPT throw() | 359 # define _NOEXCEPT throw() |
351 # define _NOEXCEPT_(x) | 360 # define _NOEXCEPT_(x) |
352 # define _NOEXCEPT_OR_FALSE(x) false | 361 # define _NOEXCEPT_OR_FALSE(x) false |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 # elif (defined(_MSC_VER) && !defined(__clang__)) && !defined(_CPPRTTI) | 720 # elif (defined(_MSC_VER) && !defined(__clang__)) && !defined(_CPPRTTI) |
712 # define _LIBCPP_NO_RTTI | 721 # define _LIBCPP_NO_RTTI |
713 # endif | 722 # endif |
714 #endif | 723 #endif |
715 | 724 |
716 #ifndef _LIBCPP_WEAK | 725 #ifndef _LIBCPP_WEAK |
717 # define _LIBCPP_WEAK __attribute__((__weak__)) | 726 # define _LIBCPP_WEAK __attribute__((__weak__)) |
718 #endif | 727 #endif |
719 | 728 |
720 #endif // _LIBCPP_CONFIG | 729 #endif // _LIBCPP_CONFIG |
OLD | NEW |