mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-07 19:34:56 +00:00
parent
8920e5fbea
commit
b8c80c9570
@ -1,6 +1,6 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1997-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -31,10 +31,10 @@
|
||||
#define _GLIBCXX_CXX_CONFIG_H 1
|
||||
|
||||
// The major release number for the GCC release the C++ library belongs to.
|
||||
#define _GLIBCXX_RELEASE 10
|
||||
#define _GLIBCXX_RELEASE 12
|
||||
|
||||
// The datestamp of the C++ library in compressed ISO date format.
|
||||
#define __GLIBCXX__ 20210408
|
||||
#define __GLIBCXX__ 20220819
|
||||
|
||||
// Macros for various attributes.
|
||||
// _GLIBCXX_PURE
|
||||
@ -77,14 +77,20 @@
|
||||
// Macros for deprecated attributes.
|
||||
// _GLIBCXX_USE_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX11_DEPRECATED
|
||||
// _GLIBCXX11_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX14_DEPRECATED
|
||||
// _GLIBCXX14_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX17_DEPRECATED
|
||||
// _GLIBCXX17_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED_SUGGEST( string-literal )
|
||||
#ifndef _GLIBCXX_USE_DEPRECATED
|
||||
# define _GLIBCXX_USE_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
#if defined(__DEPRECATED)
|
||||
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
|
||||
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
|
||||
@ -93,16 +99,36 @@
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201402L)
|
||||
# define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX14_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 202002L)
|
||||
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX20_DEPRECATED(MSG)
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
// Macros for ABI tag attributes.
|
||||
@ -149,13 +175,21 @@
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX20_CONSTEXPR
|
||||
# if __cplusplus > 201703L
|
||||
# if __cplusplus >= 202002L
|
||||
# define _GLIBCXX20_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX20_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX23_CONSTEXPR
|
||||
# if __cplusplus >= 202100L
|
||||
# define _GLIBCXX23_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX23_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX17_INLINE
|
||||
# if __cplusplus >= 201703L
|
||||
# define _GLIBCXX17_INLINE inline
|
||||
@ -267,6 +301,17 @@ namespace std
|
||||
#if __cplusplus >= 201103L
|
||||
typedef decltype(nullptr) nullptr_t;
|
||||
#endif
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
// This allows the library to terminate without including all of <exception>
|
||||
// and without making the declaration of std::terminate visible to users.
|
||||
extern "C++" __attribute__ ((__noreturn__, __always_inline__))
|
||||
inline void __terminate() _GLIBCXX_USE_NOEXCEPT
|
||||
{
|
||||
void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__));
|
||||
terminate();
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
# define _GLIBCXX_USE_DUAL_ABI 1
|
||||
@ -410,7 +455,30 @@ _GLIBCXX_END_NAMESPACE_VERSION
|
||||
// Define if compatibility should be provided for -mlong-double-64.
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Inline namespace for long double 128 mode.
|
||||
// Define if compatibility should be provided for alternative 128-bit long
|
||||
// double formats. Not possible for Clang until __ibm128 is supported.
|
||||
#ifndef __clang__
|
||||
#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
|
||||
#endif
|
||||
|
||||
// Inline namespaces for long double 128 modes.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \
|
||||
&& defined __LONG_DOUBLE_IEEE128__
|
||||
namespace std
|
||||
{
|
||||
// Namespaces for 128-bit IEEE long double format on 64-bit POWER LE.
|
||||
inline namespace __gnu_cxx_ieee128 { }
|
||||
inline namespace __gnu_cxx11_ieee128 { }
|
||||
}
|
||||
# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL }
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 }
|
||||
|
||||
#else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
@ -424,6 +492,7 @@ namespace std
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_USE_CXX11_ABI
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||
@ -434,6 +503,31 @@ namespace std
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Internal version of std::is_constant_evaluated().
|
||||
// This can be used without checking if the compiler supports the feature.
|
||||
// The macro _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED can be used to check if
|
||||
// the compiler support is present to make this function work as expected.
|
||||
_GLIBCXX_CONSTEXPR inline bool
|
||||
__is_constant_evaluated() _GLIBCXX_NOEXCEPT
|
||||
{
|
||||
#if __cpp_if_consteval >= 202106L
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
if consteval { return true; } else { return false; }
|
||||
#elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
return __builtin_is_constant_evaluated();
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
// Debug Mode implies checking assertions.
|
||||
#if defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_ASSERTIONS)
|
||||
# define _GLIBCXX_ASSERTIONS 1
|
||||
@ -445,35 +539,65 @@ namespace std
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
#endif
|
||||
|
||||
|
||||
#if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
|
||||
# define __glibcxx_constexpr_assert(cond) \
|
||||
if (std::__is_constant_evaluated() && !bool(cond)) \
|
||||
__builtin_unreachable() /* precondition violation detected! */
|
||||
#else
|
||||
# define __glibcxx_constexpr_assert(unevaluated)
|
||||
#endif
|
||||
|
||||
#define _GLIBCXX_VERBOSE_ASSERT 1
|
||||
|
||||
// Assert.
|
||||
#if defined(_GLIBCXX_ASSERTIONS) \
|
||||
|| defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS)
|
||||
# ifdef _GLIBCXX_VERBOSE_ASSERT
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
extern "C++" inline void
|
||||
__replacement_assert(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
{
|
||||
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
|
||||
__function, __condition);
|
||||
__builtin_abort();
|
||||
}
|
||||
extern "C++" _GLIBCXX_NORETURN
|
||||
void
|
||||
__glibcxx_assert_fail(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
_GLIBCXX_NOEXCEPT;
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
} while (false)
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
}
|
||||
# else // ! VERBOSE_ASSERT
|
||||
# define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
__builtin_abort(); \
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_GLIBCXX_ASSERTIONS)
|
||||
# define __glibcxx_assert(_Condition) __glibcxx_assert_impl(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_assert_impl(cond); } while (false)
|
||||
#else
|
||||
# define __glibcxx_assert(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_constexpr_assert(cond); } while (false)
|
||||
#endif
|
||||
|
||||
// Macro indicating that TSAN is in use.
|
||||
#if __SANITIZE_THREAD__
|
||||
# define _GLIBCXX_TSAN 1
|
||||
#elif defined __has_feature
|
||||
# if __has_feature(thread_sanitizer)
|
||||
# define _GLIBCXX_TSAN 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Macros for race detectors.
|
||||
@ -510,6 +634,15 @@ namespace std
|
||||
|
||||
# define _GLIBCXX_USE_ALLOCATOR_NEW 1
|
||||
|
||||
#ifdef __SIZEOF_INT128__
|
||||
#if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__
|
||||
// If __int128 is supported, we expect __GLIBCXX_TYPE_INT_N_0 to be defined
|
||||
// unless the compiler is in strict mode. If it's not defined and the strict
|
||||
// macro is not defined, something is wrong.
|
||||
#warning "__STRICT_ANSI__ seems to have been undefined; this is not supported"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else // !__cplusplus
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C
|
||||
# define _GLIBCXX_END_EXTERN_C
|
||||
@ -634,38 +767,54 @@ namespace std
|
||||
# define __cpp_lib_char8_t 201907L
|
||||
#endif
|
||||
|
||||
/* Define if __float128 is supported on this host. */
|
||||
/* Define if __float128 is supported on this host. */
|
||||
#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
|
||||
#undef _GLIBCXX_USE_FLOAT128
|
||||
/* For powerpc64 don't use __float128 when it's the same type as long double. */
|
||||
# if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__))
|
||||
# undef _GLIBCXX_USE_FLOAT128
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __GNUC__ >= 7
|
||||
// Assume these are available if the compiler claims to be a recent GCC:
|
||||
// Define if float has the IEEE binary32 format.
|
||||
#if __FLT_MANT_DIG__ == 24 \
|
||||
&& __FLT_MIN_EXP__ == -125 \
|
||||
&& __FLT_MAX_EXP__ == 128
|
||||
# define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1
|
||||
#endif
|
||||
|
||||
// Define if double has the IEEE binary64 format.
|
||||
#if __DBL_MANT_DIG__ == 53 \
|
||||
&& __DBL_MIN_EXP__ == -1021 \
|
||||
&& __DBL_MAX_EXP__ == 1024
|
||||
# define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1
|
||||
#endif
|
||||
|
||||
#ifdef __has_builtin
|
||||
# ifdef __is_identifier
|
||||
// Intel and older Clang require !__is_identifier for some built-ins:
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B)
|
||||
# else
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_same)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_SAME 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same_as(T, U)
|
||||
# if __GNUC__ >= 9
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
#elif defined(__is_identifier) && defined(__has_builtin)
|
||||
// For non-GNU compilers:
|
||||
# if ! __is_identifier(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_same)
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same(T, U)
|
||||
# endif
|
||||
#endif // GCC
|
||||
#endif
|
||||
|
||||
#undef _GLIBCXX_HAS_BUILTIN
|
||||
|
||||
// PSTL configuration
|
||||
|
||||
@ -706,6 +855,9 @@ namespace std
|
||||
/* Define to 1 if you have the `aligned_alloc' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ALIGNED_ALLOC */
|
||||
|
||||
/* Define if arc4random is available in <stdlib.h>. */
|
||||
#define _GLIBCXX_HAVE_ARC4RANDOM 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define _GLIBCXX_HAVE_ARPA_INET_H 1
|
||||
|
||||
@ -760,9 +912,16 @@ namespace std
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
||||
don't. */
|
||||
#define _GLIBCXX_HAVE_DECL_STRNLEN 1
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DIRENT_H 1
|
||||
|
||||
/* Define if dirfd is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_DIRFD 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DLFCN_H 1
|
||||
|
||||
@ -790,6 +949,9 @@ namespace std
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if fdopendir is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_FDOPENDIR 1
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FENV_H 1
|
||||
|
||||
@ -829,6 +991,9 @@ namespace std
|
||||
/* Define to 1 if you have the `frexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if getentropy is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_GETENTROPY 1
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
@ -850,15 +1015,6 @@ namespace std
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* Define if int64_t is available in <stdint.h>. */
|
||||
#define _GLIBCXX_HAVE_INT64_T 1
|
||||
|
||||
/* Define if int64_t is a long. */
|
||||
/* #undef _GLIBCXX_HAVE_INT64_T_LONG */
|
||||
|
||||
/* Define if int64_t is a long long. */
|
||||
#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define _GLIBCXX_HAVE_INTTYPES_H 1
|
||||
|
||||
@ -913,6 +1069,9 @@ namespace std
|
||||
/* Define if link is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_LINK 1
|
||||
|
||||
/* Define to 1 if you have the <link.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_LINK_H */
|
||||
|
||||
/* Define if futex syscall is available. */
|
||||
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */
|
||||
|
||||
@ -979,6 +1138,9 @@ namespace std
|
||||
/* Define if <math.h> defines obsolete isnan function. */
|
||||
/* #undef _GLIBCXX_HAVE_OBSOLETE_ISNAN */
|
||||
|
||||
/* Define if openat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_OPENAT 1
|
||||
|
||||
/* Define if poll is available in <poll.h>. */
|
||||
#define _GLIBCXX_HAVE_POLL 1
|
||||
|
||||
@ -988,6 +1150,10 @@ namespace std
|
||||
/* Define to 1 if you have the `posix_memalign' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POSIX_MEMALIGN */
|
||||
|
||||
/* Define to 1 if POSIX Semaphores with sem_timedwait are available in
|
||||
<semaphore.h>. */
|
||||
#define _GLIBCXX_HAVE_POSIX_SEMAPHORE 1
|
||||
|
||||
/* Define to 1 if you have the `powf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POWF */
|
||||
|
||||
@ -1003,6 +1169,9 @@ namespace std
|
||||
/* Define if readlink is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_READLINK 1
|
||||
|
||||
/* Define to 1 if you have the `secure_getenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SECURE_GETENV */
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SETENV */
|
||||
|
||||
@ -1039,6 +1208,9 @@ namespace std
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define if the <stacktrace> header is supported. */
|
||||
/* #undef _GLIBCXX_HAVE_STACKTRACE */
|
||||
|
||||
/* Define to 1 if you have the <stdalign.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDALIGN_H 1
|
||||
|
||||
@ -1097,6 +1269,9 @@ namespace std
|
||||
/* Define to 1 if you have the <sys/machine.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MMAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_PARAM_H 1
|
||||
|
||||
@ -1166,6 +1341,12 @@ namespace std
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if unlinkat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_UNLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `uselocale' function. */
|
||||
/* #undef _GLIBCXX_HAVE_USELOCALE */
|
||||
|
||||
/* Defined if usleep exists. */
|
||||
#define _GLIBCXX_HAVE_USLEEP 1
|
||||
|
||||
@ -1196,6 +1377,9 @@ namespace std
|
||||
/* Define if writev is available in <sys/uio.h>. */
|
||||
#define _GLIBCXX_HAVE_WRITEV 1
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
#define _GLIBCXX_HAVE_XLOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the `_acosf' function. */
|
||||
/* #undef _GLIBCXX_HAVE__ACOSF */
|
||||
|
||||
@ -1399,7 +1583,7 @@ namespace std
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
#define _GLIBCXX_LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
/* #undef _GLIBCXX_PACKAGE */
|
||||
@ -1438,7 +1622,7 @@ namespace std
|
||||
/* #undef SIZEOF_VOID_P */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
#define _GLIBCXX_STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
/* #undef _GLIBCXX_VERSION */
|
||||
@ -1509,6 +1693,9 @@ namespace std
|
||||
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
|
||||
#define _GLIBCXX_HOSTED 1
|
||||
|
||||
/* Define if compatibility should be provided for alternative 128-bit long
|
||||
double formats. */
|
||||
|
||||
/* Define if compatibility should be provided for -mlong-double-64. */
|
||||
|
||||
/* Define to the letter to which size_t is mangled. */
|
||||
@ -1517,6 +1704,9 @@ namespace std
|
||||
/* Define if C99 llrint and llround functions are missing from <math.h>. */
|
||||
/* #undef _GLIBCXX_NO_C99_ROUNDING_FUNCS */
|
||||
|
||||
/* Defined if no way to sleep is available. */
|
||||
/* #undef _GLIBCXX_NO_SLEEP */
|
||||
|
||||
/* Define if ptrdiff_t is int. */
|
||||
/* #undef _GLIBCXX_PTRDIFF_T_IS_INT */
|
||||
|
||||
@ -1603,7 +1793,7 @@ namespace std
|
||||
|
||||
/* Define if /dev/random and /dev/urandom are available for
|
||||
std::random_device. */
|
||||
#define _GLIBCXX_USE_DEV_RANDOM 1
|
||||
/* #undef _GLIBCXX_USE_DEV_RANDOM */
|
||||
|
||||
/* Define if fchmod is available in <sys/stat.h>. */
|
||||
#define _GLIBCXX_USE_FCHMOD 1
|
||||
@ -1617,9 +1807,6 @@ namespace std
|
||||
/* Define if get_nprocs is available in <sys/sysinfo.h>. */
|
||||
/* #undef _GLIBCXX_USE_GET_NPROCS */
|
||||
|
||||
/* Define if __int128 is supported on this host. */
|
||||
/* #undef _GLIBCXX_USE_INT128 */
|
||||
|
||||
/* Define if LFS support is available. */
|
||||
/* #undef _GLIBCXX_USE_LFS */
|
||||
|
||||
@ -1670,6 +1857,9 @@ namespace std
|
||||
/* Define if sendfile is available in <sys/sendfile.h>. */
|
||||
/* #undef _GLIBCXX_USE_SENDFILE */
|
||||
|
||||
/* Define to restrict std::__basic_file<> to stdio APIs. */
|
||||
/* #undef _GLIBCXX_USE_STDIO_PURE */
|
||||
|
||||
/* Define if struct stat has timespec members. */
|
||||
#define _GLIBCXX_USE_ST_MTIM 1
|
||||
|
||||
@ -1679,6 +1869,14 @@ namespace std
|
||||
/* Define if obsolescent tmpnam is available in <stdio.h>. */
|
||||
#define _GLIBCXX_USE_TMPNAM 1
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for C++20. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 */
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for -fchar8_t. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T */
|
||||
|
||||
/* Define if utime is available in <utime.h>. */
|
||||
#define _GLIBCXX_USE_UTIME 1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1997-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -31,10 +31,10 @@
|
||||
#define _GLIBCXX_CXX_CONFIG_H 1
|
||||
|
||||
// The major release number for the GCC release the C++ library belongs to.
|
||||
#define _GLIBCXX_RELEASE 10
|
||||
#define _GLIBCXX_RELEASE 12
|
||||
|
||||
// The datestamp of the C++ library in compressed ISO date format.
|
||||
#define __GLIBCXX__ 20210408
|
||||
#define __GLIBCXX__ 20220819
|
||||
|
||||
// Macros for various attributes.
|
||||
// _GLIBCXX_PURE
|
||||
@ -77,14 +77,20 @@
|
||||
// Macros for deprecated attributes.
|
||||
// _GLIBCXX_USE_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX11_DEPRECATED
|
||||
// _GLIBCXX11_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX14_DEPRECATED
|
||||
// _GLIBCXX14_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX17_DEPRECATED
|
||||
// _GLIBCXX17_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED_SUGGEST( string-literal )
|
||||
#ifndef _GLIBCXX_USE_DEPRECATED
|
||||
# define _GLIBCXX_USE_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
#if defined(__DEPRECATED)
|
||||
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
|
||||
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
|
||||
@ -93,16 +99,36 @@
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201402L)
|
||||
# define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX14_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 202002L)
|
||||
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX20_DEPRECATED(MSG)
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
// Macros for ABI tag attributes.
|
||||
@ -149,13 +175,21 @@
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX20_CONSTEXPR
|
||||
# if __cplusplus > 201703L
|
||||
# if __cplusplus >= 202002L
|
||||
# define _GLIBCXX20_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX20_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX23_CONSTEXPR
|
||||
# if __cplusplus >= 202100L
|
||||
# define _GLIBCXX23_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX23_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX17_INLINE
|
||||
# if __cplusplus >= 201703L
|
||||
# define _GLIBCXX17_INLINE inline
|
||||
@ -267,6 +301,17 @@ namespace std
|
||||
#if __cplusplus >= 201103L
|
||||
typedef decltype(nullptr) nullptr_t;
|
||||
#endif
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
// This allows the library to terminate without including all of <exception>
|
||||
// and without making the declaration of std::terminate visible to users.
|
||||
extern "C++" __attribute__ ((__noreturn__, __always_inline__))
|
||||
inline void __terminate() _GLIBCXX_USE_NOEXCEPT
|
||||
{
|
||||
void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__));
|
||||
terminate();
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
# define _GLIBCXX_USE_DUAL_ABI 1
|
||||
@ -410,7 +455,30 @@ _GLIBCXX_END_NAMESPACE_VERSION
|
||||
// Define if compatibility should be provided for -mlong-double-64.
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Inline namespace for long double 128 mode.
|
||||
// Define if compatibility should be provided for alternative 128-bit long
|
||||
// double formats. Not possible for Clang until __ibm128 is supported.
|
||||
#ifndef __clang__
|
||||
#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
|
||||
#endif
|
||||
|
||||
// Inline namespaces for long double 128 modes.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \
|
||||
&& defined __LONG_DOUBLE_IEEE128__
|
||||
namespace std
|
||||
{
|
||||
// Namespaces for 128-bit IEEE long double format on 64-bit POWER LE.
|
||||
inline namespace __gnu_cxx_ieee128 { }
|
||||
inline namespace __gnu_cxx11_ieee128 { }
|
||||
}
|
||||
# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL }
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 }
|
||||
|
||||
#else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
@ -424,6 +492,7 @@ namespace std
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_USE_CXX11_ABI
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||
@ -434,6 +503,31 @@ namespace std
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Internal version of std::is_constant_evaluated().
|
||||
// This can be used without checking if the compiler supports the feature.
|
||||
// The macro _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED can be used to check if
|
||||
// the compiler support is present to make this function work as expected.
|
||||
_GLIBCXX_CONSTEXPR inline bool
|
||||
__is_constant_evaluated() _GLIBCXX_NOEXCEPT
|
||||
{
|
||||
#if __cpp_if_consteval >= 202106L
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
if consteval { return true; } else { return false; }
|
||||
#elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
return __builtin_is_constant_evaluated();
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
// Debug Mode implies checking assertions.
|
||||
#if defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_ASSERTIONS)
|
||||
# define _GLIBCXX_ASSERTIONS 1
|
||||
@ -445,35 +539,65 @@ namespace std
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
#endif
|
||||
|
||||
|
||||
#if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
|
||||
# define __glibcxx_constexpr_assert(cond) \
|
||||
if (std::__is_constant_evaluated() && !bool(cond)) \
|
||||
__builtin_unreachable() /* precondition violation detected! */
|
||||
#else
|
||||
# define __glibcxx_constexpr_assert(unevaluated)
|
||||
#endif
|
||||
|
||||
#define _GLIBCXX_VERBOSE_ASSERT 1
|
||||
|
||||
// Assert.
|
||||
#if defined(_GLIBCXX_ASSERTIONS) \
|
||||
|| defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS)
|
||||
# ifdef _GLIBCXX_VERBOSE_ASSERT
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
extern "C++" inline void
|
||||
__replacement_assert(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
{
|
||||
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
|
||||
__function, __condition);
|
||||
__builtin_abort();
|
||||
}
|
||||
extern "C++" _GLIBCXX_NORETURN
|
||||
void
|
||||
__glibcxx_assert_fail(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
_GLIBCXX_NOEXCEPT;
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
} while (false)
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
}
|
||||
# else // ! VERBOSE_ASSERT
|
||||
# define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
__builtin_abort(); \
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_GLIBCXX_ASSERTIONS)
|
||||
# define __glibcxx_assert(_Condition) __glibcxx_assert_impl(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_assert_impl(cond); } while (false)
|
||||
#else
|
||||
# define __glibcxx_assert(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_constexpr_assert(cond); } while (false)
|
||||
#endif
|
||||
|
||||
// Macro indicating that TSAN is in use.
|
||||
#if __SANITIZE_THREAD__
|
||||
# define _GLIBCXX_TSAN 1
|
||||
#elif defined __has_feature
|
||||
# if __has_feature(thread_sanitizer)
|
||||
# define _GLIBCXX_TSAN 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Macros for race detectors.
|
||||
@ -510,6 +634,15 @@ namespace std
|
||||
|
||||
# define _GLIBCXX_USE_ALLOCATOR_NEW 1
|
||||
|
||||
#ifdef __SIZEOF_INT128__
|
||||
#if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__
|
||||
// If __int128 is supported, we expect __GLIBCXX_TYPE_INT_N_0 to be defined
|
||||
// unless the compiler is in strict mode. If it's not defined and the strict
|
||||
// macro is not defined, something is wrong.
|
||||
#warning "__STRICT_ANSI__ seems to have been undefined; this is not supported"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else // !__cplusplus
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C
|
||||
# define _GLIBCXX_END_EXTERN_C
|
||||
@ -634,38 +767,54 @@ namespace std
|
||||
# define __cpp_lib_char8_t 201907L
|
||||
#endif
|
||||
|
||||
/* Define if __float128 is supported on this host. */
|
||||
/* Define if __float128 is supported on this host. */
|
||||
#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
|
||||
#undef _GLIBCXX_USE_FLOAT128
|
||||
/* For powerpc64 don't use __float128 when it's the same type as long double. */
|
||||
# if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__))
|
||||
# undef _GLIBCXX_USE_FLOAT128
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __GNUC__ >= 7
|
||||
// Assume these are available if the compiler claims to be a recent GCC:
|
||||
// Define if float has the IEEE binary32 format.
|
||||
#if __FLT_MANT_DIG__ == 24 \
|
||||
&& __FLT_MIN_EXP__ == -125 \
|
||||
&& __FLT_MAX_EXP__ == 128
|
||||
# define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1
|
||||
#endif
|
||||
|
||||
// Define if double has the IEEE binary64 format.
|
||||
#if __DBL_MANT_DIG__ == 53 \
|
||||
&& __DBL_MIN_EXP__ == -1021 \
|
||||
&& __DBL_MAX_EXP__ == 1024
|
||||
# define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1
|
||||
#endif
|
||||
|
||||
#ifdef __has_builtin
|
||||
# ifdef __is_identifier
|
||||
// Intel and older Clang require !__is_identifier for some built-ins:
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B)
|
||||
# else
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_same)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_SAME 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same_as(T, U)
|
||||
# if __GNUC__ >= 9
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
#elif defined(__is_identifier) && defined(__has_builtin)
|
||||
// For non-GNU compilers:
|
||||
# if ! __is_identifier(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_same)
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same(T, U)
|
||||
# endif
|
||||
#endif // GCC
|
||||
#endif
|
||||
|
||||
#undef _GLIBCXX_HAS_BUILTIN
|
||||
|
||||
// PSTL configuration
|
||||
|
||||
@ -706,6 +855,9 @@ namespace std
|
||||
/* Define to 1 if you have the `aligned_alloc' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ALIGNED_ALLOC */
|
||||
|
||||
/* Define if arc4random is available in <stdlib.h>. */
|
||||
#define _GLIBCXX_HAVE_ARC4RANDOM 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define _GLIBCXX_HAVE_ARPA_INET_H 1
|
||||
|
||||
@ -760,9 +912,16 @@ namespace std
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
||||
don't. */
|
||||
#define _GLIBCXX_HAVE_DECL_STRNLEN 1
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DIRENT_H 1
|
||||
|
||||
/* Define if dirfd is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_DIRFD 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DLFCN_H 1
|
||||
|
||||
@ -790,6 +949,9 @@ namespace std
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if fdopendir is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_FDOPENDIR 1
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FENV_H 1
|
||||
|
||||
@ -829,6 +991,9 @@ namespace std
|
||||
/* Define to 1 if you have the `frexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if getentropy is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_GETENTROPY 1
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
@ -850,15 +1015,6 @@ namespace std
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* Define if int64_t is available in <stdint.h>. */
|
||||
#define _GLIBCXX_HAVE_INT64_T 1
|
||||
|
||||
/* Define if int64_t is a long. */
|
||||
#define _GLIBCXX_HAVE_INT64_T_LONG 1
|
||||
|
||||
/* Define if int64_t is a long long. */
|
||||
/* #undef _GLIBCXX_HAVE_INT64_T_LONG_LONG */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define _GLIBCXX_HAVE_INTTYPES_H 1
|
||||
|
||||
@ -913,6 +1069,9 @@ namespace std
|
||||
/* Define if link is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_LINK 1
|
||||
|
||||
/* Define to 1 if you have the <link.h> header file. */
|
||||
#define _GLIBCXX_HAVE_LINK_H 1
|
||||
|
||||
/* Define if futex syscall is available. */
|
||||
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */
|
||||
|
||||
@ -979,6 +1138,9 @@ namespace std
|
||||
/* Define if <math.h> defines obsolete isnan function. */
|
||||
/* #undef _GLIBCXX_HAVE_OBSOLETE_ISNAN */
|
||||
|
||||
/* Define if openat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_OPENAT 1
|
||||
|
||||
/* Define if poll is available in <poll.h>. */
|
||||
#define _GLIBCXX_HAVE_POLL 1
|
||||
|
||||
@ -988,6 +1150,10 @@ namespace std
|
||||
/* Define to 1 if you have the `posix_memalign' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POSIX_MEMALIGN */
|
||||
|
||||
/* Define to 1 if POSIX Semaphores with sem_timedwait are available in
|
||||
<semaphore.h>. */
|
||||
#define _GLIBCXX_HAVE_POSIX_SEMAPHORE 1
|
||||
|
||||
/* Define to 1 if you have the `powf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POWF */
|
||||
|
||||
@ -1003,6 +1169,9 @@ namespace std
|
||||
/* Define if readlink is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_READLINK 1
|
||||
|
||||
/* Define to 1 if you have the `secure_getenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SECURE_GETENV */
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SETENV */
|
||||
|
||||
@ -1039,6 +1208,9 @@ namespace std
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define if the <stacktrace> header is supported. */
|
||||
/* #undef _GLIBCXX_HAVE_STACKTRACE */
|
||||
|
||||
/* Define to 1 if you have the <stdalign.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDALIGN_H 1
|
||||
|
||||
@ -1097,6 +1269,9 @@ namespace std
|
||||
/* Define to 1 if you have the <sys/machine.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MMAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_PARAM_H 1
|
||||
|
||||
@ -1166,6 +1341,12 @@ namespace std
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if unlinkat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_UNLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `uselocale' function. */
|
||||
/* #undef _GLIBCXX_HAVE_USELOCALE */
|
||||
|
||||
/* Defined if usleep exists. */
|
||||
#define _GLIBCXX_HAVE_USLEEP 1
|
||||
|
||||
@ -1196,6 +1377,9 @@ namespace std
|
||||
/* Define if writev is available in <sys/uio.h>. */
|
||||
#define _GLIBCXX_HAVE_WRITEV 1
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
#define _GLIBCXX_HAVE_XLOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the `_acosf' function. */
|
||||
/* #undef _GLIBCXX_HAVE__ACOSF */
|
||||
|
||||
@ -1399,7 +1583,7 @@ namespace std
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
#define _GLIBCXX_LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
/* #undef _GLIBCXX_PACKAGE */
|
||||
@ -1438,7 +1622,7 @@ namespace std
|
||||
/* #undef SIZEOF_VOID_P */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
#define _GLIBCXX_STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
/* #undef _GLIBCXX_VERSION */
|
||||
@ -1509,6 +1693,9 @@ namespace std
|
||||
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
|
||||
#define _GLIBCXX_HOSTED 1
|
||||
|
||||
/* Define if compatibility should be provided for alternative 128-bit long
|
||||
double formats. */
|
||||
|
||||
/* Define if compatibility should be provided for -mlong-double-64. */
|
||||
|
||||
/* Define to the letter to which size_t is mangled. */
|
||||
@ -1517,6 +1704,9 @@ namespace std
|
||||
/* Define if C99 llrint and llround functions are missing from <math.h>. */
|
||||
/* #undef _GLIBCXX_NO_C99_ROUNDING_FUNCS */
|
||||
|
||||
/* Defined if no way to sleep is available. */
|
||||
/* #undef _GLIBCXX_NO_SLEEP */
|
||||
|
||||
/* Define if ptrdiff_t is int. */
|
||||
/* #undef _GLIBCXX_PTRDIFF_T_IS_INT */
|
||||
|
||||
@ -1603,7 +1793,7 @@ namespace std
|
||||
|
||||
/* Define if /dev/random and /dev/urandom are available for
|
||||
std::random_device. */
|
||||
#define _GLIBCXX_USE_DEV_RANDOM 1
|
||||
/* #undef _GLIBCXX_USE_DEV_RANDOM */
|
||||
|
||||
/* Define if fchmod is available in <sys/stat.h>. */
|
||||
#define _GLIBCXX_USE_FCHMOD 1
|
||||
@ -1617,9 +1807,6 @@ namespace std
|
||||
/* Define if get_nprocs is available in <sys/sysinfo.h>. */
|
||||
/* #undef _GLIBCXX_USE_GET_NPROCS */
|
||||
|
||||
/* Define if __int128 is supported on this host. */
|
||||
#define _GLIBCXX_USE_INT128 1
|
||||
|
||||
/* Define if LFS support is available. */
|
||||
/* #undef _GLIBCXX_USE_LFS */
|
||||
|
||||
@ -1670,6 +1857,9 @@ namespace std
|
||||
/* Define if sendfile is available in <sys/sendfile.h>. */
|
||||
/* #undef _GLIBCXX_USE_SENDFILE */
|
||||
|
||||
/* Define to restrict std::__basic_file<> to stdio APIs. */
|
||||
/* #undef _GLIBCXX_USE_STDIO_PURE */
|
||||
|
||||
/* Define if struct stat has timespec members. */
|
||||
#define _GLIBCXX_USE_ST_MTIM 1
|
||||
|
||||
@ -1679,6 +1869,14 @@ namespace std
|
||||
/* Define if obsolescent tmpnam is available in <stdio.h>. */
|
||||
#define _GLIBCXX_USE_TMPNAM 1
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for C++20. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 */
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for -fchar8_t. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T */
|
||||
|
||||
/* Define if utime is available in <utime.h>. */
|
||||
#define _GLIBCXX_USE_UTIME 1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1997-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -31,10 +31,10 @@
|
||||
#define _GLIBCXX_CXX_CONFIG_H 1
|
||||
|
||||
// The major release number for the GCC release the C++ library belongs to.
|
||||
#define _GLIBCXX_RELEASE 10
|
||||
#define _GLIBCXX_RELEASE 12
|
||||
|
||||
// The datestamp of the C++ library in compressed ISO date format.
|
||||
#define __GLIBCXX__ 20210408
|
||||
#define __GLIBCXX__ 20220819
|
||||
|
||||
// Macros for various attributes.
|
||||
// _GLIBCXX_PURE
|
||||
@ -77,14 +77,20 @@
|
||||
// Macros for deprecated attributes.
|
||||
// _GLIBCXX_USE_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX11_DEPRECATED
|
||||
// _GLIBCXX11_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX14_DEPRECATED
|
||||
// _GLIBCXX14_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX17_DEPRECATED
|
||||
// _GLIBCXX17_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED_SUGGEST( string-literal )
|
||||
#ifndef _GLIBCXX_USE_DEPRECATED
|
||||
# define _GLIBCXX_USE_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
#if defined(__DEPRECATED)
|
||||
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
|
||||
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
|
||||
@ -93,16 +99,36 @@
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201402L)
|
||||
# define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX14_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 202002L)
|
||||
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX20_DEPRECATED(MSG)
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
// Macros for ABI tag attributes.
|
||||
@ -149,13 +175,21 @@
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX20_CONSTEXPR
|
||||
# if __cplusplus > 201703L
|
||||
# if __cplusplus >= 202002L
|
||||
# define _GLIBCXX20_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX20_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX23_CONSTEXPR
|
||||
# if __cplusplus >= 202100L
|
||||
# define _GLIBCXX23_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX23_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX17_INLINE
|
||||
# if __cplusplus >= 201703L
|
||||
# define _GLIBCXX17_INLINE inline
|
||||
@ -267,6 +301,17 @@ namespace std
|
||||
#if __cplusplus >= 201103L
|
||||
typedef decltype(nullptr) nullptr_t;
|
||||
#endif
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
// This allows the library to terminate without including all of <exception>
|
||||
// and without making the declaration of std::terminate visible to users.
|
||||
extern "C++" __attribute__ ((__noreturn__, __always_inline__))
|
||||
inline void __terminate() _GLIBCXX_USE_NOEXCEPT
|
||||
{
|
||||
void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__));
|
||||
terminate();
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
# define _GLIBCXX_USE_DUAL_ABI 1
|
||||
@ -410,7 +455,30 @@ _GLIBCXX_END_NAMESPACE_VERSION
|
||||
// Define if compatibility should be provided for -mlong-double-64.
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Inline namespace for long double 128 mode.
|
||||
// Define if compatibility should be provided for alternative 128-bit long
|
||||
// double formats. Not possible for Clang until __ibm128 is supported.
|
||||
#ifndef __clang__
|
||||
#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
|
||||
#endif
|
||||
|
||||
// Inline namespaces for long double 128 modes.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \
|
||||
&& defined __LONG_DOUBLE_IEEE128__
|
||||
namespace std
|
||||
{
|
||||
// Namespaces for 128-bit IEEE long double format on 64-bit POWER LE.
|
||||
inline namespace __gnu_cxx_ieee128 { }
|
||||
inline namespace __gnu_cxx11_ieee128 { }
|
||||
}
|
||||
# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL }
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 }
|
||||
|
||||
#else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
@ -424,6 +492,7 @@ namespace std
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_USE_CXX11_ABI
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||
@ -434,6 +503,31 @@ namespace std
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Internal version of std::is_constant_evaluated().
|
||||
// This can be used without checking if the compiler supports the feature.
|
||||
// The macro _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED can be used to check if
|
||||
// the compiler support is present to make this function work as expected.
|
||||
_GLIBCXX_CONSTEXPR inline bool
|
||||
__is_constant_evaluated() _GLIBCXX_NOEXCEPT
|
||||
{
|
||||
#if __cpp_if_consteval >= 202106L
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
if consteval { return true; } else { return false; }
|
||||
#elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
return __builtin_is_constant_evaluated();
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
// Debug Mode implies checking assertions.
|
||||
#if defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_ASSERTIONS)
|
||||
# define _GLIBCXX_ASSERTIONS 1
|
||||
@ -445,35 +539,65 @@ namespace std
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
#endif
|
||||
|
||||
|
||||
#if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
|
||||
# define __glibcxx_constexpr_assert(cond) \
|
||||
if (std::__is_constant_evaluated() && !bool(cond)) \
|
||||
__builtin_unreachable() /* precondition violation detected! */
|
||||
#else
|
||||
# define __glibcxx_constexpr_assert(unevaluated)
|
||||
#endif
|
||||
|
||||
#define _GLIBCXX_VERBOSE_ASSERT 1
|
||||
|
||||
// Assert.
|
||||
#if defined(_GLIBCXX_ASSERTIONS) \
|
||||
|| defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS)
|
||||
# ifdef _GLIBCXX_VERBOSE_ASSERT
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
extern "C++" inline void
|
||||
__replacement_assert(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
{
|
||||
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
|
||||
__function, __condition);
|
||||
__builtin_abort();
|
||||
}
|
||||
extern "C++" _GLIBCXX_NORETURN
|
||||
void
|
||||
__glibcxx_assert_fail(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
_GLIBCXX_NOEXCEPT;
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
} while (false)
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
}
|
||||
# else // ! VERBOSE_ASSERT
|
||||
# define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
__builtin_abort(); \
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_GLIBCXX_ASSERTIONS)
|
||||
# define __glibcxx_assert(_Condition) __glibcxx_assert_impl(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_assert_impl(cond); } while (false)
|
||||
#else
|
||||
# define __glibcxx_assert(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_constexpr_assert(cond); } while (false)
|
||||
#endif
|
||||
|
||||
// Macro indicating that TSAN is in use.
|
||||
#if __SANITIZE_THREAD__
|
||||
# define _GLIBCXX_TSAN 1
|
||||
#elif defined __has_feature
|
||||
# if __has_feature(thread_sanitizer)
|
||||
# define _GLIBCXX_TSAN 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Macros for race detectors.
|
||||
@ -510,6 +634,15 @@ namespace std
|
||||
|
||||
# define _GLIBCXX_USE_ALLOCATOR_NEW 1
|
||||
|
||||
#ifdef __SIZEOF_INT128__
|
||||
#if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__
|
||||
// If __int128 is supported, we expect __GLIBCXX_TYPE_INT_N_0 to be defined
|
||||
// unless the compiler is in strict mode. If it's not defined and the strict
|
||||
// macro is not defined, something is wrong.
|
||||
#warning "__STRICT_ANSI__ seems to have been undefined; this is not supported"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else // !__cplusplus
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C
|
||||
# define _GLIBCXX_END_EXTERN_C
|
||||
@ -634,38 +767,54 @@ namespace std
|
||||
# define __cpp_lib_char8_t 201907L
|
||||
#endif
|
||||
|
||||
/* Define if __float128 is supported on this host. */
|
||||
/* Define if __float128 is supported on this host. */
|
||||
#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
|
||||
#define _GLIBCXX_USE_FLOAT128 1
|
||||
/* For powerpc64 don't use __float128 when it's the same type as long double. */
|
||||
# if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__))
|
||||
# define _GLIBCXX_USE_FLOAT128 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __GNUC__ >= 7
|
||||
// Assume these are available if the compiler claims to be a recent GCC:
|
||||
// Define if float has the IEEE binary32 format.
|
||||
#if __FLT_MANT_DIG__ == 24 \
|
||||
&& __FLT_MIN_EXP__ == -125 \
|
||||
&& __FLT_MAX_EXP__ == 128
|
||||
# define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1
|
||||
#endif
|
||||
|
||||
// Define if double has the IEEE binary64 format.
|
||||
#if __DBL_MANT_DIG__ == 53 \
|
||||
&& __DBL_MIN_EXP__ == -1021 \
|
||||
&& __DBL_MAX_EXP__ == 1024
|
||||
# define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1
|
||||
#endif
|
||||
|
||||
#ifdef __has_builtin
|
||||
# ifdef __is_identifier
|
||||
// Intel and older Clang require !__is_identifier for some built-ins:
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B)
|
||||
# else
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_same)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_SAME 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same_as(T, U)
|
||||
# if __GNUC__ >= 9
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
#elif defined(__is_identifier) && defined(__has_builtin)
|
||||
// For non-GNU compilers:
|
||||
# if ! __is_identifier(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_same)
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same(T, U)
|
||||
# endif
|
||||
#endif // GCC
|
||||
#endif
|
||||
|
||||
#undef _GLIBCXX_HAS_BUILTIN
|
||||
|
||||
// PSTL configuration
|
||||
|
||||
@ -706,6 +855,9 @@ namespace std
|
||||
/* Define to 1 if you have the `aligned_alloc' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ALIGNED_ALLOC */
|
||||
|
||||
/* Define if arc4random is available in <stdlib.h>. */
|
||||
#define _GLIBCXX_HAVE_ARC4RANDOM 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define _GLIBCXX_HAVE_ARPA_INET_H 1
|
||||
|
||||
@ -760,9 +912,16 @@ namespace std
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
||||
don't. */
|
||||
#define _GLIBCXX_HAVE_DECL_STRNLEN 1
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DIRENT_H 1
|
||||
|
||||
/* Define if dirfd is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_DIRFD 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DLFCN_H 1
|
||||
|
||||
@ -790,6 +949,9 @@ namespace std
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if fdopendir is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_FDOPENDIR 1
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FENV_H 1
|
||||
|
||||
@ -829,6 +991,9 @@ namespace std
|
||||
/* Define to 1 if you have the `frexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if getentropy is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_GETENTROPY 1
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
@ -850,15 +1015,6 @@ namespace std
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* Define if int64_t is available in <stdint.h>. */
|
||||
#define _GLIBCXX_HAVE_INT64_T 1
|
||||
|
||||
/* Define if int64_t is a long. */
|
||||
/* #undef _GLIBCXX_HAVE_INT64_T_LONG */
|
||||
|
||||
/* Define if int64_t is a long long. */
|
||||
#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define _GLIBCXX_HAVE_INTTYPES_H 1
|
||||
|
||||
@ -913,6 +1069,9 @@ namespace std
|
||||
/* Define if link is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_LINK 1
|
||||
|
||||
/* Define to 1 if you have the <link.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_LINK_H */
|
||||
|
||||
/* Define if futex syscall is available. */
|
||||
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */
|
||||
|
||||
@ -979,6 +1138,9 @@ namespace std
|
||||
/* Define if <math.h> defines obsolete isnan function. */
|
||||
/* #undef _GLIBCXX_HAVE_OBSOLETE_ISNAN */
|
||||
|
||||
/* Define if openat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_OPENAT 1
|
||||
|
||||
/* Define if poll is available in <poll.h>. */
|
||||
#define _GLIBCXX_HAVE_POLL 1
|
||||
|
||||
@ -988,6 +1150,10 @@ namespace std
|
||||
/* Define to 1 if you have the `posix_memalign' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POSIX_MEMALIGN */
|
||||
|
||||
/* Define to 1 if POSIX Semaphores with sem_timedwait are available in
|
||||
<semaphore.h>. */
|
||||
#define _GLIBCXX_HAVE_POSIX_SEMAPHORE 1
|
||||
|
||||
/* Define to 1 if you have the `powf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POWF */
|
||||
|
||||
@ -1003,6 +1169,9 @@ namespace std
|
||||
/* Define if readlink is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_READLINK 1
|
||||
|
||||
/* Define to 1 if you have the `secure_getenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SECURE_GETENV */
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SETENV */
|
||||
|
||||
@ -1039,6 +1208,9 @@ namespace std
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define if the <stacktrace> header is supported. */
|
||||
/* #undef _GLIBCXX_HAVE_STACKTRACE */
|
||||
|
||||
/* Define to 1 if you have the <stdalign.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDALIGN_H 1
|
||||
|
||||
@ -1097,6 +1269,9 @@ namespace std
|
||||
/* Define to 1 if you have the <sys/machine.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MMAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_PARAM_H 1
|
||||
|
||||
@ -1166,6 +1341,12 @@ namespace std
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if unlinkat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_UNLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `uselocale' function. */
|
||||
/* #undef _GLIBCXX_HAVE_USELOCALE */
|
||||
|
||||
/* Defined if usleep exists. */
|
||||
#define _GLIBCXX_HAVE_USLEEP 1
|
||||
|
||||
@ -1196,6 +1377,9 @@ namespace std
|
||||
/* Define if writev is available in <sys/uio.h>. */
|
||||
#define _GLIBCXX_HAVE_WRITEV 1
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
#define _GLIBCXX_HAVE_XLOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the `_acosf' function. */
|
||||
/* #undef _GLIBCXX_HAVE__ACOSF */
|
||||
|
||||
@ -1399,7 +1583,7 @@ namespace std
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
#define _GLIBCXX_LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
/* #undef _GLIBCXX_PACKAGE */
|
||||
@ -1438,7 +1622,7 @@ namespace std
|
||||
/* #undef SIZEOF_VOID_P */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
#define _GLIBCXX_STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
/* #undef _GLIBCXX_VERSION */
|
||||
@ -1509,6 +1693,9 @@ namespace std
|
||||
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
|
||||
#define _GLIBCXX_HOSTED 1
|
||||
|
||||
/* Define if compatibility should be provided for alternative 128-bit long
|
||||
double formats. */
|
||||
|
||||
/* Define if compatibility should be provided for -mlong-double-64. */
|
||||
|
||||
/* Define to the letter to which size_t is mangled. */
|
||||
@ -1517,6 +1704,9 @@ namespace std
|
||||
/* Define if C99 llrint and llround functions are missing from <math.h>. */
|
||||
/* #undef _GLIBCXX_NO_C99_ROUNDING_FUNCS */
|
||||
|
||||
/* Defined if no way to sleep is available. */
|
||||
/* #undef _GLIBCXX_NO_SLEEP */
|
||||
|
||||
/* Define if ptrdiff_t is int. */
|
||||
/* #undef _GLIBCXX_PTRDIFF_T_IS_INT */
|
||||
|
||||
@ -1603,7 +1793,7 @@ namespace std
|
||||
|
||||
/* Define if /dev/random and /dev/urandom are available for
|
||||
std::random_device. */
|
||||
#define _GLIBCXX_USE_DEV_RANDOM 1
|
||||
/* #undef _GLIBCXX_USE_DEV_RANDOM */
|
||||
|
||||
/* Define if fchmod is available in <sys/stat.h>. */
|
||||
#define _GLIBCXX_USE_FCHMOD 1
|
||||
@ -1617,9 +1807,6 @@ namespace std
|
||||
/* Define if get_nprocs is available in <sys/sysinfo.h>. */
|
||||
/* #undef _GLIBCXX_USE_GET_NPROCS */
|
||||
|
||||
/* Define if __int128 is supported on this host. */
|
||||
/* #undef _GLIBCXX_USE_INT128 */
|
||||
|
||||
/* Define if LFS support is available. */
|
||||
/* #undef _GLIBCXX_USE_LFS */
|
||||
|
||||
@ -1670,6 +1857,9 @@ namespace std
|
||||
/* Define if sendfile is available in <sys/sendfile.h>. */
|
||||
/* #undef _GLIBCXX_USE_SENDFILE */
|
||||
|
||||
/* Define to restrict std::__basic_file<> to stdio APIs. */
|
||||
/* #undef _GLIBCXX_USE_STDIO_PURE */
|
||||
|
||||
/* Define if struct stat has timespec members. */
|
||||
#define _GLIBCXX_USE_ST_MTIM 1
|
||||
|
||||
@ -1679,6 +1869,14 @@ namespace std
|
||||
/* Define if obsolescent tmpnam is available in <stdio.h>. */
|
||||
#define _GLIBCXX_USE_TMPNAM 1
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for C++20. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 */
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for -fchar8_t. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T */
|
||||
|
||||
/* Define if utime is available in <utime.h>. */
|
||||
#define _GLIBCXX_USE_UTIME 1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1997-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -31,10 +31,10 @@
|
||||
#define _GLIBCXX_CXX_CONFIG_H 1
|
||||
|
||||
// The major release number for the GCC release the C++ library belongs to.
|
||||
#define _GLIBCXX_RELEASE 10
|
||||
#define _GLIBCXX_RELEASE 12
|
||||
|
||||
// The datestamp of the C++ library in compressed ISO date format.
|
||||
#define __GLIBCXX__ 20210408
|
||||
#define __GLIBCXX__ 20220819
|
||||
|
||||
// Macros for various attributes.
|
||||
// _GLIBCXX_PURE
|
||||
@ -77,14 +77,20 @@
|
||||
// Macros for deprecated attributes.
|
||||
// _GLIBCXX_USE_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST
|
||||
// _GLIBCXX_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX11_DEPRECATED
|
||||
// _GLIBCXX11_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX14_DEPRECATED
|
||||
// _GLIBCXX14_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX17_DEPRECATED
|
||||
// _GLIBCXX17_DEPRECATED_SUGGEST( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED( string-literal )
|
||||
// _GLIBCXX20_DEPRECATED_SUGGEST( string-literal )
|
||||
#ifndef _GLIBCXX_USE_DEPRECATED
|
||||
# define _GLIBCXX_USE_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
#if defined(__DEPRECATED)
|
||||
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
|
||||
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
|
||||
@ -93,16 +99,36 @@
|
||||
# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
|
||||
# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED
|
||||
# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus > 201703L)
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201402L)
|
||||
# define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX14_DEPRECATED
|
||||
# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 201703L)
|
||||
# define _GLIBCXX17_DEPRECATED [[__deprecated__]]
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX17_DEPRECATED
|
||||
# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && (__cplusplus >= 202002L)
|
||||
# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]]
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
|
||||
#else
|
||||
# define _GLIBCXX20_DEPRECATED(MSG)
|
||||
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT)
|
||||
#endif
|
||||
|
||||
// Macros for ABI tag attributes.
|
||||
@ -149,13 +175,21 @@
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX20_CONSTEXPR
|
||||
# if __cplusplus > 201703L
|
||||
# if __cplusplus >= 202002L
|
||||
# define _GLIBCXX20_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX20_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX23_CONSTEXPR
|
||||
# if __cplusplus >= 202100L
|
||||
# define _GLIBCXX23_CONSTEXPR constexpr
|
||||
# else
|
||||
# define _GLIBCXX23_CONSTEXPR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX17_INLINE
|
||||
# if __cplusplus >= 201703L
|
||||
# define _GLIBCXX17_INLINE inline
|
||||
@ -267,6 +301,17 @@ namespace std
|
||||
#if __cplusplus >= 201103L
|
||||
typedef decltype(nullptr) nullptr_t;
|
||||
#endif
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
// This allows the library to terminate without including all of <exception>
|
||||
// and without making the declaration of std::terminate visible to users.
|
||||
extern "C++" __attribute__ ((__noreturn__, __always_inline__))
|
||||
inline void __terminate() _GLIBCXX_USE_NOEXCEPT
|
||||
{
|
||||
void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__));
|
||||
terminate();
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
# define _GLIBCXX_USE_DUAL_ABI 1
|
||||
@ -410,7 +455,30 @@ _GLIBCXX_END_NAMESPACE_VERSION
|
||||
// Define if compatibility should be provided for -mlong-double-64.
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Inline namespace for long double 128 mode.
|
||||
// Define if compatibility should be provided for alternative 128-bit long
|
||||
// double formats. Not possible for Clang until __ibm128 is supported.
|
||||
#ifndef __clang__
|
||||
#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
|
||||
#endif
|
||||
|
||||
// Inline namespaces for long double 128 modes.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \
|
||||
&& defined __LONG_DOUBLE_IEEE128__
|
||||
namespace std
|
||||
{
|
||||
// Namespaces for 128-bit IEEE long double format on 64-bit POWER LE.
|
||||
inline namespace __gnu_cxx_ieee128 { }
|
||||
inline namespace __gnu_cxx11_ieee128 { }
|
||||
}
|
||||
# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL }
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128::
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 {
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 }
|
||||
|
||||
#else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
@ -424,6 +492,7 @@ namespace std
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_USE_CXX11_ABI
|
||||
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||
@ -434,6 +503,31 @@ namespace std
|
||||
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL
|
||||
#endif
|
||||
|
||||
#endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128
|
||||
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Internal version of std::is_constant_evaluated().
|
||||
// This can be used without checking if the compiler supports the feature.
|
||||
// The macro _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED can be used to check if
|
||||
// the compiler support is present to make this function work as expected.
|
||||
_GLIBCXX_CONSTEXPR inline bool
|
||||
__is_constant_evaluated() _GLIBCXX_NOEXCEPT
|
||||
{
|
||||
#if __cpp_if_consteval >= 202106L
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
if consteval { return true; } else { return false; }
|
||||
#elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1
|
||||
return __builtin_is_constant_evaluated();
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
// Debug Mode implies checking assertions.
|
||||
#if defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_ASSERTIONS)
|
||||
# define _GLIBCXX_ASSERTIONS 1
|
||||
@ -445,35 +539,65 @@ namespace std
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
#endif
|
||||
|
||||
|
||||
#if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
|
||||
# define __glibcxx_constexpr_assert(cond) \
|
||||
if (std::__is_constant_evaluated() && !bool(cond)) \
|
||||
__builtin_unreachable() /* precondition violation detected! */
|
||||
#else
|
||||
# define __glibcxx_constexpr_assert(unevaluated)
|
||||
#endif
|
||||
|
||||
#define _GLIBCXX_VERBOSE_ASSERT 1
|
||||
|
||||
// Assert.
|
||||
#if defined(_GLIBCXX_ASSERTIONS) \
|
||||
|| defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS)
|
||||
# ifdef _GLIBCXX_VERBOSE_ASSERT
|
||||
namespace std
|
||||
{
|
||||
#pragma GCC visibility push(default)
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
extern "C++" inline void
|
||||
__replacement_assert(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
{
|
||||
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
|
||||
__function, __condition);
|
||||
__builtin_abort();
|
||||
}
|
||||
extern "C++" _GLIBCXX_NORETURN
|
||||
void
|
||||
__glibcxx_assert_fail(const char* __file, int __line,
|
||||
const char* __function, const char* __condition)
|
||||
_GLIBCXX_NOEXCEPT;
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
} while (false)
|
||||
#define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
|
||||
#_Condition); \
|
||||
}
|
||||
# else // ! VERBOSE_ASSERT
|
||||
# define __glibcxx_assert_impl(_Condition) \
|
||||
if (__builtin_expect(!bool(_Condition), false)) \
|
||||
{ \
|
||||
__glibcxx_constexpr_assert(false); \
|
||||
__builtin_abort(); \
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_GLIBCXX_ASSERTIONS)
|
||||
# define __glibcxx_assert(_Condition) __glibcxx_assert_impl(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_assert_impl(cond); } while (false)
|
||||
#else
|
||||
# define __glibcxx_assert(_Condition)
|
||||
# define __glibcxx_assert(cond) \
|
||||
do { __glibcxx_constexpr_assert(cond); } while (false)
|
||||
#endif
|
||||
|
||||
// Macro indicating that TSAN is in use.
|
||||
#if __SANITIZE_THREAD__
|
||||
# define _GLIBCXX_TSAN 1
|
||||
#elif defined __has_feature
|
||||
# if __has_feature(thread_sanitizer)
|
||||
# define _GLIBCXX_TSAN 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Macros for race detectors.
|
||||
@ -510,6 +634,15 @@ namespace std
|
||||
|
||||
# define _GLIBCXX_USE_ALLOCATOR_NEW 1
|
||||
|
||||
#ifdef __SIZEOF_INT128__
|
||||
#if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__
|
||||
// If __int128 is supported, we expect __GLIBCXX_TYPE_INT_N_0 to be defined
|
||||
// unless the compiler is in strict mode. If it's not defined and the strict
|
||||
// macro is not defined, something is wrong.
|
||||
#warning "__STRICT_ANSI__ seems to have been undefined; this is not supported"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else // !__cplusplus
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C
|
||||
# define _GLIBCXX_END_EXTERN_C
|
||||
@ -634,38 +767,54 @@ namespace std
|
||||
# define __cpp_lib_char8_t 201907L
|
||||
#endif
|
||||
|
||||
/* Define if __float128 is supported on this host. */
|
||||
/* Define if __float128 is supported on this host. */
|
||||
#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
|
||||
#define _GLIBCXX_USE_FLOAT128 1
|
||||
/* For powerpc64 don't use __float128 when it's the same type as long double. */
|
||||
# if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__))
|
||||
# define _GLIBCXX_USE_FLOAT128 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __GNUC__ >= 7
|
||||
// Assume these are available if the compiler claims to be a recent GCC:
|
||||
// Define if float has the IEEE binary32 format.
|
||||
#if __FLT_MANT_DIG__ == 24 \
|
||||
&& __FLT_MIN_EXP__ == -125 \
|
||||
&& __FLT_MAX_EXP__ == 128
|
||||
# define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1
|
||||
#endif
|
||||
|
||||
// Define if double has the IEEE binary64 format.
|
||||
#if __DBL_MANT_DIG__ == 53 \
|
||||
&& __DBL_MIN_EXP__ == -1021 \
|
||||
&& __DBL_MAX_EXP__ == 1024
|
||||
# define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1
|
||||
#endif
|
||||
|
||||
#ifdef __has_builtin
|
||||
# ifdef __is_identifier
|
||||
// Intel and older Clang require !__is_identifier for some built-ins:
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B)
|
||||
# else
|
||||
# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__is_same)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_SAME 1
|
||||
#endif
|
||||
|
||||
#if _GLIBCXX_HAS_BUILTIN(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same_as(T, U)
|
||||
# if __GNUC__ >= 9
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
#elif defined(__is_identifier) && defined(__has_builtin)
|
||||
// For non-GNU compilers:
|
||||
# if ! __is_identifier(__has_unique_object_representations)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_aggregate)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_launder)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
|
||||
# endif
|
||||
# if __has_builtin(__builtin_is_constant_evaluated)
|
||||
# define _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 1
|
||||
# endif
|
||||
# if ! __is_identifier(__is_same)
|
||||
# define _GLIBCXX_BUILTIN_IS_SAME_AS(T, U) __is_same(T, U)
|
||||
# endif
|
||||
#endif // GCC
|
||||
#endif
|
||||
|
||||
#undef _GLIBCXX_HAS_BUILTIN
|
||||
|
||||
// PSTL configuration
|
||||
|
||||
@ -706,6 +855,9 @@ namespace std
|
||||
/* Define to 1 if you have the `aligned_alloc' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ALIGNED_ALLOC */
|
||||
|
||||
/* Define if arc4random is available in <stdlib.h>. */
|
||||
#define _GLIBCXX_HAVE_ARC4RANDOM 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define _GLIBCXX_HAVE_ARPA_INET_H 1
|
||||
|
||||
@ -760,9 +912,16 @@ namespace std
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
||||
don't. */
|
||||
#define _GLIBCXX_HAVE_DECL_STRNLEN 1
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DIRENT_H 1
|
||||
|
||||
/* Define if dirfd is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_DIRFD 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define _GLIBCXX_HAVE_DLFCN_H 1
|
||||
|
||||
@ -790,6 +949,9 @@ namespace std
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FCNTL_H 1
|
||||
|
||||
/* Define if fdopendir is available in <dirent.h>. */
|
||||
#define _GLIBCXX_HAVE_FDOPENDIR 1
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
#define _GLIBCXX_HAVE_FENV_H 1
|
||||
|
||||
@ -829,6 +991,9 @@ namespace std
|
||||
/* Define to 1 if you have the `frexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if getentropy is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_GETENTROPY 1
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
@ -850,15 +1015,6 @@ namespace std
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* Define if int64_t is available in <stdint.h>. */
|
||||
#define _GLIBCXX_HAVE_INT64_T 1
|
||||
|
||||
/* Define if int64_t is a long. */
|
||||
#define _GLIBCXX_HAVE_INT64_T_LONG 1
|
||||
|
||||
/* Define if int64_t is a long long. */
|
||||
/* #undef _GLIBCXX_HAVE_INT64_T_LONG_LONG */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define _GLIBCXX_HAVE_INTTYPES_H 1
|
||||
|
||||
@ -913,6 +1069,9 @@ namespace std
|
||||
/* Define if link is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_LINK 1
|
||||
|
||||
/* Define to 1 if you have the <link.h> header file. */
|
||||
#define _GLIBCXX_HAVE_LINK_H 1
|
||||
|
||||
/* Define if futex syscall is available. */
|
||||
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */
|
||||
|
||||
@ -979,6 +1138,9 @@ namespace std
|
||||
/* Define if <math.h> defines obsolete isnan function. */
|
||||
/* #undef _GLIBCXX_HAVE_OBSOLETE_ISNAN */
|
||||
|
||||
/* Define if openat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_OPENAT 1
|
||||
|
||||
/* Define if poll is available in <poll.h>. */
|
||||
#define _GLIBCXX_HAVE_POLL 1
|
||||
|
||||
@ -988,6 +1150,10 @@ namespace std
|
||||
/* Define to 1 if you have the `posix_memalign' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POSIX_MEMALIGN */
|
||||
|
||||
/* Define to 1 if POSIX Semaphores with sem_timedwait are available in
|
||||
<semaphore.h>. */
|
||||
#define _GLIBCXX_HAVE_POSIX_SEMAPHORE 1
|
||||
|
||||
/* Define to 1 if you have the `powf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_POWF */
|
||||
|
||||
@ -1003,6 +1169,9 @@ namespace std
|
||||
/* Define if readlink is available in <unistd.h>. */
|
||||
#define _GLIBCXX_HAVE_READLINK 1
|
||||
|
||||
/* Define to 1 if you have the `secure_getenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SECURE_GETENV */
|
||||
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SETENV */
|
||||
|
||||
@ -1039,6 +1208,9 @@ namespace std
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define if the <stacktrace> header is supported. */
|
||||
/* #undef _GLIBCXX_HAVE_STACKTRACE */
|
||||
|
||||
/* Define to 1 if you have the <stdalign.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDALIGN_H 1
|
||||
|
||||
@ -1097,6 +1269,9 @@ namespace std
|
||||
/* Define to 1 if you have the <sys/machine.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_SYS_MMAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_PARAM_H 1
|
||||
|
||||
@ -1166,6 +1341,12 @@ namespace std
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_H 1
|
||||
|
||||
/* Define if unlinkat is available in <fcntl.h>. */
|
||||
#define _GLIBCXX_HAVE_UNLINKAT 1
|
||||
|
||||
/* Define to 1 if you have the `uselocale' function. */
|
||||
/* #undef _GLIBCXX_HAVE_USELOCALE */
|
||||
|
||||
/* Defined if usleep exists. */
|
||||
#define _GLIBCXX_HAVE_USLEEP 1
|
||||
|
||||
@ -1196,6 +1377,9 @@ namespace std
|
||||
/* Define if writev is available in <sys/uio.h>. */
|
||||
#define _GLIBCXX_HAVE_WRITEV 1
|
||||
|
||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||
#define _GLIBCXX_HAVE_XLOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the `_acosf' function. */
|
||||
/* #undef _GLIBCXX_HAVE__ACOSF */
|
||||
|
||||
@ -1399,7 +1583,7 @@ namespace std
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
#define _GLIBCXX_LT_OBJDIR ".libs/"
|
||||
|
||||
/* Name of package */
|
||||
/* #undef _GLIBCXX_PACKAGE */
|
||||
@ -1438,7 +1622,7 @@ namespace std
|
||||
/* #undef SIZEOF_VOID_P */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
#define _GLIBCXX_STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
/* #undef _GLIBCXX_VERSION */
|
||||
@ -1509,6 +1693,9 @@ namespace std
|
||||
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */
|
||||
#define _GLIBCXX_HOSTED 1
|
||||
|
||||
/* Define if compatibility should be provided for alternative 128-bit long
|
||||
double formats. */
|
||||
|
||||
/* Define if compatibility should be provided for -mlong-double-64. */
|
||||
|
||||
/* Define to the letter to which size_t is mangled. */
|
||||
@ -1517,6 +1704,9 @@ namespace std
|
||||
/* Define if C99 llrint and llround functions are missing from <math.h>. */
|
||||
/* #undef _GLIBCXX_NO_C99_ROUNDING_FUNCS */
|
||||
|
||||
/* Defined if no way to sleep is available. */
|
||||
/* #undef _GLIBCXX_NO_SLEEP */
|
||||
|
||||
/* Define if ptrdiff_t is int. */
|
||||
/* #undef _GLIBCXX_PTRDIFF_T_IS_INT */
|
||||
|
||||
@ -1603,7 +1793,7 @@ namespace std
|
||||
|
||||
/* Define if /dev/random and /dev/urandom are available for
|
||||
std::random_device. */
|
||||
#define _GLIBCXX_USE_DEV_RANDOM 1
|
||||
/* #undef _GLIBCXX_USE_DEV_RANDOM */
|
||||
|
||||
/* Define if fchmod is available in <sys/stat.h>. */
|
||||
#define _GLIBCXX_USE_FCHMOD 1
|
||||
@ -1617,9 +1807,6 @@ namespace std
|
||||
/* Define if get_nprocs is available in <sys/sysinfo.h>. */
|
||||
/* #undef _GLIBCXX_USE_GET_NPROCS */
|
||||
|
||||
/* Define if __int128 is supported on this host. */
|
||||
#define _GLIBCXX_USE_INT128 1
|
||||
|
||||
/* Define if LFS support is available. */
|
||||
/* #undef _GLIBCXX_USE_LFS */
|
||||
|
||||
@ -1670,6 +1857,9 @@ namespace std
|
||||
/* Define if sendfile is available in <sys/sendfile.h>. */
|
||||
/* #undef _GLIBCXX_USE_SENDFILE */
|
||||
|
||||
/* Define to restrict std::__basic_file<> to stdio APIs. */
|
||||
/* #undef _GLIBCXX_USE_STDIO_PURE */
|
||||
|
||||
/* Define if struct stat has timespec members. */
|
||||
#define _GLIBCXX_USE_ST_MTIM 1
|
||||
|
||||
@ -1679,6 +1869,14 @@ namespace std
|
||||
/* Define if obsolescent tmpnam is available in <stdio.h>. */
|
||||
#define _GLIBCXX_USE_TMPNAM 1
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for C++20. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 */
|
||||
|
||||
/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
|
||||
into namespace std in <cuchar> for -fchar8_t. */
|
||||
/* #undef _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T */
|
||||
|
||||
/* Define if utime is available in <utime.h>. */
|
||||
#define _GLIBCXX_USE_UTIME 1
|
||||
|
||||
|
@ -2,6 +2,7 @@ file origins
|
||||
------------
|
||||
|
||||
- bits/gstdint.h: manually created
|
||||
- bits/largefile-config.h: manually created
|
||||
- ../spec/<arch>/stdcxx/bits/c++config.h:
|
||||
- gathered from Noux-gcc built with the previous stdcxx version
|
||||
- apply https://raw.githubusercontent.com/cproc/genode_stuff/stdcxx/stdcxx_update_genode.patch
|
||||
|
20
repos/libports/lib/mk/stdcxx-c++11.mk
Normal file
20
repos/libports/lib/mk/stdcxx-c++11.mk
Normal file
@ -0,0 +1,20 @@
|
||||
STDCXX_PORT_DIR := $(call select_from_ports,stdcxx)
|
||||
|
||||
include $(REP_DIR)/lib/import/import-stdcxx.mk
|
||||
|
||||
# determine location of libstdc++ source tree
|
||||
STDCXX_DIR := $(STDCXX_PORT_DIR)/src/lib/stdcxx
|
||||
|
||||
# enable 'compatibility-atomic-c++0x.cc' to find 'gstdint.h'
|
||||
REP_INC_DIR += include/stdcxx/bits
|
||||
|
||||
INC_DIR += $(STDCXX_DIR)/libsupc++
|
||||
|
||||
# add c++11 sources
|
||||
SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++11/*.cc)))
|
||||
|
||||
CC_CXX_OPT_STD = -std=gnu++11
|
||||
|
||||
vpath %.cc $(STDCXX_DIR)/src/c++11
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
15
repos/libports/lib/mk/stdcxx-c++17.mk
Normal file
15
repos/libports/lib/mk/stdcxx-c++17.mk
Normal file
@ -0,0 +1,15 @@
|
||||
STDCXX_PORT_DIR := $(call select_from_ports,stdcxx)
|
||||
|
||||
include $(REP_DIR)/lib/import/import-stdcxx.mk
|
||||
|
||||
# determine location of libstdc++ source tree
|
||||
STDCXX_DIR := $(STDCXX_PORT_DIR)/src/lib/stdcxx
|
||||
|
||||
# add c++17 sources
|
||||
SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++17/*.cc)))
|
||||
|
||||
CC_CXX_OPT_STD = -std=gnu++17
|
||||
|
||||
vpath %.cc $(STDCXX_DIR)/src/c++17
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
15
repos/libports/lib/mk/stdcxx-c++20.mk
Normal file
15
repos/libports/lib/mk/stdcxx-c++20.mk
Normal file
@ -0,0 +1,15 @@
|
||||
STDCXX_PORT_DIR := $(call select_from_ports,stdcxx)
|
||||
|
||||
include $(REP_DIR)/lib/import/import-stdcxx.mk
|
||||
|
||||
# determine location of libstdc++ source tree
|
||||
STDCXX_DIR := $(STDCXX_PORT_DIR)/src/lib/stdcxx
|
||||
|
||||
# add c++20 sources
|
||||
SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++20/*.cc)))
|
||||
|
||||
CC_CXX_OPT_STD = -std=gnu++20
|
||||
|
||||
vpath %.cc $(STDCXX_DIR)/src/c++20
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
@ -5,25 +5,18 @@ include $(REP_DIR)/lib/import/import-stdcxx.mk
|
||||
# determine location of libstdc++ source tree
|
||||
STDCXX_DIR := $(STDCXX_PORT_DIR)/src/lib/stdcxx
|
||||
|
||||
# enable 'compatibility-atomic-c++0x.cc' to find 'gstdint.h'
|
||||
REP_INC_DIR += include/stdcxx/bits
|
||||
|
||||
# add libstdc++ sources
|
||||
SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++11/*.cc)))
|
||||
|
||||
# add bits of libsupc++ (most parts are already contained in the cxx library)
|
||||
SRC_CC += new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc new_handler.cc
|
||||
SRC_CC += new_opa.cc new_opant.cc new_opva.cc new_opvant.cc
|
||||
SRC_CC += del_op.cc del_opnt.cc del_ops.cc del_opv.cc del_opvnt.cc del_opvs.cc
|
||||
SRC_CC += del_opa.cc del_opant.cc del_opsa.cc del_opva.cc del_opvant.cc del_opvsa.cc
|
||||
SRC_CC += bad_array_length.cc bad_array_new.cc bad_cast.cc bad_alloc.cc bad_typeid.cc
|
||||
SRC_CC += eh_aux_runtime.cc hash_bytes.cc
|
||||
SRC_CC += eh_aux_runtime.cc eh_ptr.cc hash_bytes.cc
|
||||
SRC_CC += tinfo.cc
|
||||
INC_DIR += $(STDCXX_DIR)/libsupc++
|
||||
|
||||
LIBS += stdcxx-c++98 libc libm
|
||||
LIBS += stdcxx-c++98 stdcxx-c++11 stdcxx-c++17 stdcxx-c++20 libc libm
|
||||
|
||||
vpath %.cc $(STDCXX_DIR)/src/c++11
|
||||
vpath %.cc $(STDCXX_DIR)/libsupc++
|
||||
|
||||
SHARED_LIB = yes
|
||||
|
@ -353,6 +353,8 @@ _ZNSt15_List_node_base4swapERS_S0_ T
|
||||
_ZNSt15_List_node_base6unhookEv T
|
||||
_ZNSt15_List_node_base7reverseEv T
|
||||
_ZNSt15_List_node_base8transferEPS_S0_ T
|
||||
_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv T
|
||||
_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv T
|
||||
_ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode T
|
||||
_ZNSt15underflow_errorC1EPKc T
|
||||
_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||
@ -651,6 +653,7 @@ _ZSt25__throw_bad_function_callv T
|
||||
_ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE T
|
||||
_ZSt27__set_once_functor_lock_ptrPSt11unique_lockISt5mutexE T
|
||||
_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_ T
|
||||
_ZSt28__throw_bad_array_new_lengthv T
|
||||
_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ T
|
||||
_ZSt3cin B 280
|
||||
_ZSt4cerr B 272
|
||||
@ -1531,6 +1534,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmRKS4_ W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmRKS4_mm W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmmc W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEv W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEmm W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv W
|
||||
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm W
|
||||
@ -1607,6 +1611,7 @@ _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__nor
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S9_S9_ W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmPKwm W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEm W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEv W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEmm W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwm W
|
||||
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_ W
|
||||
|
@ -1 +1 @@
|
||||
d2865c41fafbbf66051d38e7b742c4d5bc2f05a3
|
||||
b657198052b46799dee7b9c80e910f1d46099e82
|
||||
|
@ -1,9 +1,9 @@
|
||||
LICENSE := LGPL
|
||||
VERSION := 10.3.0
|
||||
VERSION := 12.2.0
|
||||
DOWNLOADS := gcc.archive
|
||||
|
||||
URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
|
||||
SHA(gcc) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
|
||||
SHA(gcc) := e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
|
||||
DIR(gcc) := src/lib/stdcxx
|
||||
SIG(gcc) := ${URL(gcc)}
|
||||
KEY(gcc) := GNU
|
||||
@ -23,6 +23,7 @@ DIR_CONTENT(include/stdcxx) := \
|
||||
src/lib/stdcxx/include/c_compatibility/fenv.h \
|
||||
src/lib/stdcxx/include/c_compatibility/tgmath.h \
|
||||
src/lib/stdcxx/libsupc++/cxxabi.h \
|
||||
src/lib/stdcxx/libsupc++/compare \
|
||||
src/lib/stdcxx/libsupc++/exception \
|
||||
src/lib/stdcxx/libsupc++/initializer_list \
|
||||
src/lib/stdcxx/libsupc++/new \
|
||||
|
@ -1,4 +1,7 @@
|
||||
MIRROR_FROM_REP_DIR := lib/mk/stdcxx-c++98.mk \
|
||||
lib/mk/stdcxx-c++11.mk \
|
||||
lib/mk/stdcxx-c++17.mk \
|
||||
lib/mk/stdcxx-c++20.mk \
|
||||
lib/mk/stdcxx.mk \
|
||||
lib/import/import-stdcxx.mk
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user