]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Move most headers installed by top-level Makefile to misc/.
authorZack Weinberg <zackw@panix.com>
Sun, 24 Feb 2019 00:08:54 +0000 (19:08 -0500)
committerZack Weinberg <zackw@panix.com>
Wed, 8 Jan 2020 17:52:44 +0000 (12:52 -0500)
The Makefile glue to run tests on installed headers is currently
duplicated between the top-level Makefile and Rules, because the
top-level Makefile doesn't read Rules but does install some headers.

This patch moves most of the headers installed by the top-level Makefile
to misc/ (chosen arbitrarily; I'm open to putting them somewhere else
if reviewers feel it would be better) and removes the duplicated logic
from the top-level Makefile.  I believe this also means that none of
the headers in include/ are installed headers anymore.

gnu/lib-names*.h are still generated by code in Makerules and installed
by the top-level Makefile.  I tried to move them to misc/ as well, but
that broke the generation process in a manner that didn't make any sense
so I gave up.  The tests performed on installed headers are not
especially useful for gnu/lib-names*.h so I think we can live with this
for now.

* include/bits/xopen_lim.h
* include/features.h
* include/gnu-versions.h
* include/gnu/libc-version.h
* include/limits.h
* include/stdc-predef.h
* include/values.h:
Move to misc/ and replace with a trivial wrapper.
* Makefile (headers): Remove all headers moved to misc/.
Don't set a vpath for %.h.
(check-installed-headers-c.out, check-installed-headers-cxx.out)
(check-wrapper-headers.out): Remove rules.
* misc/Makefile (headers): Add all of the above headers and
sort the list.
* sysdeps/mach/hurd/bits/errno.h: Regenerate.

17 files changed:
Makefile
include/bits/xopen_lim.h
include/features.h
include/gnu-versions.h
include/gnu/libc-version.h
include/limits.h
include/stdc-predef.h
include/values.h
misc/Makefile
misc/bits/xopen_lim.h [new file with mode: 0644]
misc/features.h [new file with mode: 0644]
misc/gnu-versions.h [new file with mode: 0644]
misc/gnu/libc-version.h [new file with mode: 0644]
misc/limits.h [new file with mode: 0644]
misc/stdc-predef.h [new file with mode: 0644]
misc/values.h [new file with mode: 0644]
sysdeps/mach/hurd/bits/errno.h

index 3dafcec2b246ec71bfcebd03cfab0d8d3d40359a..647c49baa26a237709e0cc6cb5b6cedc774ea875 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -68,17 +68,11 @@ endif # $(AUTOCONF) = no
                   subdir_objs subdir_stubs subdir_testclean            \
                   $(addprefix install-, no-libc.a bin lib data headers others)
 \f
-headers := limits.h values.h features.h gnu-versions.h \
-          bits/xopen_lim.h gnu/libc-version.h stdc-predef.h \
-          bits/libc-header-start.h
+headers :=
 
 echo-headers: subdir_echo-headers
 
-# The headers are in the include directory.
-subdir-dirs = include
-vpath %.h $(subdir-dirs)
-
-# What to install.
+# This header is created during the install process.  See below.
 install-others = $(inst_includedir)/gnu/stubs.h
 install-bin-script =
 
@@ -522,34 +516,6 @@ $(objpfx)check-local-headers.out: scripts/check-local-headers.sh
          "$(includedir)" "$(objpfx)" < /dev/null > $@; \
        $(evaluate-test)
 
-ifneq "$(headers)" ""
-# Special test of all the installed headers in this directory.
-tests-special += $(objpfx)check-installed-headers-c.out
-libof-check-installed-headers-c := testsuite
-$(objpfx)check-installed-headers-c.out: \
-    scripts/check-installed-headers.sh $(headers)
-       $(SHELL) $(..)scripts/check-installed-headers.sh c \
-         "$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
-         $(headers) > $@; \
-       $(evaluate-test)
-
-ifneq "$(CXX)" ""
-tests-special += $(objpfx)check-installed-headers-cxx.out
-libof-check-installed-headers-cxx := testsuite
-$(objpfx)check-installed-headers-cxx.out: \
-    scripts/check-installed-headers.sh $(headers)
-       $(SHELL) $(..)scripts/check-installed-headers.sh c++ \
-         "$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
-         $(headers) > $@; \
-       $(evaluate-test)
-endif # $(CXX)
-
-tests-special += $(objpfx)check-wrapper-headers.out
-$(objpfx)check-wrapper-headers.out: scripts/check-wrapper-headers.py $(headers)
-       $(PYTHON) $< --root=. --subdir=. $(headers) \
-         --generated $(common-generated) > $@; $(evaluate-test)
-endif # $(headers)
-
 define summarize-tests
 @egrep -v '^(PASS|XFAIL):' $(objpfx)$1 || true
 @echo "Summary of test results$2:"
index 957010d2c0b589b476c1ab4d557734fd191be585..9c2c1ecf9ba7fe6e514a89d1ddbd96fc16a95477 100644 (file)
@@ -1,148 +1 @@
-/* Copyright (C) 1996-2020 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 <limits.h> instead.
- */
-
-/* Additional definitions from X/Open Portability Guide, Issue 4, Version 2
-   System Interfaces and Headers, 4.16 <limits.h>
-
-   Please note only the values which are not greater than the minimum
-   stated in the standard document are listed.  The `sysconf' functions
-   should be used to obtain the actual value.  */
-
-#ifndef _XOPEN_LIM_H
-#define _XOPEN_LIM_H   1
-
-/* We do not provide fixed values for
-
-   ARG_MAX     Maximum length of argument to the `exec' function
-               including environment data.
-
-   ATEXIT_MAX  Maximum number of functions that may be registered
-               with `atexit'.
-
-   CHILD_MAX   Maximum number of simultaneous processes per real
-               user ID.
-
-   OPEN_MAX    Maximum number of files that one process can have open
-               at anyone time.
-
-   PAGESIZE
-   PAGE_SIZE   Size of bytes of a page.
-
-   PASS_MAX    Maximum number of significant bytes in a password.
-
-   We only provide a fixed limit for
-
-   IOV_MAX     Maximum number of `iovec' structures that one process has
-               available for use with `readv' or writev'.
-
-   if this is indeed fixed by the underlying system.
-*/
-
-
-/* Maximum number of `iovec' structures that may be used in a single call
-   to `readv', `writev', etc.  */
-#define        _XOPEN_IOV_MAX  _POSIX_UIO_MAXIOV
-
-#include <bits/uio_lim.h>
-#ifdef __IOV_MAX
-# define IOV_MAX __IOV_MAX
-#else
-# undef IOV_MAX
-#endif
-
-/* Maximum value of `digit' in calls to the `printf' and `scanf'
-   functions.  We have no limit, so return a reasonable value.  */
-#define NL_ARGMAX      _POSIX_ARG_MAX
-
-/* Maximum number of bytes in a `LANG' name.  We have no limit.  */
-#define NL_LANGMAX     _POSIX2_LINE_MAX
-
-/* Maximum message number.  We have no limit.  */
-#define NL_MSGMAX      INT_MAX
-
-/* Maximum number of bytes in N-to-1 collation mapping.  We have no
-   limit.  */
-#if defined __USE_GNU || !defined __USE_XOPEN2K8
-# define NL_NMAX       INT_MAX
-#endif
-
-/* Maximum set number.  We have no limit.  */
-#define NL_SETMAX      INT_MAX
-
-/* Maximum number of bytes in a message.  We have no limit.  */
-#define NL_TEXTMAX     INT_MAX
-
-/* Default process priority.  */
-#define NZERO          20
-
-
-/* Number of bits in a word of type `int'.  */
-#ifdef INT_MAX
-# if INT_MAX == 32767
-#  define WORD_BIT     16
-# else
-#  if INT_MAX == 2147483647
-#   define WORD_BIT    32
-#  else
-/* Safe assumption.  */
-#   define WORD_BIT    64
-#  endif
-# endif
-#elif defined __INT_MAX__
-# if __INT_MAX__ == 32767
-#  define WORD_BIT     16
-# else
-#  if __INT_MAX__ == 2147483647
-#   define WORD_BIT    32
-#  else
-/* Safe assumption.  */
-#   define WORD_BIT    64
-#  endif
-# endif
-#else
-# define WORD_BIT      32
-#endif
-
-/* Number of bits in a word of type `long int'.  */
-#ifdef LONG_MAX
-# if LONG_MAX == 2147483647
-#  define LONG_BIT     32
-# else
-/* Safe assumption.  */
-#  define LONG_BIT     64
-# endif
-#elif defined __LONG_MAX__
-# if __LONG_MAX__ == 2147483647
-#  define LONG_BIT     32
-# else
-/* Safe assumption.  */
-#  define LONG_BIT     64
-# endif
-#else
-# include <bits/wordsize.h>
-# if __WORDSIZE == 64
-#  define LONG_BIT     64
-# else
-#  define LONG_BIT     32
-# endif
-#endif
-
-#endif /* bits/xopen_lim.h */
+#include <misc/bits/xopen_lim.h>
index af371842bb9b6fa58dd46a6958dc1843da83e91e..504a6848bc78e0dac90a17f38090dd78bb7d84e7 100644 (file)
@@ -1,492 +1 @@
-/* Copyright (C) 1991-2020 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.
-
-   _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.
-   _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_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_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
-#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
-
-#if defined _DEFAULT_SOURCE
-# define __USE_MISC    1
-#endif
-
-#ifdef _ATFILE_SOURCE
-# define __USE_ATFILE  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 > 1
-#  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__ 30
-
-#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  */
+#include <misc/features.h>
index d2f06f648a7ca93a2eb4233c916b6633b8c0a898..eafc8c842dbd320c21b758b2ac3943f6aed6ccc3 100644 (file)
@@ -1,52 +1 @@
-/* Header with interface version macros for library pieces copied elsewhere.
-   Copyright (C) 1995-2020 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 _GNU_VERSIONS_H
-#define        _GNU_VERSIONS_H 1
-
-/* This file exists to define these few macros.  Each specifies a version
-   number associated with the library interface of a piece of the C library
-   which is also distributed with other GNU packages.  These pieces are
-   both part of the GNU C library and also distributed with other GNU
-   packages so those packages may use their facilities on systems lacking
-   the GNU C library.  The source files for each piece surround all their
-   code with `#ifndef ELIDE_CODE' after defining it with this:
-
-   #define OBSTACK_INTERFACE_VERSION 1
-   #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
-   #include <gnu-versions.h>
-   #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
-   #define ELIDE_CODE
-   #endif
-   #endif
-
-   This allows those one to avoid compiling those files when part of a GNU
-   package not libc, on a system using a GNU C library that supports the
-   same interface.
-
-   Please preserve the format of the comments after each macro.  And
-   remember, if any of these versions change, the libc.so major version
-   number must change too (so avoid it)!  */
-
-#define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */
-#define _GNU_REGEX_INTERFACE_VERSION   1 /* vs posix/regex.c */
-#define _GNU_GLOB_INTERFACE_VERSION    2 /* vs posix/glob.c */
-#define _GNU_GETOPT_INTERFACE_VERSION  2 /* vs posix/getopt.c and
-                                            posix/getopt1.c */
-
-#endif /* gnu-versions.h */
+#include <misc/gnu-versions.h>
index 37d9e86dc493e55119f403d65a6fd7f59dd954d0..745fb5bbd2fecd818ed7c23781394b4f9fe246dc 100644 (file)
@@ -1,34 +1 @@
-/* Interface to GNU libc specific functions for version information.
-   Copyright (C) 1998-2020 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 _GNU_LIBC_VERSION_H
-#define        _GNU_LIBC_VERSION_H     1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* Return string describing release status of currently running GNU libc.  */
-extern const char *gnu_get_libc_release (void) __THROW;
-
-/* Return string describing version of currently running GNU libc.  */
-extern const char *gnu_get_libc_version (void) __THROW;
-
-__END_DECLS
-
-#endif /* gnu/libc-version.h */
+#include <misc/gnu/libc-version.h>
index 8195da78a4a6074d737ec45ba27b8fec6005543e..9eb278c69b817ad4dc4af37426ca36c4879e36b1 100644 (file)
@@ -1,192 +1 @@
-/* Copyright (C) 1991-2020 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.10/5.2.4.2.1 Sizes of integer types <limits.h>
- */
-
-#ifndef _LIBC_LIMITS_H_
-#define _LIBC_LIMITS_H_        1
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-
-
-/* Maximum length of any multibyte character in any locale.
-   We define this value here since the gcc header does not define
-   the correct value.  */
-#define MB_LEN_MAX     16
-
-
-/* If we are not using GNU CC we have to define all the symbols ourself.
-   Otherwise use gcc's definitions (see below).  */
-#if !defined __GNUC__ || __GNUC__ < 2
-
-/* We only protect from multiple inclusion here, because all the other
-   #include's protect themselves, and in GCC 2 we may #include_next through
-   multiple copies of this file before we get to GCC's.  */
-# ifndef _LIMITS_H
-#  define _LIMITS_H    1
-
-#include <bits/wordsize.h>
-
-/* We don't have #include_next.
-   Define ANSI <limits.h> for standard 32-bit words.  */
-
-/* These assume 8-bit `char's, 16-bit `short int's,
-   and 32-bit `int's and `long int's.  */
-
-/* Number of bits in a `char'. */
-#  define CHAR_BIT     8
-
-/* Minimum and maximum values a `signed char' can hold.  */
-#  define SCHAR_MIN    (-128)
-#  define SCHAR_MAX    127
-
-/* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */
-#  define UCHAR_MAX    255
-
-/* Minimum and maximum values a `char' can hold.  */
-#  ifdef __CHAR_UNSIGNED__
-#   define CHAR_MIN    0
-#   define CHAR_MAX    UCHAR_MAX
-#  else
-#   define CHAR_MIN    SCHAR_MIN
-#   define CHAR_MAX    SCHAR_MAX
-#  endif
-
-/* Minimum and maximum values a `signed short int' can hold.  */
-#  define SHRT_MIN     (-32768)
-#  define SHRT_MAX     32767
-
-/* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */
-#  define USHRT_MAX    65535
-
-/* Minimum and maximum values a `signed int' can hold.  */
-#  define INT_MIN      (-INT_MAX - 1)
-#  define INT_MAX      2147483647
-
-/* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */
-#  define UINT_MAX     4294967295U
-
-/* Minimum and maximum values a `signed long int' can hold.  */
-#  if __WORDSIZE == 64
-#   define LONG_MAX    9223372036854775807L
-#  else
-#   define LONG_MAX    2147483647L
-#  endif
-#  define LONG_MIN     (-LONG_MAX - 1L)
-
-/* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */
-#  if __WORDSIZE == 64
-#   define ULONG_MAX   18446744073709551615UL
-#  else
-#   define ULONG_MAX   4294967295UL
-#  endif
-
-#  ifdef __USE_ISOC99
-
-/* Minimum and maximum values a `signed long long int' can hold.  */
-#   define LLONG_MAX   9223372036854775807LL
-#   define LLONG_MIN   (-LLONG_MAX - 1LL)
-
-/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */
-#   define ULLONG_MAX  18446744073709551615ULL
-
-#  endif /* ISO C99 */
-
-# endif        /* limits.h  */
-#endif /* GCC 2.  */
-
-#endif /* !_LIBC_LIMITS_H_ */
-
- /* Get the compiler's limits.h, which defines almost all the ISO constants.
-
-    We put this #include_next outside the double inclusion check because
-    it should be possible to include this file more than once and still get
-    the definitions from gcc's header.  */
-#if defined __GNUC__ && !defined _GCC_LIMITS_H_
-/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
-# include_next <limits.h>
-#endif
-
-/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
-   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
-   ages are available.  */
-#if defined __USE_ISOC99 && defined __GNUC__
-# ifndef LLONG_MIN
-#  define LLONG_MIN    (-LLONG_MAX-1)
-# endif
-# ifndef LLONG_MAX
-#  define LLONG_MAX    __LONG_LONG_MAX__
-# endif
-# ifndef ULLONG_MAX
-#  define ULLONG_MAX   (LLONG_MAX * 2ULL + 1)
-# endif
-#endif
-
-/* The integer width macros are not defined by GCC's <limits.h> before
-   GCC 7, or if _GNU_SOURCE rather than
-   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */
-#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
-# ifndef CHAR_WIDTH
-#  define CHAR_WIDTH 8
-# endif
-# ifndef SCHAR_WIDTH
-#  define SCHAR_WIDTH 8
-# endif
-# ifndef UCHAR_WIDTH
-#  define UCHAR_WIDTH 8
-# endif
-# ifndef SHRT_WIDTH
-#  define SHRT_WIDTH 16
-# endif
-# ifndef USHRT_WIDTH
-#  define USHRT_WIDTH 16
-# endif
-# ifndef INT_WIDTH
-#  define INT_WIDTH 32
-# endif
-# ifndef UINT_WIDTH
-#  define UINT_WIDTH 32
-# endif
-# ifndef LONG_WIDTH
-#  define LONG_WIDTH __WORDSIZE
-# endif
-# ifndef ULONG_WIDTH
-#  define ULONG_WIDTH __WORDSIZE
-# endif
-# ifndef LLONG_WIDTH
-#  define LLONG_WIDTH 64
-# endif
-# ifndef ULLONG_WIDTH
-#  define ULLONG_WIDTH 64
-# endif
-#endif /* Use IEC_60559_BFP_EXT.  */
-
-#ifdef __USE_POSIX
-/* POSIX adds things to <limits.h>.  */
-# include <bits/posix1_lim.h>
-#endif
-
-#ifdef __USE_POSIX2
-# include <bits/posix2_lim.h>
-#endif
-
-#ifdef __USE_XOPEN
-# include <bits/xopen_lim.h>
-#endif
+#include <misc/limits.h>
index eaf0a6aea8151db1d13a56fe22d9ac4448526b7f..0a8122ae37d3d9b4c3572e683d933532b294e070 100644 (file)
@@ -1,60 +1 @@
-/* Copyright (C) 1991-2020 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
-# endif
-#else
-# define __STDC_IEC_559__              1
-#endif
-
-#ifdef __GCC_IEC_559_COMPLEX
-# if __GCC_IEC_559_COMPLEX > 0
-#  define __STDC_IEC_559_COMPLEX__     1
-# endif
-#else
-# define __STDC_IEC_559_COMPLEX__      1
-#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
+#include <misc/stdc-predef.h>
index 401a3928c01ca4d5dcb759febe8a0d1f7008d539..56ad18e803f5dde4609bfb7aa8d0df4b49a90245 100644 (file)
@@ -1,68 +1 @@
-/* Old compatibility names for <limits.h> and <float.h> constants.
-   Copyright (C) 1995-2020 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 interface is obsolete.  New programs should use
-   <limits.h> and/or <float.h> instead of <values.h>.  */
-
-#ifndef        _VALUES_H
-#define        _VALUES_H       1
-
-#include <features.h>
-
-#include <limits.h>
-
-#define _TYPEBITS(type)        (sizeof (type) * CHAR_BIT)
-
-#define CHARBITS       _TYPEBITS (char)
-#define SHORTBITS      _TYPEBITS (short int)
-#define INTBITS                _TYPEBITS (int)
-#define LONGBITS       _TYPEBITS (long int)
-#define PTRBITS                _TYPEBITS (char *)
-#define DOUBLEBITS     _TYPEBITS (double)
-#define FLOATBITS      _TYPEBITS (float)
-
-#define MINSHORT       SHRT_MIN
-#define        MININT          INT_MIN
-#define        MINLONG         LONG_MIN
-
-#define        MAXSHORT        SHRT_MAX
-#define        MAXINT          INT_MAX
-#define        MAXLONG         LONG_MAX
-
-#define HIBITS         MINSHORT
-#define HIBITL         MINLONG
-
-
-#include <float.h>
-
-#define        MAXDOUBLE       DBL_MAX
-#define        MAXFLOAT        FLT_MAX
-#define        MINDOUBLE       DBL_MIN
-#define        MINFLOAT        FLT_MIN
-#define        DMINEXP         DBL_MIN_EXP
-#define        FMINEXP         FLT_MIN_EXP
-#define        DMAXEXP         DBL_MAX_EXP
-#define        FMAXEXP         FLT_MAX_EXP
-
-
-#ifdef __USE_MISC
-/* Some systems define this name instead of CHAR_BIT or CHARBITS.  */
-# define BITSPERBYTE   CHAR_BIT
-#endif
-
-#endif /* values.h */
+#include <misc/values.h>
index e0465980c7bffc61db4a76080f5d7264b96ea71c..a25146d33219ca593283cb765305f2981f7514a3 100644 (file)
@@ -23,21 +23,22 @@ subdir      := misc
 
 include ../Makeconfig
 
-headers        := sys/uio.h bits/uio-ext.h bits/uio_lim.h \
-          sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
-          sys/ptrace.h sys/file.h sys/dir.h sys/cdefs.h \
-          ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \
-          ttyent.h paths.h sys/reboot.h \
-          sys/mman.h sys/param.h bits/param.h \
-          fstab.h mntent.h search.h err.h error.h \
-          sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
-          sys/select.h sys/sysinfo.h \
-          regexp.h bits/select.h bits/mman.h sys/xattr.h \
-          syslog.h sys/syslog.h \
-          bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \
-          bits/select2.h bits/hwcap.h sys/auxv.h \
-          sys/sysmacros.h bits/sysmacros.h bits/types/struct_iovec.h \
-          bits/err-ldbl.h bits/error-ldbl.h
+headers :=                                                             \
+       a.out.h ar.h err.h error.h features.h fstab.h gnu-versions.h    \
+       libgen.h limits.h mntent.h paths.h regexp.h search.h sgtty.h    \
+       stab.h stdc-predef.h syscall.h sysexits.h syslog.h ttyent.h     \
+       values.h                                                        \
+       bits/err-ldbl.h bits/error-ldbl.h bits/error.h bits/hwcap.h     \
+       bits/ioctl-types.h bits/ioctls.h bits/libc-header-start.h       \
+       bits/mman.h bits/param.h bits/select.h bits/select2.h           \
+       bits/stab.def bits/syslog-ldbl.h bits/syslog-path.h             \
+       bits/syslog.h bits/sysmacros.h bits/types/struct_iovec.h        \
+       bits/uio-ext.h bits/uio_lim.h bits/xopen_lim.h                  \
+       gnu/libc-version.h                                              \
+       sys/auxv.h sys/cdefs.h sys/dir.h sys/file.h sys/ioctl.h         \
+       sys/mman.h sys/param.h sys/ptrace.h sys/queue.h sys/reboot.h    \
+       sys/select.h sys/swap.h sys/syscall.h sys/sysinfo.h             \
+       sys/syslog.h sys/sysmacros.h sys/uio.h sys/xattr.h
 
 routines := brk sbrk sstk ioctl \
            readv writev preadv preadv64 pwritev pwritev64 \
diff --git a/misc/bits/xopen_lim.h b/misc/bits/xopen_lim.h
new file mode 100644 (file)
index 0000000..957010d
--- /dev/null
@@ -0,0 +1,148 @@
+/* Copyright (C) 1996-2020 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 <limits.h> instead.
+ */
+
+/* Additional definitions from X/Open Portability Guide, Issue 4, Version 2
+   System Interfaces and Headers, 4.16 <limits.h>
+
+   Please note only the values which are not greater than the minimum
+   stated in the standard document are listed.  The `sysconf' functions
+   should be used to obtain the actual value.  */
+
+#ifndef _XOPEN_LIM_H
+#define _XOPEN_LIM_H   1
+
+/* We do not provide fixed values for
+
+   ARG_MAX     Maximum length of argument to the `exec' function
+               including environment data.
+
+   ATEXIT_MAX  Maximum number of functions that may be registered
+               with `atexit'.
+
+   CHILD_MAX   Maximum number of simultaneous processes per real
+               user ID.
+
+   OPEN_MAX    Maximum number of files that one process can have open
+               at anyone time.
+
+   PAGESIZE
+   PAGE_SIZE   Size of bytes of a page.
+
+   PASS_MAX    Maximum number of significant bytes in a password.
+
+   We only provide a fixed limit for
+
+   IOV_MAX     Maximum number of `iovec' structures that one process has
+               available for use with `readv' or writev'.
+
+   if this is indeed fixed by the underlying system.
+*/
+
+
+/* Maximum number of `iovec' structures that may be used in a single call
+   to `readv', `writev', etc.  */
+#define        _XOPEN_IOV_MAX  _POSIX_UIO_MAXIOV
+
+#include <bits/uio_lim.h>
+#ifdef __IOV_MAX
+# define IOV_MAX __IOV_MAX
+#else
+# undef IOV_MAX
+#endif
+
+/* Maximum value of `digit' in calls to the `printf' and `scanf'
+   functions.  We have no limit, so return a reasonable value.  */
+#define NL_ARGMAX      _POSIX_ARG_MAX
+
+/* Maximum number of bytes in a `LANG' name.  We have no limit.  */
+#define NL_LANGMAX     _POSIX2_LINE_MAX
+
+/* Maximum message number.  We have no limit.  */
+#define NL_MSGMAX      INT_MAX
+
+/* Maximum number of bytes in N-to-1 collation mapping.  We have no
+   limit.  */
+#if defined __USE_GNU || !defined __USE_XOPEN2K8
+# define NL_NMAX       INT_MAX
+#endif
+
+/* Maximum set number.  We have no limit.  */
+#define NL_SETMAX      INT_MAX
+
+/* Maximum number of bytes in a message.  We have no limit.  */
+#define NL_TEXTMAX     INT_MAX
+
+/* Default process priority.  */
+#define NZERO          20
+
+
+/* Number of bits in a word of type `int'.  */
+#ifdef INT_MAX
+# if INT_MAX == 32767
+#  define WORD_BIT     16
+# else
+#  if INT_MAX == 2147483647
+#   define WORD_BIT    32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT    64
+#  endif
+# endif
+#elif defined __INT_MAX__
+# if __INT_MAX__ == 32767
+#  define WORD_BIT     16
+# else
+#  if __INT_MAX__ == 2147483647
+#   define WORD_BIT    32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT    64
+#  endif
+# endif
+#else
+# define WORD_BIT      32
+#endif
+
+/* Number of bits in a word of type `long int'.  */
+#ifdef LONG_MAX
+# if LONG_MAX == 2147483647
+#  define LONG_BIT     32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT     64
+# endif
+#elif defined __LONG_MAX__
+# if __LONG_MAX__ == 2147483647
+#  define LONG_BIT     32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT     64
+# endif
+#else
+# include <bits/wordsize.h>
+# if __WORDSIZE == 64
+#  define LONG_BIT     64
+# else
+#  define LONG_BIT     32
+# endif
+#endif
+
+#endif /* bits/xopen_lim.h */
diff --git a/misc/features.h b/misc/features.h
new file mode 100644 (file)
index 0000000..af37184
--- /dev/null
@@ -0,0 +1,492 @@
+/* Copyright (C) 1991-2020 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.
+
+   _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.
+   _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_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_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
+#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
+
+#if defined _DEFAULT_SOURCE
+# define __USE_MISC    1
+#endif
+
+#ifdef _ATFILE_SOURCE
+# define __USE_ATFILE  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 > 1
+#  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__ 30
+
+#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  */
diff --git a/misc/gnu-versions.h b/misc/gnu-versions.h
new file mode 100644 (file)
index 0000000..d2f06f6
--- /dev/null
@@ -0,0 +1,52 @@
+/* Header with interface version macros for library pieces copied elsewhere.
+   Copyright (C) 1995-2020 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 _GNU_VERSIONS_H
+#define        _GNU_VERSIONS_H 1
+
+/* This file exists to define these few macros.  Each specifies a version
+   number associated with the library interface of a piece of the C library
+   which is also distributed with other GNU packages.  These pieces are
+   both part of the GNU C library and also distributed with other GNU
+   packages so those packages may use their facilities on systems lacking
+   the GNU C library.  The source files for each piece surround all their
+   code with `#ifndef ELIDE_CODE' after defining it with this:
+
+   #define OBSTACK_INTERFACE_VERSION 1
+   #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
+   #include <gnu-versions.h>
+   #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
+   #define ELIDE_CODE
+   #endif
+   #endif
+
+   This allows those one to avoid compiling those files when part of a GNU
+   package not libc, on a system using a GNU C library that supports the
+   same interface.
+
+   Please preserve the format of the comments after each macro.  And
+   remember, if any of these versions change, the libc.so major version
+   number must change too (so avoid it)!  */
+
+#define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */
+#define _GNU_REGEX_INTERFACE_VERSION   1 /* vs posix/regex.c */
+#define _GNU_GLOB_INTERFACE_VERSION    2 /* vs posix/glob.c */
+#define _GNU_GETOPT_INTERFACE_VERSION  2 /* vs posix/getopt.c and
+                                            posix/getopt1.c */
+
+#endif /* gnu-versions.h */
diff --git a/misc/gnu/libc-version.h b/misc/gnu/libc-version.h
new file mode 100644 (file)
index 0000000..37d9e86
--- /dev/null
@@ -0,0 +1,34 @@
+/* Interface to GNU libc specific functions for version information.
+   Copyright (C) 1998-2020 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 _GNU_LIBC_VERSION_H
+#define        _GNU_LIBC_VERSION_H     1
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* Return string describing release status of currently running GNU libc.  */
+extern const char *gnu_get_libc_release (void) __THROW;
+
+/* Return string describing version of currently running GNU libc.  */
+extern const char *gnu_get_libc_version (void) __THROW;
+
+__END_DECLS
+
+#endif /* gnu/libc-version.h */
diff --git a/misc/limits.h b/misc/limits.h
new file mode 100644 (file)
index 0000000..8195da7
--- /dev/null
@@ -0,0 +1,192 @@
+/* Copyright (C) 1991-2020 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.10/5.2.4.2.1 Sizes of integer types <limits.h>
+ */
+
+#ifndef _LIBC_LIMITS_H_
+#define _LIBC_LIMITS_H_        1
+
+#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
+#include <bits/libc-header-start.h>
+
+
+/* Maximum length of any multibyte character in any locale.
+   We define this value here since the gcc header does not define
+   the correct value.  */
+#define MB_LEN_MAX     16
+
+
+/* If we are not using GNU CC we have to define all the symbols ourself.
+   Otherwise use gcc's definitions (see below).  */
+#if !defined __GNUC__ || __GNUC__ < 2
+
+/* We only protect from multiple inclusion here, because all the other
+   #include's protect themselves, and in GCC 2 we may #include_next through
+   multiple copies of this file before we get to GCC's.  */
+# ifndef _LIMITS_H
+#  define _LIMITS_H    1
+
+#include <bits/wordsize.h>
+
+/* We don't have #include_next.
+   Define ANSI <limits.h> for standard 32-bit words.  */
+
+/* These assume 8-bit `char's, 16-bit `short int's,
+   and 32-bit `int's and `long int's.  */
+
+/* Number of bits in a `char'. */
+#  define CHAR_BIT     8
+
+/* Minimum and maximum values a `signed char' can hold.  */
+#  define SCHAR_MIN    (-128)
+#  define SCHAR_MAX    127
+
+/* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */
+#  define UCHAR_MAX    255
+
+/* Minimum and maximum values a `char' can hold.  */
+#  ifdef __CHAR_UNSIGNED__
+#   define CHAR_MIN    0
+#   define CHAR_MAX    UCHAR_MAX
+#  else
+#   define CHAR_MIN    SCHAR_MIN
+#   define CHAR_MAX    SCHAR_MAX
+#  endif
+
+/* Minimum and maximum values a `signed short int' can hold.  */
+#  define SHRT_MIN     (-32768)
+#  define SHRT_MAX     32767
+
+/* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */
+#  define USHRT_MAX    65535
+
+/* Minimum and maximum values a `signed int' can hold.  */
+#  define INT_MIN      (-INT_MAX - 1)
+#  define INT_MAX      2147483647
+
+/* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */
+#  define UINT_MAX     4294967295U
+
+/* Minimum and maximum values a `signed long int' can hold.  */
+#  if __WORDSIZE == 64
+#   define LONG_MAX    9223372036854775807L
+#  else
+#   define LONG_MAX    2147483647L
+#  endif
+#  define LONG_MIN     (-LONG_MAX - 1L)
+
+/* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */
+#  if __WORDSIZE == 64
+#   define ULONG_MAX   18446744073709551615UL
+#  else
+#   define ULONG_MAX   4294967295UL
+#  endif
+
+#  ifdef __USE_ISOC99
+
+/* Minimum and maximum values a `signed long long int' can hold.  */
+#   define LLONG_MAX   9223372036854775807LL
+#   define LLONG_MIN   (-LLONG_MAX - 1LL)
+
+/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */
+#   define ULLONG_MAX  18446744073709551615ULL
+
+#  endif /* ISO C99 */
+
+# endif        /* limits.h  */
+#endif /* GCC 2.  */
+
+#endif /* !_LIBC_LIMITS_H_ */
+
+ /* Get the compiler's limits.h, which defines almost all the ISO constants.
+
+    We put this #include_next outside the double inclusion check because
+    it should be possible to include this file more than once and still get
+    the definitions from gcc's header.  */
+#if defined __GNUC__ && !defined _GCC_LIMITS_H_
+/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
+# include_next <limits.h>
+#endif
+
+/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
+   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
+   ages are available.  */
+#if defined __USE_ISOC99 && defined __GNUC__
+# ifndef LLONG_MIN
+#  define LLONG_MIN    (-LLONG_MAX-1)
+# endif
+# ifndef LLONG_MAX
+#  define LLONG_MAX    __LONG_LONG_MAX__
+# endif
+# ifndef ULLONG_MAX
+#  define ULLONG_MAX   (LLONG_MAX * 2ULL + 1)
+# endif
+#endif
+
+/* The integer width macros are not defined by GCC's <limits.h> before
+   GCC 7, or if _GNU_SOURCE rather than
+   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+# ifndef CHAR_WIDTH
+#  define CHAR_WIDTH 8
+# endif
+# ifndef SCHAR_WIDTH
+#  define SCHAR_WIDTH 8
+# endif
+# ifndef UCHAR_WIDTH
+#  define UCHAR_WIDTH 8
+# endif
+# ifndef SHRT_WIDTH
+#  define SHRT_WIDTH 16
+# endif
+# ifndef USHRT_WIDTH
+#  define USHRT_WIDTH 16
+# endif
+# ifndef INT_WIDTH
+#  define INT_WIDTH 32
+# endif
+# ifndef UINT_WIDTH
+#  define UINT_WIDTH 32
+# endif
+# ifndef LONG_WIDTH
+#  define LONG_WIDTH __WORDSIZE
+# endif
+# ifndef ULONG_WIDTH
+#  define ULONG_WIDTH __WORDSIZE
+# endif
+# ifndef LLONG_WIDTH
+#  define LLONG_WIDTH 64
+# endif
+# ifndef ULLONG_WIDTH
+#  define ULLONG_WIDTH 64
+# endif
+#endif /* Use IEC_60559_BFP_EXT.  */
+
+#ifdef __USE_POSIX
+/* POSIX adds things to <limits.h>.  */
+# include <bits/posix1_lim.h>
+#endif
+
+#ifdef __USE_POSIX2
+# include <bits/posix2_lim.h>
+#endif
+
+#ifdef __USE_XOPEN
+# include <bits/xopen_lim.h>
+#endif
diff --git a/misc/stdc-predef.h b/misc/stdc-predef.h
new file mode 100644 (file)
index 0000000..eaf0a6a
--- /dev/null
@@ -0,0 +1,60 @@
+/* Copyright (C) 1991-2020 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
+# endif
+#else
+# define __STDC_IEC_559__              1
+#endif
+
+#ifdef __GCC_IEC_559_COMPLEX
+# if __GCC_IEC_559_COMPLEX > 0
+#  define __STDC_IEC_559_COMPLEX__     1
+# endif
+#else
+# define __STDC_IEC_559_COMPLEX__      1
+#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
diff --git a/misc/values.h b/misc/values.h
new file mode 100644 (file)
index 0000000..401a392
--- /dev/null
@@ -0,0 +1,68 @@
+/* Old compatibility names for <limits.h> and <float.h> constants.
+   Copyright (C) 1995-2020 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 interface is obsolete.  New programs should use
+   <limits.h> and/or <float.h> instead of <values.h>.  */
+
+#ifndef        _VALUES_H
+#define        _VALUES_H       1
+
+#include <features.h>
+
+#include <limits.h>
+
+#define _TYPEBITS(type)        (sizeof (type) * CHAR_BIT)
+
+#define CHARBITS       _TYPEBITS (char)
+#define SHORTBITS      _TYPEBITS (short int)
+#define INTBITS                _TYPEBITS (int)
+#define LONGBITS       _TYPEBITS (long int)
+#define PTRBITS                _TYPEBITS (char *)
+#define DOUBLEBITS     _TYPEBITS (double)
+#define FLOATBITS      _TYPEBITS (float)
+
+#define MINSHORT       SHRT_MIN
+#define        MININT          INT_MIN
+#define        MINLONG         LONG_MIN
+
+#define        MAXSHORT        SHRT_MAX
+#define        MAXINT          INT_MAX
+#define        MAXLONG         LONG_MAX
+
+#define HIBITS         MINSHORT
+#define HIBITL         MINLONG
+
+
+#include <float.h>
+
+#define        MAXDOUBLE       DBL_MAX
+#define        MAXFLOAT        FLT_MAX
+#define        MINDOUBLE       DBL_MIN
+#define        MINFLOAT        FLT_MIN
+#define        DMINEXP         DBL_MIN_EXP
+#define        FMINEXP         FLT_MIN_EXP
+#define        DMAXEXP         DBL_MAX_EXP
+#define        FMAXEXP         FLT_MAX_EXP
+
+
+#ifdef __USE_MISC
+/* Some systems define this name instead of CHAR_BIT or CHARBITS.  */
+# define BITSPERBYTE   CHAR_BIT
+#endif
+
+#endif /* values.h */
index 8f2fbfd80ffd3dc3c765a7635203d69b1329ead4..8e8d1cc46824f0072d4bb7037c6a9e780a606fe4 100644 (file)
@@ -1,6 +1,7 @@
 /* This file generated by errnos.awk from
      errno.texi
      stdc-predef.h
+     ../misc/stdc-predef.h
      libc-symbols.h
      mach/message.h
      mach/kern_return.h