+++ /dev/null
-/* Copyright (C) 1992-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _ALLOCA_H
-#define _ALLOCA_H 1
-
-#include <features.h>
-
-#define __need_size_t
-#include <stddef.h>
-
-__BEGIN_DECLS
-
-/* Remove any previous definition. */
-#undef alloca
-
-/* Allocate a block that will be freed when the calling function exits. */
-extern void *alloca (size_t __size) __THROW;
-
-#ifdef __GNUC__
-# define alloca(size) __builtin_alloca (size)
-#endif /* GCC. */
-
-__END_DECLS
-
-#endif /* alloca.h */
+++ /dev/null
-/* Monotonically increasing wide counters (at least 62 bits).
- Copyright (C) 2016-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_ATOMIC_WIDE_COUNTER_H
-#define _BITS_ATOMIC_WIDE_COUNTER_H
-
-/* Counter that is monotonically increasing (by less than 2**31 per
- increment), with a single writer, and an arbitrary number of
- readers. */
-typedef union
-{
- __extension__ unsigned long long int __value64;
- struct
- {
- unsigned int __low;
- unsigned int __high;
- } __value32;
-} __atomic_wide_counter;
-
-#endif /* _BITS_ATOMIC_WIDE_COUNTER_H */
+++ /dev/null
-/* Macros and inline functions to swap the order of bytes in integer values.
- Copyright (C) 1997-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifndef _BITS_BYTESWAP_H
-#define _BITS_BYTESWAP_H 1
-
-#include <features.h>
-#include <bits/types.h>
-
-/* Swap bytes in 16-bit value. */
-#define __bswap_constant_16(x) \
- ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
-
-static __inline __uint16_t
-__bswap_16 (__uint16_t __bsx)
-{
-#if __GNUC_PREREQ (4, 8)
- return __builtin_bswap16 (__bsx);
-#else
- return __bswap_constant_16 (__bsx);
-#endif
-}
-
-/* Swap bytes in 32-bit value. */
-#define __bswap_constant_32(x) \
- ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) \
- | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
-
-static __inline __uint32_t
-__bswap_32 (__uint32_t __bsx)
-{
-#if __GNUC_PREREQ (4, 3)
- return __builtin_bswap32 (__bsx);
-#else
- return __bswap_constant_32 (__bsx);
-#endif
-}
-
-/* Swap bytes in 64-bit value. */
-#define __bswap_constant_64(x) \
- ((((x) & 0xff00000000000000ull) >> 56) \
- | (((x) & 0x00ff000000000000ull) >> 40) \
- | (((x) & 0x0000ff0000000000ull) >> 24) \
- | (((x) & 0x000000ff00000000ull) >> 8) \
- | (((x) & 0x00000000ff000000ull) << 8) \
- | (((x) & 0x0000000000ff0000ull) << 24) \
- | (((x) & 0x000000000000ff00ull) << 40) \
- | (((x) & 0x00000000000000ffull) << 56))
-
-__extension__ static __inline __uint64_t
-__bswap_64 (__uint64_t __bsx)
-{
-#if __GNUC_PREREQ (4, 3)
- return __builtin_bswap64 (__bsx);
-#else
- return __bswap_constant_64 (__bsx);
-#endif
-}
-
-#endif /* _BITS_BYTESWAP_H */
+++ /dev/null
-/* Endian macros for string.h functions
- Copyright (C) 1992-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_ENDIAN_H
-#define _BITS_ENDIAN_H 1
-
-/* Definitions for byte order, according to significance of bytes,
- from low addresses to high addresses. The value is what you get by
- putting '4' in the most significant byte, '3' in the second most
- significant byte, '2' in the second least significant byte, and '1'
- in the least significant byte, and then writing down one digit for
- each byte, starting with the byte at the lowest address at the left,
- and proceeding to the byte with the highest address at the right. */
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-#define __PDP_ENDIAN 3412
-
-/* This file defines `__BYTE_ORDER' for the particular machine. */
-#include <bits/endianness.h>
-
-/* Some machines may need to use a different endianness for floating point
- values. */
-#ifndef __FLOAT_WORD_ORDER
-# define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) LO, HI
-#elif __BYTE_ORDER == __BIG_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) HI, LO
-#endif
-
-#endif /* bits/endian.h */
+++ /dev/null
-#ifndef _BITS_ENDIANNESS_H
-#define _BITS_ENDIANNESS_H 1
-
-#ifndef _BITS_ENDIAN_H
-# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
-#endif
-
-/* i386/x86_64 are little-endian. */
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-#endif /* bits/endianness.h */
+++ /dev/null
-/* Macros to control TS 18661-3 glibc features where the same
- definitions are appropriate for all platforms.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_FLOATN_COMMON_H
-#define _BITS_FLOATN_COMMON_H
-
-#include <features.h>
-#include <bits/long-double.h>
-
-/* This header should be included at the bottom of each bits/floatn.h.
- It defines the following macros for each _FloatN and _FloatNx type,
- where the same definitions, or definitions based only on the macros
- in bits/floatn.h, are appropriate for all glibc configurations. */
-
-/* Defined to 1 if the current compiler invocation provides a
- floating-point type with the right format for this type, and this
- glibc includes corresponding *fN or *fNx interfaces for it. */
-#define __HAVE_FLOAT16 0
-#define __HAVE_FLOAT32 1
-#define __HAVE_FLOAT64 1
-#define __HAVE_FLOAT32X 1
-#define __HAVE_FLOAT128X 0
-
-/* Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
- type is the first with its format in the sequence of (the default
- choices for) float, double, long double, _Float16, _Float32,
- _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
- glibc; that is, if functions present once per floating-point format
- rather than once per type are present for this type.
-
- All configurations supported by glibc have _Float32 the same format
- as float, _Float64 and _Float32x the same format as double, the
- _Float64x the same format as either long double or _Float128. No
- configurations support _Float128x or, as of GCC 7, have compiler
- support for a type meeting the requirements for _Float128x. */
-#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16
-#define __HAVE_DISTINCT_FLOAT32 0
-#define __HAVE_DISTINCT_FLOAT64 0
-#define __HAVE_DISTINCT_FLOAT32X 0
-#define __HAVE_DISTINCT_FLOAT64X 0
-#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
-
-/* Defined to 1 if the corresponding _FloatN type is not binary compatible
- with the corresponding ISO C type in the current compilation unit as
- opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
- in glibc. */
-#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \
- && __LDBL_MANT_DIG__ != 113)
-
-/* Defined to 1 if any _FloatN or _FloatNx types that are not
- ABI-distinct are however distinct types at the C language level (so
- for the purposes of __builtin_types_compatible_p and _Generic). */
-#if __GNUC_PREREQ (7, 0) && !defined __cplusplus
-# define __HAVE_FLOATN_NOT_TYPEDEF 1
-#else
-# define __HAVE_FLOATN_NOT_TYPEDEF 0
-#endif
-
-#ifndef __ASSEMBLER__
-
-/* Defined to concatenate the literal suffix to be used with _FloatN
- or _FloatNx types, if __HAVE_<type> is 1. The corresponding
- literal suffixes exist since GCC 7, for C only. */
-# if __HAVE_FLOAT16
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* No corresponding suffix available for this type. */
-# define __f16(x) ((_Float16) x##f)
-# else
-# define __f16(x) x##f16
-# endif
-# endif
-
-# if __HAVE_FLOAT32
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# define __f32(x) x##f
-# else
-# define __f32(x) x##f32
-# endif
-# endif
-
-# if __HAVE_FLOAT64
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# ifdef __NO_LONG_DOUBLE_MATH
-# define __f64(x) x##l
-# else
-# define __f64(x) x
-# endif
-# else
-# define __f64(x) x##f64
-# endif
-# endif
-
-# if __HAVE_FLOAT32X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# define __f32x(x) x
-# else
-# define __f32x(x) x##f32x
-# endif
-# endif
-
-# if __HAVE_FLOAT64X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# if __HAVE_FLOAT64X_LONG_DOUBLE
-# define __f64x(x) x##l
-# else
-# define __f64x(x) __f128 (x)
-# endif
-# else
-# define __f64x(x) x##f64x
-# endif
-# endif
-
-# if __HAVE_FLOAT128X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# error "_Float128X supported but no constant suffix"
-# else
-# define __f128x(x) x##f128x
-# endif
-# endif
-
-/* Defined to a complex type if __HAVE_<type> is 1. */
-# if __HAVE_FLOAT16
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__)));
-# define __CFLOAT16 __cfloat16
-# else
-# define __CFLOAT16 _Complex _Float16
-# endif
-# endif
-
-# if __HAVE_FLOAT32
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# define __CFLOAT32 _Complex float
-# else
-# define __CFLOAT32 _Complex _Float32
-# endif
-# endif
-
-# if __HAVE_FLOAT64
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# ifdef __NO_LONG_DOUBLE_MATH
-# define __CFLOAT64 _Complex long double
-# else
-# define __CFLOAT64 _Complex double
-# endif
-# else
-# define __CFLOAT64 _Complex _Float64
-# endif
-# endif
-
-# if __HAVE_FLOAT32X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# define __CFLOAT32X _Complex double
-# else
-# define __CFLOAT32X _Complex _Float32x
-# endif
-# endif
-
-# if __HAVE_FLOAT64X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# if __HAVE_FLOAT64X_LONG_DOUBLE
-# define __CFLOAT64X _Complex long double
-# else
-# define __CFLOAT64X __CFLOAT128
-# endif
-# else
-# define __CFLOAT64X _Complex _Float64x
-# endif
-# endif
-
-# if __HAVE_FLOAT128X
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# error "_Float128X supported but no complex type"
-# else
-# define __CFLOAT128X _Complex _Float128x
-# endif
-# endif
-
-/* The remaining of this file provides support for older compilers. */
-# if __HAVE_FLOAT16
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef float _Float16 __attribute__ ((__mode__ (__HF__)));
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ())
-# define __builtin_inff16() ((_Float16) __builtin_inf ())
-# define __builtin_nanf16(x) ((_Float16) __builtin_nan (x))
-# define __builtin_nansf16(x) ((_Float16) __builtin_nans (x))
-# endif
-
-# endif
-
-# if __HAVE_FLOAT32
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef float _Float32;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf32() (__builtin_huge_valf ())
-# define __builtin_inff32() (__builtin_inff ())
-# define __builtin_nanf32(x) (__builtin_nanf (x))
-# define __builtin_nansf32(x) (__builtin_nansf (x))
-# endif
-
-# endif
-
-# if __HAVE_FLOAT64
-
-/* If double, long double and _Float64 all have the same set of
- values, TS 18661-3 requires the usual arithmetic conversions on
- long double and _Float64 to produce _Float64. For this to be the
- case when building with a compiler without a distinct _Float64
- type, _Float64 must be a typedef for long double, not for
- double. */
-
-# ifdef __NO_LONG_DOUBLE_MATH
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float64;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf64() (__builtin_huge_vall ())
-# define __builtin_inff64() (__builtin_infl ())
-# define __builtin_nanf64(x) (__builtin_nanl (x))
-# define __builtin_nansf64(x) (__builtin_nansl (x))
-# endif
-
-# else
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef double _Float64;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf64() (__builtin_huge_val ())
-# define __builtin_inff64() (__builtin_inf ())
-# define __builtin_nanf64(x) (__builtin_nan (x))
-# define __builtin_nansf64(x) (__builtin_nans (x))
-# endif
-
-# endif
-
-# endif
-
-# if __HAVE_FLOAT32X
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef double _Float32x;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf32x() (__builtin_huge_val ())
-# define __builtin_inff32x() (__builtin_inf ())
-# define __builtin_nanf32x(x) (__builtin_nan (x))
-# define __builtin_nansf32x(x) (__builtin_nans (x))
-# endif
-
-# endif
-
-# if __HAVE_FLOAT64X
-
-# if __HAVE_FLOAT64X_LONG_DOUBLE
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float64x;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf64x() (__builtin_huge_vall ())
-# define __builtin_inff64x() (__builtin_infl ())
-# define __builtin_nanf64x(x) (__builtin_nanl (x))
-# define __builtin_nansf64x(x) (__builtin_nansl (x))
-# endif
-
-# else
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef _Float128 _Float64x;
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf64x() (__builtin_huge_valf128 ())
-# define __builtin_inff64x() (__builtin_inff128 ())
-# define __builtin_nanf64x(x) (__builtin_nanf128 (x))
-# define __builtin_nansf64x(x) (__builtin_nansf128 (x))
-# endif
-
-# endif
-
-# endif
-
-# if __HAVE_FLOAT128X
-
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-# error "_Float128x supported but no type"
-# endif
-
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ())
-# define __builtin_inff128x() ((_Float128x) __builtin_inf ())
-# define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x))
-# define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x))
-# endif
-
-# endif
-
-#endif /* !__ASSEMBLER__. */
-
-#endif /* _BITS_FLOATN_COMMON_H */
+++ /dev/null
-/* Macros to control TS 18661-3 glibc features on x86.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_FLOATN_H
-#define _BITS_FLOATN_H
-
-#include <features.h>
-
-/* Defined to 1 if the current compiler invocation provides a
- floating-point type with the IEEE 754 binary128 format, and this
- glibc includes corresponding *f128 interfaces for it. The required
- libgcc support was added some time after the basic compiler
- support, for x86_64 and x86. */
-#if (defined __x86_64__ \
- ? __GNUC_PREREQ (4, 3) \
- : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
-# define __HAVE_FLOAT128 1
-#else
-# define __HAVE_FLOAT128 0
-#endif
-
-/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
- from the default float, double and long double types in this glibc. */
-#if __HAVE_FLOAT128
-# define __HAVE_DISTINCT_FLOAT128 1
-#else
-# define __HAVE_DISTINCT_FLOAT128 0
-#endif
-
-/* Defined to 1 if the current compiler invocation provides a
- floating-point type with the right format for _Float64x, and this
- glibc includes corresponding *f64x interfaces for it. */
-#define __HAVE_FLOAT64X 1
-
-/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
- of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
- the format of _Float128, which must be different from that of long
- double. */
-#define __HAVE_FLOAT64X_LONG_DOUBLE 1
-
-#ifndef __ASSEMBLER__
-
-/* Defined to concatenate the literal suffix to be used with _Float128
- types, if __HAVE_FLOAT128 is 1. */
-# if __HAVE_FLOAT128
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* The literal suffix f128 exists only since GCC 7.0. */
-# define __f128(x) x##q
-# else
-# define __f128(x) x##f128
-# endif
-# endif
-
-/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */
-# if __HAVE_FLOAT128
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* Add a typedef for older GCC compilers which don't natively support
- _Complex _Float128. */
-typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
-# define __CFLOAT128 __cfloat128
-# else
-# define __CFLOAT128 _Complex _Float128
-# endif
-# endif
-
-/* The remaining of this file provides support for older compilers. */
-# if __HAVE_FLOAT128
-
-/* The type _Float128 exists only since GCC 7.0. */
-# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef __float128 _Float128;
-# endif
-
-/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ())
-# endif
-
-/* Older GCC has only a subset of built-in functions for _Float128 on
- x86, and __builtin_infq is not usable in static initializers.
- Converting a narrower sNaN to _Float128 produces a quiet NaN, so
- attempts to use _Float128 sNaNs will not work properly with older
- compilers. */
-# if !__GNUC_PREREQ (7, 0)
-# define __builtin_copysignf128 __builtin_copysignq
-# define __builtin_fabsf128 __builtin_fabsq
-# define __builtin_inff128() ((_Float128) __builtin_inf ())
-# define __builtin_nanf128(x) ((_Float128) __builtin_nan (x))
-# define __builtin_nansf128(x) ((_Float128) __builtin_nans (x))
-# endif
-
-/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
- e.g.: __builtin_signbitf128, before GCC 6. However, there has never
- been a __builtin_signbitf128 in GCC and the type-generic builtin is
- only available since GCC 6. */
-# if !__GNUC_PREREQ (6, 0)
-# define __builtin_signbitf128 __signbitf128
-# endif
-
-# endif
-
-#endif /* !__ASSEMBLER__. */
-
-#include <bits/floatn-common.h>
-
-#endif /* _BITS_FLOATN_H */
+++ /dev/null
-/* Handle feature test macros at the start of a header.
- Copyright (C) 2016-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This header is internal to glibc and should not be included outside
- of glibc headers. Headers including it must define
- __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header
- cannot have multiple include guards because ISO C feature test
- macros depend on the definition of the macro when an affected
- header is included, not when the first system header is
- included. */
-
-#ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-# error "Never include <bits/libc-header-start.h> directly."
-#endif
-
-#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-
-#include <features.h>
-
-/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
- macro. */
-#undef __GLIBC_USE_LIB_EXT2
-#if (defined __USE_GNU \
- || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0))
-# define __GLIBC_USE_LIB_EXT2 1
-#else
-# define __GLIBC_USE_LIB_EXT2 0
-#endif
-
-/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
- macro. Most but not all symbols enabled by that macro in TS
- 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in
- Annex F still require a new feature test macro
- __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
- __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
- 18661-1 are not included in C2X (and thus should depend on
- __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
- enabled).
-
- __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
- 18661-1 not included in C2X.
-
- __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
- 18661-1 that are also included in C2X (with no feature test macro
- required in C2X).
-
- __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
- that are included in C2X but conditional on
- __STDC_WANT_IEC_60559_EXT__. (There are currently no features
- conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
- 18661-1.) */
-#undef __GLIBC_USE_IEC_60559_BFP_EXT
-#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__
-# define __GLIBC_USE_IEC_60559_BFP_EXT 1
-#else
-# define __GLIBC_USE_IEC_60559_BFP_EXT 0
-#endif
-#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X)
-# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1
-#else
-# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0
-#endif
-#undef __GLIBC_USE_IEC_60559_EXT
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__
-# define __GLIBC_USE_IEC_60559_EXT 1
-#else
-# define __GLIBC_USE_IEC_60559_EXT 0
-#endif
-
-/* ISO/IEC TS 18661-4:2015 defines the
- __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction
- functions, the symbols from this TS are enabled unconditionally in
- C2X. */
-#undef __GLIBC_USE_IEC_60559_FUNCS_EXT
-#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
-#else
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
-#endif
-#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X
-#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X)
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1
-#else
-# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0
-#endif
-
-/* ISO/IEC TS 18661-3:2015 defines the
- __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */
-#undef __GLIBC_USE_IEC_60559_TYPES_EXT
-#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__
-# define __GLIBC_USE_IEC_60559_TYPES_EXT 1
-#else
-# define __GLIBC_USE_IEC_60559_TYPES_EXT 0
-#endif
+++ /dev/null
-/* Properties of long double type. ldbl-96 version.
- Copyright (C) 2016-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* long double is distinct from double, so there is nothing to
- define here. */
-#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
+++ /dev/null
-/* Copyright (C) 2002-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/wordsize.h>
-
-#ifdef __x86_64__
-# if __WORDSIZE == 64
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-# else
-# define __SIZEOF_PTHREAD_MUTEX_T 32
-# define __SIZEOF_PTHREAD_ATTR_T 32
-# define __SIZEOF_PTHREAD_RWLOCK_T 44
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-# endif
-#else
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-#endif
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-#ifndef __x86_64__
-/* Extra attributes for the cleanup functions. */
-# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
-#endif
-
-#endif /* bits/pthreadtypes.h */
+++ /dev/null
-/* Declaration of common pthread types for all architectures.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_COMMON_H
-# define _BITS_PTHREADTYPES_COMMON_H 1
-
-/* For internal mutex and condition variable definitions. */
-#include <bits/thread-shared-types.h>
-
-/* Thread identifiers. The structure of the attribute type is not
- exposed on purpose. */
-typedef unsigned long int pthread_t;
-
-
-/* Data structures for mutex handling. The structure of the attribute
- type is not exposed on purpose. */
-typedef union
-{
- char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
- int __align;
-} pthread_mutexattr_t;
-
-
-/* Data structure for condition variable handling. The structure of
- the attribute type is not exposed on purpose. */
-typedef union
-{
- char __size[__SIZEOF_PTHREAD_CONDATTR_T];
- int __align;
-} pthread_condattr_t;
-
-
-/* Keys for thread-specific data */
-typedef unsigned int pthread_key_t;
-
-
-/* Once-only execution */
-typedef int __ONCE_ALIGNMENT pthread_once_t;
-
-
-union pthread_attr_t
-{
- char __size[__SIZEOF_PTHREAD_ATTR_T];
- long int __align;
-};
-#ifndef __have_pthread_attr_t
-typedef union pthread_attr_t pthread_attr_t;
-# define __have_pthread_attr_t 1
-#endif
-
-
-typedef union
-{
- struct __pthread_mutex_s __data;
- char __size[__SIZEOF_PTHREAD_MUTEX_T];
- long int __align;
-} pthread_mutex_t;
-
-
-typedef union
-{
- struct __pthread_cond_s __data;
- char __size[__SIZEOF_PTHREAD_COND_T];
- __extension__ long long int __align;
-} pthread_cond_t;
-
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-/* Data structure for reader-writer lock variable handling. The
- structure of the attribute type is deliberately not exposed. */
-typedef union
-{
- struct __pthread_rwlock_arch_t __data;
- char __size[__SIZEOF_PTHREAD_RWLOCK_T];
- long int __align;
-} pthread_rwlock_t;
-
-typedef union
-{
- char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
- long int __align;
-} pthread_rwlockattr_t;
-#endif
-
-
-#ifdef __USE_XOPEN2K
-/* POSIX spinlock data type. */
-typedef volatile int pthread_spinlock_t;
-
-
-/* POSIX barriers data type. The structure of the type is
- deliberately not exposed. */
-typedef union
-{
- char __size[__SIZEOF_PTHREAD_BARRIER_T];
- long int __align;
-} pthread_barrier_t;
-
-typedef union
-{
- char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
- int __align;
-} pthread_barrierattr_t;
-#endif
-
-#endif
+++ /dev/null
-/* Copyright (C) 1997-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SELECT_H
-# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
-#endif
-
-
-/* We don't use `memset' because this would require a prototype and
- the array isn't too big. */
-#define __FD_ZERO(s) \
- do { \
- unsigned int __i; \
- fd_set *__arr = (s); \
- for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
- __FDS_BITS (__arr)[__i] = 0; \
- } while (0)
-#define __FD_SET(d, s) \
- ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d)))
-#define __FD_CLR(d, s) \
- ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d)))
-#define __FD_ISSET(d, s) \
- ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
+++ /dev/null
-/* Define intN_t types.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_STDINT_INTN_H
-#define _BITS_STDINT_INTN_H 1
-
-#include <bits/types.h>
-
-typedef __int8_t int8_t;
-typedef __int16_t int16_t;
-typedef __int32_t int32_t;
-typedef __int64_t int64_t;
-
-#endif /* bits/stdint-intn.h */
+++ /dev/null
-/* Copyright (C) 1994-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_STDIO_LIM_H
-#define _BITS_STDIO_LIM_H 1
-
-#ifndef _STDIO_H
-# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
-#endif
-
-#define L_tmpnam 20
-#define TMP_MAX 238328
-#define FILENAME_MAX 4096
-
-#ifdef __USE_POSIX
-# define L_ctermid 9
-# if !defined __USE_XOPEN2K || defined __USE_GNU
-# define L_cuserid 9
-# endif
-#endif
-
-#undef FOPEN_MAX
-#define FOPEN_MAX 16
-
-#endif /* bits/stdio_lim.h */
+++ /dev/null
-/* Floating-point inline functions for stdlib.h.
- Copyright (C) 2012-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _STDLIB_H
-# error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
-#endif
-
-#ifdef __USE_EXTERN_INLINES
-__extern_inline double
-__NTH (atof (const char *__nptr))
-{
- return strtod (__nptr, (char **) NULL);
-}
-#endif /* Optimizing and Inlining. */
+++ /dev/null
-/* x86 internal mutex struct definitions.
- Copyright (C) 2019-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _THREAD_MUTEX_INTERNAL_H
-#define _THREAD_MUTEX_INTERNAL_H 1
-
-struct __pthread_mutex_s
-{
- int __lock;
- unsigned int __count;
- int __owner;
-#ifdef __x86_64__
- unsigned int __nusers;
-#endif
- /* KIND must stay at this position in the structure to maintain
- binary compatibility with static initializers. */
- int __kind;
-#ifdef __x86_64__
- short __spins;
- short __elision;
- __pthread_list_t __list;
-# define __PTHREAD_MUTEX_HAVE_PREV 1
-#else
- unsigned int __nusers;
- __extension__ union
- {
- struct
- {
- short __espins;
- short __eelision;
-# define __spins __elision_data.__espins
-# define __elision __elision_data.__eelision
- } __elision_data;
- __pthread_slist_t __list;
- };
-# define __PTHREAD_MUTEX_HAVE_PREV 0
-#endif
-};
-
-#ifdef __x86_64__
-# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
- 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
-#else
-# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
- 0, 0, 0, __kind, 0, { { 0, 0 } }
-#endif
-
-#endif
+++ /dev/null
-/* x86 internal rwlock struct definitions.
- Copyright (C) 2019-2022 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _RWLOCK_INTERNAL_H
-#define _RWLOCK_INTERNAL_H
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#ifdef __x86_64__
- int __cur_writer;
- int __shared;
- signed char __rwelision;
-# ifdef __ILP32__
- unsigned char __pad1[3];
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
-# else
- unsigned char __pad1[7];
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
-# endif
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-#else /* __x86_64__ */
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- signed char __rwelision;
- unsigned char __pad2;
- int __cur_writer;
-#endif
-};
-
-#ifdef __x86_64__
-# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
- 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags
-#else
-# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
- 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0
-#endif
-
-#endif
+++ /dev/null
-/* Common threading primitives definitions for both POSIX and C11.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _THREAD_SHARED_TYPES_H
-#define _THREAD_SHARED_TYPES_H 1
-
-/* Arch-specific definitions. Each architecture must define the following
- macros to define the expected sizes of pthread data types:
-
- __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t.
- __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t.
- __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t.
- __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t.
- __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t.
- __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t.
- __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t.
- __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
- __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
-
- The additional macro defines any constraint for the lock alignment
- inside the thread structures:
-
- __LOCK_ALIGNMENT - for internal lock/futex usage.
-
- Same idea but for the once locking primitive:
-
- __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */
-
-#include <bits/pthreadtypes-arch.h>
-
-#include <bits/atomic_wide_counter.h>
-
-
-/* Common definition of pthread_mutex_t. */
-
-typedef struct __pthread_internal_list
-{
- struct __pthread_internal_list *__prev;
- struct __pthread_internal_list *__next;
-} __pthread_list_t;
-
-typedef struct __pthread_internal_slist
-{
- struct __pthread_internal_slist *__next;
-} __pthread_slist_t;
-
-/* Arch-specific mutex definitions. A generic implementation is provided
- by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
- can override it by defining:
-
- 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
- definition). It should contains at least the internal members
- defined in the generic version.
-
- 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
- atomic operations.
-
- 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
- It should initialize the mutex internal flag. */
-
-#include <bits/struct_mutex.h>
-
-/* Arch-sepecific read-write lock definitions. A generic implementation is
- provided by struct_rwlock.h. If required, an architecture can override it
- by defining:
-
- 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
- It should contain at least the internal members defined in the
- generic version.
-
- 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
- It should initialize the rwlock internal type. */
-
-#include <bits/struct_rwlock.h>
-
-
-/* Common definition of pthread_cond_t. */
-
-struct __pthread_cond_s
-{
- __atomic_wide_counter __wseq;
- __atomic_wide_counter __g1_start;
- unsigned int __g_refs[2] __LOCK_ALIGNMENT;
- unsigned int __g_size[2];
- unsigned int __g1_orig_size;
- unsigned int __wrefs;
- unsigned int __g_signals[2];
-};
-
-typedef unsigned int __tss_t;
-typedef unsigned long int __thrd_t;
-
-typedef struct
-{
- int __data __ONCE_ALIGNMENT;
-} __once_flag;
-
-#define __ONCE_FLAG_INIT { 0 }
-
-#endif /* _THREAD_SHARED_TYPES_H */
+++ /dev/null
-/* System-dependent timing definitions. Linux version.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * Never include this file directly; use <time.h> instead.
- */
-
-#ifndef _BITS_TIME_H
-#define _BITS_TIME_H 1
-
-#include <bits/types.h>
-
-/* ISO/IEC 9899:1999 7.23.1: Components of time
- The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
- the number per second of the value returned by the `clock' function. */
-/* CAE XSH, Issue 4, Version 2: <time.h>
- The value of CLOCKS_PER_SEC is required to be 1 million on all
- XSI-conformant systems. */
-#define CLOCKS_PER_SEC ((__clock_t) 1000000)
-
-#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \
- && !defined __USE_XOPEN2K
-/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
- presents the real value for clock ticks per second for the system. */
-extern long int __sysconf (int);
-# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
-#endif
-
-#ifdef __USE_POSIX199309
-/* Identifier for system-wide realtime clock. */
-# define CLOCK_REALTIME 0
-/* Monotonic system-wide clock. */
-# define CLOCK_MONOTONIC 1
-/* High-resolution timer from the CPU. */
-# define CLOCK_PROCESS_CPUTIME_ID 2
-/* Thread-specific CPU-time clock. */
-# define CLOCK_THREAD_CPUTIME_ID 3
-/* Monotonic system-wide clock, not adjusted for frequency scaling. */
-# define CLOCK_MONOTONIC_RAW 4
-/* Identifier for system-wide realtime clock, updated only on ticks. */
-# define CLOCK_REALTIME_COARSE 5
-/* Monotonic system-wide clock, updated only on ticks. */
-# define CLOCK_MONOTONIC_COARSE 6
-/* Monotonic system-wide clock that includes time spent in suspension. */
-# define CLOCK_BOOTTIME 7
-/* Like CLOCK_REALTIME but also wakes suspended system. */
-# define CLOCK_REALTIME_ALARM 8
-/* Like CLOCK_BOOTTIME but also wakes suspended system. */
-# define CLOCK_BOOTTIME_ALARM 9
-/* Like CLOCK_REALTIME but in International Atomic Time. */
-# define CLOCK_TAI 11
-
-/* Flag to indicate time is absolute. */
-# define TIMER_ABSTIME 1
-#endif
-
-#ifdef __USE_GNU
-# include <bits/timex.h>
-
-__BEGIN_DECLS
-
-/* Tune a POSIX clock. */
-extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2));
-
-#ifdef __USE_TIME_BITS64
-# if defined(__REDIRECT_NTH)
-extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id,
- struct timex *__utx),
- __clock_adjtime64) __nonnull((2));
-# else
-# define clock_adjtime __clock_adjtime64
-# endif
-#endif
-
-__END_DECLS
-#endif /* use GNU */
-
-#endif /* bits/time.h */
+++ /dev/null
-/* bits/time64.h -- underlying types for __time64_t. Generic version.
- Copyright (C) 2018-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_TYPES_H
-# error "Never include <bits/time64.h> directly; use <sys/types.h> instead."
-#endif
-
-#ifndef _BITS_TIME64_H
-#define _BITS_TIME64_H 1
-
-/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */
-
-#if __TIMESIZE == 64
-/* If we already have 64-bit time type then use it. */
-# define __TIME64_T_TYPE __TIME_T_TYPE
-#else
-/* Define a 64-bit time type alongsize the 32-bit one. */
-# define __TIME64_T_TYPE __SQUAD_TYPE
-#endif
-
-#endif /* bits/time64.h */
+++ /dev/null
-/* Bit size of the time_t type at glibc build time, x86-64 and x32 case.
- Copyright (C) 2018-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <bits/wordsize.h>
-
-#if defined __x86_64__ && defined __ILP32__
-/* For x32, time is 64-bit even though word size is 32-bit. */
-# define __TIMESIZE 64
-#else
-/* For others, time size is word size. */
-# define __TIMESIZE __WORDSIZE
-#endif
+++ /dev/null
-/* Copyright (C) 1995-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_TIMEX_H
-#define _BITS_TIMEX_H 1
-
-#include <bits/types.h>
-#include <bits/types/struct_timeval.h>
-
-/* These definitions from linux/timex.h as of 3.18. */
-
-struct timex
-{
-# if defined __USE_TIME_BITS64 || (__TIMESIZE == 64 && __WORDSIZE == 32)
- unsigned int modes; /* mode selector */
- int :32; /* pad */
- long long offset; /* time offset (usec) */
- long long freq; /* frequency offset (scaled ppm) */
- long long maxerror; /* maximum error (usec) */
- long long esterror; /* estimated error (usec) */
- int status; /* clock command/status */
- int :32; /* pad */
- long long constant; /* pll time constant */
- long long precision; /* clock precision (usec) (read only) */
- long long tolerance; /* clock frequency tolerance (ppm) (ro) */
- struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
- long long tick; /* (modified) usecs between clock ticks */
- long long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long long jitter; /* pps jitter (us) (ro) */
- int shift; /* interval duration (s) (shift) (ro) */
- int :32; /* pad */
- long long stabil; /* pps stability (scaled ppm) (ro) */
- long long jitcnt; /* jitter limit exceeded (ro) */
- long long calcnt; /* calibration intervals (ro) */
- long long errcnt; /* calibration errors (ro) */
- long long stbcnt; /* stability limit exceeded (ro) */
-
- int tai; /* TAI offset (ro) */
-
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32;
-# else
- unsigned int modes; /* mode selector */
- __syscall_slong_t offset; /* time offset (usec) */
- __syscall_slong_t freq; /* frequency offset (scaled ppm) */
- __syscall_slong_t maxerror; /* maximum error (usec) */
- __syscall_slong_t esterror; /* estimated error (usec) */
- int status; /* clock command/status */
- __syscall_slong_t constant; /* pll time constant */
- __syscall_slong_t precision; /* clock precision (usec) (ro) */
- __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */
- struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
- __syscall_slong_t tick; /* (modified) usecs between clock ticks */
- __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */
- __syscall_slong_t jitter; /* pps jitter (us) (ro) */
- int shift; /* interval duration (s) (shift) (ro) */
- __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */
- __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */
- __syscall_slong_t calcnt; /* calibration intervals (ro) */
- __syscall_slong_t errcnt; /* calibration errors (ro) */
- __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */
-
- int tai; /* TAI offset (ro) */
-
- /* ??? */
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32;
-# endif
-};
-
-/* Mode codes (timex.mode) */
-#define ADJ_OFFSET 0x0001 /* time offset */
-#define ADJ_FREQUENCY 0x0002 /* frequency offset */
-#define ADJ_MAXERROR 0x0004 /* maximum time error */
-#define ADJ_ESTERROR 0x0008 /* estimated time error */
-#define ADJ_STATUS 0x0010 /* clock status */
-#define ADJ_TIMECONST 0x0020 /* pll time constant */
-#define ADJ_TAI 0x0080 /* set TAI offset */
-#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
-#define ADJ_MICRO 0x1000 /* select microsecond resolution */
-#define ADJ_NANO 0x2000 /* select nanosecond resolution */
-#define ADJ_TICK 0x4000 /* tick value */
-#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
-#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */
-
-/* xntp 3.4 compatibility names */
-#define MOD_OFFSET ADJ_OFFSET
-#define MOD_FREQUENCY ADJ_FREQUENCY
-#define MOD_MAXERROR ADJ_MAXERROR
-#define MOD_ESTERROR ADJ_ESTERROR
-#define MOD_STATUS ADJ_STATUS
-#define MOD_TIMECONST ADJ_TIMECONST
-#define MOD_CLKB ADJ_TICK
-#define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
-#define MOD_TAI ADJ_TAI
-#define MOD_MICRO ADJ_MICRO
-#define MOD_NANO ADJ_NANO
-
-
-/* Status codes (timex.status) */
-#define STA_PLL 0x0001 /* enable PLL updates (rw) */
-#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */
-#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */
-#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */
-
-#define STA_INS 0x0010 /* insert leap (rw) */
-#define STA_DEL 0x0020 /* delete leap (rw) */
-#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */
-#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */
-
-#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */
-#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */
-#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */
-#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */
-
-#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */
-#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */
-#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */
-#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */
-
-/* Read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \
- | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
-
-#endif /* bits/timex.h */
+++ /dev/null
-/* bits/types.h -- definitions of __*_t types underlying *_t types.
- Copyright (C) 2002-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * Never include this file directly; use <sys/types.h> instead.
- */
-
-#ifndef _BITS_TYPES_H
-#define _BITS_TYPES_H 1
-
-#include <features.h>
-#include <bits/wordsize.h>
-#include <bits/timesize.h>
-
-/* Convenience types. */
-typedef unsigned char __u_char;
-typedef unsigned short int __u_short;
-typedef unsigned int __u_int;
-typedef unsigned long int __u_long;
-
-/* Fixed-size types, underlying types depend on word size and compiler. */
-typedef signed char __int8_t;
-typedef unsigned char __uint8_t;
-typedef signed short int __int16_t;
-typedef unsigned short int __uint16_t;
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-#if __WORDSIZE == 64
-typedef signed long int __int64_t;
-typedef unsigned long int __uint64_t;
-#else
-__extension__ typedef signed long long int __int64_t;
-__extension__ typedef unsigned long long int __uint64_t;
-#endif
-
-/* Smallest types with at least a given width. */
-typedef __int8_t __int_least8_t;
-typedef __uint8_t __uint_least8_t;
-typedef __int16_t __int_least16_t;
-typedef __uint16_t __uint_least16_t;
-typedef __int32_t __int_least32_t;
-typedef __uint32_t __uint_least32_t;
-typedef __int64_t __int_least64_t;
-typedef __uint64_t __uint_least64_t;
-
-/* quad_t is also 64 bits. */
-#if __WORDSIZE == 64
-typedef long int __quad_t;
-typedef unsigned long int __u_quad_t;
-#else
-__extension__ typedef long long int __quad_t;
-__extension__ typedef unsigned long long int __u_quad_t;
-#endif
-
-/* Largest integral types. */
-#if __WORDSIZE == 64
-typedef long int __intmax_t;
-typedef unsigned long int __uintmax_t;
-#else
-__extension__ typedef long long int __intmax_t;
-__extension__ typedef unsigned long long int __uintmax_t;
-#endif
-
-
-/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
- macros for each of the OS types we define below. The definitions
- of those macros must use the following macros for underlying types.
- We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
- variants of each of the following integer types on this machine.
-
- 16 -- "natural" 16-bit type (always short)
- 32 -- "natural" 32-bit type (always int)
- 64 -- "natural" 64-bit type (long or long long)
- LONG32 -- 32-bit type, traditionally long
- QUAD -- 64-bit type, traditionally long long
- WORD -- natural type of __WORDSIZE bits (int or long)
- LONGWORD -- type of __WORDSIZE bits, traditionally long
-
- We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
- conventional uses of `long' or `long long' type modifiers match the
- types we define, even when a less-adorned type would be the same size.
- This matters for (somewhat) portably writing printf/scanf formats for
- these types, where using the appropriate l or ll format modifiers can
- make the typedefs and the formats match up across all GNU platforms. If
- we used `long' when it's 64 bits where `long long' is expected, then the
- compiler would warn about the formats not matching the argument types,
- and the programmer changing them to shut up the compiler would break the
- program's portability.
-
- Here we assume what is presently the case in all the GCC configurations
- we support: long long is always 64 bits, long is always word/address size,
- and int is always 32 bits. */
-
-#define __S16_TYPE short int
-#define __U16_TYPE unsigned short int
-#define __S32_TYPE int
-#define __U32_TYPE unsigned int
-#define __SLONGWORD_TYPE long int
-#define __ULONGWORD_TYPE unsigned long int
-#if __WORDSIZE == 32
-# define __SQUAD_TYPE __int64_t
-# define __UQUAD_TYPE __uint64_t
-# define __SWORD_TYPE int
-# define __UWORD_TYPE unsigned int
-# define __SLONG32_TYPE long int
-# define __ULONG32_TYPE unsigned long int
-# define __S64_TYPE __int64_t
-# define __U64_TYPE __uint64_t
-/* We want __extension__ before typedef's that use nonstandard base types
- such as `long long' in C89 mode. */
-# define __STD_TYPE __extension__ typedef
-#elif __WORDSIZE == 64
-# define __SQUAD_TYPE long int
-# define __UQUAD_TYPE unsigned long int
-# define __SWORD_TYPE long int
-# define __UWORD_TYPE unsigned long int
-# define __SLONG32_TYPE int
-# define __ULONG32_TYPE unsigned int
-# define __S64_TYPE long int
-# define __U64_TYPE unsigned long int
-/* No need to mark the typedef with __extension__. */
-# define __STD_TYPE typedef
-#else
-# error
-#endif
-#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
-#include <bits/time64.h> /* Defines __TIME*_T_TYPE macros. */
-
-
-__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
-__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
-__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
-__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
-__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
-__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
-__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
-__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
-__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
-__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
-__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
-__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
-__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
-__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
-__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
-__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
-__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
-__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
-__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t;
-
-__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
-__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
-
-/* Clock ID used in clock and timer functions. */
-__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
-
-/* Timer ID returned by `timer_create'. */
-__STD_TYPE __TIMER_T_TYPE __timer_t;
-
-/* Type to represent block size. */
-__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
-
-/* Types from the Large File Support interface. */
-
-/* Type to count number of disk blocks. */
-__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
-__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
-
-/* Type to count file system blocks. */
-__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
-__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
-
-/* Type to count file system nodes. */
-__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
-__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
-
-/* Type of miscellaneous file system fields. */
-__STD_TYPE __FSWORD_T_TYPE __fsword_t;
-
-__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
-
-/* Signed long type used in system calls. */
-__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t;
-/* Unsigned long type used in system calls. */
-__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t;
-
-/* These few don't really vary by system, they always correspond
- to one of the other defined types. */
-typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
-typedef char *__caddr_t;
-
-/* Duplicates info from stdint.h but this is used in unistd.h. */
-__STD_TYPE __SWORD_TYPE __intptr_t;
-
-/* Duplicate info from sys/socket.h. */
-__STD_TYPE __U32_TYPE __socklen_t;
-
-/* C99: An integer type that can be accessed as an atomic entity,
- even in the presence of asynchronous interrupts.
- It is not currently necessary for this to be machine-specific. */
-typedef int __sig_atomic_t;
-
-/* Seconds since the Epoch, visible to user code when time_t is too
- narrow only for consistency with the old way of widening too-narrow
- types. User code should never use __time64_t. */
-#if __TIMESIZE == 64 && defined __LIBC
-# define __time64_t __time_t
-#elif __TIMESIZE != 64
-__STD_TYPE __TIME64_T_TYPE __time64_t;
-#endif
-
-#undef __STD_TYPE
-
-#endif /* bits/types.h */
+++ /dev/null
-#ifndef __FILE_defined
-#define __FILE_defined 1
-
-struct _IO_FILE;
-
-/* The opaque type of streams. This is the definition used elsewhere. */
-typedef struct _IO_FILE FILE;
-
-#endif
+++ /dev/null
-#ifndef ____FILE_defined
-#define ____FILE_defined 1
-
-struct _IO_FILE;
-typedef struct _IO_FILE __FILE;
-
-#endif
+++ /dev/null
-#ifndef _____fpos64_t_defined
-#define _____fpos64_t_defined 1
-
-#include <bits/types.h>
-#include <bits/types/__mbstate_t.h>
-
-/* The tag name of this struct is _G_fpos64_t to preserve historic
- C++ mangled names for functions taking fpos_t and/or fpos64_t
- arguments. That name should not be used in new code. */
-typedef struct _G_fpos64_t
-{
- __off64_t __pos;
- __mbstate_t __state;
-} __fpos64_t;
-
-#endif
+++ /dev/null
-#ifndef _____fpos_t_defined
-#define _____fpos_t_defined 1
-
-#include <bits/types.h>
-#include <bits/types/__mbstate_t.h>
-
-/* The tag name of this struct is _G_fpos_t to preserve historic
- C++ mangled names for functions taking fpos_t arguments.
- That name should not be used in new code. */
-typedef struct _G_fpos_t
-{
- __off_t __pos;
- __mbstate_t __state;
-} __fpos_t;
-
-#endif
+++ /dev/null
-/* Definition of struct __locale_struct and __locale_t.
- Copyright (C) 1997-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_TYPES___LOCALE_T_H
-#define _BITS_TYPES___LOCALE_T_H 1
-
-/* POSIX.1-2008: the locale_t type, representing a locale context
- (implementation-namespace version). This type should be treated
- as opaque by applications; some details are exposed for the sake of
- efficiency in e.g. ctype functions. */
-
-struct __locale_struct
-{
- /* Note: LC_ALL is not a valid index into this array. */
- struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */
-
- /* To increase the speed of this solution we add some special members. */
- const unsigned short int *__ctype_b;
- const int *__ctype_tolower;
- const int *__ctype_toupper;
-
- /* Note: LC_ALL is not a valid index into this array. */
- const char *__names[13];
-};
-
-typedef struct __locale_struct *__locale_t;
-
-#endif /* bits/types/__locale_t.h */
+++ /dev/null
-#ifndef ____mbstate_t_defined
-#define ____mbstate_t_defined 1
-
-/* Integral type unchanged by default argument promotions that can
- hold any value corresponding to members of the extended character
- set, as well as at least one value that does not correspond to any
- member of the extended character set. */
-#ifndef __WINT_TYPE__
-# define __WINT_TYPE__ unsigned int
-#endif
-
-/* Conversion state information. */
-typedef struct
-{
- int __count;
- union
- {
- __WINT_TYPE__ __wch;
- char __wchb[4];
- } __value; /* Value so far. */
-} __mbstate_t;
-
-#endif
+++ /dev/null
-#ifndef ____sigset_t_defined
-#define ____sigset_t_defined
-
-#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
-typedef struct
-{
- unsigned long int __val[_SIGSET_NWORDS];
-} __sigset_t;
-
-#endif
+++ /dev/null
-#ifndef __clock_t_defined
-#define __clock_t_defined 1
-
-#include <bits/types.h>
-
-/* Returned by `clock'. */
-typedef __clock_t clock_t;
-
-#endif
+++ /dev/null
-#ifndef __clockid_t_defined
-#define __clockid_t_defined 1
-
-#include <bits/types.h>
-
-/* Clock ID used in clock and timer functions. */
-typedef __clockid_t clockid_t;
-
-#endif
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef __cookie_io_functions_t_defined
-#define __cookie_io_functions_t_defined 1
-
-#include <bits/types.h>
-
-/* Functions to do I/O and file management for a stream. */
-
-/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
- Return number of bytes read. */
-typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf,
- size_t __nbytes);
-
-/* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes
- unless there is an error. Return number of bytes written. If
- there is an error, return 0 and do not write anything. If the file
- has been opened for append (__mode.__append set), then set the file
- pointer to the end of the file and then do the write; if not, just
- write at the current file pointer. */
-typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf,
- size_t __nbytes);
-
-/* Move COOKIE's file position to *POS bytes from the
- beginning of the file (if W is SEEK_SET),
- the current position (if W is SEEK_CUR),
- or the end of the file (if W is SEEK_END).
- Set *POS to the new file position.
- Returns zero if successful, nonzero if not. */
-typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w);
-
-/* Close COOKIE. */
-typedef int cookie_close_function_t (void *__cookie);
-
-/* The structure with the cookie function pointers.
- The tag name of this struct is _IO_cookie_io_functions_t to
- preserve historic C++ mangled names for functions taking
- cookie_io_functions_t arguments. That name should not be used in
- new code. */
-typedef struct _IO_cookie_io_functions_t
-{
- cookie_read_function_t *read; /* Read bytes. */
- cookie_write_function_t *write; /* Write bytes. */
- cookie_seek_function_t *seek; /* Seek/tell file position. */
- cookie_close_function_t *close; /* Close file. */
-} cookie_io_functions_t;
-
-#endif
+++ /dev/null
-/* Definition of locale_t.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_TYPES_LOCALE_T_H
-#define _BITS_TYPES_LOCALE_T_H 1
-
-#include <bits/types/__locale_t.h>
-
-typedef __locale_t locale_t;
-
-#endif /* bits/types/locale_t.h */
+++ /dev/null
-#ifndef __sigset_t_defined
-#define __sigset_t_defined 1
-
-#include <bits/types/__sigset_t.h>
-
-/* A set of signals to be blocked, unblocked, or waited for. */
-typedef __sigset_t sigset_t;
-
-#endif
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef __struct_FILE_defined
-#define __struct_FILE_defined 1
-
-/* Caution: The contents of this file are not part of the official
- stdio.h API. However, much of it is part of the official *binary*
- interface, and therefore cannot be changed. */
-
-#if defined _IO_USE_OLD_IO_FILE && !defined _LIBC
-# error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself"
-#endif
-
-#if defined _IO_lock_t_defined && !defined _LIBC
-# error "_IO_lock_t_defined should only be defined when building libc itself"
-#endif
-
-#include <bits/types.h>
-
-struct _IO_FILE;
-struct _IO_marker;
-struct _IO_codecvt;
-struct _IO_wide_data;
-
-/* During the build of glibc itself, _IO_lock_t will already have been
- defined by internal headers. */
-#ifndef _IO_lock_t_defined
-typedef void _IO_lock_t;
-#endif
-
-/* The tag name of this struct is _IO_FILE to preserve historic
- C++ mangled names for functions taking FILE* arguments.
- That name should not be used in new code. */
-struct _IO_FILE
-{
- int _flags; /* High-order word is _IO_MAGIC; rest is flags. */
-
- /* The following pointers correspond to the C++ streambuf protocol. */
- char *_IO_read_ptr; /* Current read pointer */
- char *_IO_read_end; /* End of get area. */
- char *_IO_read_base; /* Start of putback+get area. */
- char *_IO_write_base; /* Start of put area. */
- char *_IO_write_ptr; /* Current put pointer. */
- char *_IO_write_end; /* End of put area. */
- char *_IO_buf_base; /* Start of reserve area. */
- char *_IO_buf_end; /* End of reserve area. */
-
- /* The following fields are used to support backing up and undo. */
- char *_IO_save_base; /* Pointer to start of non-current get area. */
- char *_IO_backup_base; /* Pointer to first valid character of backup area */
- char *_IO_save_end; /* Pointer to end of non-current get area. */
-
- struct _IO_marker *_markers;
-
- struct _IO_FILE *_chain;
-
- int _fileno;
- int _flags2;
- __off_t _old_offset; /* This used to be _offset but it's too small. */
-
- /* 1+column number of pbase(); 0 is unknown. */
- unsigned short _cur_column;
- signed char _vtable_offset;
- char _shortbuf[1];
-
- _IO_lock_t *_lock;
-#ifdef _IO_USE_OLD_IO_FILE
-};
-
-struct _IO_FILE_complete
-{
- struct _IO_FILE _file;
-#endif
- __off64_t _offset;
- /* Wide character stream stuff. */
- struct _IO_codecvt *_codecvt;
- struct _IO_wide_data *_wide_data;
- struct _IO_FILE *_freeres_list;
- void *_freeres_buf;
- size_t __pad5;
- int _mode;
- /* Make sure we don't get into trouble again. */
- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
-};
-
-/* These macros are used by bits/stdio.h and internal headers. */
-#define __getc_unlocked_body(_fp) \
- (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \
- ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
-
-#define __putc_unlocked_body(_ch, _fp) \
- (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \
- ? __overflow (_fp, (unsigned char) (_ch)) \
- : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
-
-#define _IO_EOF_SEEN 0x0010
-#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0)
-
-#define _IO_ERR_SEEN 0x0020
-#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0)
-
-#define _IO_USER_LOCK 0x8000
-/* Many more flag bits are defined internally. */
-
-#endif
+++ /dev/null
-#ifndef __itimerspec_defined
-#define __itimerspec_defined 1
-
-#include <bits/types.h>
-#include <bits/types/struct_timespec.h>
-
-/* POSIX.1b structure for timer start values and intervals. */
-struct itimerspec
- {
- struct timespec it_interval;
- struct timespec it_value;
- };
-
-#endif
+++ /dev/null
-/* NB: Include guard matches what <linux/time.h> uses. */
-#ifndef _STRUCT_TIMESPEC
-#define _STRUCT_TIMESPEC 1
-
-#include <bits/types.h>
-#include <bits/endian.h>
-#include <bits/types/time_t.h>
-
-/* POSIX.1b structure for a time value. This is like a `struct timeval' but
- has nanoseconds instead of microseconds. */
-struct timespec
-{
-#ifdef __USE_TIME_BITS64
- __time64_t tv_sec; /* Seconds. */
-#else
- __time_t tv_sec; /* Seconds. */
-#endif
-#if __WORDSIZE == 64 \
- || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \
- || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64)
- __syscall_slong_t tv_nsec; /* Nanoseconds. */
-#else
-# if __BYTE_ORDER == __BIG_ENDIAN
- int: 32; /* Padding. */
- long int tv_nsec; /* Nanoseconds. */
-# else
- long int tv_nsec; /* Nanoseconds. */
- int: 32; /* Padding. */
-# endif
-#endif
-};
-
-#endif
+++ /dev/null
-#ifndef __timeval_defined
-#define __timeval_defined 1
-
-#include <bits/types.h>
-
-/* A time value that is accurate to the nearest
- microsecond but also has a range of years. */
-struct timeval
-{
-#ifdef __USE_TIME_BITS64
- __time64_t tv_sec; /* Seconds. */
- __suseconds64_t tv_usec; /* Microseconds. */
-#else
- __time_t tv_sec; /* Seconds. */
- __suseconds_t tv_usec; /* Microseconds. */
-#endif
-};
-#endif
+++ /dev/null
-#ifndef __struct_tm_defined
-#define __struct_tm_defined 1
-
-#include <bits/types.h>
-
-/* ISO C `broken-down time' structure. */
-struct tm
-{
- int tm_sec; /* Seconds. [0-60] (1 leap second) */
- int tm_min; /* Minutes. [0-59] */
- int tm_hour; /* Hours. [0-23] */
- int tm_mday; /* Day. [1-31] */
- int tm_mon; /* Month. [0-11] */
- int tm_year; /* Year - 1900. */
- int tm_wday; /* Day of week. [0-6] */
- int tm_yday; /* Days in year.[0-365] */
- int tm_isdst; /* DST. [-1/0/1]*/
-
-# ifdef __USE_MISC
- long int tm_gmtoff; /* Seconds east of UTC. */
- const char *tm_zone; /* Timezone abbreviation. */
-# else
- long int __tm_gmtoff; /* Seconds east of UTC. */
- const char *__tm_zone; /* Timezone abbreviation. */
-# endif
-};
-
-#endif
+++ /dev/null
-#ifndef __time_t_defined
-#define __time_t_defined 1
-
-#include <bits/types.h>
-
-/* Returned by `time'. */
-#ifdef __USE_TIME_BITS64
-typedef __time64_t time_t;
-#else
-typedef __time_t time_t;
-#endif
-
-#endif
+++ /dev/null
-#ifndef __timer_t_defined
-#define __timer_t_defined 1
-
-#include <bits/types.h>
-
-/* Timer ID returned by `timer_create'. */
-typedef __timer_t timer_t;
-
-#endif
+++ /dev/null
-/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
- Copyright (C) 2012-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_TYPES_H
-# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-#endif
-
-#ifndef _BITS_TYPESIZES_H
-#define _BITS_TYPESIZES_H 1
-
-/* See <bits/types.h> for the meaning of these macros. This file exists so
- that <bits/types.h> need not vary across different GNU platforms. */
-
-/* X32 kernel interface is 64-bit. */
-#if defined __x86_64__ && defined __ILP32__
-# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE
-# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE
-#else
-# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
-# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
-#endif
-
-#define __DEV_T_TYPE __UQUAD_TYPE
-#define __UID_T_TYPE __U32_TYPE
-#define __GID_T_TYPE __U32_TYPE
-#define __INO_T_TYPE __SYSCALL_ULONG_TYPE
-#define __INO64_T_TYPE __UQUAD_TYPE
-#define __MODE_T_TYPE __U32_TYPE
-#ifdef __x86_64__
-# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE
-# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE
-#else
-# define __NLINK_T_TYPE __UWORD_TYPE
-# define __FSWORD_T_TYPE __SWORD_TYPE
-#endif
-#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE
-#define __OFF64_T_TYPE __SQUAD_TYPE
-#define __PID_T_TYPE __S32_TYPE
-#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE
-#define __RLIM64_T_TYPE __UQUAD_TYPE
-#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE
-#define __BLKCNT64_T_TYPE __SQUAD_TYPE
-#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE
-#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
-#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE
-#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
-#define __ID_T_TYPE __U32_TYPE
-#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE
-#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE
-#define __USECONDS_T_TYPE __U32_TYPE
-#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE
-#define __SUSECONDS64_T_TYPE __SQUAD_TYPE
-#define __DADDR_T_TYPE __S32_TYPE
-#define __KEY_T_TYPE __S32_TYPE
-#define __CLOCKID_T_TYPE __S32_TYPE
-#define __TIMER_T_TYPE void *
-#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
-#define __FSID_T_TYPE struct { int __val[2]; }
-#define __SSIZE_T_TYPE __SWORD_TYPE
-#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
-
-#ifdef __x86_64__
-/* Tell the libc code that off_t and off64_t are actually the same type
- for all ABI purposes, even if possibly expressed as different base types
- for C type-checking purposes. */
-# define __OFF_T_MATCHES_OFF64_T 1
-
-/* Same for ino_t and ino64_t. */
-# define __INO_T_MATCHES_INO64_T 1
-
-/* And for __rlim_t and __rlim64_t. */
-# define __RLIM_T_MATCHES_RLIM64_T 1
-
-/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */
-# define __STATFS_MATCHES_STATFS64 1
-
-/* And for getitimer, setitimer and rusage */
-# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1
-#else
-# define __RLIM_T_MATCHES_RLIM64_T 0
-
-# define __STATFS_MATCHES_STATFS64 0
-
-# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0
-#endif
-
-/* Number of descriptors that can fit in an `fd_set'. */
-#define __FD_SETSIZE 1024
-
-
-#endif /* bits/typesizes.h */
+++ /dev/null
-/* Inline functions to return unsigned integer values unchanged.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _NETINET_IN_H && !defined _ENDIAN_H
-# error "Never use <bits/uintn-identity.h> directly; include <netinet/in.h> or <endian.h> instead."
-#endif
-
-#ifndef _BITS_UINTN_IDENTITY_H
-#define _BITS_UINTN_IDENTITY_H 1
-
-#include <bits/types.h>
-
-/* These inline functions are to ensure the appropriate type
- conversions and associated diagnostics from macros that convert to
- a given endianness. */
-
-static __inline __uint16_t
-__uint16_identity (__uint16_t __x)
-{
- return __x;
-}
-
-static __inline __uint32_t
-__uint32_identity (__uint32_t __x)
-{
- return __x;
-}
-
-static __inline __uint64_t
-__uint64_identity (__uint64_t __x)
-{
- return __x;
-}
-
-#endif /* _BITS_UINTN_IDENTITY_H. */
+++ /dev/null
-/* Definitions of flag bits for `waitpid' et al.
- Copyright (C) 1992-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _SYS_WAIT_H && !defined _STDLIB_H
-# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
-#endif
-
-
-/* Bits in the third argument to `waitpid'. */
-#define WNOHANG 1 /* Don't block waiting. */
-#define WUNTRACED 2 /* Report status of stopped children. */
-
-/* Bits in the fourth argument to `waitid'. */
-#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-# define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */
-# define WEXITED 4 /* Report dead child. */
-# define WCONTINUED 8 /* Report continued child. */
-# define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
-#endif
-
-#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads
- in this group */
-#define __WALL 0x40000000 /* Wait for any child. */
-#define __WCLONE 0x80000000 /* Wait for cloned process. */
+++ /dev/null
-/* Definitions of status bits for `wait' et al.
- Copyright (C) 1992-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _SYS_WAIT_H && !defined _STDLIB_H
-# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
-#endif
-
-
-/* Everything extant so far uses these same bits. */
-
-
-/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
-#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
-
-/* If WIFSIGNALED(STATUS), the terminating signal. */
-#define __WTERMSIG(status) ((status) & 0x7f)
-
-/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
-#define __WSTOPSIG(status) __WEXITSTATUS(status)
-
-/* Nonzero if STATUS indicates normal termination. */
-#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
-
-/* Nonzero if STATUS indicates termination by a signal. */
-#define __WIFSIGNALED(status) \
- (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
-
-/* Nonzero if STATUS indicates the child is stopped. */
-#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
-
-/* Nonzero if STATUS indicates the child continued after a stop. We only
- define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
-#ifdef WCONTINUED
-# define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
-#endif
-
-/* Nonzero if STATUS indicates the child dumped core. */
-#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
-
-/* Macros for constructing status values. */
-#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
-#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-#define __W_CONTINUED 0xffff
-#define __WCOREFLAG 0x80
+++ /dev/null
-/* Determine the wordsize from the preprocessor defines. */
-
-#if defined __x86_64__ && !defined __ILP32__
-# define __WORDSIZE 64
-#else
-# define __WORDSIZE 32
-#define __WORDSIZE32_SIZE_ULONG 0
-#define __WORDSIZE32_PTRDIFF_LONG 0
-#endif
-
-#ifdef __x86_64__
-# define __WORDSIZE_TIME64_COMPAT32 1
-/* Both x86-64 and x32 use the 64-bit system call interface. */
-# define __SYSCALL_WORDSIZE 64
-#else
-# define __WORDSIZE_TIME64_COMPAT32 0
-#endif
+++ /dev/null
-// -*- C++ -*- C library enhancements header.
-
-// Copyright (C) 2016-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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file include/bits/std_abs.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{cmath, cstdlib}
- */
-
-#ifndef _GLIBCXX_BITS_STD_ABS_H
-#define _GLIBCXX_BITS_STD_ABS_H
-
-#pragma GCC system_header
-
-#include <bits/c++config.h>
-
-#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-#include_next <stdlib.h>
-#ifdef __CORRECT_ISO_CPP_MATH_H_PROTO
-# include_next <math.h>
-#endif
-#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-
-#undef abs
-
-extern "C++"
-{
-namespace std _GLIBCXX_VISIBILITY(default)
-{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
- using ::abs;
-
-#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
- inline long
- abs(long __i) { return __builtin_labs(__i); }
-#endif
-
-#ifdef _GLIBCXX_USE_LONG_LONG
- inline long long
- abs(long long __x) { return __builtin_llabs (__x); }
-#endif
-
-// _GLIBCXX_RESOLVE_LIB_DEFECTS
-// 2192. Validity and return type of std::abs(0u) is unclear
-// 2294. <cstdlib> should declare abs(double)
-// 2735. std::abs(short), std::abs(signed char) and others should return int
-
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
- inline _GLIBCXX_CONSTEXPR double
- abs(double __x)
- { return __builtin_fabs(__x); }
-
- inline _GLIBCXX_CONSTEXPR float
- abs(float __x)
- { return __builtin_fabsf(__x); }
-
- inline _GLIBCXX_CONSTEXPR long double
- abs(long double __x)
- { return __builtin_fabsl(__x); }
-#endif
-
-#if defined(__GLIBCXX_TYPE_INT_N_0)
- __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0
- abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
-#endif
-#if defined(__GLIBCXX_TYPE_INT_N_1)
- __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1
- abs(__GLIBCXX_TYPE_INT_N_1 __x) { return __x >= 0 ? __x : -__x; }
-#endif
-#if defined(__GLIBCXX_TYPE_INT_N_2)
- __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2
- abs(__GLIBCXX_TYPE_INT_N_2 __x) { return __x >= 0 ? __x : -__x; }
-#endif
-#if defined(__GLIBCXX_TYPE_INT_N_3)
- __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3
- abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; }
-#endif
-
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
- __extension__ inline _GLIBCXX_CONSTEXPR
- __float128
- abs(__float128 __x)
- { return __x < 0 ? -__x : __x; }
-#endif
-
-_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace
-} // extern "C"++"
-
-#endif // _GLIBCXX_BITS_STD_ABS_H
+++ /dev/null
-// -*- C++ -*- forwarding header.
-
-// 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file include/cstdlib
- * This is a Standard C++ Library file. You should @c \#include this file
- * in your programs, rather than any of the @a *.h implementation files.
- *
- * This is the C++ version of the Standard C Library header @c stdlib.h,
- * and its contents are (mostly) the same as that header, but are all
- * contained in the namespace @c std (except for names which are defined
- * as macros in C).
- */
-
-//
-// ISO C++ 14882: 20.4.6 C library
-//
-
-#pragma GCC system_header
-
-#include <bits/c++config.h>
-
-#ifndef _GLIBCXX_CSTDLIB
-#define _GLIBCXX_CSTDLIB 1
-
-#if !_GLIBCXX_HOSTED
-// The C standard does not require a freestanding implementation to
-// provide <stdlib.h>. However, the C++ standard does still require
-// <cstdlib> -- but only the functionality mentioned in
-// [lib.support.start.term].
-
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-
-namespace std
-{
- extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
- extern "C" int atexit(void (*)(void)) throw ();
- extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
- extern "C" int at_quick_exit(void (*)(void)) throw ();
-# endif
-# ifdef _GLIBCXX_HAVE_QUICK_EXIT
- extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
-# endif
-#endif
-} // namespace std
-
-#else
-
-// Need to ensure this finds the C library's <stdlib.h> not a libstdc++
-// wrapper that might already be installed later in the include search path.
-#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-#include_next <stdlib.h>
-#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-#include <bits/std_abs.h>
-
-// Get rid of those macros defined in <stdlib.h> in lieu of real functions.
-#undef abort
-#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
-# undef aligned_alloc
-#endif
-#undef atexit
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
-# undef at_quick_exit
-# endif
-#endif
-#undef atof
-#undef atoi
-#undef atol
-#undef bsearch
-#undef calloc
-#undef div
-#undef exit
-#undef free
-#undef getenv
-#undef labs
-#undef ldiv
-#undef malloc
-#undef mblen
-#undef mbstowcs
-#undef mbtowc
-#undef qsort
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_QUICK_EXIT
-# undef quick_exit
-# endif
-#endif
-#undef rand
-#undef realloc
-#undef srand
-#undef strtod
-#undef strtol
-#undef strtoul
-#undef system
-#undef wcstombs
-#undef wctomb
-
-extern "C++"
-{
-namespace std _GLIBCXX_VISIBILITY(default)
-{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
- using ::div_t;
- using ::ldiv_t;
-
- using ::abort;
-#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)
- using ::aligned_alloc;
-#endif
- using ::atexit;
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
- using ::at_quick_exit;
-# endif
-#endif
- using ::atof;
- using ::atoi;
- using ::atol;
- using ::bsearch;
- using ::calloc;
- using ::div;
- using ::exit;
- using ::free;
- using ::getenv;
- using ::labs;
- using ::ldiv;
- using ::malloc;
-#ifdef _GLIBCXX_HAVE_MBSTATE_T
- using ::mblen;
- using ::mbstowcs;
- using ::mbtowc;
-#endif // _GLIBCXX_HAVE_MBSTATE_T
- using ::qsort;
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_QUICK_EXIT
- using ::quick_exit;
-# endif
-#endif
- using ::rand;
- using ::realloc;
- using ::srand;
- using ::strtod;
- using ::strtol;
- using ::strtoul;
- using ::system;
-#ifdef _GLIBCXX_USE_WCHAR_T
- using ::wcstombs;
- using ::wctomb;
-#endif // _GLIBCXX_USE_WCHAR_T
-
-#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
- inline ldiv_t
- div(long __i, long __j) { return ldiv(__i, __j); }
-#endif
-
-
-_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace
-
-#if _GLIBCXX_USE_C99_STDLIB
-
-#undef _Exit
-#undef llabs
-#undef lldiv
-#undef atoll
-#undef strtoll
-#undef strtoull
-#undef strtof
-#undef strtold
-
-namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
-{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using ::lldiv_t;
-#endif
-#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
- extern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN;
-#endif
-#if !_GLIBCXX_USE_C99_DYNAMIC
- using ::_Exit;
-#endif
-
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using ::llabs;
-
- inline lldiv_t
- div(long long __n, long long __d)
- { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
-
- using ::lldiv;
-#endif
-
-#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- extern "C" long long int (atoll)(const char *) throw ();
- extern "C" long long int
- (strtoll)(const char * __restrict, char ** __restrict, int) throw ();
- extern "C" unsigned long long int
- (strtoull)(const char * __restrict, char ** __restrict, int) throw ();
-#endif
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using ::atoll;
- using ::strtoll;
- using ::strtoull;
-#endif
- using ::strtof;
- using ::strtold;
-
-_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace __gnu_cxx
-
-namespace std
-{
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using ::__gnu_cxx::lldiv_t;
-#endif
- using ::__gnu_cxx::_Exit;
-#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
- using ::__gnu_cxx::llabs;
- using ::__gnu_cxx::div;
- using ::__gnu_cxx::lldiv;
-#endif
- using ::__gnu_cxx::atoll;
- using ::__gnu_cxx::strtof;
- using ::__gnu_cxx::strtoll;
- using ::__gnu_cxx::strtoull;
- using ::__gnu_cxx::strtold;
-} // namespace std
-
-#endif // _GLIBCXX_USE_C99_STDLIB
-
-} // extern "C++"
-
-#endif // !_GLIBCXX_HOSTED
-
-#endif
+++ /dev/null
-// -*- C++ -*- compatibility header.
-
-// Copyright (C) 2002-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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file stdlib.h
- * This is a Standard C++ Library header.
- */
-
-#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-# include_next <stdlib.h>
-#else
-
-#ifndef _GLIBCXX_STDLIB_H
-#define _GLIBCXX_STDLIB_H 1
-
-# include <cstdlib>
-
-using std::abort;
-using std::atexit;
-using std::exit;
-#if __cplusplus >= 201103L
-# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
- using std::at_quick_exit;
-# endif
-# ifdef _GLIBCXX_HAVE_QUICK_EXIT
- using std::quick_exit;
-# endif
-#endif
-
-#if _GLIBCXX_HOSTED
-using std::div_t;
-using std::ldiv_t;
-
-using std::abs;
-using std::atof;
-using std::atoi;
-using std::atol;
-using std::bsearch;
-using std::calloc;
-using std::div;
-using std::free;
-using std::getenv;
-using std::labs;
-using std::ldiv;
-using std::malloc;
-#ifdef _GLIBCXX_HAVE_MBSTATE_T
-using std::mblen;
-using std::mbstowcs;
-using std::mbtowc;
-#endif // _GLIBCXX_HAVE_MBSTATE_T
-using std::qsort;
-using std::rand;
-using std::realloc;
-using std::srand;
-using std::strtod;
-using std::strtol;
-using std::strtoul;
-using std::system;
-#ifdef _GLIBCXX_USE_WCHAR_T
-using std::wcstombs;
-using std::wctomb;
-#endif // _GLIBCXX_USE_WCHAR_T
-#endif
-
-#endif // _GLIBCXX_STDLIB_H
-#endif // __cplusplus
+++ /dev/null
-// Predefined symbols and macros -*- C++ -*-
-
-// 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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/c++config.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{version}
- */
-
-#ifndef _GLIBCXX_CXX_CONFIG_H
-#define _GLIBCXX_CXX_CONFIG_H 1
-
-// The major release number for the GCC release the C++ library belongs to.
-#define _GLIBCXX_RELEASE 12
-
-// The datestamp of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20220819
-
-// Macros for various attributes.
-// _GLIBCXX_PURE
-// _GLIBCXX_CONST
-// _GLIBCXX_NORETURN
-// _GLIBCXX_NOTHROW
-// _GLIBCXX_VISIBILITY
-#ifndef _GLIBCXX_PURE
-# define _GLIBCXX_PURE __attribute__ ((__pure__))
-#endif
-
-#ifndef _GLIBCXX_CONST
-# define _GLIBCXX_CONST __attribute__ ((__const__))
-#endif
-
-#ifndef _GLIBCXX_NORETURN
-# define _GLIBCXX_NORETURN __attribute__ ((__noreturn__))
-#endif
-
-// See below for C++
-#ifndef _GLIBCXX_NOTHROW
-# ifndef __cplusplus
-# define _GLIBCXX_NOTHROW __attribute__((__nothrow__))
-# endif
-#endif
-
-// Macros for visibility attributes.
-// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
-// _GLIBCXX_VISIBILITY
-# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
-
-#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
-# define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))
-#else
-// If this is not supplied by the OS-specific or CPU-specific
-// headers included below, it will be defined to an empty default.
-# define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
-#endif
-
-// Macros for deprecated attributes.
-// _GLIBCXX_USE_DEPRECATED
-// _GLIBCXX_DEPRECATED
-// _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)
-# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))
-# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \
- __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
-#else
-# define _GLIBCXX_DEPRECATED
-# define _GLIBCXX_DEPRECATED_SUGGEST(ALT)
-#endif
-
-#if defined(__DEPRECATED) && (__cplusplus >= 201103L)
-# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED
-# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
-#else
-# define _GLIBCXX11_DEPRECATED
-# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT)
-#endif
-
-#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.
-#ifndef _GLIBCXX_ABI_TAG_CXX11
-# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))
-#endif
-
-// Macro to warn about unused results.
-#if __cplusplus >= 201703L
-# define _GLIBCXX_NODISCARD [[__nodiscard__]]
-#else
-# define _GLIBCXX_NODISCARD
-#endif
-
-
-
-#if __cplusplus
-
-// Macro for constexpr, to support in mixed 03/0x mode.
-#ifndef _GLIBCXX_CONSTEXPR
-# if __cplusplus >= 201103L
-# define _GLIBCXX_CONSTEXPR constexpr
-# define _GLIBCXX_USE_CONSTEXPR constexpr
-# else
-# define _GLIBCXX_CONSTEXPR
-# define _GLIBCXX_USE_CONSTEXPR const
-# endif
-#endif
-
-#ifndef _GLIBCXX14_CONSTEXPR
-# if __cplusplus >= 201402L
-# define _GLIBCXX14_CONSTEXPR constexpr
-# else
-# define _GLIBCXX14_CONSTEXPR
-# endif
-#endif
-
-#ifndef _GLIBCXX17_CONSTEXPR
-# if __cplusplus >= 201703L
-# define _GLIBCXX17_CONSTEXPR constexpr
-# else
-# define _GLIBCXX17_CONSTEXPR
-# endif
-#endif
-
-#ifndef _GLIBCXX20_CONSTEXPR
-# 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
-# else
-# define _GLIBCXX17_INLINE
-# endif
-#endif
-
-// Macro for noexcept, to support in mixed 03/0x mode.
-#ifndef _GLIBCXX_NOEXCEPT
-# if __cplusplus >= 201103L
-# define _GLIBCXX_NOEXCEPT noexcept
-# define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)
-# define _GLIBCXX_USE_NOEXCEPT noexcept
-# define _GLIBCXX_THROW(_EXC)
-# else
-# define _GLIBCXX_NOEXCEPT
-# define _GLIBCXX_NOEXCEPT_IF(...)
-# define _GLIBCXX_USE_NOEXCEPT throw()
-# define _GLIBCXX_THROW(_EXC) throw(_EXC)
-# endif
-#endif
-
-#ifndef _GLIBCXX_NOTHROW
-# define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT
-#endif
-
-#ifndef _GLIBCXX_THROW_OR_ABORT
-# if __cpp_exceptions
-# define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))
-# else
-# define _GLIBCXX_THROW_OR_ABORT(_EXC) (__builtin_abort())
-# endif
-#endif
-
-#if __cpp_noexcept_function_type
-#define _GLIBCXX_NOEXCEPT_PARM , bool _NE
-#define _GLIBCXX_NOEXCEPT_QUAL noexcept (_NE)
-#else
-#define _GLIBCXX_NOEXCEPT_PARM
-#define _GLIBCXX_NOEXCEPT_QUAL
-#endif
-
-// Macro for extern template, ie controlling template linkage via use
-// of extern keyword on template declaration. As documented in the g++
-// manual, it inhibits all implicit instantiations and is used
-// throughout the library to avoid multiple weak definitions for
-// required types that are already explicitly instantiated in the
-// library binary. This substantially reduces the binary size of
-// resulting executables.
-// Special case: _GLIBCXX_EXTERN_TEMPLATE == -1 disallows extern
-// templates only in basic_string, thus activating its debug-mode
-// checks even at -O0.
-# define _GLIBCXX_EXTERN_TEMPLATE 1
-
-/*
- Outline of libstdc++ namespaces.
-
- namespace std
- {
- namespace __debug { }
- namespace __parallel { }
- namespace __cxx1998 { }
-
- namespace __detail {
- namespace __variant { } // C++17
- }
-
- namespace rel_ops { }
-
- namespace tr1
- {
- namespace placeholders { }
- namespace regex_constants { }
- namespace __detail { }
- }
-
- namespace tr2 { }
-
- namespace decimal { }
-
- namespace chrono { } // C++11
- namespace placeholders { } // C++11
- namespace regex_constants { } // C++11
- namespace this_thread { } // C++11
- inline namespace literals { // C++14
- inline namespace chrono_literals { } // C++14
- inline namespace complex_literals { } // C++14
- inline namespace string_literals { } // C++14
- inline namespace string_view_literals { } // C++17
- }
- }
-
- namespace abi { }
-
- namespace __gnu_cxx
- {
- namespace __detail { }
- }
-
- For full details see:
- http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html
-*/
-namespace std
-{
- typedef __SIZE_TYPE__ size_t;
- typedef __PTRDIFF_TYPE__ ptrdiff_t;
-
-#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
-
-#if ! _GLIBCXX_USE_DUAL_ABI
-// Ignore any pre-defined value of _GLIBCXX_USE_CXX11_ABI
-# undef _GLIBCXX_USE_CXX11_ABI
-#endif
-
-#ifndef _GLIBCXX_USE_CXX11_ABI
-# define _GLIBCXX_USE_CXX11_ABI 1
-#endif
-
-#if _GLIBCXX_USE_CXX11_ABI
-namespace std
-{
- inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
-}
-namespace __gnu_cxx
-{
- inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
-}
-# define _GLIBCXX_NAMESPACE_CXX11 __cxx11::
-# define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {
-# define _GLIBCXX_END_NAMESPACE_CXX11 }
-# define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11
-#else
-# define _GLIBCXX_NAMESPACE_CXX11
-# define _GLIBCXX_BEGIN_NAMESPACE_CXX11
-# define _GLIBCXX_END_NAMESPACE_CXX11
-# define _GLIBCXX_DEFAULT_ABI_TAG
-#endif
-
-// Defined if inline namespaces are used for versioning.
-# define _GLIBCXX_INLINE_VERSION 0
-
-// Inline namespace for symbol versioning.
-#if _GLIBCXX_INLINE_VERSION
-# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __8 {
-# define _GLIBCXX_END_NAMESPACE_VERSION }
-
-namespace std
-{
-inline _GLIBCXX_BEGIN_NAMESPACE_VERSION
-#if __cplusplus >= 201402L
- inline namespace literals {
- inline namespace chrono_literals { }
- inline namespace complex_literals { }
- inline namespace string_literals { }
-#if __cplusplus > 201402L
- inline namespace string_view_literals { }
-#endif // C++17
- }
-#endif // C++14
-_GLIBCXX_END_NAMESPACE_VERSION
-}
-
-namespace __gnu_cxx
-{
-inline _GLIBCXX_BEGIN_NAMESPACE_VERSION
-_GLIBCXX_END_NAMESPACE_VERSION
-}
-
-#else
-# define _GLIBCXX_BEGIN_NAMESPACE_VERSION
-# define _GLIBCXX_END_NAMESPACE_VERSION
-#endif
-
-// Inline namespaces for special modes: debug, parallel.
-#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL)
-namespace std
-{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
- // Non-inline namespace for components replaced by alternates in active mode.
- namespace __cxx1998
- {
-# if _GLIBCXX_USE_CXX11_ABI
- inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
-# endif
- }
-
-_GLIBCXX_END_NAMESPACE_VERSION
-
- // Inline namespace for debug mode.
-# ifdef _GLIBCXX_DEBUG
- inline namespace __debug { }
-# endif
-
- // Inline namespaces for parallel mode.
-# ifdef _GLIBCXX_PARALLEL
- inline namespace __parallel { }
-# endif
-}
-
-// Check for invalid usage and unsupported mixed-mode use.
-# if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL)
-# error illegal use of multiple inlined namespaces
-# endif
-
-// Check for invalid use due to lack for weak symbols.
-# if __NO_INLINE__ && !__GXX_WEAK__
-# warning currently using inlined namespace mode which may fail \
- without inlining due to lack of weak symbols
-# endif
-#endif
-
-// Macros for namespace scope. Either namespace std:: or the name
-// of some nested namespace within it corresponding to the active mode.
-// _GLIBCXX_STD_A
-// _GLIBCXX_STD_C
-//
-// Macros for opening/closing conditional namespaces.
-// _GLIBCXX_BEGIN_NAMESPACE_ALGO
-// _GLIBCXX_END_NAMESPACE_ALGO
-// _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
-// _GLIBCXX_END_NAMESPACE_CONTAINER
-#if defined(_GLIBCXX_DEBUG)
-# define _GLIBCXX_STD_C __cxx1998
-# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \
- namespace _GLIBCXX_STD_C {
-# define _GLIBCXX_END_NAMESPACE_CONTAINER }
-#else
-# define _GLIBCXX_STD_C std
-# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
-# define _GLIBCXX_END_NAMESPACE_CONTAINER
-#endif
-
-#ifdef _GLIBCXX_PARALLEL
-# define _GLIBCXX_STD_A __cxx1998
-# define _GLIBCXX_BEGIN_NAMESPACE_ALGO \
- namespace _GLIBCXX_STD_A {
-# define _GLIBCXX_END_NAMESPACE_ALGO }
-#else
-# define _GLIBCXX_STD_A std
-# define _GLIBCXX_BEGIN_NAMESPACE_ALGO
-# define _GLIBCXX_END_NAMESPACE_ALGO
-#endif
-
-// GLIBCXX_ABI Deprecated
-// Define if compatibility should be provided for -mlong-double-64.
-#undef _GLIBCXX_LONG_DOUBLE_COMPAT
-
-// 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
-{
- inline namespace __gnu_cxx_ldbl128 { }
-}
-# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ldbl128::
-# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ldbl128 {
-# define _GLIBCXX_END_NAMESPACE_LDBL }
-#else
-# define _GLIBCXX_NAMESPACE_LDBL
-# 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
-# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11
-#else
-# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_LDBL
-# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_LDBL
-# 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
-#endif
-
-// Disable std::string explicit instantiation declarations in order to assert.
-#ifdef _GLIBCXX_ASSERTIONS
-# undef _GLIBCXX_EXTERN_TEMPLATE
-# 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++" _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) \
- 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(cond) \
- do { __glibcxx_assert_impl(cond); } while (false)
-#else
-# 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.
-// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) and
-// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) should be used to explain
-// atomic (lock-free) synchronization to race detectors:
-// the race detector will infer a happens-before arc from the former to the
-// latter when they share the same argument pointer.
-//
-// The most frequent use case for these macros (and the only case in the
-// current implementation of the library) is atomic reference counting:
-// void _M_remove_reference()
-// {
-// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount);
-// if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0)
-// {
-// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount);
-// _M_destroy(__a);
-// }
-// }
-// The annotations in this example tell the race detector that all memory
-// accesses occurred when the refcount was positive do not race with
-// memory accesses which occurred after the refcount became zero.
-#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE
-# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A)
-#endif
-#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER
-# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A)
-#endif
-
-// Macros for C linkage: define extern "C" linkage only when using C++.
-# define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
-# define _GLIBCXX_END_EXTERN_C }
-
-# 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
-#endif
-
-
-// First includes.
-
-// Pick up any OS-specific definitions.
-#include <bits/os_defines.h>
-
-// Pick up any CPU-specific definitions.
-#include <bits/cpu_defines.h>
-
-// If platform uses neither visibility nor psuedo-visibility,
-// specify empty default for namespace annotation macros.
-#ifndef _GLIBCXX_PSEUDO_VISIBILITY
-# define _GLIBCXX_PSEUDO_VISIBILITY(V)
-#endif
-
-// Certain function definitions that are meant to be overridable from
-// user code are decorated with this macro. For some targets, this
-// macro causes these definitions to be weak.
-#ifndef _GLIBCXX_WEAK_DEFINITION
-# define _GLIBCXX_WEAK_DEFINITION
-#endif
-
-// By default, we assume that __GXX_WEAK__ also means that there is support
-// for declaring functions as weak while not defining such functions. This
-// allows for referring to functions provided by other libraries (e.g.,
-// libitm) without depending on them if the respective features are not used.
-#ifndef _GLIBCXX_USE_WEAK_REF
-# define _GLIBCXX_USE_WEAK_REF __GXX_WEAK__
-#endif
-
-// Conditionally enable annotations for the Transactional Memory TS on C++11.
-// Most of the following conditions are due to limitations in the current
-// implementation.
-#if __cplusplus >= 201103L && _GLIBCXX_USE_CXX11_ABI \
- && _GLIBCXX_USE_DUAL_ABI && __cpp_transactional_memory >= 201500L \
- && !_GLIBCXX_FULLY_DYNAMIC_STRING && _GLIBCXX_USE_WEAK_REF \
- && _GLIBCXX_USE_ALLOCATOR_NEW
-#define _GLIBCXX_TXN_SAFE transaction_safe
-#define _GLIBCXX_TXN_SAFE_DYN transaction_safe_dynamic
-#else
-#define _GLIBCXX_TXN_SAFE
-#define _GLIBCXX_TXN_SAFE_DYN
-#endif
-
-#if __cplusplus > 201402L
-// In C++17 mathematical special functions are in namespace std.
-# define _GLIBCXX_USE_STD_SPEC_FUNCS 1
-#elif __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0
-// For C++11 and C++14 they are in namespace std when requested.
-# define _GLIBCXX_USE_STD_SPEC_FUNCS 1
-#endif
-
-// The remainder of the prewritten config is automatic; all the
-// user hooks are listed above.
-
-// Create a boolean flag to be used to determine if --fast-math is set.
-#ifdef __FAST_MATH__
-# define _GLIBCXX_FAST_MATH 1
-#else
-# define _GLIBCXX_FAST_MATH 0
-#endif
-
-// This marks string literals in header files to be extracted for eventual
-// translation. It is primarily used for messages in thrown exceptions; see
-// src/functexcept.cc. We use __N because the more traditional _N is used
-// for something else under certain OSes (see BADNAMES).
-#define __N(msgid) (msgid)
-
-// For example, <windows.h> is known to #define min and max as macros...
-#undef min
-#undef max
-
-// N.B. these _GLIBCXX_USE_C99_XXX macros are defined unconditionally
-// so they should be tested with #if not with #ifdef.
-#if __cplusplus >= 201103L
-# ifndef _GLIBCXX_USE_C99_MATH
-# define _GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH
-# endif
-# ifndef _GLIBCXX_USE_C99_COMPLEX
-# define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX
-# endif
-# ifndef _GLIBCXX_USE_C99_STDIO
-# define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO
-# endif
-# ifndef _GLIBCXX_USE_C99_STDLIB
-# define _GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB
-# endif
-# ifndef _GLIBCXX_USE_C99_WCHAR
-# define _GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR
-# endif
-#else
-# ifndef _GLIBCXX_USE_C99_MATH
-# define _GLIBCXX_USE_C99_MATH _GLIBCXX98_USE_C99_MATH
-# endif
-# ifndef _GLIBCXX_USE_C99_COMPLEX
-# define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX98_USE_C99_COMPLEX
-# endif
-# ifndef _GLIBCXX_USE_C99_STDIO
-# define _GLIBCXX_USE_C99_STDIO _GLIBCXX98_USE_C99_STDIO
-# endif
-# ifndef _GLIBCXX_USE_C99_STDLIB
-# define _GLIBCXX_USE_C99_STDLIB _GLIBCXX98_USE_C99_STDLIB
-# endif
-# ifndef _GLIBCXX_USE_C99_WCHAR
-# define _GLIBCXX_USE_C99_WCHAR _GLIBCXX98_USE_C99_WCHAR
-# endif
-#endif
-
-// Unless explicitly specified, enable char8_t extensions only if the core
-// language char8_t feature macro is defined.
-#ifndef _GLIBCXX_USE_CHAR8_T
-# ifdef __cpp_char8_t
-# define _GLIBCXX_USE_CHAR8_T 1
-# endif
-#endif
-#ifdef _GLIBCXX_USE_CHAR8_T
-# define __cpp_lib_char8_t 201907L
-#endif
-
-/* Define if __float128 is supported on this host. */
-#if defined(__FLOAT128__) || defined(__SIZEOF_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__))
-# define _GLIBCXX_USE_FLOAT128 1
-# endif
-#endif
-
-// 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
-#endif
-
-#undef _GLIBCXX_HAS_BUILTIN
-
-// PSTL configuration
-
-#if __cplusplus >= 201703L
-// This header is not installed for freestanding:
-#if __has_include(<pstl/pstl_config.h>)
-// Preserved here so we have some idea which version of upstream we've pulled in
-// #define PSTL_VERSION 9000
-
-// For now this defaults to being based on the presence of Thread Building Blocks
-# ifndef _GLIBCXX_USE_TBB_PAR_BACKEND
-# define _GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)
-# endif
-// This section will need some rework when a new (default) backend type is added
-# if _GLIBCXX_USE_TBB_PAR_BACKEND
-# define _PSTL_PAR_BACKEND_TBB
-# else
-# define _PSTL_PAR_BACKEND_SERIAL
-# endif
-
-# define _PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)
-# define _PSTL_ASSERT_MSG(_Condition, _Message) __glibcxx_assert(_Condition)
-
-#include <pstl/pstl_config.h>
-#endif // __has_include
-#endif // C++17
-
-// End of prewritten config; the settings discovered at configure time follow.
-/* config.h. Generated from config.h.in by configure. */
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the `acosf' function. */
-#define _GLIBCXX_HAVE_ACOSF 1
-
-/* Define to 1 if you have the `acosl' function. */
-#define _GLIBCXX_HAVE_ACOSL 1
-
-/* Define to 1 if you have the `aligned_alloc' function. */
-#define _GLIBCXX_HAVE_ALIGNED_ALLOC 1
-
-/* 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
-
-/* Define to 1 if you have the `asinf' function. */
-#define _GLIBCXX_HAVE_ASINF 1
-
-/* Define to 1 if you have the `asinl' function. */
-#define _GLIBCXX_HAVE_ASINL 1
-
-/* Define to 1 if the target assembler supports .symver directive. */
-#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
-
-/* Define to 1 if you have the `atan2f' function. */
-#define _GLIBCXX_HAVE_ATAN2F 1
-
-/* Define to 1 if you have the `atan2l' function. */
-#define _GLIBCXX_HAVE_ATAN2L 1
-
-/* Define to 1 if you have the `atanf' function. */
-#define _GLIBCXX_HAVE_ATANF 1
-
-/* Define to 1 if you have the `atanl' function. */
-#define _GLIBCXX_HAVE_ATANL 1
-
-/* Defined if shared_ptr reference counting should use atomic operations. */
-#define _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1
-
-/* Define to 1 if you have the `at_quick_exit' function. */
-#define _GLIBCXX_HAVE_AT_QUICK_EXIT 1
-
-/* Define to 1 if the target assembler supports thread-local storage. */
-/* #undef _GLIBCXX_HAVE_CC_TLS */
-
-/* Define to 1 if you have the `ceilf' function. */
-#define _GLIBCXX_HAVE_CEILF 1
-
-/* Define to 1 if you have the `ceill' function. */
-#define _GLIBCXX_HAVE_CEILL 1
-
-/* Define to 1 if you have the <complex.h> header file. */
-#define _GLIBCXX_HAVE_COMPLEX_H 1
-
-/* Define to 1 if you have the `cosf' function. */
-#define _GLIBCXX_HAVE_COSF 1
-
-/* Define to 1 if you have the `coshf' function. */
-#define _GLIBCXX_HAVE_COSHF 1
-
-/* Define to 1 if you have the `coshl' function. */
-#define _GLIBCXX_HAVE_COSHL 1
-
-/* Define to 1 if you have the `cosl' function. */
-#define _GLIBCXX_HAVE_COSL 1
-
-/* 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
-
-/* Define to 1 if you have the <endian.h> header file. */
-#define _GLIBCXX_HAVE_ENDIAN_H 1
-
-/* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */
-#define _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#define _GLIBCXX_HAVE_EXECINFO_H 1
-
-/* Define to 1 if you have the `expf' function. */
-#define _GLIBCXX_HAVE_EXPF 1
-
-/* Define to 1 if you have the `expl' function. */
-#define _GLIBCXX_HAVE_EXPL 1
-
-/* Define to 1 if you have the `fabsf' function. */
-#define _GLIBCXX_HAVE_FABSF 1
-
-/* Define to 1 if you have the `fabsl' function. */
-#define _GLIBCXX_HAVE_FABSL 1
-
-/* 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
-
-/* Define to 1 if you have the `finite' function. */
-#define _GLIBCXX_HAVE_FINITE 1
-
-/* Define to 1 if you have the `finitef' function. */
-#define _GLIBCXX_HAVE_FINITEF 1
-
-/* Define to 1 if you have the `finitel' function. */
-#define _GLIBCXX_HAVE_FINITEL 1
-
-/* Define to 1 if you have the <float.h> header file. */
-#define _GLIBCXX_HAVE_FLOAT_H 1
-
-/* Define to 1 if you have the `floorf' function. */
-#define _GLIBCXX_HAVE_FLOORF 1
-
-/* Define to 1 if you have the `floorl' function. */
-#define _GLIBCXX_HAVE_FLOORL 1
-
-/* Define to 1 if you have the `fmodf' function. */
-#define _GLIBCXX_HAVE_FMODF 1
-
-/* Define to 1 if you have the `fmodl' function. */
-#define _GLIBCXX_HAVE_FMODL 1
-
-/* Define to 1 if you have the `fpclass' function. */
-/* #undef _GLIBCXX_HAVE_FPCLASS */
-
-/* Define to 1 if you have the <fp.h> header file. */
-/* #undef _GLIBCXX_HAVE_FP_H */
-
-/* Define to 1 if you have the `frexpf' function. */
-#define _GLIBCXX_HAVE_FREXPF 1
-
-/* Define to 1 if you have the `frexpl' function. */
-#define _GLIBCXX_HAVE_FREXPL 1
-
-/* Define if getentropy is available in <unistd.h>. */
-#define _GLIBCXX_HAVE_GETENTROPY 1
-
-/* Define if _Unwind_GetIPInfo is available. */
-#define _GLIBCXX_HAVE_GETIPINFO 1
-
-/* Define if gets is available in <stdio.h> before C++14. */
-#define _GLIBCXX_HAVE_GETS 1
-
-/* Define to 1 if you have the `hypot' function. */
-#define _GLIBCXX_HAVE_HYPOT 1
-
-/* Define to 1 if you have the `hypotf' function. */
-#define _GLIBCXX_HAVE_HYPOTF 1
-
-/* Define to 1 if you have the `hypotl' function. */
-#define _GLIBCXX_HAVE_HYPOTL 1
-
-/* Define if you have the iconv() function. */
-#define _GLIBCXX_HAVE_ICONV 1
-
-/* Define to 1 if you have the <ieeefp.h> header file. */
-/* #undef _GLIBCXX_HAVE_IEEEFP_H */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define _GLIBCXX_HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `isinf' function. */
-/* #undef _GLIBCXX_HAVE_ISINF */
-
-/* Define to 1 if you have the `isinff' function. */
-#define _GLIBCXX_HAVE_ISINFF 1
-
-/* Define to 1 if you have the `isinfl' function. */
-#define _GLIBCXX_HAVE_ISINFL 1
-
-/* Define to 1 if you have the `isnan' function. */
-/* #undef _GLIBCXX_HAVE_ISNAN */
-
-/* Define to 1 if you have the `isnanf' function. */
-#define _GLIBCXX_HAVE_ISNANF 1
-
-/* Define to 1 if you have the `isnanl' function. */
-#define _GLIBCXX_HAVE_ISNANL 1
-
-/* Defined if iswblank exists. */
-#define _GLIBCXX_HAVE_ISWBLANK 1
-
-/* Define if LC_MESSAGES is available in <locale.h>. */
-#define _GLIBCXX_HAVE_LC_MESSAGES 1
-
-/* Define to 1 if you have the `ldexpf' function. */
-#define _GLIBCXX_HAVE_LDEXPF 1
-
-/* Define to 1 if you have the `ldexpl' function. */
-#define _GLIBCXX_HAVE_LDEXPL 1
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#define _GLIBCXX_HAVE_LIBINTL_H 1
-
-/* Only used in build directory testsuite_hooks.h. */
-#define _GLIBCXX_HAVE_LIMIT_AS 1
-
-/* Only used in build directory testsuite_hooks.h. */
-#define _GLIBCXX_HAVE_LIMIT_DATA 1
-
-/* Only used in build directory testsuite_hooks.h. */
-#define _GLIBCXX_HAVE_LIMIT_FSIZE 1
-
-/* Only used in build directory testsuite_hooks.h. */
-#define _GLIBCXX_HAVE_LIMIT_RSS 1
-
-/* Only used in build directory testsuite_hooks.h. */
-#define _GLIBCXX_HAVE_LIMIT_VMEM 0
-
-/* 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. */
-#define _GLIBCXX_HAVE_LINUX_FUTEX 1
-
-/* Define to 1 if you have the <linux/random.h> header file. */
-#define _GLIBCXX_HAVE_LINUX_RANDOM_H 1
-
-/* Define to 1 if you have the <linux/types.h> header file. */
-#define _GLIBCXX_HAVE_LINUX_TYPES_H 1
-
-/* Define to 1 if you have the <locale.h> header file. */
-#define _GLIBCXX_HAVE_LOCALE_H 1
-
-/* Define to 1 if you have the `log10f' function. */
-#define _GLIBCXX_HAVE_LOG10F 1
-
-/* Define to 1 if you have the `log10l' function. */
-#define _GLIBCXX_HAVE_LOG10L 1
-
-/* Define to 1 if you have the `logf' function. */
-#define _GLIBCXX_HAVE_LOGF 1
-
-/* Define to 1 if you have the `logl' function. */
-#define _GLIBCXX_HAVE_LOGL 1
-
-/* Define to 1 if you have the <machine/endian.h> header file. */
-/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */
-
-/* Define to 1 if you have the <machine/param.h> header file. */
-/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */
-
-/* Define if mbstate_t exists in wchar.h. */
-#define _GLIBCXX_HAVE_MBSTATE_T 1
-
-/* Define to 1 if you have the `memalign' function. */
-#define _GLIBCXX_HAVE_MEMALIGN 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define _GLIBCXX_HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `modf' function. */
-#define _GLIBCXX_HAVE_MODF 1
-
-/* Define to 1 if you have the `modff' function. */
-#define _GLIBCXX_HAVE_MODFF 1
-
-/* Define to 1 if you have the `modfl' function. */
-#define _GLIBCXX_HAVE_MODFL 1
-
-/* Define to 1 if you have the <nan.h> header file. */
-/* #undef _GLIBCXX_HAVE_NAN_H */
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#define _GLIBCXX_HAVE_NETDB_H 1
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#define _GLIBCXX_HAVE_NETINET_IN_H 1
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-#define _GLIBCXX_HAVE_NETINET_TCP_H 1
-
-/* Define if <math.h> defines obsolete isinf function. */
-/* #undef _GLIBCXX_HAVE_OBSOLETE_ISINF */
-
-/* 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
-
-/* Define to 1 if you have the <poll.h> header file. */
-#define _GLIBCXX_HAVE_POLL_H 1
-
-/* Define to 1 if you have the `posix_memalign' function. */
-#define _GLIBCXX_HAVE_POSIX_MEMALIGN 1
-
-/* 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. */
-#define _GLIBCXX_HAVE_POWF 1
-
-/* Define to 1 if you have the `powl' function. */
-#define _GLIBCXX_HAVE_POWL 1
-
-/* Define to 1 if you have the `qfpclass' function. */
-/* #undef _GLIBCXX_HAVE_QFPCLASS */
-
-/* Define to 1 if you have the `quick_exit' function. */
-#define _GLIBCXX_HAVE_QUICK_EXIT 1
-
-/* Define if readlink is available in <unistd.h>. */
-#define _GLIBCXX_HAVE_READLINK 1
-
-/* Define to 1 if you have the `secure_getenv' function. */
-#define _GLIBCXX_HAVE_SECURE_GETENV 1
-
-/* Define to 1 if you have the `setenv' function. */
-#define _GLIBCXX_HAVE_SETENV 1
-
-/* Define to 1 if you have the `sincos' function. */
-#define _GLIBCXX_HAVE_SINCOS 1
-
-/* Define to 1 if you have the `sincosf' function. */
-#define _GLIBCXX_HAVE_SINCOSF 1
-
-/* Define to 1 if you have the `sincosl' function. */
-#define _GLIBCXX_HAVE_SINCOSL 1
-
-/* Define to 1 if you have the `sinf' function. */
-#define _GLIBCXX_HAVE_SINF 1
-
-/* Define to 1 if you have the `sinhf' function. */
-#define _GLIBCXX_HAVE_SINHF 1
-
-/* Define to 1 if you have the `sinhl' function. */
-#define _GLIBCXX_HAVE_SINHL 1
-
-/* Define to 1 if you have the `sinl' function. */
-#define _GLIBCXX_HAVE_SINL 1
-
-/* Defined if sleep exists. */
-/* #undef _GLIBCXX_HAVE_SLEEP */
-
-/* Define to 1 if you have the `sockatmark' function. */
-#define _GLIBCXX_HAVE_SOCKATMARK 1
-
-/* Define to 1 if you have the `sqrtf' function. */
-#define _GLIBCXX_HAVE_SQRTF 1
-
-/* Define to 1 if you have the `sqrtl' function. */
-#define _GLIBCXX_HAVE_SQRTL 1
-
-/* Define if the <stacktrace> header is supported. */
-#define _GLIBCXX_HAVE_STACKTRACE 1
-
-/* Define to 1 if you have the <stdalign.h> header file. */
-#define _GLIBCXX_HAVE_STDALIGN_H 1
-
-/* Define to 1 if you have the <stdbool.h> header file. */
-#define _GLIBCXX_HAVE_STDBOOL_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define _GLIBCXX_HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define _GLIBCXX_HAVE_STDLIB_H 1
-
-/* Define if strerror_l is available in <string.h>. */
-#define _GLIBCXX_HAVE_STRERROR_L 1
-
-/* Define if strerror_r is available in <string.h>. */
-#define _GLIBCXX_HAVE_STRERROR_R 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define _GLIBCXX_HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define _GLIBCXX_HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strtof' function. */
-#define _GLIBCXX_HAVE_STRTOF 1
-
-/* Define to 1 if you have the `strtold' function. */
-#define _GLIBCXX_HAVE_STRTOLD 1
-
-/* Define to 1 if `d_type' is a member of `struct dirent'. */
-#define _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1
-
-/* Define if strxfrm_l is available in <string.h>. */
-#define _GLIBCXX_HAVE_STRXFRM_L 1
-
-/* Define if symlink is available in <unistd.h>. */
-#define _GLIBCXX_HAVE_SYMLINK 1
-
-/* Define to 1 if the target runtime linker supports binding the same symbol
- to different versions. */
-#define _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1
-
-/* Define to 1 if you have the <sys/filio.h> header file. */
-/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#define _GLIBCXX_HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the <sys/ipc.h> header file. */
-#define _GLIBCXX_HAVE_SYS_IPC_H 1
-
-/* Define to 1 if you have the <sys/isa_defs.h> header file. */
-/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */
-
-/* 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. */
-#define _GLIBCXX_HAVE_SYS_MMAN_H 1
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#define _GLIBCXX_HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
-
-/* Define to 1 if you have a suitable <sys/sdt.h> header file */
-#define _GLIBCXX_HAVE_SYS_SDT_H 1
-
-/* Define to 1 if you have the <sys/sem.h> header file. */
-#define _GLIBCXX_HAVE_SYS_SEM_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define _GLIBCXX_HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/statvfs.h> header file. */
-#define _GLIBCXX_HAVE_SYS_STATVFS_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define _GLIBCXX_HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-#define _GLIBCXX_HAVE_SYS_SYSINFO_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define _GLIBCXX_HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define _GLIBCXX_HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#define _GLIBCXX_HAVE_SYS_UIO_H 1
-
-/* Define if S_IFREG is available in <sys/stat.h>. */
-/* #undef _GLIBCXX_HAVE_S_IFREG */
-
-/* Define if S_ISREG is available in <sys/stat.h>. */
-#define _GLIBCXX_HAVE_S_ISREG 1
-
-/* Define to 1 if you have the `tanf' function. */
-#define _GLIBCXX_HAVE_TANF 1
-
-/* Define to 1 if you have the `tanhf' function. */
-#define _GLIBCXX_HAVE_TANHF 1
-
-/* Define to 1 if you have the `tanhl' function. */
-#define _GLIBCXX_HAVE_TANHL 1
-
-/* Define to 1 if you have the `tanl' function. */
-#define _GLIBCXX_HAVE_TANL 1
-
-/* Define to 1 if you have the <tgmath.h> header file. */
-#define _GLIBCXX_HAVE_TGMATH_H 1
-
-/* Define to 1 if you have the `timespec_get' function. */
-#define _GLIBCXX_HAVE_TIMESPEC_GET 1
-
-/* Define to 1 if the target supports thread-local storage. */
-#define _GLIBCXX_HAVE_TLS 1
-
-/* Define if truncate is available in <unistd.h>. */
-#define _GLIBCXX_HAVE_TRUNCATE 1
-
-/* Define to 1 if you have the <uchar.h> header file. */
-#define _GLIBCXX_HAVE_UCHAR_H 1
-
-/* 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. */
-#define _GLIBCXX_HAVE_USELOCALE 1
-
-/* Defined if usleep exists. */
-/* #undef _GLIBCXX_HAVE_USLEEP */
-
-/* Define to 1 if you have the <utime.h> header file. */
-#define _GLIBCXX_HAVE_UTIME_H 1
-
-/* Defined if vfwscanf exists. */
-#define _GLIBCXX_HAVE_VFWSCANF 1
-
-/* Defined if vswscanf exists. */
-#define _GLIBCXX_HAVE_VSWSCANF 1
-
-/* Defined if vwscanf exists. */
-#define _GLIBCXX_HAVE_VWSCANF 1
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#define _GLIBCXX_HAVE_WCHAR_H 1
-
-/* Defined if wcstof exists. */
-#define _GLIBCXX_HAVE_WCSTOF 1
-
-/* Define to 1 if you have the <wctype.h> header file. */
-#define _GLIBCXX_HAVE_WCTYPE_H 1
-
-/* Defined if Sleep exists. */
-/* #undef _GLIBCXX_HAVE_WIN32_SLEEP */
-
-/* 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. */
-/* #undef _GLIBCXX_HAVE_XLOCALE_H */
-
-/* Define to 1 if you have the `_acosf' function. */
-/* #undef _GLIBCXX_HAVE__ACOSF */
-
-/* Define to 1 if you have the `_acosl' function. */
-/* #undef _GLIBCXX_HAVE__ACOSL */
-
-/* Define to 1 if you have the `_aligned_malloc' function. */
-/* #undef _GLIBCXX_HAVE__ALIGNED_MALLOC */
-
-/* Define to 1 if you have the `_asinf' function. */
-/* #undef _GLIBCXX_HAVE__ASINF */
-
-/* Define to 1 if you have the `_asinl' function. */
-/* #undef _GLIBCXX_HAVE__ASINL */
-
-/* Define to 1 if you have the `_atan2f' function. */
-/* #undef _GLIBCXX_HAVE__ATAN2F */
-
-/* Define to 1 if you have the `_atan2l' function. */
-/* #undef _GLIBCXX_HAVE__ATAN2L */
-
-/* Define to 1 if you have the `_atanf' function. */
-/* #undef _GLIBCXX_HAVE__ATANF */
-
-/* Define to 1 if you have the `_atanl' function. */
-/* #undef _GLIBCXX_HAVE__ATANL */
-
-/* Define to 1 if you have the `_ceilf' function. */
-/* #undef _GLIBCXX_HAVE__CEILF */
-
-/* Define to 1 if you have the `_ceill' function. */
-/* #undef _GLIBCXX_HAVE__CEILL */
-
-/* Define to 1 if you have the `_cosf' function. */
-/* #undef _GLIBCXX_HAVE__COSF */
-
-/* Define to 1 if you have the `_coshf' function. */
-/* #undef _GLIBCXX_HAVE__COSHF */
-
-/* Define to 1 if you have the `_coshl' function. */
-/* #undef _GLIBCXX_HAVE__COSHL */
-
-/* Define to 1 if you have the `_cosl' function. */
-/* #undef _GLIBCXX_HAVE__COSL */
-
-/* Define to 1 if you have the `_expf' function. */
-/* #undef _GLIBCXX_HAVE__EXPF */
-
-/* Define to 1 if you have the `_expl' function. */
-/* #undef _GLIBCXX_HAVE__EXPL */
-
-/* Define to 1 if you have the `_fabsf' function. */
-/* #undef _GLIBCXX_HAVE__FABSF */
-
-/* Define to 1 if you have the `_fabsl' function. */
-/* #undef _GLIBCXX_HAVE__FABSL */
-
-/* Define to 1 if you have the `_finite' function. */
-/* #undef _GLIBCXX_HAVE__FINITE */
-
-/* Define to 1 if you have the `_finitef' function. */
-/* #undef _GLIBCXX_HAVE__FINITEF */
-
-/* Define to 1 if you have the `_finitel' function. */
-/* #undef _GLIBCXX_HAVE__FINITEL */
-
-/* Define to 1 if you have the `_floorf' function. */
-/* #undef _GLIBCXX_HAVE__FLOORF */
-
-/* Define to 1 if you have the `_floorl' function. */
-/* #undef _GLIBCXX_HAVE__FLOORL */
-
-/* Define to 1 if you have the `_fmodf' function. */
-/* #undef _GLIBCXX_HAVE__FMODF */
-
-/* Define to 1 if you have the `_fmodl' function. */
-/* #undef _GLIBCXX_HAVE__FMODL */
-
-/* Define to 1 if you have the `_fpclass' function. */
-/* #undef _GLIBCXX_HAVE__FPCLASS */
-
-/* Define to 1 if you have the `_frexpf' function. */
-/* #undef _GLIBCXX_HAVE__FREXPF */
-
-/* Define to 1 if you have the `_frexpl' function. */
-/* #undef _GLIBCXX_HAVE__FREXPL */
-
-/* Define to 1 if you have the `_hypot' function. */
-/* #undef _GLIBCXX_HAVE__HYPOT */
-
-/* Define to 1 if you have the `_hypotf' function. */
-/* #undef _GLIBCXX_HAVE__HYPOTF */
-
-/* Define to 1 if you have the `_hypotl' function. */
-/* #undef _GLIBCXX_HAVE__HYPOTL */
-
-/* Define to 1 if you have the `_isinf' function. */
-/* #undef _GLIBCXX_HAVE__ISINF */
-
-/* Define to 1 if you have the `_isinff' function. */
-/* #undef _GLIBCXX_HAVE__ISINFF */
-
-/* Define to 1 if you have the `_isinfl' function. */
-/* #undef _GLIBCXX_HAVE__ISINFL */
-
-/* Define to 1 if you have the `_isnan' function. */
-/* #undef _GLIBCXX_HAVE__ISNAN */
-
-/* Define to 1 if you have the `_isnanf' function. */
-/* #undef _GLIBCXX_HAVE__ISNANF */
-
-/* Define to 1 if you have the `_isnanl' function. */
-/* #undef _GLIBCXX_HAVE__ISNANL */
-
-/* Define to 1 if you have the `_ldexpf' function. */
-/* #undef _GLIBCXX_HAVE__LDEXPF */
-
-/* Define to 1 if you have the `_ldexpl' function. */
-/* #undef _GLIBCXX_HAVE__LDEXPL */
-
-/* Define to 1 if you have the `_log10f' function. */
-/* #undef _GLIBCXX_HAVE__LOG10F */
-
-/* Define to 1 if you have the `_log10l' function. */
-/* #undef _GLIBCXX_HAVE__LOG10L */
-
-/* Define to 1 if you have the `_logf' function. */
-/* #undef _GLIBCXX_HAVE__LOGF */
-
-/* Define to 1 if you have the `_logl' function. */
-/* #undef _GLIBCXX_HAVE__LOGL */
-
-/* Define to 1 if you have the `_modf' function. */
-/* #undef _GLIBCXX_HAVE__MODF */
-
-/* Define to 1 if you have the `_modff' function. */
-/* #undef _GLIBCXX_HAVE__MODFF */
-
-/* Define to 1 if you have the `_modfl' function. */
-/* #undef _GLIBCXX_HAVE__MODFL */
-
-/* Define to 1 if you have the `_powf' function. */
-/* #undef _GLIBCXX_HAVE__POWF */
-
-/* Define to 1 if you have the `_powl' function. */
-/* #undef _GLIBCXX_HAVE__POWL */
-
-/* Define to 1 if you have the `_qfpclass' function. */
-/* #undef _GLIBCXX_HAVE__QFPCLASS */
-
-/* Define to 1 if you have the `_sincos' function. */
-/* #undef _GLIBCXX_HAVE__SINCOS */
-
-/* Define to 1 if you have the `_sincosf' function. */
-/* #undef _GLIBCXX_HAVE__SINCOSF */
-
-/* Define to 1 if you have the `_sincosl' function. */
-/* #undef _GLIBCXX_HAVE__SINCOSL */
-
-/* Define to 1 if you have the `_sinf' function. */
-/* #undef _GLIBCXX_HAVE__SINF */
-
-/* Define to 1 if you have the `_sinhf' function. */
-/* #undef _GLIBCXX_HAVE__SINHF */
-
-/* Define to 1 if you have the `_sinhl' function. */
-/* #undef _GLIBCXX_HAVE__SINHL */
-
-/* Define to 1 if you have the `_sinl' function. */
-/* #undef _GLIBCXX_HAVE__SINL */
-
-/* Define to 1 if you have the `_sqrtf' function. */
-/* #undef _GLIBCXX_HAVE__SQRTF */
-
-/* Define to 1 if you have the `_sqrtl' function. */
-/* #undef _GLIBCXX_HAVE__SQRTL */
-
-/* Define to 1 if you have the `_tanf' function. */
-/* #undef _GLIBCXX_HAVE__TANF */
-
-/* Define to 1 if you have the `_tanhf' function. */
-/* #undef _GLIBCXX_HAVE__TANHF */
-
-/* Define to 1 if you have the `_tanhl' function. */
-/* #undef _GLIBCXX_HAVE__TANHL */
-
-/* Define to 1 if you have the `_tanl' function. */
-/* #undef _GLIBCXX_HAVE__TANL */
-
-/* Define to 1 if you have the `_wfopen' function. */
-/* #undef _GLIBCXX_HAVE__WFOPEN */
-
-/* Define to 1 if you have the `__cxa_thread_atexit' function. */
-/* #undef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT */
-
-/* Define to 1 if you have the `__cxa_thread_atexit_impl' function. */
-#define _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1
-
-/* Define as const if the declaration of iconv() needs const. */
-#define _GLIBCXX_ICONV_CONST
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#define _GLIBCXX_LT_OBJDIR ".libs/"
-
-/* Name of package */
-/* #undef _GLIBCXX_PACKAGE */
-
-/* Define to the address where bug reports for this package should be sent. */
-#define _GLIBCXX_PACKAGE_BUGREPORT ""
-
-/* Define to the full name of this package. */
-#define _GLIBCXX_PACKAGE_NAME "package-unused"
-
-/* Define to the full name and version of this package. */
-#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused"
-
-/* Define to the one symbol short name of this package. */
-#define _GLIBCXX_PACKAGE_TARNAME "libstdc++"
-
-/* Define to the home page for this package. */
-#define _GLIBCXX_PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused"
-
-/* The size of `char', as computed by sizeof. */
-/* #undef SIZEOF_CHAR */
-
-/* The size of `int', as computed by sizeof. */
-/* #undef SIZEOF_INT */
-
-/* The size of `long', as computed by sizeof. */
-/* #undef SIZEOF_LONG */
-
-/* The size of `short', as computed by sizeof. */
-/* #undef SIZEOF_SHORT */
-
-/* The size of `void *', as computed by sizeof. */
-/* #undef SIZEOF_VOID_P */
-
-/* Define to 1 if you have the ANSI C header files. */
-#define _GLIBCXX_STDC_HEADERS 1
-
-/* Version number of package */
-/* #undef _GLIBCXX_VERSION */
-
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _GLIBCXX_DARWIN_USE_64_BIT_INODE
-# define _GLIBCXX_DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _GLIBCXX_FILE_OFFSET_BITS */
-
-/* Define if C99 functions in <complex.h> should be used in <complex> for
- C++11. Using compiler builtins for these functions requires corresponding
- C99 library functions to be present. */
-#define _GLIBCXX11_USE_C99_COMPLEX 1
-
-/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
- in namespace std for C++11. */
-#define _GLIBCXX11_USE_C99_MATH 1
-
-/* Define if C99 functions or macros in <stdio.h> should be imported in
- <cstdio> in namespace std for C++11. */
-#define _GLIBCXX11_USE_C99_STDIO 1
-
-/* Define if C99 functions or macros in <stdlib.h> should be imported in
- <cstdlib> in namespace std for C++11. */
-#define _GLIBCXX11_USE_C99_STDLIB 1
-
-/* Define if C99 functions or macros in <wchar.h> should be imported in
- <cwchar> in namespace std for C++11. */
-#define _GLIBCXX11_USE_C99_WCHAR 1
-
-/* Define if C99 functions in <complex.h> should be used in <complex> for
- C++98. Using compiler builtins for these functions requires corresponding
- C99 library functions to be present. */
-#define _GLIBCXX98_USE_C99_COMPLEX 1
-
-/* Define if C99 functions or macros in <math.h> should be imported in <cmath>
- in namespace std for C++98. */
-#define _GLIBCXX98_USE_C99_MATH 1
-
-/* Define if C99 functions or macros in <stdio.h> should be imported in
- <cstdio> in namespace std for C++98. */
-#define _GLIBCXX98_USE_C99_STDIO 1
-
-/* Define if C99 functions or macros in <stdlib.h> should be imported in
- <cstdlib> in namespace std for C++98. */
-#define _GLIBCXX98_USE_C99_STDLIB 1
-
-/* Define if C99 functions or macros in <wchar.h> should be imported in
- <cwchar> in namespace std for C++98. */
-#define _GLIBCXX98_USE_C99_WCHAR 1
-
-/* Define if the compiler supports C++11 atomics. */
-#define _GLIBCXX_ATOMIC_BUILTINS 1
-
-/* Define to use concept checking code from the boost libraries. */
-/* #undef _GLIBCXX_CONCEPT_CHECKS */
-
-/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable,
- undefined for platform defaults */
-#define _GLIBCXX_FULLY_DYNAMIC_STRING 0
-
-/* Define if gthreads library is available. */
-#define _GLIBCXX_HAS_GTHREADS 1
-
-/* 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. */
-#define _GLIBCXX_MANGLE_SIZE_T m
-
-/* 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 */
-
-/* Define if using setrlimit to set resource limits during "make check" */
-#define _GLIBCXX_RES_LIMITS 1
-
-/* Define if size_t is unsigned int. */
-/* #undef _GLIBCXX_SIZE_T_IS_UINT */
-
-/* Define to the value of the EOF integer constant. */
-#define _GLIBCXX_STDIO_EOF -1
-
-/* Define to the value of the SEEK_CUR integer constant. */
-#define _GLIBCXX_STDIO_SEEK_CUR 1
-
-/* Define to the value of the SEEK_END integer constant. */
-#define _GLIBCXX_STDIO_SEEK_END 2
-
-/* Define to use symbol versioning in the shared library. */
-#define _GLIBCXX_SYMVER 1
-
-/* Define to use darwin versioning in the shared library. */
-/* #undef _GLIBCXX_SYMVER_DARWIN */
-
-/* Define to use GNU versioning in the shared library. */
-#define _GLIBCXX_SYMVER_GNU 1
-
-/* Define to use GNU namespace versioning in the shared library. */
-/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */
-
-/* Define to use Sun versioning in the shared library. */
-/* #undef _GLIBCXX_SYMVER_SUN */
-
-/* Define if C11 functions in <uchar.h> should be imported into namespace std
- in <cuchar>. */
-#define _GLIBCXX_USE_C11_UCHAR_CXX11 1
-
-/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
- <stdio.h>, and <stdlib.h> can be used or exposed. */
-#define _GLIBCXX_USE_C99 1
-
-/* Define if C99 functions in <complex.h> should be used in <tr1/complex>.
- Using compiler builtins for these functions requires corresponding C99
- library functions to be present. */
-#define _GLIBCXX_USE_C99_COMPLEX_TR1 1
-
-/* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in
- namespace std::tr1. */
-#define _GLIBCXX_USE_C99_CTYPE_TR1 1
-
-/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
- namespace std::tr1. */
-#define _GLIBCXX_USE_C99_FENV_TR1 1
-
-/* Define if C99 functions in <inttypes.h> should be imported in
- <tr1/cinttypes> in namespace std::tr1. */
-#define _GLIBCXX_USE_C99_INTTYPES_TR1 1
-
-/* Define if wchar_t C99 functions in <inttypes.h> should be imported in
- <tr1/cinttypes> in namespace std::tr1. */
-#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
-
-/* Define if C99 functions or macros in <math.h> should be imported in
- <tr1/cmath> in namespace std::tr1. */
-#define _GLIBCXX_USE_C99_MATH_TR1 1
-
-/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
- namespace std::tr1. */
-#define _GLIBCXX_USE_C99_STDINT_TR1 1
-
-/* Defined if clock_gettime syscall has monotonic and realtime clock support.
- */
-/* #undef _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL */
-
-/* Defined if clock_gettime has monotonic clock support. */
-#define _GLIBCXX_USE_CLOCK_MONOTONIC 1
-
-/* Defined if clock_gettime has realtime clock support. */
-#define _GLIBCXX_USE_CLOCK_REALTIME 1
-
-/* Define if ISO/IEC TR 24733 decimal floating point types are supported on
- this host. */
-#define _GLIBCXX_USE_DECIMAL_FLOAT 1
-
-/* Define if /dev/random and /dev/urandom are available for
- std::random_device. */
-#define _GLIBCXX_USE_DEV_RANDOM 1
-
-/* Define if fchmod is available in <sys/stat.h>. */
-#define _GLIBCXX_USE_FCHMOD 1
-
-/* Define if fchmodat is available in <sys/stat.h>. */
-#define _GLIBCXX_USE_FCHMODAT 1
-
-/* Defined if gettimeofday is available. */
-#define _GLIBCXX_USE_GETTIMEOFDAY 1
-
-/* Define if get_nprocs is available in <sys/sysinfo.h>. */
-#define _GLIBCXX_USE_GET_NPROCS 1
-
-/* Define if LFS support is available. */
-#define _GLIBCXX_USE_LFS 1
-
-/* Define if code specialized for long long should be used. */
-#define _GLIBCXX_USE_LONG_LONG 1
-
-/* Define if lstat is available in <sys/stat.h>. */
-#define _GLIBCXX_USE_LSTAT 1
-
-/* Defined if nanosleep is available. */
-#define _GLIBCXX_USE_NANOSLEEP 1
-
-/* Define if NLS translations are to be used. */
-#define _GLIBCXX_USE_NLS 1
-
-/* Define if pthreads_num_processors_np is available in <pthread.h>. */
-/* #undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP */
-
-/* Define if pthread_cond_clockwait is available in <pthread.h>. */
-#define _GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1
-
-/* Define if pthread_mutex_clocklock is available in <pthread.h>. */
-#define _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK 1
-
-/* Define if pthread_rwlock_clockrdlock and pthread_rwlock_clockwrlock are
- available in <pthread.h>. */
-#define _GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1
-
-/* Define if POSIX read/write locks are available in <gthr.h>. */
-#define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1
-
-/* Define if /dev/random and /dev/urandom are available for the random_device
- of TR1 (Chapter 5.1). */
-#define _GLIBCXX_USE_RANDOM_TR1 1
-
-/* Define if usable realpath is available in <stdlib.h>. */
-#define _GLIBCXX_USE_REALPATH 1
-
-/* Defined if sched_yield is available. */
-#define _GLIBCXX_USE_SCHED_YIELD 1
-
-/* Define if _SC_NPROCESSORS_ONLN is available in <unistd.h>. */
-#define _GLIBCXX_USE_SC_NPROCESSORS_ONLN 1
-
-/* Define if _SC_NPROC_ONLN is available in <unistd.h>. */
-/* #undef _GLIBCXX_USE_SC_NPROC_ONLN */
-
-/* Define if sendfile is available in <sys/sendfile.h>. */
-#define _GLIBCXX_USE_SENDFILE 1
-
-/* 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
-
-/* Define if sysctl(), CTL_HW and HW_NCPU are available in <sys/sysctl.h>. */
-/* #undef _GLIBCXX_USE_SYSCTL_HW_NCPU */
-
-/* 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. */
-#define _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1
-
-/* Define if c8rtomb and mbrtoc8 functions in <uchar.h> should be imported
- into namespace std in <cuchar> for -fchar8_t. */
-#define _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1
-
-/* Define if utime is available in <utime.h>. */
-#define _GLIBCXX_USE_UTIME 1
-
-/* Define if utimensat and UTIME_OMIT are available in <sys/stat.h> and
- AT_FDCWD in <fcntl.h>. */
-#define _GLIBCXX_USE_UTIMENSAT 1
-
-/* Define if code specialized for wchar_t should be used. */
-#define _GLIBCXX_USE_WCHAR_T 1
-
-/* Define to 1 if a verbose library is built, or 0 otherwise. */
-#define _GLIBCXX_VERBOSE 1
-
-/* Defined if as can handle rdrand. */
-#define _GLIBCXX_X86_RDRAND 1
-
-/* Defined if as can handle rdseed. */
-#define _GLIBCXX_X86_RDSEED 1
-
-/* Define to 1 if mutex_timedlock is available. */
-#define _GTHREAD_USE_MUTEX_TIMEDLOCK 1
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _GLIBCXX_LARGE_FILES */
-
-/* Define if all C++11 floating point overloads are available in <math.h>. */
-#if __cplusplus >= 201103L
-/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP */
-#endif
-
-/* Define if all C++11 integral type overloads are available in <math.h>. */
-#if __cplusplus >= 201103L
-/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_INT */
-#endif
-
-#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF)
-# define _GLIBCXX_HAVE_ACOSF 1
-# define acosf _acosf
-#endif
-
-#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL)
-# define _GLIBCXX_HAVE_ACOSL 1
-# define acosl _acosl
-#endif
-
-#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF)
-# define _GLIBCXX_HAVE_ASINF 1
-# define asinf _asinf
-#endif
-
-#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL)
-# define _GLIBCXX_HAVE_ASINL 1
-# define asinl _asinl
-#endif
-
-#if defined (_GLIBCXX_HAVE__ATAN2F) && ! defined (_GLIBCXX_HAVE_ATAN2F)
-# define _GLIBCXX_HAVE_ATAN2F 1
-# define atan2f _atan2f
-#endif
-
-#if defined (_GLIBCXX_HAVE__ATAN2L) && ! defined (_GLIBCXX_HAVE_ATAN2L)
-# define _GLIBCXX_HAVE_ATAN2L 1
-# define atan2l _atan2l
-#endif
-
-#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF)
-# define _GLIBCXX_HAVE_ATANF 1
-# define atanf _atanf
-#endif
-
-#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL)
-# define _GLIBCXX_HAVE_ATANL 1
-# define atanl _atanl
-#endif
-
-#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF)
-# define _GLIBCXX_HAVE_CEILF 1
-# define ceilf _ceilf
-#endif
-
-#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL)
-# define _GLIBCXX_HAVE_CEILL 1
-# define ceill _ceill
-#endif
-
-#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF)
-# define _GLIBCXX_HAVE_COSF 1
-# define cosf _cosf
-#endif
-
-#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF)
-# define _GLIBCXX_HAVE_COSHF 1
-# define coshf _coshf
-#endif
-
-#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL)
-# define _GLIBCXX_HAVE_COSHL 1
-# define coshl _coshl
-#endif
-
-#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL)
-# define _GLIBCXX_HAVE_COSL 1
-# define cosl _cosl
-#endif
-
-#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF)
-# define _GLIBCXX_HAVE_EXPF 1
-# define expf _expf
-#endif
-
-#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL)
-# define _GLIBCXX_HAVE_EXPL 1
-# define expl _expl
-#endif
-
-#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF)
-# define _GLIBCXX_HAVE_FABSF 1
-# define fabsf _fabsf
-#endif
-
-#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL)
-# define _GLIBCXX_HAVE_FABSL 1
-# define fabsl _fabsl
-#endif
-
-#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE)
-# define _GLIBCXX_HAVE_FINITE 1
-# define finite _finite
-#endif
-
-#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF)
-# define _GLIBCXX_HAVE_FINITEF 1
-# define finitef _finitef
-#endif
-
-#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL)
-# define _GLIBCXX_HAVE_FINITEL 1
-# define finitel _finitel
-#endif
-
-#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF)
-# define _GLIBCXX_HAVE_FLOORF 1
-# define floorf _floorf
-#endif
-
-#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL)
-# define _GLIBCXX_HAVE_FLOORL 1
-# define floorl _floorl
-#endif
-
-#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF)
-# define _GLIBCXX_HAVE_FMODF 1
-# define fmodf _fmodf
-#endif
-
-#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL)
-# define _GLIBCXX_HAVE_FMODL 1
-# define fmodl _fmodl
-#endif
-
-#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS)
-# define _GLIBCXX_HAVE_FPCLASS 1
-# define fpclass _fpclass
-#endif
-
-#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF)
-# define _GLIBCXX_HAVE_FREXPF 1
-# define frexpf _frexpf
-#endif
-
-#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL)
-# define _GLIBCXX_HAVE_FREXPL 1
-# define frexpl _frexpl
-#endif
-
-#if defined (_GLIBCXX_HAVE__HYPOT) && ! defined (_GLIBCXX_HAVE_HYPOT)
-# define _GLIBCXX_HAVE_HYPOT 1
-# define hypot _hypot
-#endif
-
-#if defined (_GLIBCXX_HAVE__HYPOTF) && ! defined (_GLIBCXX_HAVE_HYPOTF)
-# define _GLIBCXX_HAVE_HYPOTF 1
-# define hypotf _hypotf
-#endif
-
-#if defined (_GLIBCXX_HAVE__HYPOTL) && ! defined (_GLIBCXX_HAVE_HYPOTL)
-# define _GLIBCXX_HAVE_HYPOTL 1
-# define hypotl _hypotl
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF)
-# define _GLIBCXX_HAVE_ISINF 1
-# define isinf _isinf
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF)
-# define _GLIBCXX_HAVE_ISINFF 1
-# define isinff _isinff
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL)
-# define _GLIBCXX_HAVE_ISINFL 1
-# define isinfl _isinfl
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN)
-# define _GLIBCXX_HAVE_ISNAN 1
-# define isnan _isnan
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF)
-# define _GLIBCXX_HAVE_ISNANF 1
-# define isnanf _isnanf
-#endif
-
-#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL)
-# define _GLIBCXX_HAVE_ISNANL 1
-# define isnanl _isnanl
-#endif
-
-#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF)
-# define _GLIBCXX_HAVE_LDEXPF 1
-# define ldexpf _ldexpf
-#endif
-
-#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL)
-# define _GLIBCXX_HAVE_LDEXPL 1
-# define ldexpl _ldexpl
-#endif
-
-#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F)
-# define _GLIBCXX_HAVE_LOG10F 1
-# define log10f _log10f
-#endif
-
-#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L)
-# define _GLIBCXX_HAVE_LOG10L 1
-# define log10l _log10l
-#endif
-
-#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF)
-# define _GLIBCXX_HAVE_LOGF 1
-# define logf _logf
-#endif
-
-#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL)
-# define _GLIBCXX_HAVE_LOGL 1
-# define logl _logl
-#endif
-
-#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF)
-# define _GLIBCXX_HAVE_MODF 1
-# define modf _modf
-#endif
-
-#if defined (_GLIBCXX_HAVE__MODFF) && ! defined (_GLIBCXX_HAVE_MODFF)
-# define _GLIBCXX_HAVE_MODFF 1
-# define modff _modff
-#endif
-
-#if defined (_GLIBCXX_HAVE__MODFL) && ! defined (_GLIBCXX_HAVE_MODFL)
-# define _GLIBCXX_HAVE_MODFL 1
-# define modfl _modfl
-#endif
-
-#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF)
-# define _GLIBCXX_HAVE_POWF 1
-# define powf _powf
-#endif
-
-#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL)
-# define _GLIBCXX_HAVE_POWL 1
-# define powl _powl
-#endif
-
-#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS)
-# define _GLIBCXX_HAVE_QFPCLASS 1
-# define qfpclass _qfpclass
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS)
-# define _GLIBCXX_HAVE_SINCOS 1
-# define sincos _sincos
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF)
-# define _GLIBCXX_HAVE_SINCOSF 1
-# define sincosf _sincosf
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL)
-# define _GLIBCXX_HAVE_SINCOSL 1
-# define sincosl _sincosl
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF)
-# define _GLIBCXX_HAVE_SINF 1
-# define sinf _sinf
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF)
-# define _GLIBCXX_HAVE_SINHF 1
-# define sinhf _sinhf
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL)
-# define _GLIBCXX_HAVE_SINHL 1
-# define sinhl _sinhl
-#endif
-
-#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL)
-# define _GLIBCXX_HAVE_SINL 1
-# define sinl _sinl
-#endif
-
-#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF)
-# define _GLIBCXX_HAVE_SQRTF 1
-# define sqrtf _sqrtf
-#endif
-
-#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL)
-# define _GLIBCXX_HAVE_SQRTL 1
-# define sqrtl _sqrtl
-#endif
-
-#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF)
-# define _GLIBCXX_HAVE_STRTOF 1
-# define strtof _strtof
-#endif
-
-#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD)
-# define _GLIBCXX_HAVE_STRTOLD 1
-# define strtold _strtold
-#endif
-
-#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF)
-# define _GLIBCXX_HAVE_TANF 1
-# define tanf _tanf
-#endif
-
-#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF)
-# define _GLIBCXX_HAVE_TANHF 1
-# define tanhf _tanhf
-#endif
-
-#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL)
-# define _GLIBCXX_HAVE_TANHL 1
-# define tanhl _tanhl
-#endif
-
-#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL)
-# define _GLIBCXX_HAVE_TANL 1
-# define tanl _tanl
-#endif
-
-#endif // _GLIBCXX_CXX_CONFIG_H
+++ /dev/null
-// Specific definitions for generic platforms -*- C++ -*-
-
-// Copyright (C) 2005-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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/cpu_defines.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{iosfwd}
- */
-
-#ifndef _GLIBCXX_CPU_DEFINES
-#define _GLIBCXX_CPU_DEFINES 1
-
-#endif
+++ /dev/null
-// Specific definitions for GNU/Linux -*- C++ -*-
-
-// Copyright (C) 2000-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
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file bits/os_defines.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly. @headername{iosfwd}
- */
-
-#ifndef _GLIBCXX_OS_DEFINES
-#define _GLIBCXX_OS_DEFINES 1
-
-// System-specific #define, typedefs, corrections, etc, go here. This
-// file will come before all others.
-
-// This keeps isalnum, et al from being propagated as macros.
-#define __NO_CTYPE 1
-
-#include <features.h>
-
-// Provide a declaration for the possibly deprecated gets function, as
-// glibc 2.15 and later does not declare gets for ISO C11 when
-// __GNU_SOURCE is defined.
-#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
-# undef _GLIBCXX_HAVE_GETS
-#endif
-
-// Glibc 2.23 removed the obsolete isinf and isnan declarations. Check the
-// version dynamically in case it has changed since libstdc++ was configured.
-#define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)
-
-#if __GLIBC_PREREQ(2, 27)
-// Since glibc 2.27 pthread_self() is usable without linking to libpthread.
-# define _GLIBCXX_NATIVE_THREAD_ID pthread_self()
-#else
-// Before then it was in libc.so.6 but not libc.a, and always returns 0,
-// which breaks the invariant this_thread::get_id() != thread::id{}.
-// So only use it if we know the libpthread version is available.
-// Otherwise use (__gthread_t)1 as the ID of the main (and only) thread.
-# define _GLIBCXX_NATIVE_THREAD_ID \
- (__gthread_active_p() ? __gthread_self() : (__gthread_t)1)
-#endif
-
-#if __GLIBC_PREREQ(2, 34)
-// Since glibc 2.34 all pthreads functions are usable without linking to
-// libpthread.
-# define _GLIBCXX_GTHREAD_USE_WEAK 0
-#endif
-
-#endif
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99 Standard 7.4: Character handling <ctype.h>
- */
-
-#ifndef _CTYPE_H
-#define _CTYPE_H 1
-
-#include <features.h>
-#include <bits/types.h>
-
-__BEGIN_DECLS
-
-#ifndef _ISbit
-/* These are all the characteristics of characters.
- If there get to be more than 16 distinct characteristics,
- many things must be changed that use `unsigned short int's.
-
- The characteristics are stored always in network byte order (big
- endian). We define the bit value interpretations here dependent on the
- machine's byte order. */
-
-# include <bits/endian.h>
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define _ISbit(bit) (1 << (bit))
-# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8))
-# endif
-
-enum
-{
- _ISupper = _ISbit (0), /* UPPERCASE. */
- _ISlower = _ISbit (1), /* lowercase. */
- _ISalpha = _ISbit (2), /* Alphabetic. */
- _ISdigit = _ISbit (3), /* Numeric. */
- _ISxdigit = _ISbit (4), /* Hexadecimal numeric. */
- _ISspace = _ISbit (5), /* Whitespace. */
- _ISprint = _ISbit (6), /* Printing. */
- _ISgraph = _ISbit (7), /* Graphical. */
- _ISblank = _ISbit (8), /* Blank (usually SPC and TAB). */
- _IScntrl = _ISbit (9), /* Control character. */
- _ISpunct = _ISbit (10), /* Punctuation. */
- _ISalnum = _ISbit (11) /* Alphanumeric. */
-};
-#endif /* ! _ISbit */
-
-/* These are defined in ctype-info.c.
- The declarations here must match those in localeinfo.h.
-
- In the thread-specific locale model (see `uselocale' in <locale.h>)
- we cannot use global variables for these as was done in the past.
- Instead, the following accessor functions return the address of
- each variable, which is local to the current thread if multithreaded.
-
- These point into arrays of 384, so they can be indexed by any `unsigned
- char' value [0,255]; by EOF (-1); or by any `signed char' value
- [-128,-1). ISO C requires that the ctype functions work for `unsigned
- char' values and for EOF; we also support negative `signed char' values
- for broken old programs. The case conversion arrays are of `int's
- rather than `unsigned char's because tolower (EOF) must be EOF, which
- doesn't fit into an `unsigned char'. But today more important is that
- the arrays are also used for multi-byte character sets. */
-extern const unsigned short int **__ctype_b_loc (void)
- __THROW __attribute__ ((__const__));
-extern const __int32_t **__ctype_tolower_loc (void)
- __THROW __attribute__ ((__const__));
-extern const __int32_t **__ctype_toupper_loc (void)
- __THROW __attribute__ ((__const__));
-
-
-#ifndef __cplusplus
-# define __isctype(c, type) \
- ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
-#elif defined __USE_EXTERN_INLINES
-# define __isctype_f(type) \
- __extern_inline int \
- is##type (int __c) __THROW \
- { \
- return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _IS##type; \
- }
-#endif
-
-#define __isascii(c) (((c) & ~0x7f) == 0) /* If C is a 7 bit value. */
-#define __toascii(c) ((c) & 0x7f) /* Mask off high bits. */
-
-#define __exctype(name) extern int name (int) __THROW
-
-/* The following names are all functions:
- int isCHARACTERISTIC(int c);
- which return nonzero iff C has CHARACTERISTIC.
- For the meaning of the characteristic names, see the `enum' above. */
-__exctype (isalnum);
-__exctype (isalpha);
-__exctype (iscntrl);
-__exctype (isdigit);
-__exctype (islower);
-__exctype (isgraph);
-__exctype (isprint);
-__exctype (ispunct);
-__exctype (isspace);
-__exctype (isupper);
-__exctype (isxdigit);
-
-
-/* Return the lowercase version of C. */
-extern int tolower (int __c) __THROW;
-
-/* Return the uppercase version of C. */
-extern int toupper (int __c) __THROW;
-
-
-/* ISO C99 introduced one new function. */
-#ifdef __USE_ISOC99
-__exctype (isblank);
-#endif
-
-#ifdef __USE_GNU
-/* Test C for a set of character classes according to MASK. */
-extern int isctype (int __c, int __mask) __THROW;
-#endif
-
-#if defined __USE_MISC || defined __USE_XOPEN
-
-/* Return nonzero iff C is in the ASCII set
- (i.e., is no more than 7 bits wide). */
-extern int isascii (int __c) __THROW;
-
-/* Return the part of C that is in the ASCII set
- (i.e., the low-order 7 bits of C). */
-extern int toascii (int __c) __THROW;
-
-/* These are the same as `toupper' and `tolower' except that they do not
- check the argument for being in the range of a `char'. */
-__exctype (_toupper);
-__exctype (_tolower);
-#endif /* Use X/Open or use misc. */
-
-/* This code is needed for the optimized mapping functions. */
-#define __tobody(c, f, a, args) \
- (__extension__ \
- ({ int __res; \
- if (sizeof (c) > 1) \
- { \
- if (__builtin_constant_p (c)) \
- { \
- int __c = (c); \
- __res = __c < -128 || __c > 255 ? __c : (a)[__c]; \
- } \
- else \
- __res = f args; \
- } \
- else \
- __res = (a)[(int) (c)]; \
- __res; }))
-
-#if !defined __NO_CTYPE
-# ifdef __isctype_f
-__isctype_f (alnum)
-__isctype_f (alpha)
-__isctype_f (cntrl)
-__isctype_f (digit)
-__isctype_f (lower)
-__isctype_f (graph)
-__isctype_f (print)
-__isctype_f (punct)
-__isctype_f (space)
-__isctype_f (upper)
-__isctype_f (xdigit)
-# ifdef __USE_ISOC99
-__isctype_f (blank)
-# endif
-# elif defined __isctype
-# define isalnum(c) __isctype((c), _ISalnum)
-# define isalpha(c) __isctype((c), _ISalpha)
-# define iscntrl(c) __isctype((c), _IScntrl)
-# define isdigit(c) __isctype((c), _ISdigit)
-# define islower(c) __isctype((c), _ISlower)
-# define isgraph(c) __isctype((c), _ISgraph)
-# define isprint(c) __isctype((c), _ISprint)
-# define ispunct(c) __isctype((c), _ISpunct)
-# define isspace(c) __isctype((c), _ISspace)
-# define isupper(c) __isctype((c), _ISupper)
-# define isxdigit(c) __isctype((c), _ISxdigit)
-# ifdef __USE_ISOC99
-# define isblank(c) __isctype((c), _ISblank)
-# endif
-# endif
-
-# ifdef __USE_EXTERN_INLINES
-__extern_inline int
-__NTH (tolower (int __c))
-{
- return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
-}
-
-__extern_inline int
-__NTH (toupper (int __c))
-{
- return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
-}
-# endif
-
-# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
-# define tolower(c) __tobody (c, tolower, *__ctype_tolower_loc (), (c))
-# define toupper(c) __tobody (c, toupper, *__ctype_toupper_loc (), (c))
-# endif /* Optimizing gcc */
-
-# if defined __USE_MISC || defined __USE_XOPEN
-# define isascii(c) __isascii (c)
-# define toascii(c) __toascii (c)
-
-# define _tolower(c) ((int) (*__ctype_tolower_loc ())[(int) (c)])
-# define _toupper(c) ((int) (*__ctype_toupper_loc ())[(int) (c)])
-# endif
-
-#endif /* Not __NO_CTYPE. */
-
-
-#ifdef __USE_XOPEN2K8
-/* POSIX.1-2008 extended locale interface (see locale.h). */
-# include <bits/types/locale_t.h>
-
-/* These definitions are similar to the ones above but all functions
- take as an argument a handle for the locale which shall be used. */
-# define __isctype_l(c, type, locale) \
- ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
-
-# define __exctype_l(name) \
- extern int name (int, locale_t) __THROW
-
-/* The following names are all functions:
- int isCHARACTERISTIC(int c, locale_t *locale);
- which return nonzero iff C has CHARACTERISTIC.
- For the meaning of the characteristic names, see the `enum' above. */
-__exctype_l (isalnum_l);
-__exctype_l (isalpha_l);
-__exctype_l (iscntrl_l);
-__exctype_l (isdigit_l);
-__exctype_l (islower_l);
-__exctype_l (isgraph_l);
-__exctype_l (isprint_l);
-__exctype_l (ispunct_l);
-__exctype_l (isspace_l);
-__exctype_l (isupper_l);
-__exctype_l (isxdigit_l);
-
-__exctype_l (isblank_l);
-
-
-/* Return the lowercase version of C in locale L. */
-extern int __tolower_l (int __c, locale_t __l) __THROW;
-extern int tolower_l (int __c, locale_t __l) __THROW;
-
-/* Return the uppercase version of C. */
-extern int __toupper_l (int __c, locale_t __l) __THROW;
-extern int toupper_l (int __c, locale_t __l) __THROW;
-
-# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
-# define __tolower_l(c, locale) \
- __tobody (c, __tolower_l, (locale)->__ctype_tolower, (c, locale))
-# define __toupper_l(c, locale) \
- __tobody (c, __toupper_l, (locale)->__ctype_toupper, (c, locale))
-# define tolower_l(c, locale) __tolower_l ((c), (locale))
-# define toupper_l(c, locale) __toupper_l ((c), (locale))
-# endif /* Optimizing gcc */
-
-
-# ifndef __NO_CTYPE
-# define __isalnum_l(c,l) __isctype_l((c), _ISalnum, (l))
-# define __isalpha_l(c,l) __isctype_l((c), _ISalpha, (l))
-# define __iscntrl_l(c,l) __isctype_l((c), _IScntrl, (l))
-# define __isdigit_l(c,l) __isctype_l((c), _ISdigit, (l))
-# define __islower_l(c,l) __isctype_l((c), _ISlower, (l))
-# define __isgraph_l(c,l) __isctype_l((c), _ISgraph, (l))
-# define __isprint_l(c,l) __isctype_l((c), _ISprint, (l))
-# define __ispunct_l(c,l) __isctype_l((c), _ISpunct, (l))
-# define __isspace_l(c,l) __isctype_l((c), _ISspace, (l))
-# define __isupper_l(c,l) __isctype_l((c), _ISupper, (l))
-# define __isxdigit_l(c,l) __isctype_l((c), _ISxdigit, (l))
-
-# define __isblank_l(c,l) __isctype_l((c), _ISblank, (l))
-
-# ifdef __USE_MISC
-# define __isascii_l(c,l) ((l), __isascii (c))
-# define __toascii_l(c,l) ((l), __toascii (c))
-# endif
-
-# define isalnum_l(c,l) __isalnum_l ((c), (l))
-# define isalpha_l(c,l) __isalpha_l ((c), (l))
-# define iscntrl_l(c,l) __iscntrl_l ((c), (l))
-# define isdigit_l(c,l) __isdigit_l ((c), (l))
-# define islower_l(c,l) __islower_l ((c), (l))
-# define isgraph_l(c,l) __isgraph_l ((c), (l))
-# define isprint_l(c,l) __isprint_l ((c), (l))
-# define ispunct_l(c,l) __ispunct_l ((c), (l))
-# define isspace_l(c,l) __isspace_l ((c), (l))
-# define isupper_l(c,l) __isupper_l ((c), (l))
-# define isxdigit_l(c,l) __isxdigit_l ((c), (l))
-
-# define isblank_l(c,l) __isblank_l ((c), (l))
-
-# ifdef __USE_MISC
-# define isascii_l(c,l) __isascii_l ((c), (l))
-# define toascii_l(c,l) __toascii_l ((c), (l))
-# endif
-
-# endif /* Not __NO_CTYPE. */
-
-#endif /* Use POSIX 2008. */
-
-__END_DECLS
-
-#endif /* ctype.h */
+++ /dev/null
-/* Copyright (C) 1992-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _ENDIAN_H
-#define _ENDIAN_H 1
-
-#include <features.h>
-
-/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */
-#include <bits/endian.h>
-
-#ifdef __USE_MISC
-# define LITTLE_ENDIAN __LITTLE_ENDIAN
-# define BIG_ENDIAN __BIG_ENDIAN
-# define PDP_ENDIAN __PDP_ENDIAN
-# define BYTE_ORDER __BYTE_ORDER
-#endif
-
-#if defined __USE_MISC && !defined __ASSEMBLER__
-/* Conversion interfaces. */
-# include <bits/byteswap.h>
-# include <bits/uintn-identity.h>
-
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define htobe16(x) __bswap_16 (x)
-# define htole16(x) __uint16_identity (x)
-# define be16toh(x) __bswap_16 (x)
-# define le16toh(x) __uint16_identity (x)
-
-# define htobe32(x) __bswap_32 (x)
-# define htole32(x) __uint32_identity (x)
-# define be32toh(x) __bswap_32 (x)
-# define le32toh(x) __uint32_identity (x)
-
-# define htobe64(x) __bswap_64 (x)
-# define htole64(x) __uint64_identity (x)
-# define be64toh(x) __bswap_64 (x)
-# define le64toh(x) __uint64_identity (x)
-
-# else
-# define htobe16(x) __uint16_identity (x)
-# define htole16(x) __bswap_16 (x)
-# define be16toh(x) __uint16_identity (x)
-# define le16toh(x) __bswap_16 (x)
-
-# define htobe32(x) __uint32_identity (x)
-# define htole32(x) __bswap_32 (x)
-# define be32toh(x) __uint32_identity (x)
-# define le32toh(x) __bswap_32 (x)
-
-# define htobe64(x) __uint64_identity (x)
-# define htole64(x) __bswap_64 (x)
-# define be64toh(x) __uint64_identity (x)
-# define le64toh(x) __bswap_64 (x)
-# endif
-#endif
-
-#endif /* endian.h */
+++ /dev/null
-/* Features part to handle 64-bit time_t support.
- Copyright (C) 2021-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* We need to know the word size in order to check the time size. */
-#include <bits/wordsize.h>
-#include <bits/timesize.h>
-
-#if defined _TIME_BITS
-# if _TIME_BITS == 64
-# if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
-# error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
-# elif __TIMESIZE == 32
-# define __USE_TIME_BITS64 1
-# endif
-# elif _TIME_BITS == 32
-# if __TIMESIZE > 32
-# error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32"
-# endif
-# else
-# error Invalid _TIME_BITS value (can only be 32 or 64-bit)
-# endif
-#endif
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _FEATURES_H
-#define _FEATURES_H 1
-
-/* These are defined by the user (or the compiler)
- to specify the desired environment:
-
- __STRICT_ANSI__ ISO Standard C.
- _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
- _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
- _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
- __STDC_WANT_LIB_EXT2__
- Extensions to ISO C99 from TR 27431-2:2010.
- __STDC_WANT_IEC_60559_BFP_EXT__
- Extensions to ISO C11 from TS 18661-1:2014.
- __STDC_WANT_IEC_60559_FUNCS_EXT__
- Extensions to ISO C11 from TS 18661-4:2015.
- __STDC_WANT_IEC_60559_TYPES_EXT__
- Extensions to ISO C11 from TS 18661-3:2015.
- __STDC_WANT_IEC_60559_EXT__
- ISO C2X interfaces defined only in Annex F.
-
- _POSIX_SOURCE IEEE Std 1003.1.
- _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
- if >=199309L, add IEEE Std 1003.1b-1993;
- if >=199506L, add IEEE Std 1003.1c-1995;
- if >=200112L, all of IEEE 1003.1-2004
- if >=200809L, all of IEEE 1003.1-2008
- _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
- Single Unix conformance is wanted, to 600 for the
- sixth revision, to 700 for the seventh revision.
- _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
- _LARGEFILE_SOURCE Some more functions for correct standard I/O.
- _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
- _FILE_OFFSET_BITS=N Select default filesystem interface.
- _ATFILE_SOURCE Additional *at interfaces.
- _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
- MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
- _GNU_SOURCE All of the above, plus GNU extensions.
- _DEFAULT_SOURCE The default set of features (taking precedence over
- __STRICT_ANSI__).
-
- _FORTIFY_SOURCE Add security hardening to many library functions.
- Set to 1 or 2; 2 performs stricter checks than 1.
-
- _REENTRANT, _THREAD_SAFE
- Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
-
- The `-ansi' switch to the GNU C compiler, and standards conformance
- options such as `-std=c99', define __STRICT_ANSI__. If none of
- these are defined, or if _DEFAULT_SOURCE is defined, the default is
- to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
- 200809L, as well as enabling miscellaneous functions from BSD and
- SVID. If more than one of these are defined, they accumulate. For
- example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
- give you ISO C, 1003.1, and 1003.2, but nothing else.
-
- These are defined by this file and are used by the
- header files to decide what to declare or define:
-
- __GLIBC_USE (F) Define things from feature set F. This is defined
- to 1 or 0; the subsequent macros are either defined
- or undefined, and those tests should be moved to
- __GLIBC_USE.
- __USE_ISOC11 Define ISO C11 things.
- __USE_ISOC99 Define ISO C99 things.
- __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
- __USE_ISOCXX11 Define ISO C++11 things.
- __USE_POSIX Define IEEE Std 1003.1 things.
- __USE_POSIX2 Define IEEE Std 1003.2 things.
- __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
- __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
- __USE_XOPEN Define XPG things.
- __USE_XOPEN_EXTENDED Define X/Open Unix things.
- __USE_UNIX98 Define Single Unix V2 things.
- __USE_XOPEN2K Define XPG6 things.
- __USE_XOPEN2KXSI Define XPG6 XSI things.
- __USE_XOPEN2K8 Define XPG7 things.
- __USE_XOPEN2K8XSI Define XPG7 XSI things.
- __USE_LARGEFILE Define correct standard I/O things.
- __USE_LARGEFILE64 Define LFS things with separate names.
- __USE_FILE_OFFSET64 Define 64bit interface as default.
- __USE_MISC Define things from 4.3BSD or System V Unix.
- __USE_ATFILE Define *at interfaces and AT_* constants for them.
- __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
- MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
- __USE_GNU Define GNU extensions.
- __USE_FORTIFY_LEVEL Additional security measures used, according to level.
-
- The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
- defined by this file unconditionally. `__GNU_LIBRARY__' is provided
- only for compatibility. All new code should use the other symbols
- to test for features.
-
- All macros listed above as possibly being defined by this file are
- explicitly undefined if they are not explicitly defined.
- Feature-test macros that are not defined by the user or compiler
- but are implied by the other feature-test macros defined (or by the
- lack of any definitions) are defined by the file.
-
- ISO C feature test macros depend on the definition of the macro
- when an affected header is included, not when the first system
- header is included, and so they are handled in
- <bits/libc-header-start.h>, which does not have a multiple include
- guard. Feature test macros that can be handled from the first
- system header included are handled here. */
-
-
-/* Undefine everything, so we get a clean slate. */
-#undef __USE_ISOC11
-#undef __USE_ISOC99
-#undef __USE_ISOC95
-#undef __USE_ISOCXX11
-#undef __USE_POSIX
-#undef __USE_POSIX2
-#undef __USE_POSIX199309
-#undef __USE_POSIX199506
-#undef __USE_XOPEN
-#undef __USE_XOPEN_EXTENDED
-#undef __USE_UNIX98
-#undef __USE_XOPEN2K
-#undef __USE_XOPEN2KXSI
-#undef __USE_XOPEN2K8
-#undef __USE_XOPEN2K8XSI
-#undef __USE_LARGEFILE
-#undef __USE_LARGEFILE64
-#undef __USE_FILE_OFFSET64
-#undef __USE_MISC
-#undef __USE_ATFILE
-#undef __USE_DYNAMIC_STACK_SIZE
-#undef __USE_GNU
-#undef __USE_FORTIFY_LEVEL
-#undef __KERNEL_STRICT_NAMES
-#undef __GLIBC_USE_ISOC2X
-#undef __GLIBC_USE_DEPRECATED_GETS
-#undef __GLIBC_USE_DEPRECATED_SCANF
-
-/* Suppress kernel-name space pollution unless user expressedly asks
- for it. */
-#ifndef _LOOSE_KERNEL_NAMES
-# define __KERNEL_STRICT_NAMES
-#endif
-
-/* Convenience macro to test the version of gcc.
- Use like this:
- #if __GNUC_PREREQ (2,8)
- ... code requiring gcc 2.8 or later ...
- #endif
- Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
- added in 2.0. */
-#if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-#else
-# define __GNUC_PREREQ(maj, min) 0
-#endif
-
-/* Similarly for clang. Features added to GCC after version 4.2 may
- or may not also be available in clang, and clang's definitions of
- __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
- features can be queried via __has_extension/__has_feature. */
-#if defined __clang_major__ && defined __clang_minor__
-# define __glibc_clang_prereq(maj, min) \
- ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
-#else
-# define __glibc_clang_prereq(maj, min) 0
-#endif
-
-/* Whether to use feature set F. */
-#define __GLIBC_USE(F) __GLIBC_USE_ ## F
-
-/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
- _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
- issue a warning; the expectation is that the source is being
- transitioned to use the new macro. */
-#if (defined _BSD_SOURCE || defined _SVID_SOURCE) \
- && !defined _DEFAULT_SOURCE
-# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
-# undef _DEFAULT_SOURCE
-# define _DEFAULT_SOURCE 1
-#endif
-
-/* If _GNU_SOURCE was defined by the user, turn on all the other features. */
-#ifdef _GNU_SOURCE
-# undef _ISOC95_SOURCE
-# define _ISOC95_SOURCE 1
-# undef _ISOC99_SOURCE
-# define _ISOC99_SOURCE 1
-# undef _ISOC11_SOURCE
-# define _ISOC11_SOURCE 1
-# undef _ISOC2X_SOURCE
-# define _ISOC2X_SOURCE 1
-# undef _POSIX_SOURCE
-# define _POSIX_SOURCE 1
-# undef _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE 200809L
-# undef _XOPEN_SOURCE
-# define _XOPEN_SOURCE 700
-# undef _XOPEN_SOURCE_EXTENDED
-# define _XOPEN_SOURCE_EXTENDED 1
-# undef _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE 1
-# undef _DEFAULT_SOURCE
-# define _DEFAULT_SOURCE 1
-# undef _ATFILE_SOURCE
-# define _ATFILE_SOURCE 1
-# undef _DYNAMIC_STACK_SIZE_SOURCE
-# define _DYNAMIC_STACK_SIZE_SOURCE 1
-#endif
-
-/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
- define _DEFAULT_SOURCE. */
-#if (defined _DEFAULT_SOURCE \
- || (!defined __STRICT_ANSI__ \
- && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \
- && !defined _ISOC2X_SOURCE \
- && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \
- && !defined _XOPEN_SOURCE))
-# undef _DEFAULT_SOURCE
-# define _DEFAULT_SOURCE 1
-#endif
-
-/* This is to enable the ISO C2X extension. */
-#if (defined _ISOC2X_SOURCE \
- || (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L))
-# define __GLIBC_USE_ISOC2X 1
-#else
-# define __GLIBC_USE_ISOC2X 0
-#endif
-
-/* This is to enable the ISO C11 extension. */
-#if (defined _ISOC11_SOURCE || defined _ISOC2X_SOURCE \
- || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L))
-# define __USE_ISOC11 1
-#endif
-
-/* This is to enable the ISO C99 extension. */
-#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
- || defined _ISOC2X_SOURCE \
- || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
-# define __USE_ISOC99 1
-#endif
-
-/* This is to enable the ISO C90 Amendment 1:1995 extension. */
-#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
- || defined _ISOC2X_SOURCE \
- || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
-# define __USE_ISOC95 1
-#endif
-
-#ifdef __cplusplus
-/* This is to enable compatibility for ISO C++17. */
-# if __cplusplus >= 201703L
-# define __USE_ISOC11 1
-# endif
-/* This is to enable compatibility for ISO C++11.
- Check the temporary macro for now, too. */
-# if __cplusplus >= 201103L || defined __GXX_EXPERIMENTAL_CXX0X__
-# define __USE_ISOCXX11 1
-# define __USE_ISOC99 1
-# endif
-#endif
-
-/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
- is defined, use POSIX.1-2008 (or another version depending on
- _XOPEN_SOURCE). */
-#ifdef _DEFAULT_SOURCE
-# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE
-# define __USE_POSIX_IMPLICITLY 1
-# endif
-# undef _POSIX_SOURCE
-# define _POSIX_SOURCE 1
-# undef _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE 200809L
-#endif
-
-#if ((!defined __STRICT_ANSI__ \
- || (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \
- && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
-# define _POSIX_SOURCE 1
-# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
-# define _POSIX_C_SOURCE 2
-# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
-# define _POSIX_C_SOURCE 199506L
-# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700
-# define _POSIX_C_SOURCE 200112L
-# else
-# define _POSIX_C_SOURCE 200809L
-# endif
-# define __USE_POSIX_IMPLICITLY 1
-#endif
-
-/* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
- defined in all multithreaded code. GNU libc has not required this
- for many years. We now treat them as compatibility synonyms for
- _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
- comprehensive support for multithreaded code. Using them never
- lowers the selected level of POSIX conformance, only raises it. */
-#if ((!defined _POSIX_C_SOURCE || (_POSIX_C_SOURCE - 0) < 199506L) \
- && (defined _REENTRANT || defined _THREAD_SAFE))
-# define _POSIX_SOURCE 1
-# undef _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE 199506L
-#endif
-
-#if (defined _POSIX_SOURCE \
- || (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \
- || defined _XOPEN_SOURCE)
-# define __USE_POSIX 1
-#endif
-
-#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
-# define __USE_POSIX2 1
-#endif
-
-#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L
-# define __USE_POSIX199309 1
-#endif
-
-#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L
-# define __USE_POSIX199506 1
-#endif
-
-#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L
-# define __USE_XOPEN2K 1
-# undef __USE_ISOC95
-# define __USE_ISOC95 1
-# undef __USE_ISOC99
-# define __USE_ISOC99 1
-#endif
-
-#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L
-# define __USE_XOPEN2K8 1
-# undef _ATFILE_SOURCE
-# define _ATFILE_SOURCE 1
-#endif
-
-#ifdef _XOPEN_SOURCE
-# define __USE_XOPEN 1
-# if (_XOPEN_SOURCE - 0) >= 500
-# define __USE_XOPEN_EXTENDED 1
-# define __USE_UNIX98 1
-# undef _LARGEFILE_SOURCE
-# define _LARGEFILE_SOURCE 1
-# if (_XOPEN_SOURCE - 0) >= 600
-# if (_XOPEN_SOURCE - 0) >= 700
-# define __USE_XOPEN2K8 1
-# define __USE_XOPEN2K8XSI 1
-# endif
-# define __USE_XOPEN2K 1
-# define __USE_XOPEN2KXSI 1
-# undef __USE_ISOC95
-# define __USE_ISOC95 1
-# undef __USE_ISOC99
-# define __USE_ISOC99 1
-# endif
-# else
-# ifdef _XOPEN_SOURCE_EXTENDED
-# define __USE_XOPEN_EXTENDED 1
-# endif
-# endif
-#endif
-
-#ifdef _LARGEFILE_SOURCE
-# define __USE_LARGEFILE 1
-#endif
-
-#ifdef _LARGEFILE64_SOURCE
-# define __USE_LARGEFILE64 1
-#endif
-
-#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
-# define __USE_FILE_OFFSET64 1
-#endif
-
-#include <features-time64.h>
-
-#if defined _DEFAULT_SOURCE
-# define __USE_MISC 1
-#endif
-
-#ifdef _ATFILE_SOURCE
-# define __USE_ATFILE 1
-#endif
-
-#ifdef _DYNAMIC_STACK_SIZE_SOURCE
-# define __USE_DYNAMIC_STACK_SIZE 1
-#endif
-
-#ifdef _GNU_SOURCE
-# define __USE_GNU 1
-#endif
-
-#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0
-# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
-# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
-# elif !__GNUC_PREREQ (4, 1)
-# warning _FORTIFY_SOURCE requires GCC 4.1 or later
-# elif _FORTIFY_SOURCE > 2 && (__glibc_clang_prereq (9, 0) \
- || __GNUC_PREREQ (12, 0))
-
-# if _FORTIFY_SOURCE > 3
-# warning _FORTIFY_SOURCE > 3 is treated like 3 on this platform
-# endif
-# define __USE_FORTIFY_LEVEL 3
-# elif _FORTIFY_SOURCE > 1
-# if _FORTIFY_SOURCE > 2
-# warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform
-# endif
-# define __USE_FORTIFY_LEVEL 2
-# else
-# define __USE_FORTIFY_LEVEL 1
-# endif
-#endif
-#ifndef __USE_FORTIFY_LEVEL
-# define __USE_FORTIFY_LEVEL 0
-#endif
-
-/* The function 'gets' existed in C89, but is impossible to use
- safely. It has been removed from ISO C11 and ISO C++14. Note: for
- compatibility with various implementations of <cstdio>, this test
- must consider only the value of __cplusplus when compiling C++. */
-#if defined __cplusplus ? __cplusplus >= 201402L : defined __USE_ISOC11
-# define __GLIBC_USE_DEPRECATED_GETS 0
-#else
-# define __GLIBC_USE_DEPRECATED_GETS 1
-#endif
-
-/* GNU formerly extended the scanf functions with modified format
- specifiers %as, %aS, and %a[...] that allocate a buffer for the
- input using malloc. This extension conflicts with ISO C99, which
- defines %a as a standalone format specifier that reads a floating-
- point number; moreover, POSIX.1-2008 provides the same feature
- using the modifier letter 'm' instead (%ms, %mS, %m[...]).
-
- We now follow C99 unless GNU extensions are active and the compiler
- is specifically in C89 or C++98 mode (strict or not). For
- instance, with GCC, -std=gnu11 will have C99-compliant scanf with
- or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
- old extension. */
-#if (defined __USE_GNU \
- && (defined __cplusplus \
- ? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \
- : (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L)))
-# define __GLIBC_USE_DEPRECATED_SCANF 1
-#else
-# define __GLIBC_USE_DEPRECATED_SCANF 0
-#endif
-
-/* Get definitions of __STDC_* predefined macros, if the compiler has
- not preincluded this header automatically. */
-#include <stdc-predef.h>
-
-/* This macro indicates that the installed library is the GNU C Library.
- For historic reasons the value now is 6 and this will stay from now
- on. The use of this variable is deprecated. Use __GLIBC__ and
- __GLIBC_MINOR__ now (see below) when you want to test for a specific
- GNU C library version and use the values in <gnu/lib-names.h> to get
- the sonames of the shared libraries. */
-#undef __GNU_LIBRARY__
-#define __GNU_LIBRARY__ 6
-
-/* Major and minor version number of the GNU C library package. Use
- these macros to test for features in specific releases. */
-#define __GLIBC__ 2
-#define __GLIBC_MINOR__ 36
-
-#define __GLIBC_PREREQ(maj, min) \
- ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
-
-/* This is here only because every header file already includes this one. */
-#ifndef __ASSEMBLER__
-# ifndef _SYS_CDEFS_H
-# include <sys/cdefs.h>
-# endif
-
-/* If we don't have __REDIRECT, prototypes will be missing if
- __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
-# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
-# define __USE_LARGEFILE 1
-# define __USE_LARGEFILE64 1
-# endif
-
-#endif /* !ASSEMBLER */
-
-/* Decide whether we can define 'extern inline' functions in headers. */
-#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
- && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
- && defined __extern_inline
-# define __USE_EXTERN_INLINES 1
-#endif
-
-
-/* This is here only because every header file already includes this one.
- Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
- <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
- that will always return failure (and set errno to ENOSYS). */
-#include <gnu/stubs.h>
-
-
-#endif /* features.h */
+++ /dev/null
-/* This file is automatically generated.
- It defines a symbol `__stub_FUNCTION' for each function
- in the C library which is a stub, meaning it will fail
- every time called, usually setting errno to ENOSYS. */
-
-#ifdef _LIBC
- #error Applications may not define the macro _LIBC
-#endif
-
-#define __stub___compat_bdflush
-#define __stub_chflags
-#define __stub_fchflags
-#define __stub_gtty
-#define __stub_revoke
-#define __stub_setlogin
-#define __stub_sigreturn
-#define __stub_stty
+++ /dev/null
-/* This file is automatically generated.
- This file selects the right generated file of `__stub_FUNCTION' macros
- based on the architecture being compiled for. */
-
-
-#if !defined __x86_64__
-# include <gnu/stubs-32.h>
-#endif
-#if defined __x86_64__ && defined __LP64__
-# include <gnu/stubs-64.h>
-#endif
-#if defined __x86_64__ && defined __ILP32__
-# include <gnu/stubs-x32.h>
-#endif
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _STDC_PREDEF_H
-#define _STDC_PREDEF_H 1
-
-/* This header is separate from features.h so that the compiler can
- include it implicitly at the start of every compilation. It must
- not itself include <features.h> or any other header that includes
- <features.h> because the implicit include comes before any feature
- test macros that may be defined in a source file before it first
- explicitly includes a system header. GCC knows the name of this
- header in order to preinclude it. */
-
-/* glibc's intent is to support the IEC 559 math functionality, real
- and complex. If the GCC (4.9 and later) predefined macros
- specifying compiler intent are available, use them to determine
- whether the overall intent is to support these features; otherwise,
- presume an older compiler has intent to support these features and
- define these macros by default. */
-
-#ifdef __GCC_IEC_559
-# if __GCC_IEC_559 > 0
-# define __STDC_IEC_559__ 1
-# define __STDC_IEC_60559_BFP__ 201404L
-# endif
-#else
-# define __STDC_IEC_559__ 1
-# define __STDC_IEC_60559_BFP__ 201404L
-#endif
-
-#ifdef __GCC_IEC_559_COMPLEX
-# if __GCC_IEC_559_COMPLEX > 0
-# define __STDC_IEC_559_COMPLEX__ 1
-# define __STDC_IEC_60559_COMPLEX__ 201404L
-# endif
-#else
-# define __STDC_IEC_559_COMPLEX__ 1
-# define __STDC_IEC_60559_COMPLEX__ 201404L
-#endif
-
-/* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is
- synchronized with ISO/IEC 10646:2017, fifth edition, plus
- the following additions from Amendment 1 to the fifth edition:
- - 56 emoji characters
- - 285 hentaigana
- - 3 additional Zanabazar Square characters */
-#define __STDC_ISO_10646__ 201706L
-
-#endif
+++ /dev/null
-/* Define ISO C stdio on top of C++ iostreams.
- Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99 Standard: 7.19 Input/output <stdio.h>
- */
-
-#ifndef _STDIO_H
-#define _STDIO_H 1
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-
-__BEGIN_DECLS
-
-#define __need_size_t
-#define __need_NULL
-#include <stddef.h>
-
-#define __need___va_list
-#include <stdarg.h>
-
-#include <bits/types.h>
-#include <bits/types/__fpos_t.h>
-#include <bits/types/__fpos64_t.h>
-#include <bits/types/__FILE.h>
-#include <bits/types/FILE.h>
-#include <bits/types/struct_FILE.h>
-
-#ifdef __USE_GNU
-# include <bits/types/cookie_io_functions_t.h>
-#endif
-
-#if defined __USE_XOPEN || defined __USE_XOPEN2K8
-# ifdef __GNUC__
-# ifndef _VA_LIST_DEFINED
-typedef __gnuc_va_list va_list;
-# define _VA_LIST_DEFINED
-# endif
-# else
-# include <stdarg.h>
-# endif
-#endif
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-# ifndef __off_t_defined
-# ifndef __USE_FILE_OFFSET64
-typedef __off_t off_t;
-# else
-typedef __off64_t off_t;
-# endif
-# define __off_t_defined
-# endif
-# if defined __USE_LARGEFILE64 && !defined __off64_t_defined
-typedef __off64_t off64_t;
-# define __off64_t_defined
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K8
-# ifndef __ssize_t_defined
-typedef __ssize_t ssize_t;
-# define __ssize_t_defined
-# endif
-#endif
-
-/* The type of the second argument to `fgetpos' and `fsetpos'. */
-#ifndef __USE_FILE_OFFSET64
-typedef __fpos_t fpos_t;
-#else
-typedef __fpos64_t fpos_t;
-#endif
-#ifdef __USE_LARGEFILE64
-typedef __fpos64_t fpos64_t;
-#endif
-
-/* The possibilities for the third argument to `setvbuf'. */
-#define _IOFBF 0 /* Fully buffered. */
-#define _IOLBF 1 /* Line buffered. */
-#define _IONBF 2 /* No buffering. */
-
-
-/* Default buffer size. */
-#define BUFSIZ 8192
-
-
-/* The value returned by fgetc and similar functions to indicate the
- end of the file. */
-#define EOF (-1)
-
-
-/* The possibilities for the third argument to `fseek'.
- These values should not be changed. */
-#define SEEK_SET 0 /* Seek from beginning of file. */
-#define SEEK_CUR 1 /* Seek from current position. */
-#define SEEK_END 2 /* Seek from end of file. */
-#ifdef __USE_GNU
-# define SEEK_DATA 3 /* Seek to next data. */
-# define SEEK_HOLE 4 /* Seek to next hole. */
-#endif
-
-
-#if defined __USE_MISC || defined __USE_XOPEN
-/* Default path prefix for `tempnam' and `tmpnam'. */
-# define P_tmpdir "/tmp"
-#endif
-
-
-/* Get the values:
- L_tmpnam How long an array of chars must be to be passed to `tmpnam'.
- TMP_MAX The minimum number of unique filenames generated by tmpnam
- (and tempnam when it uses tmpnam's name space),
- or tempnam (the two are separate).
- L_ctermid How long an array to pass to `ctermid'.
- L_cuserid How long an array to pass to `cuserid'.
- FOPEN_MAX Minimum number of files that can be open at once.
- FILENAME_MAX Maximum length of a filename. */
-#include <bits/stdio_lim.h>
-
-
-#if __GLIBC_USE (ISOC2X)
-/* Maximum length of printf output for a NaN. */
-# define _PRINTF_NAN_LEN_MAX 4
-#endif
-
-
-/* Standard streams. */
-extern FILE *stdin; /* Standard input stream. */
-extern FILE *stdout; /* Standard output stream. */
-extern FILE *stderr; /* Standard error output stream. */
-/* C89/C99 say they're macros. Make them happy. */
-#define stdin stdin
-#define stdout stdout
-#define stderr stderr
-
-/* Remove file FILENAME. */
-extern int remove (const char *__filename) __THROW;
-/* Rename file OLD to NEW. */
-extern int rename (const char *__old, const char *__new) __THROW;
-
-#ifdef __USE_ATFILE
-/* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */
-extern int renameat (int __oldfd, const char *__old, int __newfd,
- const char *__new) __THROW;
-#endif
-
-#ifdef __USE_GNU
-/* Flags for renameat2. */
-# define RENAME_NOREPLACE (1 << 0)
-# define RENAME_EXCHANGE (1 << 1)
-# define RENAME_WHITEOUT (1 << 2)
-
-/* Rename file OLD relative to OLDFD to NEW relative to NEWFD, with
- additional flags. */
-extern int renameat2 (int __oldfd, const char *__old, int __newfd,
- const char *__new, unsigned int __flags) __THROW;
-#endif
-
-/* Close STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fclose (FILE *__stream);
-
-#undef __attr_dealloc_fclose
-#define __attr_dealloc_fclose __attr_dealloc (fclose, 1)
-
-/* Create a temporary file and open it read/write.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-#ifndef __USE_FILE_OFFSET64
-extern FILE *tmpfile (void)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-#else
-# ifdef __REDIRECT
-extern FILE *__REDIRECT (tmpfile, (void), tmpfile64)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-# else
-# define tmpfile tmpfile64
-# endif
-#endif
-
-#ifdef __USE_LARGEFILE64
-extern FILE *tmpfile64 (void)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-#endif
-
-/* Generate a temporary filename. */
-extern char *tmpnam (char[L_tmpnam]) __THROW __wur;
-
-#ifdef __USE_MISC
-/* This is the reentrant variant of `tmpnam'. The only difference is
- that it does not allow S to be NULL. */
-extern char *tmpnam_r (char __s[L_tmpnam]) __THROW __wur;
-#endif
-
-
-#if defined __USE_MISC || defined __USE_XOPEN
-/* Generate a unique temporary filename using up to five characters of PFX
- if it is not NULL. The directory to put this file in is searched for
- as follows: First the environment variable "TMPDIR" is checked.
- If it contains the name of a writable directory, that directory is used.
- If not and if DIR is not NULL, that value is checked. If that fails,
- P_tmpdir is tried and finally "/tmp". The storage for the filename
- is allocated by `malloc'. */
-extern char *tempnam (const char *__dir, const char *__pfx)
- __THROW __attribute_malloc__ __wur __attr_dealloc_free;
-#endif
-
-/* Flush STREAM, or all streams if STREAM is NULL.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fflush (FILE *__stream);
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not required.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fflush_unlocked (FILE *__stream);
-#endif
-
-#ifdef __USE_GNU
-/* Close all streams.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fcloseall (void);
-#endif
-
-
-#ifndef __USE_FILE_OFFSET64
-/* Open a file and create a new stream for it.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern FILE *fopen (const char *__restrict __filename,
- const char *__restrict __modes)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-/* Open a file, replacing an existing stream with it.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern FILE *freopen (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream) __wur;
-#else
-# ifdef __REDIRECT
-extern FILE *__REDIRECT (fopen, (const char *__restrict __filename,
- const char *__restrict __modes), fopen64)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-extern FILE *__REDIRECT (freopen, (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream), freopen64)
- __wur;
-# else
-# define fopen fopen64
-# define freopen freopen64
-# endif
-#endif
-#ifdef __USE_LARGEFILE64
-extern FILE *fopen64 (const char *__restrict __filename,
- const char *__restrict __modes)
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-extern FILE *freopen64 (const char *__restrict __filename,
- const char *__restrict __modes,
- FILE *__restrict __stream) __wur;
-#endif
-
-#ifdef __USE_POSIX
-/* Create a new stream that refers to an existing system file descriptor. */
-extern FILE *fdopen (int __fd, const char *__modes) __THROW
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-#endif
-
-#ifdef __USE_GNU
-/* Create a new stream that refers to the given magic cookie,
- and uses the given functions for input and output. */
-extern FILE *fopencookie (void *__restrict __magic_cookie,
- const char *__restrict __modes,
- cookie_io_functions_t __io_funcs) __THROW
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-#endif
-
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2)
-/* Create a new stream that refers to a memory buffer. */
-extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
- __THROW __attribute_malloc__ __attr_dealloc_fclose __wur;
-
-/* Open a stream that writes into a malloc'd buffer that is expanded as
- necessary. *BUFLOC and *SIZELOC are updated with the buffer's location
- and the number of characters written on fflush or fclose. */
-extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW
- __attribute_malloc__ __attr_dealloc_fclose __wur;
-
-#ifdef _WCHAR_H
-/* Like OPEN_MEMSTREAM, but the stream is wide oriented and produces
- a wide character string. Declared here only to add attribute malloc
- and only if <wchar.h> has been previously #included. */
-extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) __THROW
- __attribute_malloc__ __attr_dealloc_fclose;
-# endif
-#endif
-
-/* If BUF is NULL, make STREAM unbuffered.
- Else make it use buffer BUF, of size BUFSIZ. */
-extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __THROW;
-/* Make STREAM use buffering mode MODE.
- If BUF is not NULL, use N bytes of it for buffering;
- else allocate an internal buffer N bytes long. */
-extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
- int __modes, size_t __n) __THROW;
-
-#ifdef __USE_MISC
-/* If BUF is NULL, make STREAM unbuffered.
- Else make it use SIZE bytes of BUF for buffering. */
-extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
- size_t __size) __THROW;
-
-/* Make STREAM line-buffered. */
-extern void setlinebuf (FILE *__stream) __THROW;
-#endif
-
-
-/* Write formatted output to STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fprintf (FILE *__restrict __stream,
- const char *__restrict __format, ...);
-/* Write formatted output to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int printf (const char *__restrict __format, ...);
-/* Write formatted output to S. */
-extern int sprintf (char *__restrict __s,
- const char *__restrict __format, ...) __THROWNL;
-
-/* Write formatted output to S from argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg);
-/* Write formatted output to stdout from argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
-/* Write formatted output to S from argument list ARG. */
-extern int vsprintf (char *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg) __THROWNL;
-
-#if defined __USE_ISOC99 || defined __USE_UNIX98
-/* Maximum chars of output to write in MAXLEN. */
-extern int snprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, ...)
- __THROWNL __attribute__ ((__format__ (__printf__, 3, 4)));
-
-extern int vsnprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, __gnuc_va_list __arg)
- __THROWNL __attribute__ ((__format__ (__printf__, 3, 0)));
-#endif
-
-#if __GLIBC_USE (LIB_EXT2)
-/* Write formatted output to a string dynamically allocated with `malloc'.
- Store the address of the string in *PTR. */
-extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
- __gnuc_va_list __arg)
- __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))) __wur;
-extern int __asprintf (char **__restrict __ptr,
- const char *__restrict __fmt, ...)
- __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
-extern int asprintf (char **__restrict __ptr,
- const char *__restrict __fmt, ...)
- __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Write formatted output to a file descriptor. */
-extern int vdprintf (int __fd, const char *__restrict __fmt,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
-#endif
-
-
-/* Read formatted input from STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fscanf (FILE *__restrict __stream,
- const char *__restrict __format, ...) __wur;
-/* Read formatted input from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int scanf (const char *__restrict __format, ...) __wur;
-/* Read formatted input from S. */
-extern int sscanf (const char *__restrict __s,
- const char *__restrict __format, ...) __THROW;
-
-/* For historical reasons, the C99-compliant versions of the scanf
- functions are at alternative names. When __LDBL_COMPAT or
- __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in
- bits/stdio-ldbl.h. */
-#include <bits/floatn.h>
-#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
- && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
-# ifdef __REDIRECT
-extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
- const char *__restrict __format, ...),
- __isoc99_fscanf) __wur;
-extern int __REDIRECT (scanf, (const char *__restrict __format, ...),
- __isoc99_scanf) __wur;
-extern int __REDIRECT_NTH (sscanf, (const char *__restrict __s,
- const char *__restrict __format, ...),
- __isoc99_sscanf);
-# else
-extern int __isoc99_fscanf (FILE *__restrict __stream,
- const char *__restrict __format, ...) __wur;
-extern int __isoc99_scanf (const char *__restrict __format, ...) __wur;
-extern int __isoc99_sscanf (const char *__restrict __s,
- const char *__restrict __format, ...) __THROW;
-# define fscanf __isoc99_fscanf
-# define scanf __isoc99_scanf
-# define sscanf __isoc99_sscanf
-# endif
-#endif
-
-#ifdef __USE_ISOC99
-/* Read formatted input from S into argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 2, 0))) __wur;
-
-/* Read formatted input from stdin into argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
-
-/* Read formatted input from S into argument list ARG. */
-extern int vsscanf (const char *__restrict __s,
- const char *__restrict __format, __gnuc_va_list __arg)
- __THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
-
-/* Same redirection as above for the v*scanf family. */
-# if !__GLIBC_USE (DEPRECATED_SCANF)
-# if defined __REDIRECT && !defined __LDBL_COMPAT \
- && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
-extern int __REDIRECT (vfscanf,
- (FILE *__restrict __s,
- const char *__restrict __format, __gnuc_va_list __arg),
- __isoc99_vfscanf)
- __attribute__ ((__format__ (__scanf__, 2, 0))) __wur;
-extern int __REDIRECT (vscanf, (const char *__restrict __format,
- __gnuc_va_list __arg), __isoc99_vscanf)
- __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
-extern int __REDIRECT_NTH (vsscanf,
- (const char *__restrict __s,
- const char *__restrict __format,
- __gnuc_va_list __arg), __isoc99_vsscanf)
- __attribute__ ((__format__ (__scanf__, 2, 0)));
-# elif !defined __REDIRECT
-extern int __isoc99_vfscanf (FILE *__restrict __s,
- const char *__restrict __format,
- __gnuc_va_list __arg) __wur;
-extern int __isoc99_vscanf (const char *__restrict __format,
- __gnuc_va_list __arg) __wur;
-extern int __isoc99_vsscanf (const char *__restrict __s,
- const char *__restrict __format,
- __gnuc_va_list __arg) __THROW;
-# define vfscanf __isoc99_vfscanf
-# define vscanf __isoc99_vscanf
-# define vsscanf __isoc99_vsscanf
-# endif
-# endif
-#endif /* Use ISO C9x. */
-
-
-/* Read a character from STREAM.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
-extern int fgetc (FILE *__stream);
-extern int getc (FILE *__stream);
-
-/* Read a character from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int getchar (void);
-
-#ifdef __USE_POSIX199506
-/* These are defined in POSIX.1:1996.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
-extern int getc_unlocked (FILE *__stream);
-extern int getchar_unlocked (void);
-#endif /* Use POSIX. */
-
-#ifdef __USE_MISC
-/* Faster version when locking is not necessary.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fgetc_unlocked (FILE *__stream);
-#endif /* Use MISC. */
-
-
-/* Write a character to STREAM.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW.
-
- These functions is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fputc (int __c, FILE *__stream);
-extern int putc (int __c, FILE *__stream);
-
-/* Write a character to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int putchar (int __c);
-
-#ifdef __USE_MISC
-/* Faster version when locking is not necessary.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fputc_unlocked (int __c, FILE *__stream);
-#endif /* Use MISC. */
-
-#ifdef __USE_POSIX199506
-/* These are defined in POSIX.1:1996.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
-extern int putc_unlocked (int __c, FILE *__stream);
-extern int putchar_unlocked (int __c);
-#endif /* Use POSIX. */
-
-
-#if defined __USE_MISC \
- || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-/* Get a word (int) from STREAM. */
-extern int getw (FILE *__stream);
-
-/* Write a word (int) to STREAM. */
-extern int putw (int __w, FILE *__stream);
-#endif
-
-
-/* Get a newline-terminated string of finite length from STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
- __wur __fortified_attr_access (__write_only__, 1, 2);
-
-#if __GLIBC_USE (DEPRECATED_GETS)
-/* Get a newline-terminated string from stdin, removing the newline.
-
- This function is impossible to use safely. It has been officially
- removed from ISO C11 and ISO C++14, and we have also removed it
- from the _GNU_SOURCE feature list. It remains available when
- explicitly using an old ISO C, Unix, or POSIX standard.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern char *gets (char *__s) __wur __attribute_deprecated__;
-#endif
-
-#ifdef __USE_GNU
-/* This function does the same as `fgets' but does not lock the stream.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern char *fgets_unlocked (char *__restrict __s, int __n,
- FILE *__restrict __stream) __wur
- __fortified_attr_access (__write_only__, 1, 2);
-#endif
-
-
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2)
-/* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
- (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
- NULL), pointing to *N characters of space. It is realloc'd as
- necessary. Returns the number of characters read (not including the
- null terminator), or -1 on error or EOF.
-
- These functions are not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation they are cancellation points and
- therefore not marked with __THROW. */
-extern __ssize_t __getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) __wur;
-extern __ssize_t getdelim (char **__restrict __lineptr,
- size_t *__restrict __n, int __delimiter,
- FILE *__restrict __stream) __wur;
-
-/* Like `getdelim', but reads up to a newline.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern __ssize_t getline (char **__restrict __lineptr,
- size_t *__restrict __n,
- FILE *__restrict __stream) __wur;
-#endif
-
-
-/* Write a string to STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
-
-/* Write a string, followed by a newline, to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int puts (const char *__s);
-
-
-/* Push a character back onto the input buffer of STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int ungetc (int __c, FILE *__stream);
-
-
-/* Read chunks of generic data from STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern size_t fread (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) __wur;
-/* Write chunks of generic data to STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern size_t fwrite (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __s);
-
-#ifdef __USE_GNU
-/* This function does the same as `fputs' but does not lock the stream.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fputs_unlocked (const char *__restrict __s,
- FILE *__restrict __stream);
-#endif
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not necessary.
-
- These functions are not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation they are cancellation points and
- therefore not marked with __THROW. */
-extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) __wur;
-extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream);
-#endif
-
-
-/* Seek to a certain position on STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fseek (FILE *__stream, long int __off, int __whence);
-/* Return the current position of STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern long int ftell (FILE *__stream) __wur;
-/* Rewind to the beginning of STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern void rewind (FILE *__stream);
-
-/* The Single Unix Specification, Version 2, specifies an alternative,
- more adequate interface for the two functions above which deal with
- file offset. `long int' is not the right type. These definitions
- are originally defined in the Large File Support API. */
-
-#if defined __USE_LARGEFILE || defined __USE_XOPEN2K
-# ifndef __USE_FILE_OFFSET64
-/* Seek to a certain position on STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fseeko (FILE *__stream, __off_t __off, int __whence);
-/* Return the current position of STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern __off_t ftello (FILE *__stream) __wur;
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (fseeko,
- (FILE *__stream, __off64_t __off, int __whence),
- fseeko64);
-extern __off64_t __REDIRECT (ftello, (FILE *__stream), ftello64);
-# else
-# define fseeko fseeko64
-# define ftello ftello64
-# endif
-# endif
-#endif
-
-#ifndef __USE_FILE_OFFSET64
-/* Get STREAM's position.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
-/* Set STREAM's position.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fsetpos (FILE *__stream, const fpos_t *__pos);
-#else
-# ifdef __REDIRECT
-extern int __REDIRECT (fgetpos, (FILE *__restrict __stream,
- fpos_t *__restrict __pos), fgetpos64);
-extern int __REDIRECT (fsetpos,
- (FILE *__stream, const fpos_t *__pos), fsetpos64);
-# else
-# define fgetpos fgetpos64
-# define fsetpos fsetpos64
-# endif
-#endif
-
-#ifdef __USE_LARGEFILE64
-extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
-extern __off64_t ftello64 (FILE *__stream) __wur;
-extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
-extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
-#endif
-
-/* Clear the error and EOF indicators for STREAM. */
-extern void clearerr (FILE *__stream) __THROW;
-/* Return the EOF indicator for STREAM. */
-extern int feof (FILE *__stream) __THROW __wur;
-/* Return the error indicator for STREAM. */
-extern int ferror (FILE *__stream) __THROW __wur;
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not required. */
-extern void clearerr_unlocked (FILE *__stream) __THROW;
-extern int feof_unlocked (FILE *__stream) __THROW __wur;
-extern int ferror_unlocked (FILE *__stream) __THROW __wur;
-#endif
-
-
-/* Print a message describing the meaning of the value of errno.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern void perror (const char *__s);
-
-
-#ifdef __USE_POSIX
-/* Return the system file descriptor for STREAM. */
-extern int fileno (FILE *__stream) __THROW __wur;
-#endif /* Use POSIX. */
-
-#ifdef __USE_MISC
-/* Faster version when locking is not required. */
-extern int fileno_unlocked (FILE *__stream) __THROW __wur;
-#endif
-
-
-#ifdef __USE_POSIX2
-/* Close a stream opened by popen and return the status of its child.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int pclose (FILE *__stream);
-
-/* Create a new stream connected to a pipe running the given command.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern FILE *popen (const char *__command, const char *__modes)
- __attribute_malloc__ __attr_dealloc (pclose, 1) __wur;
-
-#endif
-
-
-#ifdef __USE_POSIX
-/* Return the name of the controlling terminal. */
-extern char *ctermid (char *__s) __THROW
- __attr_access ((__write_only__, 1));
-#endif /* Use POSIX. */
-
-
-#if (defined __USE_XOPEN && !defined __USE_XOPEN2K) || defined __USE_GNU
-/* Return the name of the current user. */
-extern char *cuserid (char *__s)
- __attr_access ((__write_only__, 1));
-#endif /* Use X/Open, but not issue 6. */
-
-
-#ifdef __USE_GNU
-struct obstack; /* See <obstack.h>. */
-
-/* Write formatted output to an obstack. */
-extern int obstack_printf (struct obstack *__restrict __obstack,
- const char *__restrict __format, ...)
- __THROWNL __attribute__ ((__format__ (__printf__, 2, 3)));
-extern int obstack_vprintf (struct obstack *__restrict __obstack,
- const char *__restrict __format,
- __gnuc_va_list __args)
- __THROWNL __attribute__ ((__format__ (__printf__, 2, 0)));
-#endif /* Use GNU. */
-
-
-#ifdef __USE_POSIX199506
-/* These are defined in POSIX.1:1996. */
-
-/* Acquire ownership of STREAM. */
-extern void flockfile (FILE *__stream) __THROW;
-
-/* Try to acquire ownership of STREAM but do not block if it is not
- possible. */
-extern int ftrylockfile (FILE *__stream) __THROW __wur;
-
-/* Relinquish the ownership granted for STREAM. */
-extern void funlockfile (FILE *__stream) __THROW;
-#endif /* POSIX */
-
-#if defined __USE_XOPEN && !defined __USE_XOPEN2K && !defined __USE_GNU
-/* X/Open Issues 1-5 required getopt to be declared in this
- header. It was removed in Issue 6. GNU follows Issue 6. */
-# include <bits/getopt_posix.h>
-#endif
-
-/* Slow-path routines used by the optimized inline functions in
- bits/stdio.h. */
-extern int __uflow (FILE *);
-extern int __overflow (FILE *, int);
-
-#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-/* Declare all functions from bits/stdio2-decl.h first. */
-# include <bits/stdio2-decl.h>
-#endif
-
-/* The following headers provide asm redirections. These redirections must
- appear before the first usage of these functions, e.g. in bits/stdio.h. */
-#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
-# include <bits/stdio-ldbl.h>
-#endif
-
-/* If we are compiling with optimizing read this file. It contains
- several optimizing inline functions and macros. */
-#ifdef __USE_EXTERN_INLINES
-# include <bits/stdio.h>
-#endif
-#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-/* Now include the function definitions and redirects too. */
-# include <bits/stdio2.h>
-#endif
-
-__END_DECLS
-
-#endif /* <stdio.h> included. */
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- Copyright The GNU Toolchain Authors.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99 Standard: 7.20 General utilities <stdlib.h>
- */
-
-#ifndef _STDLIB_H
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-
-/* Get size_t, wchar_t and NULL from <stddef.h>. */
-#define __need_size_t
-#define __need_wchar_t
-#define __need_NULL
-#include <stddef.h>
-
-__BEGIN_DECLS
-
-#define _STDLIB_H 1
-
-#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H
-/* XPG requires a few symbols from <sys/wait.h> being defined. */
-# include <bits/waitflags.h>
-# include <bits/waitstatus.h>
-
-/* Define the macros <sys/wait.h> also would define this way. */
-# define WEXITSTATUS(status) __WEXITSTATUS (status)
-# define WTERMSIG(status) __WTERMSIG (status)
-# define WSTOPSIG(status) __WSTOPSIG (status)
-# define WIFEXITED(status) __WIFEXITED (status)
-# define WIFSIGNALED(status) __WIFSIGNALED (status)
-# define WIFSTOPPED(status) __WIFSTOPPED (status)
-# ifdef __WIFCONTINUED
-# define WIFCONTINUED(status) __WIFCONTINUED (status)
-# endif
-#endif /* X/Open or XPG7 and <sys/wait.h> not included. */
-
-/* _FloatN API tests for enablement. */
-#include <bits/floatn.h>
-
-/* Returned by `div'. */
-typedef struct
- {
- int quot; /* Quotient. */
- int rem; /* Remainder. */
- } div_t;
-
-/* Returned by `ldiv'. */
-#ifndef __ldiv_t_defined
-typedef struct
- {
- long int quot; /* Quotient. */
- long int rem; /* Remainder. */
- } ldiv_t;
-# define __ldiv_t_defined 1
-#endif
-
-#if defined __USE_ISOC99 && !defined __lldiv_t_defined
-/* Returned by `lldiv'. */
-__extension__ typedef struct
- {
- long long int quot; /* Quotient. */
- long long int rem; /* Remainder. */
- } lldiv_t;
-# define __lldiv_t_defined 1
-#endif
-
-
-/* The largest number rand will return (same as INT_MAX). */
-#define RAND_MAX 2147483647
-
-
-/* We define these the same for all machines.
- Changes from this to the outside world should be done in `_exit'. */
-#define EXIT_FAILURE 1 /* Failing exit status. */
-#define EXIT_SUCCESS 0 /* Successful exit status. */
-
-
-/* Maximum length of a multibyte character in the current locale. */
-#define MB_CUR_MAX (__ctype_get_mb_cur_max ())
-extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
-
-
-/* Convert a string to a floating-point number. */
-extern double atof (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-/* Convert a string to an integer. */
-extern int atoi (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-/* Convert a string to a long integer. */
-extern long int atol (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-
-#ifdef __USE_ISOC99
-/* Convert a string to a long long integer. */
-__extension__ extern long long int atoll (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-#endif
-
-/* Convert a string to a floating-point number. */
-extern double strtod (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-
-#ifdef __USE_ISOC99
-/* Likewise for `float' and `long double' sizes of floating-point numbers. */
-extern float strtof (const char *__restrict __nptr,
- char **__restrict __endptr) __THROW __nonnull ((1));
-
-extern long double strtold (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-/* Likewise for '_FloatN' and '_FloatNx'. */
-
-#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float16 strtof16 (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float32 strtof32 (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float64 strtof64 (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float128 strtof128 (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float32x strtof32x (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float64x strtof64x (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float128x strtof128x (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1));
-#endif
-
-/* Convert a string to a long integer. */
-extern long int strtol (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-/* Convert a string to an unsigned long integer. */
-extern unsigned long int strtoul (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-
-#ifdef __USE_MISC
-/* Convert a string to a quadword integer. */
-__extension__
-extern long long int strtoq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-/* Convert a string to an unsigned quadword integer. */
-__extension__
-extern unsigned long long int strtouq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-#endif /* Use misc. */
-
-#ifdef __USE_ISOC99
-/* Convert a string to a quadword integer. */
-__extension__
-extern long long int strtoll (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-/* Convert a string to an unsigned quadword integer. */
-__extension__
-extern unsigned long long int strtoull (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1));
-#endif /* ISO C99 or use MISC. */
-
-/* Convert a floating-point number to a string. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
-extern int strfromd (char *__dest, size_t __size, const char *__format,
- double __f)
- __THROW __nonnull ((3));
-
-extern int strfromf (char *__dest, size_t __size, const char *__format,
- float __f)
- __THROW __nonnull ((3));
-
-extern int strfroml (char *__dest, size_t __size, const char *__format,
- long double __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf16 (char *__dest, size_t __size, const char * __format,
- _Float16 __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf32 (char *__dest, size_t __size, const char * __format,
- _Float32 __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf64 (char *__dest, size_t __size, const char * __format,
- _Float64 __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf128 (char *__dest, size_t __size, const char * __format,
- _Float128 __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf32x (char *__dest, size_t __size, const char * __format,
- _Float32x __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf64x (char *__dest, size_t __size, const char * __format,
- _Float64x __f)
- __THROW __nonnull ((3));
-#endif
-
-#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern int strfromf128x (char *__dest, size_t __size, const char * __format,
- _Float128x __f)
- __THROW __nonnull ((3));
-#endif
-
-
-#ifdef __USE_GNU
-/* Parallel versions of the functions above which take the locale to
- use as an additional parameter. These are GNU extensions inspired
- by the POSIX.1-2008 extended locale API. */
-# include <bits/types/locale_t.h>
-
-extern long int strtol_l (const char *__restrict __nptr,
- char **__restrict __endptr, int __base,
- locale_t __loc) __THROW __nonnull ((1, 4));
-
-extern unsigned long int strtoul_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, locale_t __loc)
- __THROW __nonnull ((1, 4));
-
-__extension__
-extern long long int strtoll_l (const char *__restrict __nptr,
- char **__restrict __endptr, int __base,
- locale_t __loc)
- __THROW __nonnull ((1, 4));
-
-__extension__
-extern unsigned long long int strtoull_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, locale_t __loc)
- __THROW __nonnull ((1, 4));
-
-extern double strtod_l (const char *__restrict __nptr,
- char **__restrict __endptr, locale_t __loc)
- __THROW __nonnull ((1, 3));
-
-extern float strtof_l (const char *__restrict __nptr,
- char **__restrict __endptr, locale_t __loc)
- __THROW __nonnull ((1, 3));
-
-extern long double strtold_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-
-# if __HAVE_FLOAT16
-extern _Float16 strtof16_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT32
-extern _Float32 strtof32_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT64
-extern _Float64 strtof64_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT128
-extern _Float128 strtof128_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT32X
-extern _Float32x strtof32x_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT64X
-extern _Float64x strtof64x_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-
-# if __HAVE_FLOAT128X
-extern _Float128x strtof128x_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- locale_t __loc)
- __THROW __nonnull ((1, 3));
-# endif
-#endif /* GNU */
-
-
-#ifdef __USE_EXTERN_INLINES
-__extern_inline int
-__NTH (atoi (const char *__nptr))
-{
- return (int) strtol (__nptr, (char **) NULL, 10);
-}
-__extern_inline long int
-__NTH (atol (const char *__nptr))
-{
- return strtol (__nptr, (char **) NULL, 10);
-}
-
-# ifdef __USE_ISOC99
-__extension__ __extern_inline long long int
-__NTH (atoll (const char *__nptr))
-{
- return strtoll (__nptr, (char **) NULL, 10);
-}
-# endif
-#endif /* Optimizing and Inlining. */
-
-
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
-/* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
- digit first. Returns a pointer to static storage overwritten by the
- next call. */
-extern char *l64a (long int __n) __THROW __wur;
-
-/* Read a number from a string S in base 64 as above. */
-extern long int a64l (const char *__s)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-
-#endif /* Use misc || extended X/Open. */
-
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
-# include <sys/types.h> /* we need int32_t... */
-
-/* These are the functions that actually do things. The `random', `srandom',
- `initstate' and `setstate' functions are those from BSD Unices.
- The `rand' and `srand' functions are required by the ANSI standard.
- We provide both interfaces to the same random number generator. */
-/* Return a random long integer between 0 and 2^31-1 inclusive. */
-extern long int random (void) __THROW;
-
-/* Seed the random number generator with the given number. */
-extern void srandom (unsigned int __seed) __THROW;
-
-/* Initialize the random number generator to use state buffer STATEBUF,
- of length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,
- 32, 64, 128 and 256, the bigger the better; values less than 8 will
- cause an error and values greater than 256 will be rounded down. */
-extern char *initstate (unsigned int __seed, char *__statebuf,
- size_t __statelen) __THROW __nonnull ((2));
-
-/* Switch the random number generator to state buffer STATEBUF,
- which should have been previously initialized by `initstate'. */
-extern char *setstate (char *__statebuf) __THROW __nonnull ((1));
-
-
-# ifdef __USE_MISC
-/* Reentrant versions of the `random' family of functions.
- These functions all use the following data structure to contain
- state, rather than global state variables. */
-
-struct random_data
- {
- int32_t *fptr; /* Front pointer. */
- int32_t *rptr; /* Rear pointer. */
- int32_t *state; /* Array of state values. */
- int rand_type; /* Type of random number generator. */
- int rand_deg; /* Degree of random number generator. */
- int rand_sep; /* Distance between front and rear. */
- int32_t *end_ptr; /* Pointer behind state table. */
- };
-
-extern int random_r (struct random_data *__restrict __buf,
- int32_t *__restrict __result) __THROW __nonnull ((1, 2));
-
-extern int srandom_r (unsigned int __seed, struct random_data *__buf)
- __THROW __nonnull ((2));
-
-extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
- size_t __statelen,
- struct random_data *__restrict __buf)
- __THROW __nonnull ((2, 4));
-
-extern int setstate_r (char *__restrict __statebuf,
- struct random_data *__restrict __buf)
- __THROW __nonnull ((1, 2));
-# endif /* Use misc. */
-#endif /* Use extended X/Open || misc. */
-
-
-/* Return a random integer between 0 and RAND_MAX inclusive. */
-extern int rand (void) __THROW;
-/* Seed the random number generator with the given number. */
-extern void srand (unsigned int __seed) __THROW;
-
-#ifdef __USE_POSIX199506
-/* Reentrant interface according to POSIX.1. */
-extern int rand_r (unsigned int *__seed) __THROW;
-#endif
-
-
-#if defined __USE_MISC || defined __USE_XOPEN
-/* System V style 48-bit random number generator functions. */
-
-/* Return non-negative, double-precision floating-point value in [0.0,1.0). */
-extern double drand48 (void) __THROW;
-extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1));
-
-/* Return non-negative, long integer in [0,2^31). */
-extern long int lrand48 (void) __THROW;
-extern long int nrand48 (unsigned short int __xsubi[3])
- __THROW __nonnull ((1));
-
-/* Return signed, long integers in [-2^31,2^31). */
-extern long int mrand48 (void) __THROW;
-extern long int jrand48 (unsigned short int __xsubi[3])
- __THROW __nonnull ((1));
-
-/* Seed random number generator. */
-extern void srand48 (long int __seedval) __THROW;
-extern unsigned short int *seed48 (unsigned short int __seed16v[3])
- __THROW __nonnull ((1));
-extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1));
-
-# ifdef __USE_MISC
-/* Data structure for communication with thread safe versions. This
- type is to be regarded as opaque. It's only exported because users
- have to allocate objects of this type. */
-struct drand48_data
- {
- unsigned short int __x[3]; /* Current state. */
- unsigned short int __old_x[3]; /* Old state. */
- unsigned short int __c; /* Additive const. in congruential formula. */
- unsigned short int __init; /* Flag for initializing. */
- __extension__ unsigned long long int __a; /* Factor in congruential
- formula. */
- };
-
-/* Return non-negative, double-precision floating-point value in [0.0,1.0). */
-extern int drand48_r (struct drand48_data *__restrict __buffer,
- double *__restrict __result) __THROW __nonnull ((1, 2));
-extern int erand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- double *__restrict __result) __THROW __nonnull ((1, 2));
-
-/* Return non-negative, long integer in [0,2^31). */
-extern int lrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __THROW __nonnull ((1, 2));
-extern int nrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __THROW __nonnull ((1, 2));
-
-/* Return signed, long integers in [-2^31,2^31). */
-extern int mrand48_r (struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __THROW __nonnull ((1, 2));
-extern int jrand48_r (unsigned short int __xsubi[3],
- struct drand48_data *__restrict __buffer,
- long int *__restrict __result)
- __THROW __nonnull ((1, 2));
-
-/* Seed random number generator. */
-extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
- __THROW __nonnull ((2));
-
-extern int seed48_r (unsigned short int __seed16v[3],
- struct drand48_data *__buffer) __THROW __nonnull ((1, 2));
-
-extern int lcong48_r (unsigned short int __param[7],
- struct drand48_data *__buffer)
- __THROW __nonnull ((1, 2));
-
-/* Return a random integer between zero and 2**32-1 (inclusive). */
-extern __uint32_t arc4random (void)
- __THROW __wur;
-
-/* Fill the buffer with random data. */
-extern void arc4random_buf (void *__buf, size_t __size)
- __THROW __nonnull ((1));
-
-/* Return a random number between zero (inclusive) and the specified
- limit (exclusive). */
-extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
- __THROW __wur;
-# endif /* Use misc. */
-#endif /* Use misc or X/Open. */
-
-/* Allocate SIZE bytes of memory. */
-extern void *malloc (size_t __size) __THROW __attribute_malloc__
- __attribute_alloc_size__ ((1)) __wur;
-/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
-extern void *calloc (size_t __nmemb, size_t __size)
- __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur;
-
-/* Re-allocate the previously allocated block
- in PTR, making the new block SIZE bytes long. */
-/* __attribute_malloc__ is not used, because if realloc returns
- the same pointer that was passed to it, aliasing needs to be allowed
- between objects pointed by the old and new pointers. */
-extern void *realloc (void *__ptr, size_t __size)
- __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2));
-
-/* Free a block allocated by `malloc', `realloc' or `calloc'. */
-extern void free (void *__ptr) __THROW;
-
-#ifdef __USE_MISC
-/* Re-allocate the previously allocated block in PTR, making the new
- block large enough for NMEMB elements of SIZE bytes each. */
-/* __attribute_malloc__ is not used, because if reallocarray returns
- the same pointer that was passed to it, aliasing needs to be allowed
- between objects pointed by the old and new pointers. */
-extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
- __THROW __attribute_warn_unused_result__
- __attribute_alloc_size__ ((2, 3))
- __attr_dealloc_free;
-
-/* Add reallocarray as its own deallocator. */
-extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
- __THROW __attr_dealloc (reallocarray, 1);
-#endif
-
-#ifdef __USE_MISC
-# include <alloca.h>
-#endif /* Use misc. */
-
-#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \
- || defined __USE_MISC
-/* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */
-extern void *valloc (size_t __size) __THROW __attribute_malloc__
- __attribute_alloc_size__ ((1)) __wur;
-#endif
-
-#ifdef __USE_XOPEN2K
-/* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */
-extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
- __THROW __nonnull ((1)) __wur;
-#endif
-
-#ifdef __USE_ISOC11
-/* ISO C variant of aligned allocation. */
-extern void *aligned_alloc (size_t __alignment, size_t __size)
- __THROW __attribute_malloc__ __attribute_alloc_align__ ((1))
- __attribute_alloc_size__ ((2)) __wur;
-#endif
-
-/* Abort execution and generate a core-dump. */
-extern void abort (void) __THROW __attribute__ ((__noreturn__));
-
-
-/* Register a function to be called when `exit' is called. */
-extern int atexit (void (*__func) (void)) __THROW __nonnull ((1));
-
-#if defined __USE_ISOC11 || defined __USE_ISOCXX11
-/* Register a function to be called when `quick_exit' is called. */
-# ifdef __cplusplus
-extern "C++" int at_quick_exit (void (*__func) (void))
- __THROW __asm ("at_quick_exit") __nonnull ((1));
-# else
-extern int at_quick_exit (void (*__func) (void)) __THROW __nonnull ((1));
-# endif
-#endif
-
-#ifdef __USE_MISC
-/* Register a function to be called with the status
- given to `exit' and the given argument. */
-extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
- __THROW __nonnull ((1));
-#endif
-
-/* Call all functions registered with `atexit' and `on_exit',
- in the reverse of the order in which they were registered,
- perform stdio cleanup, and terminate program execution with STATUS. */
-extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
-
-#if defined __USE_ISOC11 || defined __USE_ISOCXX11
-/* Call all functions registered with `at_quick_exit' in the reverse
- of the order in which they were registered and terminate program
- execution with STATUS. */
-extern void quick_exit (int __status) __THROW __attribute__ ((__noreturn__));
-#endif
-
-#ifdef __USE_ISOC99
-/* Terminate the program with STATUS without calling any of the
- functions registered with `atexit' or `on_exit'. */
-extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__));
-#endif
-
-
-/* Return the value of envariable NAME, or NULL if it doesn't exist. */
-extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
-
-#ifdef __USE_GNU
-/* This function is similar to the above but returns NULL if the
- programs is running with SUID or SGID enabled. */
-extern char *secure_getenv (const char *__name)
- __THROW __nonnull ((1)) __wur;
-#endif
-
-#if defined __USE_MISC || defined __USE_XOPEN
-/* The SVID says this is in <stdio.h>, but this seems a better place. */
-/* Put STRING, which is of the form "NAME=VALUE", in the environment.
- If there is no `=', remove NAME from the environment. */
-extern int putenv (char *__string) __THROW __nonnull ((1));
-#endif
-
-#ifdef __USE_XOPEN2K
-/* Set NAME to VALUE in the environment.
- If REPLACE is nonzero, overwrite an existing value. */
-extern int setenv (const char *__name, const char *__value, int __replace)
- __THROW __nonnull ((2));
-
-/* Remove the variable NAME from the environment. */
-extern int unsetenv (const char *__name) __THROW __nonnull ((1));
-#endif
-
-#ifdef __USE_MISC
-/* The `clearenv' was planned to be added to POSIX.1 but probably
- never made it. Nevertheless the POSIX.9 standard (POSIX bindings
- for Fortran 77) requires this function. */
-extern int clearenv (void) __THROW;
-#endif
-
-
-#if defined __USE_MISC \
- || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8)
-/* Generate a unique temporary file name from TEMPLATE.
- The last six characters of TEMPLATE must be "XXXXXX";
- they are replaced with a string that makes the file name unique.
- Always returns TEMPLATE, it's either a temporary file name or a null
- string if it cannot get a unique file name. */
-extern char *mktemp (char *__template) __THROW __nonnull ((1));
-#endif
-
-#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-/* Generate a unique temporary file name from TEMPLATE.
- The last six characters of TEMPLATE must be "XXXXXX";
- they are replaced with a string that makes the filename unique.
- Returns a file descriptor open on the file for reading and writing,
- or -1 if it cannot create a uniquely-named file.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-# ifndef __USE_FILE_OFFSET64
-extern int mkstemp (char *__template) __nonnull ((1)) __wur;
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (mkstemp, (char *__template), mkstemp64)
- __nonnull ((1)) __wur;
-# else
-# define mkstemp mkstemp64
-# endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int mkstemp64 (char *__template) __nonnull ((1)) __wur;
-# endif
-#endif
-
-#ifdef __USE_MISC
-/* Similar to mkstemp, but the template can have a suffix after the
- XXXXXX. The length of the suffix is specified in the second
- parameter.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-# ifndef __USE_FILE_OFFSET64
-extern int mkstemps (char *__template, int __suffixlen) __nonnull ((1)) __wur;
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (mkstemps, (char *__template, int __suffixlen),
- mkstemps64) __nonnull ((1)) __wur;
-# else
-# define mkstemps mkstemps64
-# endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int mkstemps64 (char *__template, int __suffixlen)
- __nonnull ((1)) __wur;
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Create a unique temporary directory from TEMPLATE.
- The last six characters of TEMPLATE must be "XXXXXX";
- they are replaced with a string that makes the directory name unique.
- Returns TEMPLATE, or a null pointer if it cannot get a unique name.
- The directory is created mode 700. */
-extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur;
-#endif
-
-#ifdef __USE_GNU
-/* Generate a unique temporary file name from TEMPLATE similar to
- mkstemp. But allow the caller to pass additional flags which are
- used in the open call to create the file..
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-# ifndef __USE_FILE_OFFSET64
-extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur;
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64)
- __nonnull ((1)) __wur;
-# else
-# define mkostemp mkostemp64
-# endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;
-# endif
-
-/* Similar to mkostemp, but the template can have a suffix after the
- XXXXXX. The length of the suffix is specified in the second
- parameter.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-# ifndef __USE_FILE_OFFSET64
-extern int mkostemps (char *__template, int __suffixlen, int __flags)
- __nonnull ((1)) __wur;
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (mkostemps, (char *__template, int __suffixlen,
- int __flags), mkostemps64)
- __nonnull ((1)) __wur;
-# else
-# define mkostemps mkostemps64
-# endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
- __nonnull ((1)) __wur;
-# endif
-#endif
-
-
-/* Execute the given line as a shell command.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int system (const char *__command) __wur;
-
-
-#ifdef __USE_GNU
-/* Return a malloc'd string containing the canonical absolute name of the
- existing named file. */
-extern char *canonicalize_file_name (const char *__name)
- __THROW __nonnull ((1)) __attribute_malloc__
- __attr_dealloc_free __wur;
-#endif
-
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
-/* Return the canonical absolute name of file NAME. If RESOLVED is
- null, the result is malloc'd; otherwise, if the canonical name is
- PATH_MAX chars or more, returns null with `errno' set to
- ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
- returns the name in RESOLVED. */
-extern char *realpath (const char *__restrict __name,
- char *__restrict __resolved) __THROW __wur;
-#endif
-
-
-/* Shorthand for type of comparison functions. */
-#ifndef __COMPAR_FN_T
-# define __COMPAR_FN_T
-typedef int (*__compar_fn_t) (const void *, const void *);
-
-# ifdef __USE_GNU
-typedef __compar_fn_t comparison_fn_t;
-# endif
-#endif
-#ifdef __USE_GNU
-typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
-#endif
-
-/* Do a binary search for KEY in BASE, which consists of NMEMB elements
- of SIZE bytes each, using COMPAR to perform the comparisons. */
-extern void *bsearch (const void *__key, const void *__base,
- size_t __nmemb, size_t __size, __compar_fn_t __compar)
- __nonnull ((1, 2, 5)) __wur;
-
-#ifdef __USE_EXTERN_INLINES
-# include <bits/stdlib-bsearch.h>
-#endif
-
-/* Sort NMEMB elements of BASE, of SIZE bytes each,
- using COMPAR to perform the comparisons. */
-extern void qsort (void *__base, size_t __nmemb, size_t __size,
- __compar_fn_t __compar) __nonnull ((1, 4));
-#ifdef __USE_GNU
-extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
- __compar_d_fn_t __compar, void *__arg)
- __nonnull ((1, 4));
-#endif
-
-
-/* Return the absolute value of X. */
-extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
-extern long int labs (long int __x) __THROW __attribute__ ((__const__)) __wur;
-
-#ifdef __USE_ISOC99
-__extension__ extern long long int llabs (long long int __x)
- __THROW __attribute__ ((__const__)) __wur;
-#endif
-
-
-/* Return the `div_t', `ldiv_t' or `lldiv_t' representation
- of the value of NUMER over DENOM. */
-/* GCC may have built-ins for these someday. */
-extern div_t div (int __numer, int __denom)
- __THROW __attribute__ ((__const__)) __wur;
-extern ldiv_t ldiv (long int __numer, long int __denom)
- __THROW __attribute__ ((__const__)) __wur;
-
-#ifdef __USE_ISOC99
-__extension__ extern lldiv_t lldiv (long long int __numer,
- long long int __denom)
- __THROW __attribute__ ((__const__)) __wur;
-#endif
-
-
-#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
- || defined __USE_MISC
-/* Convert floating point numbers to strings. The returned values are
- valid only until another call to the same function. */
-
-/* Convert VALUE to a string with NDIGIT digits and return a pointer to
- this. Set *DECPT with the position of the decimal character and *SIGN
- with the sign of the number. */
-extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
-
-/* Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT
- with the position of the decimal character and *SIGN with the sign of
- the number. */
-extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
-
-/* If possible convert VALUE to a string with NDIGIT significant digits.
- Otherwise use exponential representation. The resulting string will
- be written to BUF. */
-extern char *gcvt (double __value, int __ndigit, char *__buf)
- __THROW __nonnull ((3)) __wur;
-#endif
-
-#ifdef __USE_MISC
-/* Long double versions of above functions. */
-extern char *qecvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __THROW __nonnull ((3, 4)) __wur;
-extern char *qfcvt (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign)
- __THROW __nonnull ((3, 4)) __wur;
-extern char *qgcvt (long double __value, int __ndigit, char *__buf)
- __THROW __nonnull ((3)) __wur;
-
-
-/* Reentrant version of the functions above which provide their own
- buffers. */
-extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __THROW __nonnull ((3, 4, 5));
-extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
- int *__restrict __sign, char *__restrict __buf,
- size_t __len) __THROW __nonnull ((3, 4, 5));
-
-extern int qecvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __THROW __nonnull ((3, 4, 5));
-extern int qfcvt_r (long double __value, int __ndigit,
- int *__restrict __decpt, int *__restrict __sign,
- char *__restrict __buf, size_t __len)
- __THROW __nonnull ((3, 4, 5));
-#endif /* misc */
-
-
-/* Return the length of the multibyte character
- in S, which is no longer than N. */
-extern int mblen (const char *__s, size_t __n) __THROW;
-/* Return the length of the given multibyte character,
- putting its `wchar_t' representation in *PWC. */
-extern int mbtowc (wchar_t *__restrict __pwc,
- const char *__restrict __s, size_t __n) __THROW;
-/* Put the multibyte character represented
- by WCHAR in S, returning its length. */
-extern int wctomb (char *__s, wchar_t __wchar) __THROW;
-
-
-/* Convert a multibyte string to a wide char string. */
-extern size_t mbstowcs (wchar_t *__restrict __pwcs,
- const char *__restrict __s, size_t __n) __THROW
- __attr_access ((__read_only__, 2));
-/* Convert a wide char string to multibyte string. */
-extern size_t wcstombs (char *__restrict __s,
- const wchar_t *__restrict __pwcs, size_t __n)
- __THROW
- __fortified_attr_access (__write_only__, 1, 3)
- __attr_access ((__read_only__, 2));
-
-#ifdef __USE_MISC
-/* Determine whether the string value of RESPONSE matches the affirmation
- or negative response expression as specified by the LC_MESSAGES category
- in the program's current locale. Returns 1 if affirmative, 0 if
- negative, and -1 if not matching. */
-extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur;
-#endif
-
-
-#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-/* Parse comma separated suboption from *OPTIONP and match against
- strings in TOKENS. If found return index and set *VALUEP to
- optional value introduced by an equal sign. If the suboption is
- not part of TOKENS return in *VALUEP beginning of unknown
- suboption. On exit *OPTIONP is set to the beginning of the next
- token or at the terminating NUL character. */
-extern int getsubopt (char **__restrict __optionp,
- char *const *__restrict __tokens,
- char **__restrict __valuep)
- __THROW __nonnull ((1, 2, 3)) __wur;
-#endif
-
-
-/* X/Open pseudo terminal handling. */
-
-#ifdef __USE_XOPEN2KXSI
-/* Return a master pseudo-terminal handle. */
-extern int posix_openpt (int __oflag) __wur;
-#endif
-
-#ifdef __USE_XOPEN_EXTENDED
-/* The next four functions all take a master pseudo-tty fd and
- perform an operation on the associated slave: */
-
-/* Chown the slave to the calling user. */
-extern int grantpt (int __fd) __THROW;
-
-/* Release an internal lock so the slave can be opened.
- Call after grantpt(). */
-extern int unlockpt (int __fd) __THROW;
-
-/* Return the pathname of the pseudo terminal slave associated with
- the master FD is open on, or NULL on errors.
- The returned storage is good until the next call to this function. */
-extern char *ptsname (int __fd) __THROW __wur;
-#endif
-
-#ifdef __USE_GNU
-/* Store at most BUFLEN characters of the pathname of the slave pseudo
- terminal associated with the master FD is open on in BUF.
- Return 0 on success, otherwise an error number. */
-extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
- __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3);
-
-/* Open a master pseudo terminal and return its file descriptor. */
-extern int getpt (void);
-#endif
-
-#ifdef __USE_MISC
-/* Put the 1 minute, 5 minute and 15 minute load averages into the first
- NELEM elements of LOADAVG. Return the number written (never more than
- three, but may be less than NELEM), or -1 if an error occurred. */
-extern int getloadavg (double __loadavg[], int __nelem)
- __THROW __nonnull ((1));
-#endif
-
-#if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K
-/* Return the index into the active-logins file (utmp) for
- the controlling terminal. */
-extern int ttyslot (void) __THROW;
-#endif
-
-#include <bits/stdlib-float.h>
-
-/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-# include <bits/stdlib.h>
-#endif
-
-#include <bits/floatn.h>
-#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
-# include <bits/stdlib-ldbl.h>
-#endif
-
-__END_DECLS
-
-#endif /* stdlib.h */
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99 Standard: 7.21 String handling <string.h>
- */
-
-#ifndef _STRING_H
-#define _STRING_H 1
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-
-__BEGIN_DECLS
-
-/* Get size_t and NULL from <stddef.h>. */
-#define __need_size_t
-#define __need_NULL
-#include <stddef.h>
-
-/* Tell the caller that we provide correct C++ prototypes. */
-#if defined __cplusplus && (__GNUC_PREREQ (4, 4) \
- || __glibc_clang_prereq (3, 5))
-# define __CORRECT_ISO_CPP_STRING_H_PROTO
-#endif
-
-
-/* Copy N bytes of SRC to DEST. */
-extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
- size_t __n) __THROW __nonnull ((1, 2));
-/* Copy N bytes of SRC to DEST, guaranteeing
- correct behavior for overlapping strings. */
-extern void *memmove (void *__dest, const void *__src, size_t __n)
- __THROW __nonnull ((1, 2));
-
-/* Copy no more than N bytes of SRC to DEST, stopping when C is found.
- Return the position in DEST one byte past where C was copied,
- or NULL if C was not found in the first N bytes of SRC. */
-#if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X)
-extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
- int __c, size_t __n)
- __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4));
-#endif /* Misc || X/Open. */
-
-
-/* Set N bytes of S to C. */
-extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));
-
-/* Compare N bytes of S1 and S2. */
-extern int memcmp (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.
- Return some non-zero value otherwise.
-
- Essentially __memcmpeq has the exact same semantics as memcmp
- except the return value is less constrained. memcmp is always a
- correct implementation of __memcmpeq. As well !!memcmp, -memcmp,
- or bcmp are correct implementations.
-
- __memcmpeq is meant to be used by compilers when memcmp return is
- only used for its boolean value.
-
- __memcmpeq is declared only for use by compilers. Programs should
- continue to use memcmp. */
-extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Search N bytes of S for C. */
-#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++"
-{
-extern void *memchr (void *__s, int __c, size_t __n)
- __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1));
-extern const void *memchr (const void *__s, int __c, size_t __n)
- __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1));
-
-# ifdef __OPTIMIZE__
-__extern_always_inline void *
-memchr (void *__s, int __c, size_t __n) __THROW
-{
- return __builtin_memchr (__s, __c, __n);
-}
-
-__extern_always_inline const void *
-memchr (const void *__s, int __c, size_t __n) __THROW
-{
- return __builtin_memchr (__s, __c, __n);
-}
-# endif
-}
-#else
-extern void *memchr (const void *__s, int __c, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1));
-#endif
-
-#ifdef __USE_GNU
-/* Search in S for C. This is similar to `memchr' but there is no
- length limit. */
-# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++" void *rawmemchr (void *__s, int __c)
- __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1));
-extern "C++" const void *rawmemchr (const void *__s, int __c)
- __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1));
-# else
-extern void *rawmemchr (const void *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-# endif
-
-/* Search N bytes of S for the final occurrence of C. */
-# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++" void *memrchr (void *__s, int __c, size_t __n)
- __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1))
- __attr_access ((__read_only__, 1, 3));
-extern "C++" const void *memrchr (const void *__s, int __c, size_t __n)
- __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1))
- __attr_access ((__read_only__, 1, 3));
-# else
-extern void *memrchr (const void *__s, int __c, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1))
- __attr_access ((__read_only__, 1, 3));
-# endif
-#endif
-
-
-/* Copy SRC to DEST. */
-extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
-/* Copy no more than N characters of SRC to DEST. */
-extern char *strncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-
-/* Append SRC onto DEST. */
-extern char *strcat (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
-/* Append no more than N characters from SRC onto DEST. */
-extern char *strncat (char *__restrict __dest, const char *__restrict __src,
- size_t __n) __THROW __nonnull ((1, 2));
-
-/* Compare S1 and S2. */
-extern int strcmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-/* Compare N characters of S1 and S2. */
-extern int strncmp (const char *__s1, const char *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Compare the collated forms of S1 and S2. */
-extern int strcoll (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-/* Put a transformation of SRC into no more than N bytes of DEST. */
-extern size_t strxfrm (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __THROW __nonnull ((2)) __attr_access ((__write_only__, 1, 3));
-
-#ifdef __USE_XOPEN2K8
-/* POSIX.1-2008 extended locale interface (see locale.h). */
-# include <bits/types/locale_t.h>
-
-/* Compare the collated forms of S1 and S2, using sorting rules from L. */
-extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
- __THROW __attribute_pure__ __nonnull ((1, 2, 3));
-/* Put a transformation of SRC into no more than N bytes of DEST,
- using sorting rules from L. */
-extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
- locale_t __l) __THROW __nonnull ((2, 4))
- __attr_access ((__write_only__, 1, 3));
-#endif
-
-#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \
- || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X))
-/* Duplicate S, returning an identical malloc'd string. */
-extern char *strdup (const char *__s)
- __THROW __attribute_malloc__ __nonnull ((1));
-#endif
-
-/* Return a malloc'd copy of at most N bytes of STRING. The
- resultant string is terminated even if no null terminator
- appears before STRING[N]. */
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X)
-extern char *strndup (const char *__string, size_t __n)
- __THROW __attribute_malloc__ __nonnull ((1));
-#endif
-
-#if defined __USE_GNU && defined __GNUC__
-/* Duplicate S, returning an identical alloca'd string. */
-# define strdupa(s) \
- (__extension__ \
- ({ \
- const char *__old = (s); \
- size_t __len = strlen (__old) + 1; \
- char *__new = (char *) __builtin_alloca (__len); \
- (char *) memcpy (__new, __old, __len); \
- }))
-
-/* Return an alloca'd copy of at most N bytes of string. */
-# define strndupa(s, n) \
- (__extension__ \
- ({ \
- const char *__old = (s); \
- size_t __len = strnlen (__old, (n)); \
- char *__new = (char *) __builtin_alloca (__len + 1); \
- __new[__len] = '\0'; \
- (char *) memcpy (__new, __old, __len); \
- }))
-#endif
-
-/* Find the first occurrence of C in S. */
-#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++"
-{
-extern char *strchr (char *__s, int __c)
- __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1));
-extern const char *strchr (const char *__s, int __c)
- __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1));
-
-# ifdef __OPTIMIZE__
-__extern_always_inline char *
-strchr (char *__s, int __c) __THROW
-{
- return __builtin_strchr (__s, __c);
-}
-
-__extern_always_inline const char *
-strchr (const char *__s, int __c) __THROW
-{
- return __builtin_strchr (__s, __c);
-}
-# endif
-}
-#else
-extern char *strchr (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-#endif
-/* Find the last occurrence of C in S. */
-#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++"
-{
-extern char *strrchr (char *__s, int __c)
- __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1));
-extern const char *strrchr (const char *__s, int __c)
- __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1));
-
-# ifdef __OPTIMIZE__
-__extern_always_inline char *
-strrchr (char *__s, int __c) __THROW
-{
- return __builtin_strrchr (__s, __c);
-}
-
-__extern_always_inline const char *
-strrchr (const char *__s, int __c) __THROW
-{
- return __builtin_strrchr (__s, __c);
-}
-# endif
-}
-#else
-extern char *strrchr (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-#endif
-
-#ifdef __USE_GNU
-/* This function is similar to `strchr'. But it returns a pointer to
- the closing NUL byte in case C is not found in S. */
-# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++" char *strchrnul (char *__s, int __c)
- __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1));
-extern "C++" const char *strchrnul (const char *__s, int __c)
- __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1));
-# else
-extern char *strchrnul (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-# endif
-#endif
-
-/* Return the length of the initial segment of S which
- consists entirely of characters not in REJECT. */
-extern size_t strcspn (const char *__s, const char *__reject)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-/* Return the length of the initial segment of S which
- consists entirely of characters in ACCEPT. */
-extern size_t strspn (const char *__s, const char *__accept)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-/* Find the first occurrence in S of any character in ACCEPT. */
-#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++"
-{
-extern char *strpbrk (char *__s, const char *__accept)
- __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2));
-extern const char *strpbrk (const char *__s, const char *__accept)
- __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2));
-
-# ifdef __OPTIMIZE__
-__extern_always_inline char *
-strpbrk (char *__s, const char *__accept) __THROW
-{
- return __builtin_strpbrk (__s, __accept);
-}
-
-__extern_always_inline const char *
-strpbrk (const char *__s, const char *__accept) __THROW
-{
- return __builtin_strpbrk (__s, __accept);
-}
-# endif
-}
-#else
-extern char *strpbrk (const char *__s, const char *__accept)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-#endif
-/* Find the first occurrence of NEEDLE in HAYSTACK. */
-#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++"
-{
-extern char *strstr (char *__haystack, const char *__needle)
- __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2));
-extern const char *strstr (const char *__haystack, const char *__needle)
- __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2));
-
-# ifdef __OPTIMIZE__
-__extern_always_inline char *
-strstr (char *__haystack, const char *__needle) __THROW
-{
- return __builtin_strstr (__haystack, __needle);
-}
-
-__extern_always_inline const char *
-strstr (const char *__haystack, const char *__needle) __THROW
-{
- return __builtin_strstr (__haystack, __needle);
-}
-# endif
-}
-#else
-extern char *strstr (const char *__haystack, const char *__needle)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-#endif
-
-
-/* Divide S into tokens separated by characters in DELIM. */
-extern char *strtok (char *__restrict __s, const char *__restrict __delim)
- __THROW __nonnull ((2));
-
-/* Divide S into tokens separated by characters in DELIM. Information
- passed between calls are stored in SAVE_PTR. */
-extern char *__strtok_r (char *__restrict __s,
- const char *__restrict __delim,
- char **__restrict __save_ptr)
- __THROW __nonnull ((2, 3));
-#ifdef __USE_POSIX
-extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
- char **__restrict __save_ptr)
- __THROW __nonnull ((2, 3));
-#endif
-
-#ifdef __USE_GNU
-/* Similar to `strstr' but this function ignores the case of both strings. */
-# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++" char *strcasestr (char *__haystack, const char *__needle)
- __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2));
-extern "C++" const char *strcasestr (const char *__haystack,
- const char *__needle)
- __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2));
-# else
-extern char *strcasestr (const char *__haystack, const char *__needle)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-# endif
-#endif
-
-#ifdef __USE_GNU
-/* Find the first occurrence of NEEDLE in HAYSTACK.
- NEEDLE is NEEDLELEN bytes long;
- HAYSTACK is HAYSTACKLEN bytes long. */
-extern void *memmem (const void *__haystack, size_t __haystacklen,
- const void *__needle, size_t __needlelen)
- __THROW __attribute_pure__ __nonnull ((1, 3))
- __attr_access ((__read_only__, 1, 2))
- __attr_access ((__read_only__, 3, 4));
-
-/* Copy N bytes of SRC to DEST, return pointer to bytes after the
- last written byte. */
-extern void *__mempcpy (void *__restrict __dest,
- const void *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-extern void *mempcpy (void *__restrict __dest,
- const void *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-#endif
-
-
-/* Return the length of S. */
-extern size_t strlen (const char *__s)
- __THROW __attribute_pure__ __nonnull ((1));
-
-#ifdef __USE_XOPEN2K8
-/* Find the length of STRING, but scan at most MAXLEN characters.
- If no '\0' terminator is found in that many characters, return MAXLEN. */
-extern size_t strnlen (const char *__string, size_t __maxlen)
- __THROW __attribute_pure__ __nonnull ((1));
-#endif
-
-
-/* Return a string describing the meaning of the `errno' code in ERRNUM. */
-extern char *strerror (int __errnum) __THROW;
-#ifdef __USE_XOPEN2K
-/* Reentrant version of `strerror'.
- There are 2 flavors of `strerror_r', GNU which returns the string
- and may or may not use the supplied temporary buffer and POSIX one
- which fills the string into the buffer.
- To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L
- without -D_GNU_SOURCE is needed, otherwise the GNU version is
- preferred. */
-# if defined __USE_XOPEN2K && !defined __USE_GNU
-/* Fill BUF with a string describing the meaning of the `errno' code in
- ERRNUM. */
-# ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (strerror_r,
- (int __errnum, char *__buf, size_t __buflen),
- __xpg_strerror_r) __nonnull ((2))
- __attr_access ((__write_only__, 2, 3));
-# else
-extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen)
- __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3));
-# define strerror_r __xpg_strerror_r
-# endif
-# else
-/* If a temporary buffer is required, at most BUFLEN bytes of BUF will be
- used. */
-extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
- __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3));
-# endif
-
-# ifdef __USE_GNU
-/* Return a string describing the meaning of tthe error in ERR. */
-extern const char *strerrordesc_np (int __err) __THROW;
-/* Return a string with the error name in ERR. */
-extern const char *strerrorname_np (int __err) __THROW;
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Translate error number to string according to the locale L. */
-extern char *strerror_l (int __errnum, locale_t __l) __THROW;
-#endif
-
-#ifdef __USE_MISC
-# include <strings.h>
-
-/* Set N bytes of S to 0. The compiler will not delete a call to this
- function, even if S is dead after the call. */
-extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1))
- __fortified_attr_access (__write_only__, 1, 2);
-
-/* Return the next DELIM-delimited token from *STRINGP,
- terminating it with a '\0', and update *STRINGP to point past it. */
-extern char *strsep (char **__restrict __stringp,
- const char *__restrict __delim)
- __THROW __nonnull ((1, 2));
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Return a string describing the meaning of the signal number in SIG. */
-extern char *strsignal (int __sig) __THROW;
-
-# ifdef __USE_GNU
-/* Return an abbreviation string for the signal number SIG. */
-extern const char *sigabbrev_np (int __sig) __THROW;
-/* Return a string describing the meaning of the signal number in SIG,
- the result is not translated. */
-extern const char *sigdescr_np (int __sig) __THROW;
-# endif
-
-/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
-extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
-extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
-
-/* Copy no more than N characters of SRC to DEST, returning the address of
- the last character written into DEST. */
-extern char *__stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-extern char *stpncpy (char *__restrict __dest,
- const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-#endif
-
-#ifdef __USE_GNU
-/* Compare S1 and S2 as strings holding name & indices/version numbers. */
-extern int strverscmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Sautee STRING briskly. */
-extern char *strfry (char *__string) __THROW __nonnull ((1));
-
-/* Frobnicate N bytes of S. */
-extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1))
- __attr_access ((__read_write__, 1, 2));
-
-# ifndef basename
-/* Return the file name within directory of FILENAME. We don't
- declare the function if the `basename' macro is available (defined
- in <libgen.h>) which makes the XPG version of this function
- available. */
-# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO
-extern "C++" char *basename (char *__filename)
- __THROW __asm ("basename") __nonnull ((1));
-extern "C++" const char *basename (const char *__filename)
- __THROW __asm ("basename") __nonnull ((1));
-# else
-extern char *basename (const char *__filename) __THROW __nonnull ((1));
-# endif
-# endif
-#endif
-
-#if __GNUC_PREREQ (3,4)
-# if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-/* Functions with security checks. */
-# include <bits/string_fortified.h>
-# endif
-#endif
-
-__END_DECLS
-
-#endif /* string.h */
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _STRINGS_H
-#define _STRINGS_H 1
-
-#include <features.h>
-#define __need_size_t
-#include <stddef.h>
-
-/* Tell the caller that we provide correct C++ prototypes. */
-#if defined __cplusplus && __GNUC_PREREQ (4, 4)
-# define __CORRECT_ISO_CPP_STRINGS_H_PROTO
-#endif
-
-__BEGIN_DECLS
-
-#if defined __USE_MISC || !defined __USE_XOPEN2K8
-/* Compare N bytes of S1 and S2 (same as memcmp). */
-extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
-extern void bcopy (const void *__src, void *__dest, size_t __n)
- __THROW __nonnull ((1, 2));
-
-/* Set N bytes of S to 0. */
-extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
-
-/* Find the first occurrence of C in S (same as strchr). */
-# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO
-extern "C++"
-{
-extern char *index (char *__s, int __c)
- __THROW __asm ("index") __attribute_pure__ __nonnull ((1));
-extern const char *index (const char *__s, int __c)
- __THROW __asm ("index") __attribute_pure__ __nonnull ((1));
-
-# if defined __OPTIMIZE__
-__extern_always_inline char *
-index (char *__s, int __c) __THROW
-{
- return __builtin_index (__s, __c);
-}
-
-__extern_always_inline const char *
-index (const char *__s, int __c) __THROW
-{
- return __builtin_index (__s, __c);
-}
-# endif
-}
-# else
-extern char *index (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-# endif
-
-/* Find the last occurrence of C in S (same as strrchr). */
-# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO
-extern "C++"
-{
-extern char *rindex (char *__s, int __c)
- __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1));
-extern const char *rindex (const char *__s, int __c)
- __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1));
-
-# if defined __OPTIMIZE__
-__extern_always_inline char *
-rindex (char *__s, int __c) __THROW
-{
- return __builtin_rindex (__s, __c);
-}
-
-__extern_always_inline const char *
-rindex (const char *__s, int __c) __THROW
-{
- return __builtin_rindex (__s, __c);
-}
-# endif
-}
-# else
-extern char *rindex (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-# endif
-#endif
-
-#if defined __USE_MISC || !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI
-/* Return the position of the first bit set in I, or 0 if none are set.
- The least-significant bit is position 1, the most-significant 32. */
-extern int ffs (int __i) __THROW __attribute_const__;
-#endif
-
-/* The following two functions are non-standard but necessary for non-32 bit
- platforms. */
-# ifdef __USE_MISC
-extern int ffsl (long int __l) __THROW __attribute_const__;
-__extension__ extern int ffsll (long long int __ll)
- __THROW __attribute_const__;
-# endif
-
-/* Compare S1 and S2, ignoring case. */
-extern int strcasecmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-/* Compare no more than N chars of S1 and S2, ignoring case. */
-extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-#ifdef __USE_XOPEN2K8
-/* POSIX.1-2008 extended locale interface (see locale.h). */
-# include <bits/types/locale_t.h>
-
-/* Compare S1 and S2, ignoring case, using collation rules from LOC. */
-extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
- __THROW __attribute_pure__ __nonnull ((1, 2, 3));
-
-/* Compare no more than N chars of S1 and S2, ignoring case, using
- collation rules from LOC. */
-extern int strncasecmp_l (const char *__s1, const char *__s2,
- size_t __n, locale_t __loc)
- __THROW __attribute_pure__ __nonnull ((1, 2, 4));
-#endif
-
-__END_DECLS
-
-#if __GNUC_PREREQ (3,4) && __USE_FORTIFY_LEVEL > 0 \
- && defined __fortify_function
-/* Functions with security checks. */
-# if defined __USE_MISC || !defined __USE_XOPEN2K8
-# include <bits/strings_fortified.h>
-# endif
-#endif
-
-#endif /* strings.h */
+++ /dev/null
-/* Copyright (C) 1992-2022 Free Software Foundation, Inc.
- Copyright The GNU Toolchain Authors.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_CDEFS_H
-#define _SYS_CDEFS_H 1
-
-/* We are almost always included from features.h. */
-#ifndef _FEATURES_H
-# include <features.h>
-#endif
-
-/* The GNU libc does not support any K&R compilers or the traditional mode
- of ISO C compilers anymore. Check for some of the combinations not
- supported anymore. */
-#if defined __GNUC__ && !defined __STDC__ && !defined __cplusplus
-# error "You need a ISO C or C++ conforming compiler to use the glibc headers"
-#endif
-
-/* Some user header file might have defined this before. */
-#undef __P
-#undef __PMT
-
-/* Compilers that lack __has_attribute may object to
- #if defined __has_attribute && __has_attribute (...)
- even though they do not need to evaluate the right-hand side of the &&.
- Similarly for __has_builtin, etc. */
-#if (defined __has_attribute \
- && (!defined __clang_minor__ \
- || 3 < __clang_major__ + (5 <= __clang_minor__)))
-# define __glibc_has_attribute(attr) __has_attribute (attr)
-#else
-# define __glibc_has_attribute(attr) 0
-#endif
-#ifdef __has_builtin
-# define __glibc_has_builtin(name) __has_builtin (name)
-#else
-# define __glibc_has_builtin(name) 0
-#endif
-#ifdef __has_extension
-# define __glibc_has_extension(ext) __has_extension (ext)
-#else
-# define __glibc_has_extension(ext) 0
-#endif
-
-#if defined __GNUC__ || defined __clang__
-
-/* All functions, except those with callbacks or those that
- synchronize memory, are leaf functions. */
-# if __GNUC_PREREQ (4, 6) && !defined _LIBC
-# define __LEAF , __leaf__
-# define __LEAF_ATTR __attribute__ ((__leaf__))
-# else
-# define __LEAF
-# define __LEAF_ATTR
-# endif
-
-/* GCC can always grok prototypes. For C++ programs we add throw()
- to help it optimize the function calls. But this only works with
- gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
- as non-throwing using a function attribute since programs can use
- the -fexceptions options for C code as well. */
-# if !defined __cplusplus \
- && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__))
-# define __THROW __attribute__ ((__nothrow__ __LEAF))
-# define __THROWNL __attribute__ ((__nothrow__))
-# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
-# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct
-# else
-# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4)
-# if __cplusplus >= 201103L
-# define __THROW noexcept (true)
-# else
-# define __THROW throw ()
-# endif
-# define __THROWNL __THROW
-# define __NTH(fct) __LEAF_ATTR fct __THROW
-# define __NTHNL(fct) fct __THROW
-# else
-# define __THROW
-# define __THROWNL
-# define __NTH(fct) fct
-# define __NTHNL(fct) fct
-# endif
-# endif
-
-#else /* Not GCC or clang. */
-
-# if (defined __cplusplus \
- || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
-# define __inline inline
-# else
-# define __inline /* No inline functions. */
-# endif
-
-# define __THROW
-# define __THROWNL
-# define __NTH(fct) fct
-
-#endif /* GCC || clang. */
-
-/* These two macros are not used in glibc anymore. They are kept here
- only because some other projects expect the macros to be defined. */
-#define __P(args) args
-#define __PMT(args) args
-
-/* For these things, GCC behaves the ANSI way normally,
- and the non-ANSI way under -traditional. */
-
-#define __CONCAT(x,y) x ## y
-#define __STRING(x) #x
-
-/* This is not a typedef so `const __ptr_t' does the right thing. */
-#define __ptr_t void *
-
-
-/* C++ needs to know that types and declarations are C, not C++. */
-#ifdef __cplusplus
-# define __BEGIN_DECLS extern "C" {
-# define __END_DECLS }
-#else
-# define __BEGIN_DECLS
-# define __END_DECLS
-#endif
-
-
-/* Fortify support. */
-#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
-#define __bos0(ptr) __builtin_object_size (ptr, 0)
-
-/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
-#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
- || __GNUC_PREREQ (12, 0))
-# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
-# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
-#else
-# define __glibc_objsize0(__o) __bos0 (__o)
-# define __glibc_objsize(__o) __bos (__o)
-#endif
-
-/* Compile time conditions to choose between the regular, _chk and _chk_warn
- variants. These conditions should get evaluated to constant and optimized
- away. */
-
-#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
-#define __glibc_unsigned_or_positive(__l) \
- ((__typeof (__l)) 0 < (__typeof (__l)) -1 \
- || (__builtin_constant_p (__l) && (__l) > 0))
-
-/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
- condition can be folded to a constant and if it is true, or unknown (-1) */
-#define __glibc_safe_or_unknown_len(__l, __s, __osz) \
- ((__builtin_constant_p (__osz) && (__osz) == (__SIZE_TYPE__) -1) \
- || (__glibc_unsigned_or_positive (__l) \
- && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
- (__s), (__osz))) \
- && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz))))
-
-/* Conversely, we know at compile time that the length is unsafe if the
- __L * __S <= __OBJSZ condition can be folded to a constant and if it is
- false. */
-#define __glibc_unsafe_len(__l, __s, __osz) \
- (__glibc_unsigned_or_positive (__l) \
- && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
- __s, __osz)) \
- && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))
-
-/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be
- declared. */
-
-#define __glibc_fortify(f, __l, __s, __osz, ...) \
- (__glibc_safe_or_unknown_len (__l, __s, __osz) \
- ? __ ## f ## _alias (__VA_ARGS__) \
- : (__glibc_unsafe_len (__l, __s, __osz) \
- ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \
- : __ ## f ## _chk (__VA_ARGS__, __osz))) \
-
-/* Fortify function f, where object size argument passed to f is the number of
- elements and not total size. */
-
-#define __glibc_fortify_n(f, __l, __s, __osz, ...) \
- (__glibc_safe_or_unknown_len (__l, __s, __osz) \
- ? __ ## f ## _alias (__VA_ARGS__) \
- : (__glibc_unsafe_len (__l, __s, __osz) \
- ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
- : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
-
-#if __GNUC_PREREQ (4,3)
-# define __warnattr(msg) __attribute__((__warning__ (msg)))
-# define __errordecl(name, msg) \
- extern void name (void) __attribute__((__error__ (msg)))
-#else
-# define __warnattr(msg)
-# define __errordecl(name, msg) extern void name (void)
-#endif
-
-/* Support for flexible arrays.
- Headers that should use flexible arrays only if they're "real"
- (e.g. only if they won't affect sizeof()) should test
- #if __glibc_c99_flexarr_available. */
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc
-# define __flexarr []
-# define __glibc_c99_flexarr_available 1
-#elif __GNUC_PREREQ (2,97) || defined __clang__
-/* GCC 2.97 and clang support C99 flexible array members as an extension,
- even when in C89 mode or compiling C++ (any version). */
-# define __flexarr []
-# define __glibc_c99_flexarr_available 1
-#elif defined __GNUC__
-/* Pre-2.97 GCC did not support C99 flexible arrays but did have
- an equivalent extension with slightly different notation. */
-# define __flexarr [0]
-# define __glibc_c99_flexarr_available 1
-#else
-/* Some other non-C99 compiler. Approximate with [1]. */
-# define __flexarr [1]
-# define __glibc_c99_flexarr_available 0
-#endif
-
-
-/* __asm__ ("xyz") is used throughout the headers to rename functions
- at the assembly language level. This is wrapped by the __REDIRECT
- macro, in order to support compilers that can do this some other
- way. When compilers don't support asm-names at all, we have to do
- preprocessor tricks instead (which don't have exactly the right
- semantics, but it's the best we can do).
-
- Example:
- int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
-
-#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4)
-
-# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
-# ifdef __cplusplus
-# define __REDIRECT_NTH(name, proto, alias) \
- name proto __THROW __asm__ (__ASMNAME (#alias))
-# define __REDIRECT_NTHNL(name, proto, alias) \
- name proto __THROWNL __asm__ (__ASMNAME (#alias))
-# else
-# define __REDIRECT_NTH(name, proto, alias) \
- name proto __asm__ (__ASMNAME (#alias)) __THROW
-# define __REDIRECT_NTHNL(name, proto, alias) \
- name proto __asm__ (__ASMNAME (#alias)) __THROWNL
-# endif
-# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
-# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
-
-/*
-#elif __SOME_OTHER_COMPILER__
-
-# define __REDIRECT(name, proto, alias) name proto; \
- _Pragma("let " #name " = " #alias)
-*/
-#endif
-
-/* GCC and clang have various useful declarations that can be made with
- the '__attribute__' syntax. All of the ways we use this do fine if
- they are omitted for compilers that don't understand it. */
-#if !(defined __GNUC__ || defined __clang__)
-# define __attribute__(xyz) /* Ignore */
-#endif
-
-/* At some point during the gcc 2.96 development the `malloc' attribute
- for functions was introduced. We don't want to use it unconditionally
- (although this would be possible) since it generates warnings. */
-#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__)
-# define __attribute_malloc__ __attribute__ ((__malloc__))
-#else
-# define __attribute_malloc__ /* Ignore */
-#endif
-
-/* Tell the compiler which arguments to an allocation function
- indicate the size of the allocation. */
-#if __GNUC_PREREQ (4, 3)
-# define __attribute_alloc_size__(params) \
- __attribute__ ((__alloc_size__ params))
-#else
-# define __attribute_alloc_size__(params) /* Ignore. */
-#endif
-
-/* Tell the compiler which argument to an allocation function
- indicates the alignment of the allocation. */
-#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__)
-# define __attribute_alloc_align__(param) \
- __attribute__ ((__alloc_align__ param))
-#else
-# define __attribute_alloc_align__(param) /* Ignore. */
-#endif
-
-/* At some point during the gcc 2.96 development the `pure' attribute
- for functions was introduced. We don't want to use it unconditionally
- (although this would be possible) since it generates warnings. */
-#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__)
-# define __attribute_pure__ __attribute__ ((__pure__))
-#else
-# define __attribute_pure__ /* Ignore */
-#endif
-
-/* This declaration tells the compiler that the value is constant. */
-#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__)
-# define __attribute_const__ __attribute__ ((__const__))
-#else
-# define __attribute_const__ /* Ignore */
-#endif
-
-#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__)
-# define __attribute_maybe_unused__ __attribute__ ((__unused__))
-#else
-# define __attribute_maybe_unused__ /* Ignore */
-#endif
-
-/* At some point during the gcc 3.1 development the `used' attribute
- for functions was introduced. We don't want to use it unconditionally
- (although this would be possible) since it generates warnings. */
-#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__)
-# define __attribute_used__ __attribute__ ((__used__))
-# define __attribute_noinline__ __attribute__ ((__noinline__))
-#else
-# define __attribute_used__ __attribute__ ((__unused__))
-# define __attribute_noinline__ /* Ignore */
-#endif
-
-/* Since version 3.2, gcc allows marking deprecated functions. */
-#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__)
-# define __attribute_deprecated__ __attribute__ ((__deprecated__))
-#else
-# define __attribute_deprecated__ /* Ignore */
-#endif
-
-/* Since version 4.5, gcc also allows one to specify the message printed
- when a deprecated function is used. clang claims to be gcc 4.2, but
- may also support this feature. */
-#if __GNUC_PREREQ (4,5) \
- || __glibc_has_extension (__attribute_deprecated_with_message__)
-# define __attribute_deprecated_msg__(msg) \
- __attribute__ ((__deprecated__ (msg)))
-#else
-# define __attribute_deprecated_msg__(msg) __attribute_deprecated__
-#endif
-
-/* At some point during the gcc 2.8 development the `format_arg' attribute
- for functions was introduced. We don't want to use it unconditionally
- (although this would be possible) since it generates warnings.
- If several `format_arg' attributes are given for the same function, in
- gcc-3.0 and older, all but the last one are ignored. In newer gccs,
- all designated arguments are considered. */
-#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__)
-# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
-#else
-# define __attribute_format_arg__(x) /* Ignore */
-#endif
-
-/* At some point during the gcc 2.97 development the `strfmon' format
- attribute for functions was introduced. We don't want to use it
- unconditionally (although this would be possible) since it
- generates warnings. */
-#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__)
-# define __attribute_format_strfmon__(a,b) \
- __attribute__ ((__format__ (__strfmon__, a, b)))
-#else
-# define __attribute_format_strfmon__(a,b) /* Ignore */
-#endif
-
-/* The nonnull function attribute marks pointer parameters that
- must not be NULL. This has the name __nonnull in glibc,
- and __attribute_nonnull__ in files shared with Gnulib to avoid
- collision with a different __nonnull in DragonFlyBSD 5.9. */
-#ifndef __attribute_nonnull__
-# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__)
-# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params))
-# else
-# define __attribute_nonnull__(params)
-# endif
-#endif
-#ifndef __nonnull
-# define __nonnull(params) __attribute_nonnull__ (params)
-#endif
-
-/* The returns_nonnull function attribute marks the return type of the function
- as always being non-null. */
-#ifndef __returns_nonnull
-# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__)
-# define __returns_nonnull __attribute__ ((__returns_nonnull__))
-# else
-# define __returns_nonnull
-# endif
-#endif
-
-/* If fortification mode, we warn about unused results of certain
- function calls which can lead to problems. */
-#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__)
-# define __attribute_warn_unused_result__ \
- __attribute__ ((__warn_unused_result__))
-# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0
-# define __wur __attribute_warn_unused_result__
-# endif
-#else
-# define __attribute_warn_unused_result__ /* empty */
-#endif
-#ifndef __wur
-# define __wur /* Ignore */
-#endif
-
-/* Forces a function to be always inlined. */
-#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__)
-/* The Linux kernel defines __always_inline in stddef.h (283d7573), and
- it conflicts with this definition. Therefore undefine it first to
- allow either header to be included first. */
-# undef __always_inline
-# define __always_inline __inline __attribute__ ((__always_inline__))
-#else
-# undef __always_inline
-# define __always_inline __inline
-#endif
-
-/* Associate error messages with the source location of the call site rather
- than with the source location inside the function. */
-#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__)
-# define __attribute_artificial__ __attribute__ ((__artificial__))
-#else
-# define __attribute_artificial__ /* Ignore */
-#endif
-
-/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
- inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
- or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
- older than 4.3 may define these macros and still not guarantee GNU inlining
- semantics.
-
- clang++ identifies itself as gcc-4.2, but has support for GNU inlining
- semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
- __GNUC_GNU_INLINE__ macro definitions. */
-#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
- || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
- || defined __GNUC_GNU_INLINE__)))
-# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
-# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
-# define __extern_always_inline \
- extern __always_inline __attribute__ ((__gnu_inline__))
-# else
-# define __extern_inline extern __inline
-# define __extern_always_inline extern __always_inline
-# endif
-#endif
-
-#ifdef __extern_always_inline
-# define __fortify_function __extern_always_inline __attribute_artificial__
-#endif
-
-/* GCC 4.3 and above allow passing all anonymous arguments of an
- __extern_always_inline function to some other vararg function. */
-#if __GNUC_PREREQ (4,3)
-# define __va_arg_pack() __builtin_va_arg_pack ()
-# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
-#endif
-
-/* It is possible to compile containing GCC extensions even if GCC is
- run in pedantic mode if the uses are carefully marked using the
- `__extension__' keyword. But this is not generally available before
- version 2.8. */
-#if !(__GNUC_PREREQ (2,8) || defined __clang__)
-# define __extension__ /* Ignore */
-#endif
-
-/* __restrict is known in EGCS 1.2 and above, and in clang.
- It works also in C++ mode (outside of arrays), but only when spelled
- as '__restrict', not 'restrict'. */
-#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3)
-# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-# define __restrict restrict
-# else
-# define __restrict /* Ignore */
-# endif
-#endif
-
-/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
- array_name[restrict]
- GCC 3.1 and clang support this.
- This syntax is not usable in C++ mode. */
-#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus
-# define __restrict_arr __restrict
-#else
-# ifdef __GNUC__
-# define __restrict_arr /* Not supported in old GCC. */
-# else
-# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-# define __restrict_arr restrict
-# else
-/* Some other non-C99 compiler. */
-# define __restrict_arr /* Not supported. */
-# endif
-# endif
-#endif
-
-#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect)
-# define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
-# define __glibc_likely(cond) __builtin_expect ((cond), 1)
-#else
-# define __glibc_unlikely(cond) (cond)
-# define __glibc_likely(cond) (cond)
-#endif
-
-#if (!defined _Noreturn \
- && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
- && !(__GNUC_PREREQ (4,7) \
- || (3 < __clang_major__ + (5 <= __clang_minor__))))
-# if __GNUC_PREREQ (2,8)
-# define _Noreturn __attribute__ ((__noreturn__))
-# else
-# define _Noreturn
-# endif
-#endif
-
-#if __GNUC_PREREQ (8, 0)
-/* Describes a char array whose address can safely be passed as the first
- argument to strncpy and strncat, as the char array is not necessarily
- a NUL-terminated string. */
-# define __attribute_nonstring__ __attribute__ ((__nonstring__))
-#else
-# define __attribute_nonstring__
-#endif
-
-/* Undefine (also defined in libc-symbols.h). */
-#undef __attribute_copy__
-#if __GNUC_PREREQ (9, 0)
-/* Copies attributes from the declaration or type referenced by
- the argument. */
-# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg)))
-#else
-# define __attribute_copy__(arg)
-#endif
-
-#if (!defined _Static_assert && !defined __cplusplus \
- && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
- && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \
- || defined __STRICT_ANSI__))
-# define _Static_assert(expr, diagnostic) \
- extern int (*__Static_assert_function (void)) \
- [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })]
-#endif
-
-/* Gnulib avoids including these, as they don't work on non-glibc or
- older glibc platforms. */
-#ifndef __GNULIB_CDEFS
-# include <bits/wordsize.h>
-# include <bits/long-double.h>
-#endif
-
-#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
-# ifdef __REDIRECT
-
-/* Alias name defined automatically. */
-# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir
-# define __LDBL_REDIR_DECL(name) \
- extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128"));
-
-/* Alias name defined automatically, with leading underscores. */
-# define __LDBL_REDIR2_DECL(name) \
- extern __typeof (__##name) __##name \
- __asm (__ASMNAME ("__" #name "ieee128"));
-
-/* Alias name defined manually. */
-# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1
-# define __LDBL_REDIR1_DECL(name, alias) \
- extern __typeof (name) name __asm (__ASMNAME (#alias));
-
-# define __LDBL_REDIR1_NTH(name, proto, alias) \
- __REDIRECT_NTH (name, proto, alias)
-# define __REDIRECT_NTH_LDBL(name, proto, alias) \
- __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128)
-
-/* Unused. */
-# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl
-# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth
-
-# else
-_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform");
-# endif
-#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
-# define __LDBL_COMPAT 1
-# ifdef __REDIRECT
-# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
-# define __LDBL_REDIR(name, proto) \
- __LDBL_REDIR1 (name, proto, __nldbl_##name)
-# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
-# define __LDBL_REDIR_NTH(name, proto) \
- __LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
-# define __LDBL_REDIR2_DECL(name) \
- extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name));
-# define __LDBL_REDIR1_DECL(name, alias) \
- extern __typeof (name) name __asm (__ASMNAME (#alias));
-# define __LDBL_REDIR_DECL(name) \
- extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
-# define __REDIRECT_LDBL(name, proto, alias) \
- __LDBL_REDIR1 (name, proto, __nldbl_##alias)
-# define __REDIRECT_NTH_LDBL(name, proto, alias) \
- __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
-# endif
-#endif
-#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \
- || !defined __REDIRECT
-# define __LDBL_REDIR1(name, proto, alias) name proto
-# define __LDBL_REDIR(name, proto) name proto
-# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
-# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
-# define __LDBL_REDIR2_DECL(name)
-# define __LDBL_REDIR_DECL(name)
-# ifdef __REDIRECT
-# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
-# define __REDIRECT_NTH_LDBL(name, proto, alias) \
- __REDIRECT_NTH (name, proto, alias)
-# endif
-#endif
-
-/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
- intended for use in preprocessor macros.
-
- Note: MESSAGE must be a _single_ string; concatenation of string
- literals is not supported. */
-#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)
-# define __glibc_macro_warning1(message) _Pragma (#message)
-# define __glibc_macro_warning(message) \
- __glibc_macro_warning1 (GCC warning message)
-#else
-# define __glibc_macro_warning(msg)
-#endif
-
-/* Generic selection (ISO C11) is a C-only feature, available in GCC
- since version 4.9. Previous versions do not provide generic
- selection, even though they might set __STDC_VERSION__ to 201112L,
- when in -std=c11 mode. Thus, we must check for !defined __GNUC__
- when testing __STDC_VERSION__ for generic selection support.
- On the other hand, Clang also defines __GNUC__, so a clang-specific
- check is required to enable the use of generic selection. */
-#if !defined __cplusplus \
- && (__GNUC_PREREQ (4, 9) \
- || __glibc_has_extension (c_generic_selections) \
- || (!defined __GNUC__ && defined __STDC_VERSION__ \
- && __STDC_VERSION__ >= 201112L))
-# define __HAVE_GENERIC_SELECTION 1
-#else
-# define __HAVE_GENERIC_SELECTION 0
-#endif
-
-#if __GNUC_PREREQ (10, 0)
-/* Designates a 1-based positional argument ref-index of pointer type
- that can be used to access size-index elements of the pointed-to
- array according to access mode, or at least one element when
- size-index is not provided:
- access (access-mode, <ref-index> [, <size-index>]) */
-# define __attr_access(x) __attribute__ ((__access__ x))
-/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may
- use the access attribute to get object sizes from function definition
- arguments, so we can't use them on functions we fortify. Drop the object
- size hints for such functions. */
-# if __USE_FORTIFY_LEVEL == 3
-# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o)))
-# else
-# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s))
-# endif
-# if __GNUC_PREREQ (11, 0)
-# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))
-# else
-# define __attr_access_none(argno)
-# endif
-#else
-# define __fortified_attr_access(a, o, s)
-# define __attr_access(x)
-# define __attr_access_none(argno)
-#endif
-
-#if __GNUC_PREREQ (11, 0)
-/* Designates dealloc as a function to call to deallocate objects
- allocated by the declared function. */
-# define __attr_dealloc(dealloc, argno) \
- __attribute__ ((__malloc__ (dealloc, argno)))
-# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1)
-#else
-# define __attr_dealloc(dealloc, argno)
-# define __attr_dealloc_free
-#endif
-
-/* Specify that a function such as setjmp or vfork may return
- twice. */
-#if __GNUC_PREREQ (4, 1)
-# define __attribute_returns_twice__ __attribute__ ((__returns_twice__))
-#else
-# define __attribute_returns_twice__ /* Ignore. */
-#endif
-
-#endif /* sys/cdefs.h */
+++ /dev/null
-/* `fd_set' type and related macros, and `select'/`pselect' declarations.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> */
-
-#ifndef _SYS_SELECT_H
-#define _SYS_SELECT_H 1
-
-#include <features.h>
-
-/* Get definition of needed basic types. */
-#include <bits/types.h>
-
-/* Get __FD_* definitions. */
-#include <bits/select.h>
-
-/* Get sigset_t. */
-#include <bits/types/sigset_t.h>
-
-/* Get definition of timer specification structures. */
-#include <bits/types/time_t.h>
-#include <bits/types/struct_timeval.h>
-#ifdef __USE_XOPEN2K
-# include <bits/types/struct_timespec.h>
-#endif
-
-#ifndef __suseconds_t_defined
-typedef __suseconds_t suseconds_t;
-# define __suseconds_t_defined
-#endif
-
-
-/* The fd_set member is required to be an array of longs. */
-typedef long int __fd_mask;
-
-/* Some versions of <linux/posix_types.h> define this macros. */
-#undef __NFDBITS
-/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
-#define __NFDBITS (8 * (int) sizeof (__fd_mask))
-#define __FD_ELT(d) ((d) / __NFDBITS)
-#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS)))
-
-/* fd_set for select and pselect. */
-typedef struct
- {
- /* XPG4.2 requires this member name. Otherwise avoid the name
- from the global namespace. */
-#ifdef __USE_XOPEN
- __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->fds_bits)
-#else
- __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->__fds_bits)
-#endif
- } fd_set;
-
-/* Maximum number of file descriptors in `fd_set'. */
-#define FD_SETSIZE __FD_SETSIZE
-
-#ifdef __USE_MISC
-/* Sometimes the fd_set member is assumed to have this type. */
-typedef __fd_mask fd_mask;
-
-/* Number of bits per word of `fd_set' (some code assumes this is 32). */
-# define NFDBITS __NFDBITS
-#endif
-
-
-/* Access macros for `fd_set'. */
-#define FD_SET(fd, fdsetp) __FD_SET (fd, fdsetp)
-#define FD_CLR(fd, fdsetp) __FD_CLR (fd, fdsetp)
-#define FD_ISSET(fd, fdsetp) __FD_ISSET (fd, fdsetp)
-#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
-
-
-__BEGIN_DECLS
-
-/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
- readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
- (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
- after waiting the interval specified therein. Returns the number of ready
- descriptors, or -1 for errors.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-#ifndef __USE_TIME_BITS64
-extern int select (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout);
-#else
-# ifdef __REDIRECT
-extern int __REDIRECT (select,
- (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout),
- __select64);
-# else
-# define select __select64
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K
-/* Same as above only that the TIMEOUT value is given with higher
- resolution and a sigmask which is been set temporarily. This version
- should be used.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-# ifndef __USE_TIME_BITS64
-extern int pselect (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- const struct timespec *__restrict __timeout,
- const __sigset_t *__restrict __sigmask);
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (pselect,
- (int __nfds, fd_set *__restrict __readfds,
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- const struct timespec *__restrict __timeout,
- const __sigset_t *__restrict __sigmask),
- __pselect64);
-# else
-# define pselect __pselect64
-# endif
-# endif
-#endif
-
-
-/* Define some inlines helping to catch common problems. */
-#if __USE_FORTIFY_LEVEL > 0 && defined __GNUC__
-# include <bits/select2.h>
-#endif
-
-__END_DECLS
-
-#endif /* sys/select.h */
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
- */
-
-#ifndef _SYS_TYPES_H
-#define _SYS_TYPES_H 1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-#include <bits/types.h>
-
-#ifdef __USE_MISC
-# ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-# endif
-typedef __loff_t loff_t;
-#endif
-
-#ifndef __ino_t_defined
-# ifndef __USE_FILE_OFFSET64
-typedef __ino_t ino_t;
-# else
-typedef __ino64_t ino_t;
-# endif
-# define __ino_t_defined
-#endif
-#if defined __USE_LARGEFILE64 && !defined __ino64_t_defined
-typedef __ino64_t ino64_t;
-# define __ino64_t_defined
-#endif
-
-#ifndef __dev_t_defined
-typedef __dev_t dev_t;
-# define __dev_t_defined
-#endif
-
-#ifndef __gid_t_defined
-typedef __gid_t gid_t;
-# define __gid_t_defined
-#endif
-
-#ifndef __mode_t_defined
-typedef __mode_t mode_t;
-# define __mode_t_defined
-#endif
-
-#ifndef __nlink_t_defined
-typedef __nlink_t nlink_t;
-# define __nlink_t_defined
-#endif
-
-#ifndef __uid_t_defined
-typedef __uid_t uid_t;
-# define __uid_t_defined
-#endif
-
-#ifndef __off_t_defined
-# ifndef __USE_FILE_OFFSET64
-typedef __off_t off_t;
-# else
-typedef __off64_t off_t;
-# endif
-# define __off_t_defined
-#endif
-#if defined __USE_LARGEFILE64 && !defined __off64_t_defined
-typedef __off64_t off64_t;
-# define __off64_t_defined
-#endif
-
-#ifndef __pid_t_defined
-typedef __pid_t pid_t;
-# define __pid_t_defined
-#endif
-
-#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) \
- && !defined __id_t_defined
-typedef __id_t id_t;
-# define __id_t_defined
-#endif
-
-#ifndef __ssize_t_defined
-typedef __ssize_t ssize_t;
-# define __ssize_t_defined
-#endif
-
-#ifdef __USE_MISC
-# ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-# endif
-#endif
-
-#if (defined __USE_MISC || defined __USE_XOPEN) && !defined __key_t_defined
-typedef __key_t key_t;
-# define __key_t_defined
-#endif
-
-#if defined __USE_XOPEN || defined __USE_XOPEN2K8
-# include <bits/types/clock_t.h>
-#endif
-#include <bits/types/clockid_t.h>
-#include <bits/types/time_t.h>
-#include <bits/types/timer_t.h>
-
-#ifdef __USE_XOPEN
-# ifndef __useconds_t_defined
-typedef __useconds_t useconds_t;
-# define __useconds_t_defined
-# endif
-# ifndef __suseconds_t_defined
-typedef __suseconds_t suseconds_t;
-# define __suseconds_t_defined
-# endif
-#endif
-
-#define __need_size_t
-#include <stddef.h>
-
-#ifdef __USE_MISC
-/* Old compatibility names for C types. */
-typedef unsigned long int ulong;
-typedef unsigned short int ushort;
-typedef unsigned int uint;
-#endif
-
-/* These size-specific names are used by some of the inet code. */
-
-#include <bits/stdint-intn.h>
-
-/* These were defined by ISO C without the first `_'. */
-typedef __uint8_t u_int8_t;
-typedef __uint16_t u_int16_t;
-typedef __uint32_t u_int32_t;
-typedef __uint64_t u_int64_t;
-
-#if __GNUC_PREREQ (2, 7)
-typedef int register_t __attribute__ ((__mode__ (__word__)));
-#else
-typedef int register_t;
-#endif
-
-/* Some code from BIND tests this macro to see if the types above are
- defined. */
-#define __BIT_TYPES_DEFINED__ 1
-
-
-#ifdef __USE_MISC
-/* In BSD <sys/types.h> is expected to define BYTE_ORDER. */
-# include <endian.h>
-
-/* It also defines `fd_set' and the FD_* macros for `select'. */
-# include <sys/select.h>
-#endif /* Use misc. */
-
-
-#if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \
- && !defined __blksize_t_defined
-typedef __blksize_t blksize_t;
-# define __blksize_t_defined
-#endif
-
-/* Types from the Large File Support interface. */
-#ifndef __USE_FILE_OFFSET64
-# ifndef __blkcnt_t_defined
-typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */
-# define __blkcnt_t_defined
-# endif
-# ifndef __fsblkcnt_t_defined
-typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */
-# define __fsblkcnt_t_defined
-# endif
-# ifndef __fsfilcnt_t_defined
-typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */
-# define __fsfilcnt_t_defined
-# endif
-#else
-# ifndef __blkcnt_t_defined
-typedef __blkcnt64_t blkcnt_t; /* Type to count number of disk blocks. */
-# define __blkcnt_t_defined
-# endif
-# ifndef __fsblkcnt_t_defined
-typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */
-# define __fsblkcnt_t_defined
-# endif
-# ifndef __fsfilcnt_t_defined
-typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */
-# define __fsfilcnt_t_defined
-# endif
-#endif
-
-#ifdef __USE_LARGEFILE64
-typedef __blkcnt64_t blkcnt64_t; /* Type to count number of disk blocks. */
-typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks. */
-typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */
-#endif
-
-
-/* Now add the thread types. */
-#if defined __USE_POSIX199506 || defined __USE_UNIX98
-# include <bits/pthreadtypes.h>
-#endif
-
-__END_DECLS
-
-#endif /* sys/types.h */
+++ /dev/null
-/* Copyright (C) 1991-2022 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99 Standard: 7.23 Date and time <time.h>
- */
-
-#ifndef _TIME_H
-#define _TIME_H 1
-
-#include <features.h>
-
-#define __need_size_t
-#define __need_NULL
-#include <stddef.h>
-
-/* This defines CLOCKS_PER_SEC, which is the number of processor clock
- ticks per second, and possibly a number of other constants. */
-#include <bits/time.h>
-
-/* Many of the typedefs and structs whose official home is this header
- may also need to be defined by other headers. */
-#include <bits/types/clock_t.h>
-#include <bits/types/time_t.h>
-#include <bits/types/struct_tm.h>
-
-#if defined __USE_POSIX199309 || defined __USE_ISOC11
-# include <bits/types/struct_timespec.h>
-#endif
-
-#ifdef __USE_POSIX199309
-# include <bits/types/clockid_t.h>
-# include <bits/types/timer_t.h>
-# include <bits/types/struct_itimerspec.h>
-struct sigevent;
-#endif
-
-#ifdef __USE_XOPEN2K
-# ifndef __pid_t_defined
-typedef __pid_t pid_t;
-# define __pid_t_defined
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K8
-# include <bits/types/locale_t.h>
-#endif
-
-#ifdef __USE_ISOC11
-/* Time base values for timespec_get. */
-# define TIME_UTC 1
-#endif
-
-__BEGIN_DECLS
-
-/* Time used by the program so far (user time + system time).
- The result / CLOCKS_PER_SEC is program time in seconds. */
-extern clock_t clock (void) __THROW;
-
-#ifndef __USE_TIME_BITS64
-/* Return the current time and put it in *TIMER if TIMER is not NULL. */
-extern time_t time (time_t *__timer) __THROW;
-
-/* Return the difference between TIME1 and TIME0. */
-extern double difftime (time_t __time1, time_t __time0)
- __THROW __attribute__ ((__const__));
-
-/* Return the `time_t' representation of TP and normalize TP. */
-extern time_t mktime (struct tm *__tp) __THROW;
-#else
-# ifdef __REDIRECT_NTH
-extern time_t __REDIRECT_NTH (time, (time_t *__timer), __time64);
-extern double __REDIRECT_NTH (difftime, (time_t __time1, time_t __time0),
- __difftime64) __attribute__ ((__const__));
-extern time_t __REDIRECT_NTH (mktime, (struct tm *__tp), __mktime64);
-# else
-# define time __time64
-# define difftime __difftime64
-# define mktime __mktime64
-# endif
-#endif
-
-/* Format TP into S according to FORMAT.
- Write no more than MAXSIZE characters and return the number
- of characters written, or 0 if it would exceed MAXSIZE. */
-extern size_t strftime (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp) __THROW;
-
-#ifdef __USE_XOPEN
-/* Parse S according to FORMAT and store binary time information in TP.
- The return value is a pointer to the first unparsed character in S. */
-extern char *strptime (const char *__restrict __s,
- const char *__restrict __fmt, struct tm *__tp)
- __THROW;
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Similar to the two functions above but take the information from
- the provided locale and not the global locale. */
-
-extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
- const char *__restrict __format,
- const struct tm *__restrict __tp,
- locale_t __loc) __THROW;
-#endif
-
-#ifdef __USE_GNU
-extern char *strptime_l (const char *__restrict __s,
- const char *__restrict __fmt, struct tm *__tp,
- locale_t __loc) __THROW;
-#endif
-
-
-#ifndef __USE_TIME_BITS64
-/* Return the `struct tm' representation of *TIMER
- in Universal Coordinated Time (aka Greenwich Mean Time). */
-extern struct tm *gmtime (const time_t *__timer) __THROW;
-
-/* Return the `struct tm' representation
- of *TIMER in the local timezone. */
-extern struct tm *localtime (const time_t *__timer) __THROW;
-
-#else
-# ifdef __REDIRECT_NTH
-extern struct tm*__REDIRECT_NTH (gmtime, (const time_t *__timer), __gmtime64);
-extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer),
- __localtime64);
-# else
-# define gmtime __gmtime64
-# define localtime __localtime64
-# endif
-#endif
-
-
-#if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
-# ifndef __USE_TIME_BITS64
-/* Return the `struct tm' representation of *TIMER in UTC,
- using *TP to store the result. */
-extern struct tm *gmtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __THROW;
-
-/* Return the `struct tm' representation of *TIMER in local time,
- using *TP to store the result. */
-extern struct tm *localtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __THROW;
-# else
-# ifdef __REDIRECT_NTH
-extern struct tm*__REDIRECT_NTH (gmtime_r, (const time_t *__restrict __timer,
- struct tm *__restrict __tp),
- __gmtime64_r);
-
-extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t,
- struct tm *__restrict __tp),
- __localtime64_r);
-# else
-# define gmtime_r __gmtime64_r
-# define localtime_r __localtime_r
-# endif
-# endif
-#endif /* POSIX || C2X */
-
-/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
- that is the representation of TP in this format. */
-extern char *asctime (const struct tm *__tp) __THROW;
-
-/* Equivalent to `asctime (localtime (timer))'. */
-#ifndef __USE_TIME_BITS64
-extern char *ctime (const time_t *__timer) __THROW;
-#else
-# ifdef __REDIRECT_NTH
-extern char *__REDIRECT_NTH (ctime, (const time_t *__timer), __ctime64);
-# else
-# define ctime __ctime64
-# endif
-#endif
-
-#ifdef __USE_POSIX
-/* Reentrant versions of the above functions. */
-
-/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
- that is the representation of TP in this format. */
-extern char *asctime_r (const struct tm *__restrict __tp,
- char *__restrict __buf) __THROW;
-
-/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
-#ifndef __USE_TIME_BITS64
-extern char *ctime_r (const time_t *__restrict __timer,
- char *__restrict __buf) __THROW;
-#else
-# ifdef __REDIRECT_NTH
-extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict __timer,
- char *__restrict __buf), __ctime64_r);
-# else
-# define ctime_r __ctime64_r
-# endif
-#endif
-
-#endif /* POSIX */
-
-
-/* Defined in localtime.c. */
-extern char *__tzname[2]; /* Current timezone names. */
-extern int __daylight; /* If daylight-saving time is ever in use. */
-extern long int __timezone; /* Seconds west of UTC. */
-
-
-#ifdef __USE_POSIX
-/* Same as above. */
-extern char *tzname[2];
-
-/* Set time conversion information from the TZ environment variable.
- If TZ is not defined, a locale-dependent default is used. */
-extern void tzset (void) __THROW;
-#endif
-
-#if defined __USE_MISC || defined __USE_XOPEN
-extern int daylight;
-extern long int timezone;
-#endif
-
-
-/* Nonzero if YEAR is a leap year (every 4 years,
- except every 100th isn't, and every 400th is). */
-#define __isleap(year) \
- ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
-
-
-#if defined __USE_MISC || __GLIBC_USE (ISOC2X)
-# ifndef __USE_TIME_BITS64
-/* Like `mktime', but for TP represents Universal Time, not local time. */
-extern time_t timegm (struct tm *__tp) __THROW;
-# else
-# ifdef __REDIRECT_NTH
-extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64);
-# else
-# define timegm __timegm64
-# endif
-# endif
-#endif
-
-
-#ifdef __USE_MISC
-/* Miscellaneous functions many Unices inherited from the public domain
- localtime package. These are included only for compatibility. */
-
-#ifndef __USE_TIME_BITS64
-/* Another name for `mktime'. */
-extern time_t timelocal (struct tm *__tp) __THROW;
-#else
-# ifdef __REDIRECT_NTH
-extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp), __mktime64);
-# endif
-#endif
-
-/* Return the number of days in YEAR. */
-extern int dysize (int __year) __THROW __attribute__ ((__const__));
-#endif
-
-
-#ifdef __USE_POSIX199309
-# ifndef __USE_TIME_BITS64
-/* Pause execution for a number of nanoseconds.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int nanosleep (const struct timespec *__requested_time,
- struct timespec *__remaining);
-
-/* Get resolution of clock CLOCK_ID. */
-extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
-
-/* Get current value of clock CLOCK_ID and store it in TP. */
-extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp)
- __THROW __nonnull((2));
-
-/* Set clock CLOCK_ID to value TP. */
-extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
- __THROW __nonnull((2));
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (nanosleep, (const struct timespec *__requested_time,
- struct timespec *__remaining),
- __nanosleep64);
-extern int __REDIRECT_NTH (clock_getres, (clockid_t __clock_id,
- struct timespec *__res),
- __clock_getres64);
-extern int __REDIRECT_NTH (clock_gettime, (clockid_t __clock_id, struct
- timespec *__tp), __clock_gettime64)
- __nonnull((2));
-extern int __REDIRECT_NTH (clock_settime, (clockid_t __clock_id, const struct
- timespec *__tp), __clock_settime64)
- __nonnull((2));
-# else
-# define nanosleep __nanosleep64
-# define clock_getres __clock_getres64
-# define clock_gettime __clock_gettime64
-# define clock_settime __clock_settime64
-# endif
-# endif
-
-
-# ifdef __USE_XOPEN2K
-/* High-resolution sleep with the specified clock.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-# ifndef __USE_TIME_BITS64
-extern int clock_nanosleep (clockid_t __clock_id, int __flags,
- const struct timespec *__req,
- struct timespec *__rem);
-# else
-# ifdef __REDIRECT
-extern int __REDIRECT (clock_nanosleep, (clockid_t __clock_id, int __flags,
- const struct timespec *__req,
- struct timespec *__rem),
- __clock_nanosleep_time64);
-# else
-# define clock_nanosleep __clock_nanosleep_time64
-# endif
-# endif
-
-/* Return clock ID for CPU-time clock. */
-extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
-# endif
-
-
-/* Create new per-process timer using CLOCK_ID. */
-extern int timer_create (clockid_t __clock_id,
- struct sigevent *__restrict __evp,
- timer_t *__restrict __timerid) __THROW;
-
-/* Delete timer TIMERID. */
-extern int timer_delete (timer_t __timerid) __THROW;
-
-/* Set timer TIMERID to VALUE, returning old value in OVALUE. */
-# ifndef __USE_TIME_BITS64
-extern int timer_settime (timer_t __timerid, int __flags,
- const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue) __THROW;
-
-/* Get current value of timer TIMERID and store it in VALUE. */
-extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
- __THROW;
-# else
-# ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (timer_settime, (timer_t __timerid, int __flags,
- const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue),
- __timer_settime64);
-
-extern int __REDIRECT_NTH (timer_gettime, (timer_t __timerid,
- struct itimerspec *__value),
- __timer_gettime64);
-# else
-# define timer_settime __timer_settime64
-# define timer_gettime __timer_gettime64
-# endif
-# endif
-
-/* Get expiration overrun for timer TIMERID. */
-extern int timer_getoverrun (timer_t __timerid) __THROW;
-#endif
-
-
-#ifdef __USE_ISOC11
-# ifndef __USE_TIME_BITS64
-/* Set TS to calendar time based in time base BASE. */
-extern int timespec_get (struct timespec *__ts, int __base)
- __THROW __nonnull ((1));
-# else
-# ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base),
- __timespec_get64) __nonnull ((1));
-# else
-# define timespec_get __timespec_get64
-# endif
-# endif
-#endif
-
-
-#if __GLIBC_USE (ISOC2X)
-# ifndef __USE_TIME_BITS64
-/* Set TS to resolution of time base BASE. */
-extern int timespec_getres (struct timespec *__ts, int __base)
- __THROW;
-# else
-# ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (timespec_getres, (struct timespec *__ts,
- int __base),
- __timespec_getres64);
-# else
-# define timespec_getres __timespec_getres64
-# endif
-# endif
-#endif
-
-
-#ifdef __USE_XOPEN_EXTENDED
-/* Set to one of the following values to indicate an error.
- 1 the DATEMSK environment variable is null or undefined,
- 2 the template file cannot be opened for reading,
- 3 failed to get file status information,
- 4 the template file is not a regular file,
- 5 an error is encountered while reading the template file,
- 6 memory allication failed (not enough memory available),
- 7 there is no line in the template that matches the input,
- 8 invalid input specification Example: February 31 or a time is
- specified that can not be represented in a time_t (representing
- the time in seconds since 00:00:00 UTC, January 1, 1970) */
-extern int getdate_err;
-
-/* Parse the given string as a date specification and return a value
- representing the value. The templates from the file identified by
- the environment variable DATEMSK are used. In case of an error
- `getdate_err' is set.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern struct tm *getdate (const char *__string);
-#endif
-
-#ifdef __USE_GNU
-/* Since `getdate' is not reentrant because of the use of `getdate_err'
- and the static buffer to return the result in, we provide a thread-safe
- variant. The functionality is the same. The result is returned in
- the buffer pointed to by RESBUFP and in case of an error the return
- value is != 0 with the same values as given above for `getdate_err'.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int getdate_r (const char *__restrict __string,
- struct tm *__restrict __resbufp);
-#endif
-
-__END_DECLS
-
-#endif /* time.h. */
+++ /dev/null
-/*===---- stdarg.h - Variable argument handling ----------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#ifndef __STDARG_H
-#define __STDARG_H
-
-#ifndef _VA_LIST
-typedef __builtin_va_list va_list;
-#define _VA_LIST
-#endif
-#define va_start(ap, param) __builtin_va_start(ap, param)
-#define va_end(ap) __builtin_va_end(ap)
-#define va_arg(ap, type) __builtin_va_arg(ap, type)
-
-/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode
- * or -ansi is not specified, since it was not part of C90.
- */
-#define __va_copy(d,s) __builtin_va_copy(d,s)
-
-#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__)
-#define va_copy(dest, src) __builtin_va_copy(dest, src)
-#endif
-
-#ifndef __GNUC_VA_LIST
-#define __GNUC_VA_LIST 1
-typedef __builtin_va_list __gnuc_va_list;
-#endif
-
-#endif /* __STDARG_H */
+++ /dev/null
-/*===---- stddef.h - Basic type definitions --------------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===-----------------------------------------------------------------------===
- */
-
-#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \
- defined(__need_size_t) || defined(__need_wchar_t) || \
- defined(__need_NULL) || defined(__need_wint_t)
-
-#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
- !defined(__need_wchar_t) && !defined(__need_NULL) && \
- !defined(__need_wint_t)
-/* Always define miscellaneous pieces when modules are available. */
-#if !__has_feature(modules)
-#define __STDDEF_H
-#endif
-#define __need_ptrdiff_t
-#define __need_size_t
-#define __need_wchar_t
-#define __need_NULL
-#define __need_STDDEF_H_misc
-/* __need_wint_t is intentionally not defined here. */
-#endif
-
-#if defined(__need_ptrdiff_t)
-#if !defined(_PTRDIFF_T) || __has_feature(modules)
-/* Always define ptrdiff_t when modules are available. */
-#if !__has_feature(modules)
-#define _PTRDIFF_T
-#endif
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-#endif
-#undef __need_ptrdiff_t
-#endif /* defined(__need_ptrdiff_t) */
-
-#if defined(__need_size_t)
-#if !defined(_SIZE_T) || __has_feature(modules)
-/* Always define size_t when modules are available. */
-#if !__has_feature(modules)
-#define _SIZE_T
-#endif
-typedef __SIZE_TYPE__ size_t;
-#endif
-#undef __need_size_t
-#endif /*defined(__need_size_t) */
-
-#if defined(__need_STDDEF_H_misc)
-/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
- * enabled. */
-#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
- !defined(_RSIZE_T)) || __has_feature(modules)
-/* Always define rsize_t when modules are available. */
-#if !__has_feature(modules)
-#define _RSIZE_T
-#endif
-typedef __SIZE_TYPE__ rsize_t;
-#endif
-#endif /* defined(__need_STDDEF_H_misc) */
-
-#if defined(__need_wchar_t)
-#ifndef __cplusplus
-/* Always define wchar_t when modules are available. */
-#if !defined(_WCHAR_T) || __has_feature(modules)
-#if !__has_feature(modules)
-#define _WCHAR_T
-#if defined(_MSC_EXTENSIONS)
-#define _WCHAR_T_DEFINED
-#endif
-#endif
-typedef __WCHAR_TYPE__ wchar_t;
-#endif
-#endif
-#undef __need_wchar_t
-#endif /* defined(__need_wchar_t) */
-
-#if defined(__need_NULL)
-#undef NULL
-#ifdef __cplusplus
-# if !defined(__MINGW32__) && !defined(_MSC_VER)
-# define NULL __null
-# else
-# define NULL 0
-# endif
-#else
-# define NULL ((void*)0)
-#endif
-#ifdef __cplusplus
-#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
-namespace std { typedef decltype(nullptr) nullptr_t; }
-using ::std::nullptr_t;
-#endif
-#endif
-#undef __need_NULL
-#endif /* defined(__need_NULL) */
-
-#if defined(__need_STDDEF_H_misc)
-#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
-#include "__stddef_max_align_t.h"
-#endif
-#define offsetof(t, d) __builtin_offsetof(t, d)
-#undef __need_STDDEF_H_misc
-#endif /* defined(__need_STDDEF_H_misc) */
-
-/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
-__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
-#if defined(__need_wint_t)
-/* Always define wint_t when modules are available. */
-#if !defined(_WINT_T) || __has_feature(modules)
-#if !__has_feature(modules)
-#define _WINT_T
-#endif
-typedef __WINT_TYPE__ wint_t;
-#endif
-#undef __need_wint_t
-#endif /* __need_wint_t */
-
-#endif
+++ /dev/null
-#include "odot.h"
-
-
+++ /dev/null
-#include "odot.h"
-
-void add(struct task t){
- char *line = malloc(MAXLINE*sizeof(char)); printf("\talloc\n");
- FILE *fp = fopen("/home/huck/.local/state/odot/todo.txt", "r");
- FILE *buf = fopen("/home/huck/.local/state/odot/odot.txt", "w+"); printf("\tfopen\n");
- int i = 0;
-
- if (fgets(line,MAXLINE,fp) == NULL){ printf("\tNULLcheck\n");
- puttask(t,buf);
- } else {
- printf("\tloopstart\n");
- int j = 0;
- while (fgets(line,MAXLINE,fp) != NULL){
- printf("\t%i-nloop\n", ++j);
- switch (listcheck(t,line)){
- case 3:
- dialogue("Already on todo list", t.task, CYAN);
- printf("Remove from list?");
- if (check() == 0){
- break;
- } else {
- puttask(*gettask(line), buf);
- break;
- }
- case 1:
- dialogue("Already on list in a different group", gettask(line)->group, YELLOW);
- if (check() == 0){
- puttask(t,buf);
- i++;
- }
- puttask(*gettask(line), buf);
- break;
- default:
- /* first time t.task is lexigraphically greater than a previous task */
- if (i == 0 && strcmp(line,t.task) > 0){
- puttask(t,buf);
- ++i;
- }
- puttask(*gettask(line), buf);
- break;
- }
- }
- }
-
- fclose(fp);
- fclose(buf);
- rename("/home/huck/.local/state/odot/odot.txt", "/home/huck/.local/state/odot/todo.txt");
- fp = fopen("/home/huck/.local/state/odot/todo.txt", "w+");
- if (!fp)
- error(1);
- return;
-}
-
-
-void rem(struct task t){
- char *s = malloc(MAXLINE * sizeof(char));
- FILE *fp = fopen("/home/huck/.local/state/odot/todo.txt", "r");
- FILE *buf = fopen("/home/huck/.local/state/odot/odot.txt", "w+");
- int i = 0;
-
- while (fgets(s, MAXLINE, fp) != NULL){
- s[strlen(s) - 1] = 0;
- if (strcmp(t.task, s) != 0){
- fputs(strcat(s,"\t"),buf);
- } else {
- i++;
- }
- }
-
- fclose(fp);
- fclose(buf);
- remove ("/home/huck/.local/state/odot/todo.txt");
- rename("/home/huck/.local/state/odot/odot.txt", "/home/huck/.local/state/odot/todo.txt");
-
- if (i == 0){
- dialogue("Task not found", t.task, YELLOW);
- printf("Add to list?");
- if(check() == 0){
- add(t);
- }
- }
-}
-
-void show(char *group){
- char *task = malloc(MAXLINE * sizeof(char));
- FILE *f = fopen("/home/huck/.local/state/odot/todo.txt", "r");
- struct task tmp;
-
- printf("\twhileloop\n");
- int j = 0;
- while ((fgets(task, MAXLINE, f)) != NULL ){
- tmp = *gettask(task); printf("\t%i-nloop\n", ++j);
- if (strcmp(group, "all") == 0 || strcmp(tmp.group, group) == 0){
- formattask(tmp);
- }
- }
- fclose(f);
-}
-
+++ /dev/null
-#include "odot.h"
-
+++ /dev/null
-#include "odot.h"
-
-struct task getnote(int n, char *arg[], char *group){
- char *note = malloc(MAXLINE * sizeof(char));
- struct task *tmp;
-
- if (n == 1){
- printf("\t\treturn from note\n");
- return *tmp;
- }
-
-
- while(--n > 0){
- printf("\t%i-nloop\n",n);
- if ((*++arg)[0] != '-'){
- strcat(note, *arg);
- strcat(note, " ");
- } else if (strcmp(*arg,"-g") == 0){
- strcpy(group, (*++arg));
- n--;
- }
- }
- printf("\t%s %s getnote\n",note,group);
- tmp = maketask(note,group);
- return *tmp;
-}
-
-/* uses a 3 bit number to represent options
- 1 - show list
- 2 - add to list
- 4 - remove from list
-*/
-short getopt(int n, char *arg[]){
- short options;
-
- printf("\treturn1\n");
- /* show list if no arguments given */
- if (n == 1)
- return 1;
-
- printf("\tcheckopt\n");
- while (--n > 0 && (*++arg)[0] == '-'){
- /* if theres a d delete, otherwise add */
- options += strchr(*arg, 's') ? 1 : 0;
- options += strchr(*arg, 'n') ? 2 : 0;
- options += strchr(*arg, 'd') ? 4 : 0;
- }
- printf("\t%i-optcode\n", options);
- if ((options - 5) > 0)
- error(2);
- return options;
-}
-
-
-struct task *maketask(char *task, char *group){
- printf("\tmaketask\n");
- struct task *tmp;
-
- tmp->task = malloc(strlen(task) * sizeof(char));
- tmp->group = malloc(strlen(group) * sizeof(char));
-
- strcpy(tmp->task,task);
- strcpy(tmp->group,(strcmp(tmp->group,"") == 0) ? "all" : group);
-
- printf("\t%s-task %s-group\n",tmp->task,tmp->group);
-
- return tmp;
-}
-
-
-struct task *gettask(char *c){
- char *task, *group;
- task = malloc(strlen(c) * sizeof(char));
- group = malloc(strlen(c) * sizeof(char));
-
- sscanf(c,"%s\t%s",task,group);
-
- struct task *tmp = maketask(task,group);
-
- return tmp;
-}
-
-void puttask(struct task t, FILE *fp){
- printf("\t%s %s puttask\n", t.task, t.group);
- fprintf(fp,"%s\t%s\n",t.task,t.group);
-}
+++ /dev/null
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define MAXLINE 500
-#define LIST "/home/huck/.local/state/odot/todo.txt"
-#define DONE "/home/huck/.local/state/odot/done.txt"
-#define TMP "/home/huck/.local/state/odot/odot.txt"
-
-int getopt(int, char **);
-char *getnote(int, char **);
-
-void addnote(char *);
-void show();
-
-int main(int argc, char *argv[]){
-
- if (argc == 1){
- show();
- } else {
- addnote(getnote(argc,argv));
- }
- return 0;
-}
-
-char *getnote(int n, char *arg[]){
- char *s = malloc(MAXLINE * sizeof(char));
- while (--n > 0){
- strcat(s,*++arg);
- strcat(s,(n > 1) ? " " : "\n");
- }
- return s;
-}
-
-void addnote(char *note){
- int i = 0;
- char *buf = malloc(MAXLINE * sizeof(char));
-
- FILE *fp = fopen(LIST,"r");
- FILE *fdone = fopen(DONE,"a");
- FILE *tmp = fopen(TMP,"w");
- if(!fp || !tmp || !fdone)
- exit(1);
-
- while(fgets(buf, MAXLINE, fp)){
- if (strcmp(note,buf) > 0){
- fputs(buf,tmp);
- } else if (strcmp(note,buf) == 0){
- fputs(note,fdone);
- printf("Removed from list: %s", note);
- i++;
- } else if (strcmp(note,buf) < 0){
- if (i == 0){
- fputs(note,tmp);
- printf("Added to list: %s", note);
- i++;
- }
- fputs(buf,tmp);
- }
- }
- if (i == 0){
- fputs(note,tmp);
- printf("Added to list: %s", note);
- }
-
- fclose(tmp);
- fclose(fp);
- fclose(fdone);
- free(buf);
- remove(LIST);
- rename(TMP,LIST);
- return;
-}
-
-void show(void){
- FILE *fp = fopen(LIST,"r");
- char *buf = malloc(MAXLINE * sizeof(char));
-
- printf("\033[36;1mTODO\033[0m:\n");
- while(fgets(buf,MAXLINE,fp)){
- printf(" \033[35;1m*\033[0m %s", buf);
- }
-
- free(buf);
- fclose(fp);
- return;
-}
-
+++ /dev/null
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <time.h>
-#define TODOLIST "/home/huck/.local/state/odot/todo"
-
-#define MAXLINE 1000
-#define TIME "%H:%M %m-%d-%y"
-
-struct task {
- char *task;
- char *group;
-};
-
-struct task getnote(int, char *[], char *);
-short getopt(int, char *[]);
-
-void add(struct task);
-void rem(struct task);
-void show(char *group);
-
-int listcheck(struct task, char *);
-int geturgency(int);
-char *gettime(void);
-
-void dialogue(char *, char *, int);
-void formattask(struct task t);
-void error(int);
-int check(void);
-
-struct task *maketask(char *, char *);
-void puttask(struct task n, FILE*);
-struct task *gettask(char *);
-
-enum color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE};
+++ /dev/null
-#include "odot.h"
-
-extern FILE *fp;
-
-
+++ /dev/null
-#include <stdio.h>
-
-int main(int argc, char *argv[]){
- FILE *fp = fopen("/home/huck/.local/state/odot/todo", "w+");
-
- fclose(fp);
- return 0;
-}
-