stdcxx: update to version 12.2.0

Issue #4827
This commit is contained in:
Christian Prochaska 2023-04-24 15:44:11 +02:00 committed by Christian Helmuth
parent 8920e5fbea
commit b8c80c9570
14 changed files with 1133 additions and 288 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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 =

View 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 =

View 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 =

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
d2865c41fafbbf66051d38e7b742c4d5bc2f05a3
b657198052b46799dee7b9c80e910f1d46099e82

View File

@ -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 \

View File

@ -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