Home | History | Annotate | Line # | Download | only in import
      1 /* This file is automatically generated.  DO NOT EDIT! */
      2 /* Generated from: NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp  */
      3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
      4 
      5 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
      6 /* Substitute for and wrapper around <unistd.h>.
      7    Copyright (C) 2003-2022 Free Software Foundation, Inc.
      8 
      9    This file is free software: you can redistribute it and/or modify
     10    it under the terms of the GNU Lesser General Public License as
     11    published by the Free Software Foundation; either version 2.1 of the
     12    License, or (at your option) any later version.
     13 
     14    This file is distributed in the hope that it will be useful,
     15    but WITHOUT ANY WARRANTY; without even the implied warranty of
     16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17    GNU Lesser General Public License for more details.
     18 
     19    You should have received a copy of the GNU Lesser General Public License
     20    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
     21 
     22 #ifndef _GL_UNISTD_H
     23 
     24 #if __GNUC__ >= 3
     25 #pragma GCC system_header
     26 #endif
     27 
     28 
     29 #if 1 && defined _GL_INCLUDING_UNISTD_H
     30 /* Special invocation convention:
     31    - On Mac OS X 10.3.9 we have a sequence of nested includes
     32      <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h>
     33      In this situation, the functions are not yet declared, therefore we cannot
     34      provide the C++ aliases.  */
     35 
     36 #include_next <unistd.h>
     37 
     38 #else
     39 /* Normal invocation convention.  */
     40 
     41 /* The include_next requires a split double-inclusion guard.  */
     42 #if 1
     43 # define _GL_INCLUDING_UNISTD_H
     44 # include_next <unistd.h>
     45 # undef _GL_INCLUDING_UNISTD_H
     46 #endif
     47 
     48 /* Get all possible declarations of gethostname().  */
     49 #if 0 && 0 \
     50   && !defined _GL_INCLUDING_WINSOCK2_H
     51 # define _GL_INCLUDING_WINSOCK2_H
     52 # include <winsock2.h>
     53 # undef _GL_INCLUDING_WINSOCK2_H
     54 #endif
     55 
     56 #if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
     57 #define _GL_UNISTD_H
     58 
     59 /* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
     60 /* But avoid namespace pollution on glibc systems.  */
     61 #ifndef __GLIBC__
     62 # include <stddef.h>
     63 #endif
     64 
     65 /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */
     66 /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>.  We must include
     67    it before we  #define unlink rpl_unlink.  */
     68 /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
     69 /* But avoid namespace pollution on glibc systems.  */
     70 #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
     71      || ((0 || defined GNULIB_POSIXCHECK) \
     72          && (defined _WIN32 && ! defined __CYGWIN__)) \
     73      || ((0 || defined GNULIB_POSIXCHECK) \
     74          && defined __CYGWIN__)) \
     75     && ! defined __GLIBC__
     76 # include <stdio.h>
     77 #endif
     78 
     79 /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in
     80    <unistd.h>.  */
     81 /* But avoid namespace pollution on glibc systems.  */
     82 #if (0 || defined GNULIB_POSIXCHECK) \
     83     && (defined __CYGWIN__ || defined __ANDROID__) \
     84     && ! defined __GLIBC__
     85 # include <fcntl.h>
     86 #endif
     87 
     88 /* mingw fails to declare _exit in <unistd.h>.  */
     89 /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
     90    <unistd.h>.  */
     91 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
     92 /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
     93    included here.  */
     94 /* But avoid namespace pollution on glibc systems.  */
     95 #if !defined __GLIBC__ && !defined __osf__
     96 # define __need_system_stdlib_h
     97 # include <stdlib.h>
     98 # undef __need_system_stdlib_h
     99 #endif
    100 
    101 /* Native Windows platforms declare _chdir, _getcwd, _rmdir in
    102    <io.h> and/or <direct.h>, not in <unistd.h>.
    103    They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(),
    104    _lseek(), _read(), _unlink(), _write() in <io.h>.  */
    105 #if defined _WIN32 && !defined __CYGWIN__
    106 # include <io.h>
    107 # include <direct.h>
    108 #endif
    109 
    110 /* Native Windows platforms declare _execl*, _execv* in <process.h>.  */
    111 #if defined _WIN32 && !defined __CYGWIN__
    112 # include <process.h>
    113 #endif
    114 
    115 /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
    116    NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>.  */
    117 /* But avoid namespace pollution on glibc systems.  */
    118 #if ((0 && (defined _AIX || defined __osf__)) \
    119      || (0 && defined __TANDEM)) \
    120     && !defined __GLIBC__
    121 # include <netdb.h>
    122 #endif
    123 
    124 /* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in
    125    <sys/random.h>, not in <unistd.h>.  */
    126 /* But avoid namespace pollution on glibc systems.  */
    127 #if (0 || defined GNULIB_POSIXCHECK) \
    128     && ((defined __APPLE__ && defined __MACH__) || defined __sun \
    129         || defined __ANDROID__) \
    130     && 1 \
    131     && !defined __GLIBC__
    132 # include <sys/random.h>
    133 #endif
    134 
    135 /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>.  */
    136 /* But avoid namespace pollution on glibc systems.  */
    137 #if (0 || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
    138     && !defined __GLIBC__
    139 # include <sys/stat.h>
    140 #endif
    141 
    142 /* MSVC defines off_t in <sys/types.h>.
    143    May also define off_t to a 64-bit type on native Windows.  */
    144 /* Get off_t, ssize_t, mode_t.  */
    145 #include <sys/types.h>
    146 
    147 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
    148 /* C++ compatible function declaration macros.
    149    Copyright (C) 2010-2022 Free Software Foundation, Inc.
    150 
    151    This program is free software: you can redistribute it and/or modify it
    152    under the terms of the GNU Lesser General Public License as published
    153    by the Free Software Foundation; either version 2 of the License, or
    154    (at your option) any later version.
    155 
    156    This program is distributed in the hope that it will be useful,
    157    but WITHOUT ANY WARRANTY; without even the implied warranty of
    158    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    159    Lesser General Public License for more details.
    160 
    161    You should have received a copy of the GNU Lesser General Public License
    162    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    163 
    164 #ifndef _GL_CXXDEFS_H
    165 #define _GL_CXXDEFS_H
    166 
    167 /* Begin/end the GNULIB_NAMESPACE namespace.  */
    168 #if defined __cplusplus && defined GNULIB_NAMESPACE
    169 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE {
    170 # define _GL_END_NAMESPACE }
    171 #else
    172 # define _GL_BEGIN_NAMESPACE
    173 # define _GL_END_NAMESPACE
    174 #endif
    175 
    176 /* The three most frequent use cases of these macros are:
    177 
    178    * For providing a substitute for a function that is missing on some
    179      platforms, but is declared and works fine on the platforms on which
    180      it exists:
    181 
    182        #if @GNULIB_FOO@
    183        # if !@HAVE_FOO@
    184        _GL_FUNCDECL_SYS (foo, ...);
    185        # endif
    186        _GL_CXXALIAS_SYS (foo, ...);
    187        _GL_CXXALIASWARN (foo);
    188        #elif defined GNULIB_POSIXCHECK
    189        ...
    190        #endif
    191 
    192    * For providing a replacement for a function that exists on all platforms,
    193      but is broken/insufficient and needs to be replaced on some platforms:
    194 
    195        #if @GNULIB_FOO@
    196        # if @REPLACE_FOO@
    197        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    198        #   undef foo
    199        #   define foo rpl_foo
    200        #  endif
    201        _GL_FUNCDECL_RPL (foo, ...);
    202        _GL_CXXALIAS_RPL (foo, ...);
    203        # else
    204        _GL_CXXALIAS_SYS (foo, ...);
    205        # endif
    206        _GL_CXXALIASWARN (foo);
    207        #elif defined GNULIB_POSIXCHECK
    208        ...
    209        #endif
    210 
    211    * For providing a replacement for a function that exists on some platforms
    212      but is broken/insufficient and needs to be replaced on some of them and
    213      is additionally either missing or undeclared on some other platforms:
    214 
    215        #if @GNULIB_FOO@
    216        # if @REPLACE_FOO@
    217        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    218        #   undef foo
    219        #   define foo rpl_foo
    220        #  endif
    221        _GL_FUNCDECL_RPL (foo, ...);
    222        _GL_CXXALIAS_RPL (foo, ...);
    223        # else
    224        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
    225        _GL_FUNCDECL_SYS (foo, ...);
    226        #  endif
    227        _GL_CXXALIAS_SYS (foo, ...);
    228        # endif
    229        _GL_CXXALIASWARN (foo);
    230        #elif defined GNULIB_POSIXCHECK
    231        ...
    232        #endif
    233 */
    234 
    235 /* _GL_EXTERN_C declaration;
    236    performs the declaration with C linkage.  */
    237 #if defined __cplusplus
    238 # define _GL_EXTERN_C extern "C"
    239 #else
    240 # define _GL_EXTERN_C extern
    241 #endif
    242 
    243 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
    244    declares a replacement function, named rpl_func, with the given prototype,
    245    consisting of return type, parameters, and attributes.
    246    Example:
    247      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
    248                                   _GL_ARG_NONNULL ((1)));
    249  */
    250 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
    251   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
    252 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
    253   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
    254 
    255 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
    256    declares the system function, named func, with the given prototype,
    257    consisting of return type, parameters, and attributes.
    258    Example:
    259      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
    260                                   _GL_ARG_NONNULL ((1)));
    261  */
    262 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
    263   _GL_EXTERN_C rettype func parameters_and_attributes
    264 
    265 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
    266    declares a C++ alias called GNULIB_NAMESPACE::func
    267    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
    268    Example:
    269      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
    270 
    271    Wrapping rpl_func in an object with an inline conversion operator
    272    avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is
    273    actually used in the program.  */
    274 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
    275   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
    276 #if defined __cplusplus && defined GNULIB_NAMESPACE
    277 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    278     namespace GNULIB_NAMESPACE                                \
    279     {                                                         \
    280       static const struct _gl_ ## func ## _wrapper            \
    281       {                                                       \
    282         typedef rettype (*type) parameters;                   \
    283                                                               \
    284         inline operator type () const                         \
    285         {                                                     \
    286           return ::rpl_func;                                  \
    287         }                                                     \
    288       } func = {};                                            \
    289     }                                                         \
    290     _GL_EXTERN_C int _gl_cxxalias_dummy
    291 #else
    292 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    293     _GL_EXTERN_C int _gl_cxxalias_dummy
    294 #endif
    295 
    296 /* _GL_CXXALIAS_MDA (func, rettype, parameters);
    297    is to be used when func is a Microsoft deprecated alias, on native Windows.
    298    It declares a C++ alias called GNULIB_NAMESPACE::func
    299    that redirects to _func, if GNULIB_NAMESPACE is defined.
    300    Example:
    301      _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...));
    302  */
    303 #define _GL_CXXALIAS_MDA(func,rettype,parameters) \
    304   _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters)
    305 
    306 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
    307    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
    308    except that the C function rpl_func may have a slightly different
    309    declaration.  A cast is used to silence the "invalid conversion" error
    310    that would otherwise occur.  */
    311 #if defined __cplusplus && defined GNULIB_NAMESPACE
    312 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    313     namespace GNULIB_NAMESPACE                                     \
    314     {                                                              \
    315       static const struct _gl_ ## func ## _wrapper                 \
    316       {                                                            \
    317         typedef rettype (*type) parameters;                        \
    318                                                                    \
    319         inline operator type () const                              \
    320         {                                                          \
    321           return reinterpret_cast<type>(::rpl_func);               \
    322         }                                                          \
    323       } func = {};                                                 \
    324     }                                                              \
    325     _GL_EXTERN_C int _gl_cxxalias_dummy
    326 #else
    327 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    328     _GL_EXTERN_C int _gl_cxxalias_dummy
    329 #endif
    330 
    331 /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters);
    332    is like  _GL_CXXALIAS_MDA (func, rettype, parameters);
    333    except that the C function func may have a slightly different declaration.
    334    A cast is used to silence the "invalid conversion" error that would
    335    otherwise occur.  */
    336 #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \
    337   _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters)
    338 
    339 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
    340    declares a C++ alias called GNULIB_NAMESPACE::func
    341    that redirects to the system provided function func, if GNULIB_NAMESPACE
    342    is defined.
    343    Example:
    344      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
    345 
    346    Wrapping func in an object with an inline conversion operator
    347    avoids a reference to func unless GNULIB_NAMESPACE::func is
    348    actually used in the program.  */
    349 #if defined __cplusplus && defined GNULIB_NAMESPACE
    350 # define _GL_CXXALIAS_SYS(func,rettype,parameters)            \
    351     namespace GNULIB_NAMESPACE                                \
    352     {                                                         \
    353       static const struct _gl_ ## func ## _wrapper            \
    354       {                                                       \
    355         typedef rettype (*type) parameters;                   \
    356                                                               \
    357         inline operator type () const                         \
    358         {                                                     \
    359           return ::func;                                      \
    360         }                                                     \
    361       } func = {};                                            \
    362     }                                                         \
    363     _GL_EXTERN_C int _gl_cxxalias_dummy
    364 #else
    365 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    366     _GL_EXTERN_C int _gl_cxxalias_dummy
    367 #endif
    368 
    369 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
    370    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    371    except that the C function func may have a slightly different declaration.
    372    A cast is used to silence the "invalid conversion" error that would
    373    otherwise occur.  */
    374 #if defined __cplusplus && defined GNULIB_NAMESPACE
    375 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    376     namespace GNULIB_NAMESPACE                          \
    377     {                                                   \
    378       static const struct _gl_ ## func ## _wrapper      \
    379       {                                                 \
    380         typedef rettype (*type) parameters;             \
    381                                                         \
    382         inline operator type () const                   \
    383         {                                               \
    384           return reinterpret_cast<type>(::func);        \
    385         }                                               \
    386       } func = {};                                      \
    387     }                                                   \
    388     _GL_EXTERN_C int _gl_cxxalias_dummy
    389 #else
    390 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    391     _GL_EXTERN_C int _gl_cxxalias_dummy
    392 #endif
    393 
    394 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
    395    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    396    except that the C function is picked among a set of overloaded functions,
    397    namely the one with rettype2 and parameters2.  Two consecutive casts
    398    are used to silence the "cannot find a match" and "invalid conversion"
    399    errors that would otherwise occur.  */
    400 #if defined __cplusplus && defined GNULIB_NAMESPACE
    401   /* The outer cast must be a reinterpret_cast.
    402      The inner cast: When the function is defined as a set of overloaded
    403      functions, it works as a static_cast<>, choosing the designated variant.
    404      When the function is defined as a single variant, it works as a
    405      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
    406 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    407     namespace GNULIB_NAMESPACE                                                \
    408     {                                                                         \
    409       static const struct _gl_ ## func ## _wrapper                            \
    410       {                                                                       \
    411         typedef rettype (*type) parameters;                                   \
    412                                                                               \
    413         inline operator type () const                                         \
    414         {                                                                     \
    415           return reinterpret_cast<type>((rettype2 (*) parameters2)(::func));  \
    416         }                                                                     \
    417       } func = {};                                                            \
    418     }                                                                         \
    419     _GL_EXTERN_C int _gl_cxxalias_dummy
    420 #else
    421 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    422     _GL_EXTERN_C int _gl_cxxalias_dummy
    423 #endif
    424 
    425 /* _GL_CXXALIASWARN (func);
    426    causes a warning to be emitted when ::func is used but not when
    427    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
    428    variants.  */
    429 #if defined __cplusplus && defined GNULIB_NAMESPACE
    430 # define _GL_CXXALIASWARN(func) \
    431    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
    432 # define _GL_CXXALIASWARN_1(func,namespace) \
    433    _GL_CXXALIASWARN_2 (func, namespace)
    434 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    435    we enable the warning only when not optimizing.  */
    436 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
    437 #  define _GL_CXXALIASWARN_2(func,namespace) \
    438     _GL_WARN_ON_USE (func, \
    439                      "The symbol ::" #func " refers to the system function. " \
    440                      "Use " #namespace "::" #func " instead.")
    441 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    442 #  define _GL_CXXALIASWARN_2(func,namespace) \
    443      extern __typeof__ (func) func
    444 # else
    445 #  define _GL_CXXALIASWARN_2(func,namespace) \
    446      _GL_EXTERN_C int _gl_cxxalias_dummy
    447 # endif
    448 #else
    449 # define _GL_CXXALIASWARN(func) \
    450     _GL_EXTERN_C int _gl_cxxalias_dummy
    451 #endif
    452 
    453 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
    454    causes a warning to be emitted when the given overloaded variant of ::func
    455    is used but not when GNULIB_NAMESPACE::func is used.  */
    456 #if defined __cplusplus && defined GNULIB_NAMESPACE
    457 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    458    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
    459                         GNULIB_NAMESPACE)
    460 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
    461    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
    462 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    463    we enable the warning only when not optimizing.  */
    464 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
    465 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    466     _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \
    467                          "The symbol ::" #func " refers to the system function. " \
    468                          "Use " #namespace "::" #func " instead.")
    469 # else
    470 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    471      _GL_EXTERN_C int _gl_cxxalias_dummy
    472 # endif
    473 #else
    474 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    475     _GL_EXTERN_C int _gl_cxxalias_dummy
    476 #endif
    477 
    478 #endif /* _GL_CXXDEFS_H */
    479 
    480 /* The definition of _GL_ARG_NONNULL is copied here.  */
    481 /* A C macro for declaring that specific arguments must not be NULL.
    482    Copyright (C) 2009-2022 Free Software Foundation, Inc.
    483 
    484    This program is free software: you can redistribute it and/or modify it
    485    under the terms of the GNU Lesser General Public License as published
    486    by the Free Software Foundation; either version 2 of the License, or
    487    (at your option) any later version.
    488 
    489    This program is distributed in the hope that it will be useful,
    490    but WITHOUT ANY WARRANTY; without even the implied warranty of
    491    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    492    Lesser General Public License for more details.
    493 
    494    You should have received a copy of the GNU Lesser General Public License
    495    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    496 
    497 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
    498    that the values passed as arguments n, ..., m must be non-NULL pointers.
    499    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
    500 #ifndef _GL_ARG_NONNULL
    501 # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__
    502 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
    503 # else
    504 #  define _GL_ARG_NONNULL(params)
    505 # endif
    506 #endif
    507 
    508 /* The definition of _GL_WARN_ON_USE is copied here.  */
    509 /* A C macro for emitting warnings if a function is used.
    510    Copyright (C) 2010-2022 Free Software Foundation, Inc.
    511 
    512    This program is free software: you can redistribute it and/or modify it
    513    under the terms of the GNU Lesser General Public License as published
    514    by the Free Software Foundation; either version 2 of the License, or
    515    (at your option) any later version.
    516 
    517    This program is distributed in the hope that it will be useful,
    518    but WITHOUT ANY WARRANTY; without even the implied warranty of
    519    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    520    Lesser General Public License for more details.
    521 
    522    You should have received a copy of the GNU Lesser General Public License
    523    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    524 
    525 /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
    526    for FUNCTION which will then trigger a compiler warning containing
    527    the text of "literal string" anywhere that function is called, if
    528    supported by the compiler.  If the compiler does not support this
    529    feature, the macro expands to an unused extern declaration.
    530 
    531    _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
    532    attribute used in _GL_WARN_ON_USE.  If the compiler does not support
    533    this feature, it expands to empty.
    534 
    535    These macros are useful for marking a function as a potential
    536    portability trap, with the intent that "literal string" include
    537    instructions on the replacement function that should be used
    538    instead.
    539    _GL_WARN_ON_USE is for functions with 'extern' linkage.
    540    _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
    541    linkage.
    542 
    543    However, one of the reasons that a function is a portability trap is
    544    if it has the wrong signature.  Declaring FUNCTION with a different
    545    signature in C is a compilation error, so this macro must use the
    546    same type as any existing declaration so that programs that avoid
    547    the problematic FUNCTION do not fail to compile merely because they
    548    included a header that poisoned the function.  But this implies that
    549    _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
    550    have a declaration.  Use of this macro implies that there must not
    551    be any other macro hiding the declaration of FUNCTION; but
    552    undefining FUNCTION first is part of the poisoning process anyway
    553    (although for symbols that are provided only via a macro, the result
    554    is a compilation error rather than a warning containing
    555    "literal string").  Also note that in C++, it is only safe to use if
    556    FUNCTION has no overloads.
    557 
    558    For an example, it is possible to poison 'getline' by:
    559    - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
    560      [getline]) in configure.ac, which potentially defines
    561      HAVE_RAW_DECL_GETLINE
    562    - adding this code to a header that wraps the system <stdio.h>:
    563      #undef getline
    564      #if HAVE_RAW_DECL_GETLINE
    565      _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
    566        "not universally present; use the gnulib module getline");
    567      #endif
    568 
    569    It is not possible to directly poison global variables.  But it is
    570    possible to write a wrapper accessor function, and poison that
    571    (less common usage, like &environ, will cause a compilation error
    572    rather than issue the nice warning, but the end result of informing
    573    the developer about their portability problem is still achieved):
    574      #if HAVE_RAW_DECL_ENVIRON
    575      static char ***
    576      rpl_environ (void) { return &environ; }
    577      _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
    578      # undef environ
    579      # define environ (*rpl_environ ())
    580      #endif
    581    or better (avoiding contradictory use of 'static' and 'extern'):
    582      #if HAVE_RAW_DECL_ENVIRON
    583      static char ***
    584      _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
    585      rpl_environ (void) { return &environ; }
    586      # undef environ
    587      # define environ (*rpl_environ ())
    588      #endif
    589    */
    590 #ifndef _GL_WARN_ON_USE
    591 
    592 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    593 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    594 #  define _GL_WARN_ON_USE(function, message) \
    595 _GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message)))
    596 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
    597   __attribute__ ((__warning__ (message)))
    598 # elif __clang_major__ >= 4
    599 /* Another compiler attribute is available in clang.  */
    600 #  define _GL_WARN_ON_USE(function, message) \
    601 _GL_WARN_EXTERN_C __typeof__ (function) function \
    602   __attribute__ ((__diagnose_if__ (1, message, "warning")))
    603 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
    604   __attribute__ ((__diagnose_if__ (1, message, "warning")))
    605 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    606 /* Verify the existence of the function.  */
    607 #  define _GL_WARN_ON_USE(function, message) \
    608 _GL_WARN_EXTERN_C __typeof__ (function) function
    609 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
    610 # else /* Unsupported.  */
    611 #  define _GL_WARN_ON_USE(function, message) \
    612 _GL_WARN_EXTERN_C int _gl_warn_on_use
    613 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
    614 # endif
    615 #endif
    616 
    617 /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message")
    618    is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the
    619    function is declared with the given prototype, consisting of return type,
    620    parameters, and attributes.
    621    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
    622    not work in this case.  */
    623 #ifndef _GL_WARN_ON_USE_CXX
    624 # if !defined __cplusplus
    625 #  define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    626      _GL_WARN_ON_USE (function, msg)
    627 # else
    628 #  if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    629 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    630 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    631 extern rettype_gcc function parameters_and_attributes \
    632   __attribute__ ((__warning__ (msg)))
    633 #  elif __clang_major__ >= 4
    634 /* Another compiler attribute is available in clang.  */
    635 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    636 extern rettype_clang function parameters_and_attributes \
    637   __attribute__ ((__diagnose_if__ (1, msg, "warning")))
    638 #  elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    639 /* Verify the existence of the function.  */
    640 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    641 extern rettype_gcc function parameters_and_attributes
    642 #  else /* Unsupported.  */
    643 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    644 _GL_WARN_EXTERN_C int _gl_warn_on_use
    645 #  endif
    646 # endif
    647 #endif
    648 
    649 /* _GL_WARN_EXTERN_C declaration;
    650    performs the declaration with C linkage.  */
    651 #ifndef _GL_WARN_EXTERN_C
    652 # if defined __cplusplus
    653 #  define _GL_WARN_EXTERN_C extern "C"
    654 # else
    655 #  define _GL_WARN_EXTERN_C extern
    656 # endif
    657 #endif
    658 
    659 
    660 /* Get getopt(), optarg, optind, opterr, optopt.  */
    661 #if 0 && 00 && !defined _GL_SYSTEM_GETOPT
    662 # include <getopt-cdefs.h>
    663 # include <getopt-pfx-core.h>
    664 #endif
    665 
    666 #ifndef _GL_INLINE_HEADER_BEGIN
    667  #error "Please include config.h first."
    668 #endif
    669 _GL_INLINE_HEADER_BEGIN
    670 #ifndef _GL_UNISTD_INLINE
    671 # define _GL_UNISTD_INLINE _GL_INLINE
    672 #endif
    673 
    674 /* Hide some function declarations from <winsock2.h>.  */
    675 
    676 #if 0 && 0
    677 # if !defined _GL_SYS_SOCKET_H
    678 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    679 #   undef socket
    680 #   define socket              socket_used_without_including_sys_socket_h
    681 #   undef connect
    682 #   define connect             connect_used_without_including_sys_socket_h
    683 #   undef accept
    684 #   define accept              accept_used_without_including_sys_socket_h
    685 #   undef bind
    686 #   define bind                bind_used_without_including_sys_socket_h
    687 #   undef getpeername
    688 #   define getpeername         getpeername_used_without_including_sys_socket_h
    689 #   undef getsockname
    690 #   define getsockname         getsockname_used_without_including_sys_socket_h
    691 #   undef getsockopt
    692 #   define getsockopt          getsockopt_used_without_including_sys_socket_h
    693 #   undef listen
    694 #   define listen              listen_used_without_including_sys_socket_h
    695 #   undef recv
    696 #   define recv                recv_used_without_including_sys_socket_h
    697 #   undef send
    698 #   define send                send_used_without_including_sys_socket_h
    699 #   undef recvfrom
    700 #   define recvfrom            recvfrom_used_without_including_sys_socket_h
    701 #   undef sendto
    702 #   define sendto              sendto_used_without_including_sys_socket_h
    703 #   undef setsockopt
    704 #   define setsockopt          setsockopt_used_without_including_sys_socket_h
    705 #   undef shutdown
    706 #   define shutdown            shutdown_used_without_including_sys_socket_h
    707 #  else
    708     _GL_WARN_ON_USE (socket,
    709                      "socket() used without including <sys/socket.h>");
    710     _GL_WARN_ON_USE (connect,
    711                      "connect() used without including <sys/socket.h>");
    712     _GL_WARN_ON_USE (accept,
    713                      "accept() used without including <sys/socket.h>");
    714     _GL_WARN_ON_USE (bind,
    715                      "bind() used without including <sys/socket.h>");
    716     _GL_WARN_ON_USE (getpeername,
    717                      "getpeername() used without including <sys/socket.h>");
    718     _GL_WARN_ON_USE (getsockname,
    719                      "getsockname() used without including <sys/socket.h>");
    720     _GL_WARN_ON_USE (getsockopt,
    721                      "getsockopt() used without including <sys/socket.h>");
    722     _GL_WARN_ON_USE (listen,
    723                      "listen() used without including <sys/socket.h>");
    724     _GL_WARN_ON_USE (recv,
    725                      "recv() used without including <sys/socket.h>");
    726     _GL_WARN_ON_USE (send,
    727                      "send() used without including <sys/socket.h>");
    728     _GL_WARN_ON_USE (recvfrom,
    729                      "recvfrom() used without including <sys/socket.h>");
    730     _GL_WARN_ON_USE (sendto,
    731                      "sendto() used without including <sys/socket.h>");
    732     _GL_WARN_ON_USE (setsockopt,
    733                      "setsockopt() used without including <sys/socket.h>");
    734     _GL_WARN_ON_USE (shutdown,
    735                      "shutdown() used without including <sys/socket.h>");
    736 #  endif
    737 # endif
    738 # if !defined _GL_SYS_SELECT_H
    739 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    740 #   undef select
    741 #   define select              select_used_without_including_sys_select_h
    742 #  else
    743     _GL_WARN_ON_USE (select,
    744                      "select() used without including <sys/select.h>");
    745 #  endif
    746 # endif
    747 #endif
    748 
    749 
    750 /* OS/2 EMX lacks these macros.  */
    751 #ifndef STDIN_FILENO
    752 # define STDIN_FILENO 0
    753 #endif
    754 #ifndef STDOUT_FILENO
    755 # define STDOUT_FILENO 1
    756 #endif
    757 #ifndef STDERR_FILENO
    758 # define STDERR_FILENO 2
    759 #endif
    760 
    761 /* Ensure *_OK macros exist.  */
    762 #ifndef F_OK
    763 # define F_OK 0
    764 # define X_OK 1
    765 # define W_OK 2
    766 # define R_OK 4
    767 #endif
    768 
    769 
    770 /* Declare overridden functions.  */
    771 
    772 
    773 #if 0
    774 # if 0
    775 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    776 #   undef access
    777 #   define access rpl_access
    778 #  endif
    779 _GL_FUNCDECL_RPL (access, int, (const char *file, int mode)
    780                                _GL_ARG_NONNULL ((1)));
    781 _GL_CXXALIAS_RPL (access, int, (const char *file, int mode));
    782 # elif defined _WIN32 && !defined __CYGWIN__
    783 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    784 #   undef access
    785 #   define access _access
    786 #  endif
    787 _GL_CXXALIAS_MDA (access, int, (const char *file, int mode));
    788 # else
    789 _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
    790 # endif
    791 _GL_CXXALIASWARN (access);
    792 #elif defined GNULIB_POSIXCHECK
    793 # undef access
    794 # if HAVE_RAW_DECL_ACCESS
    795 /* The access() function is a security risk.  */
    796 _GL_WARN_ON_USE (access, "access does not always support X_OK - "
    797                  "use gnulib module access for portability; "
    798                  "also, this function is a security risk - "
    799                  "use the gnulib module faccessat instead");
    800 # endif
    801 #elif 1
    802 /* On native Windows, map 'access' to '_access', so that -loldnames is not
    803    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    804    platforms by defining GNULIB_NAMESPACE::access always.  */
    805 # if defined _WIN32 && !defined __CYGWIN__
    806 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    807 #   undef access
    808 #   define access _access
    809 #  endif
    810 _GL_CXXALIAS_MDA (access, int, (const char *file, int mode));
    811 # else
    812 _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
    813 # endif
    814 _GL_CXXALIASWARN (access);
    815 #endif
    816 
    817 
    818 #if 1
    819 # if defined _WIN32 && !defined __CYGWIN__
    820 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    821 #   undef chdir
    822 #   define chdir _chdir
    823 #  endif
    824 _GL_CXXALIAS_MDA (chdir, int, (const char *file));
    825 # else
    826 _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
    827 # endif
    828 _GL_CXXALIASWARN (chdir);
    829 #elif defined GNULIB_POSIXCHECK
    830 # undef chdir
    831 # if HAVE_RAW_DECL_CHDIR
    832 _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
    833                  "use gnulib module chdir for portability");
    834 # endif
    835 #elif 1
    836 /* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not
    837    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    838    platforms by defining GNULIB_NAMESPACE::chdir always.  */
    839 # if defined _WIN32 && !defined __CYGWIN__
    840 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    841 #   undef chdir
    842 #   define chdir _chdir
    843 #  endif
    844 _GL_CXXALIAS_MDA (chdir, int, (const char *file));
    845 # else
    846 _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
    847 # endif
    848 _GL_CXXALIASWARN (chdir);
    849 #endif
    850 
    851 
    852 #if 1
    853 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
    854    to GID (if GID is not -1).  Follow symbolic links.
    855    Return 0 if successful, otherwise -1 and errno set.
    856    See the POSIX:2008 specification
    857    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
    858 # if 1
    859 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    860 #   undef chown
    861 #   define chown rpl_chown
    862 #  endif
    863 _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)
    864                               _GL_ARG_NONNULL ((1)));
    865 _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid));
    866 # else
    867 #  if !1
    868 _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)
    869                               _GL_ARG_NONNULL ((1)));
    870 #  endif
    871 _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
    872 # endif
    873 _GL_CXXALIASWARN (chown);
    874 #elif defined GNULIB_POSIXCHECK
    875 # undef chown
    876 # if HAVE_RAW_DECL_CHOWN
    877 _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
    878                  "doesn't treat a uid or gid of -1 on some systems - "
    879                  "use gnulib module chown for portability");
    880 # endif
    881 #endif
    882 
    883 
    884 #if 1
    885 # if 0
    886 /* Automatically included by modules that need a replacement for close.  */
    887 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    888 #   undef close
    889 #   define close rpl_close
    890 #  endif
    891 _GL_FUNCDECL_RPL (close, int, (int fd));
    892 _GL_CXXALIAS_RPL (close, int, (int fd));
    893 # elif defined _WIN32 && !defined __CYGWIN__
    894 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    895 #   undef close
    896 #   define close _close
    897 #  endif
    898 _GL_CXXALIAS_MDA (close, int, (int fd));
    899 # else
    900 _GL_CXXALIAS_SYS (close, int, (int fd));
    901 # endif
    902 _GL_CXXALIASWARN (close);
    903 #elif 0
    904 # undef close
    905 # define close close_used_without_requesting_gnulib_module_close
    906 #elif defined GNULIB_POSIXCHECK
    907 # undef close
    908 /* Assume close is always declared.  */
    909 _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
    910                  "use gnulib module close for portability");
    911 #elif 1
    912 /* On native Windows, map 'close' to '_close', so that -loldnames is not
    913    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    914    platforms by defining GNULIB_NAMESPACE::close always.  */
    915 # if defined _WIN32 && !defined __CYGWIN__
    916 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    917 #   undef close
    918 #   define close _close
    919 #  endif
    920 _GL_CXXALIAS_MDA (close, int, (int fd));
    921 # else
    922 _GL_CXXALIAS_SYS (close, int, (int fd));
    923 # endif
    924 _GL_CXXALIASWARN (close);
    925 #endif
    926 
    927 
    928 #if 0
    929 # if 0
    930 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    931 #   undef copy_file_range
    932 #   define copy_file_range rpl_copy_file_range
    933 #  endif
    934 _GL_FUNCDECL_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos,
    935                                              int ofd, off_t *opos,
    936                                              size_t len, unsigned flags));
    937 _GL_CXXALIAS_RPL (copy_file_range, ssize_t, (int ifd, off_t *ipos,
    938                                              int ofd, off_t *opos,
    939                                              size_t len, unsigned flags));
    940 # else
    941 #  if !1
    942 _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
    943                                              int ofd, off_t *opos,
    944                                              size_t len, unsigned flags));
    945 #  endif
    946 _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
    947                                              int ofd, off_t *opos,
    948                                              size_t len, unsigned flags));
    949 # endif
    950 _GL_CXXALIASWARN (copy_file_range);
    951 #elif defined GNULIB_POSIXCHECK
    952 # undef copy_file_range
    953 # if HAVE_RAW_DECL_COPY_FILE_RANGE
    954 _GL_WARN_ON_USE (copy_file_range,
    955                  "copy_file_range is unportable - "
    956                  "use gnulib module copy_file_range for portability");
    957 # endif
    958 #endif
    959 
    960 
    961 #if 1
    962 # if 0
    963 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    964 #   define dup rpl_dup
    965 #  endif
    966 _GL_FUNCDECL_RPL (dup, int, (int oldfd));
    967 _GL_CXXALIAS_RPL (dup, int, (int oldfd));
    968 # elif defined _WIN32 && !defined __CYGWIN__
    969 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    970 #   undef dup
    971 #   define dup _dup
    972 #  endif
    973 _GL_CXXALIAS_MDA (dup, int, (int oldfd));
    974 # else
    975 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
    976 # endif
    977 _GL_CXXALIASWARN (dup);
    978 #elif defined GNULIB_POSIXCHECK
    979 # undef dup
    980 # if HAVE_RAW_DECL_DUP
    981 _GL_WARN_ON_USE (dup, "dup is unportable - "
    982                  "use gnulib module dup for portability");
    983 # endif
    984 #elif 1
    985 /* On native Windows, map 'dup' to '_dup', so that -loldnames is not
    986    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    987    platforms by defining GNULIB_NAMESPACE::dup always.  */
    988 # if defined _WIN32 && !defined __CYGWIN__
    989 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    990 #   undef dup
    991 #   define dup _dup
    992 #  endif
    993 _GL_CXXALIAS_MDA (dup, int, (int oldfd));
    994 # else
    995 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
    996 # endif
    997 _GL_CXXALIASWARN (dup);
    998 #endif
    999 
   1000 
   1001 #if 1
   1002 /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
   1003    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
   1004    Return newfd if successful, otherwise -1 and errno set.
   1005    See the POSIX:2008 specification
   1006    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
   1007 # if 0
   1008 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1009 #   define dup2 rpl_dup2
   1010 #  endif
   1011 _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd));
   1012 _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd));
   1013 # elif defined _WIN32 && !defined __CYGWIN__
   1014 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1015 #   undef dup2
   1016 #   define dup2 _dup2
   1017 #  endif
   1018 _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd));
   1019 # else
   1020 _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
   1021 # endif
   1022 _GL_CXXALIASWARN (dup2);
   1023 #elif defined GNULIB_POSIXCHECK
   1024 # undef dup2
   1025 # if HAVE_RAW_DECL_DUP2
   1026 _GL_WARN_ON_USE (dup2, "dup2 is unportable - "
   1027                  "use gnulib module dup2 for portability");
   1028 # endif
   1029 #elif 1
   1030 /* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not
   1031    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1032    platforms by defining GNULIB_NAMESPACE::dup2 always.  */
   1033 # if defined _WIN32 && !defined __CYGWIN__
   1034 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1035 #   undef dup2
   1036 #   define dup2 _dup2
   1037 #  endif
   1038 _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd));
   1039 # else
   1040 _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
   1041 # endif
   1042 _GL_CXXALIASWARN (dup2);
   1043 #endif
   1044 
   1045 
   1046 #if 0
   1047 /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the
   1048    specified flags.
   1049    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
   1050    and O_TEXT, O_BINARY (defined in "binary-io.h").
   1051    Close NEWFD first if it is open.
   1052    Return newfd if successful, otherwise -1 and errno set.
   1053    See the Linux man page at
   1054    <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>.  */
   1055 # if 1
   1056 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1057 #   define dup3 rpl_dup3
   1058 #  endif
   1059 _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
   1060 _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
   1061 # else
   1062 _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
   1063 _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
   1064 # endif
   1065 _GL_CXXALIASWARN (dup3);
   1066 #elif defined GNULIB_POSIXCHECK
   1067 # undef dup3
   1068 # if HAVE_RAW_DECL_DUP3
   1069 _GL_WARN_ON_USE (dup3, "dup3 is unportable - "
   1070                  "use gnulib module dup3 for portability");
   1071 # endif
   1072 #endif
   1073 
   1074 
   1075 #if 1
   1076 # if defined __CYGWIN__ && !defined __i386__
   1077 /* The 'environ' variable is defined in a DLL. Therefore its declaration needs
   1078    the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it.
   1079    This leads to a link error on 64-bit Cygwin when the option
   1080    -Wl,--disable-auto-import is in use.  */
   1081 _GL_EXTERN_C __declspec(dllimport) char **environ;
   1082 # endif
   1083 # if !0
   1084 /* Set of environment variables and values.  An array of strings of the form
   1085    "VARIABLE=VALUE", terminated with a NULL.  */
   1086 #  if defined __APPLE__ && defined __MACH__
   1087 #   include <TargetConditionals.h>
   1088 #   if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
   1089 #    define _GL_USE_CRT_EXTERNS
   1090 #   endif
   1091 #  endif
   1092 #  ifdef _GL_USE_CRT_EXTERNS
   1093 #   include <crt_externs.h>
   1094 #   define environ (*_NSGetEnviron ())
   1095 #  else
   1096 #   ifdef __cplusplus
   1097 extern "C" {
   1098 #   endif
   1099 extern char **environ;
   1100 #   ifdef __cplusplus
   1101 }
   1102 #   endif
   1103 #  endif
   1104 # endif
   1105 #elif defined GNULIB_POSIXCHECK
   1106 # if HAVE_RAW_DECL_ENVIRON
   1107 _GL_UNISTD_INLINE char ***
   1108 _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - "
   1109                            "use gnulib module environ for portability")
   1110 rpl_environ (void)
   1111 {
   1112   return &environ;
   1113 }
   1114 #  undef environ
   1115 #  define environ (*rpl_environ ())
   1116 # endif
   1117 #endif
   1118 
   1119 
   1120 #if 0
   1121 /* Like access(), except that it uses the effective user id and group id of
   1122    the current process.  */
   1123 # if !1
   1124 _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode)
   1125                                    _GL_ARG_NONNULL ((1)));
   1126 # endif
   1127 _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode));
   1128 _GL_CXXALIASWARN (euidaccess);
   1129 # if defined GNULIB_POSIXCHECK
   1130 /* Like access(), this function is a security risk.  */
   1131 _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
   1132                  "use the gnulib module faccessat instead");
   1133 # endif
   1134 #elif defined GNULIB_POSIXCHECK
   1135 # undef euidaccess
   1136 # if HAVE_RAW_DECL_EUIDACCESS
   1137 _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
   1138                  "use gnulib module euidaccess for portability");
   1139 # endif
   1140 #endif
   1141 
   1142 
   1143 #if 0
   1144 # if 0
   1145 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1146 #   undef execl
   1147 #   define execl rpl_execl
   1148 #  endif
   1149 _GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...)
   1150                               _GL_ARG_NONNULL ((1)));
   1151 _GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...));
   1152 # else
   1153 _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
   1154 # endif
   1155 _GL_CXXALIASWARN (execl);
   1156 #elif defined GNULIB_POSIXCHECK
   1157 # undef execl
   1158 # if HAVE_RAW_DECL_EXECL
   1159 _GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - "
   1160                  "use gnulib module execl for portability");
   1161 # endif
   1162 #elif 1
   1163 /* On native Windows, map 'execl' to '_execl', so that -loldnames is not
   1164    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1165    platforms by defining GNULIB_NAMESPACE::execl always.  */
   1166 # if defined _WIN32 && !defined __CYGWIN__
   1167 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1168 #   undef execl
   1169 #   define execl _execl
   1170 #  endif
   1171 _GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...));
   1172 # else
   1173 _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
   1174 # endif
   1175 _GL_CXXALIASWARN (execl);
   1176 #endif
   1177 
   1178 #if 0
   1179 # if 0
   1180 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1181 #   undef execle
   1182 #   define execle rpl_execle
   1183 #  endif
   1184 _GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...)
   1185                                _GL_ARG_NONNULL ((1)));
   1186 _GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...));
   1187 # else
   1188 _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
   1189 # endif
   1190 _GL_CXXALIASWARN (execle);
   1191 #elif defined GNULIB_POSIXCHECK
   1192 # undef execle
   1193 # if HAVE_RAW_DECL_EXECLE
   1194 _GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - "
   1195                  "use gnulib module execle for portability");
   1196 # endif
   1197 #elif 1
   1198 /* On native Windows, map 'execle' to '_execle', so that -loldnames is not
   1199    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1200    platforms by defining GNULIB_NAMESPACE::execle always.  */
   1201 # if defined _WIN32 && !defined __CYGWIN__
   1202 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1203 #   undef execle
   1204 #   define execle _execle
   1205 #  endif
   1206 _GL_CXXALIAS_MDA (execle, intptr_t,
   1207                   (const char *program, const char *arg, ...));
   1208 # else
   1209 _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
   1210 # endif
   1211 _GL_CXXALIASWARN (execle);
   1212 #endif
   1213 
   1214 #if 0
   1215 # if 0
   1216 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1217 #   undef execlp
   1218 #   define execlp rpl_execlp
   1219 #  endif
   1220 _GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...)
   1221                                _GL_ARG_NONNULL ((1)));
   1222 _GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...));
   1223 # else
   1224 _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
   1225 # endif
   1226 _GL_CXXALIASWARN (execlp);
   1227 #elif defined GNULIB_POSIXCHECK
   1228 # undef execlp
   1229 # if HAVE_RAW_DECL_EXECLP
   1230 _GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - "
   1231                  "use gnulib module execlp for portability");
   1232 # endif
   1233 #elif 1
   1234 /* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not
   1235    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1236    platforms by defining GNULIB_NAMESPACE::execlp always.  */
   1237 # if defined _WIN32 && !defined __CYGWIN__
   1238 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1239 #   undef execlp
   1240 #   define execlp _execlp
   1241 #  endif
   1242 _GL_CXXALIAS_MDA (execlp, intptr_t,
   1243                   (const char *program, const char *arg, ...));
   1244 # else
   1245 _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
   1246 # endif
   1247 _GL_CXXALIASWARN (execlp);
   1248 #endif
   1249 
   1250 
   1251 #if 0
   1252 # if 0
   1253 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1254 #   undef execv
   1255 #   define execv rpl_execv
   1256 #  endif
   1257 _GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv)
   1258                               _GL_ARG_NONNULL ((1, 2)));
   1259 _GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv));
   1260 # else
   1261 _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
   1262 # endif
   1263 _GL_CXXALIASWARN (execv);
   1264 #elif defined GNULIB_POSIXCHECK
   1265 # undef execv
   1266 # if HAVE_RAW_DECL_EXECV
   1267 _GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - "
   1268                  "use gnulib module execv for portability");
   1269 # endif
   1270 #elif 1
   1271 /* On native Windows, map 'execv' to '_execv', so that -loldnames is not
   1272    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1273    platforms by defining GNULIB_NAMESPACE::execv always.  */
   1274 # if defined _WIN32 && !defined __CYGWIN__
   1275 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1276 #   undef execv
   1277 #   define execv _execv
   1278 #  endif
   1279 _GL_CXXALIAS_MDA_CAST (execv, intptr_t,
   1280                        (const char *program, char * const *argv));
   1281 # else
   1282 _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
   1283 # endif
   1284 _GL_CXXALIASWARN (execv);
   1285 #endif
   1286 
   1287 #if 0
   1288 # if 0
   1289 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1290 #   undef execve
   1291 #   define execve rpl_execve
   1292 #  endif
   1293 _GL_FUNCDECL_RPL (execve, int,
   1294                   (const char *program, char * const *argv, char * const *env)
   1295                   _GL_ARG_NONNULL ((1, 2)));
   1296 _GL_CXXALIAS_RPL (execve, int,
   1297                   (const char *program, char * const *argv, char * const *env));
   1298 # else
   1299 _GL_CXXALIAS_SYS (execve, int,
   1300                   (const char *program, char * const *argv, char * const *env));
   1301 # endif
   1302 _GL_CXXALIASWARN (execve);
   1303 #elif defined GNULIB_POSIXCHECK
   1304 # undef execve
   1305 # if HAVE_RAW_DECL_EXECVE
   1306 _GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - "
   1307                  "use gnulib module execve for portability");
   1308 # endif
   1309 #elif 1
   1310 /* On native Windows, map 'execve' to '_execve', so that -loldnames is not
   1311    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1312    platforms by defining GNULIB_NAMESPACE::execve always.  */
   1313 # if defined _WIN32 && !defined __CYGWIN__
   1314 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1315 #   undef execve
   1316 #   define execve _execve
   1317 #  endif
   1318 _GL_CXXALIAS_MDA_CAST (execve, intptr_t,
   1319                        (const char *program, char * const *argv,
   1320                         char * const *env));
   1321 # else
   1322 _GL_CXXALIAS_SYS (execve, int,
   1323                   (const char *program, char * const *argv, char * const *env));
   1324 # endif
   1325 _GL_CXXALIASWARN (execve);
   1326 #endif
   1327 
   1328 #if 0
   1329 # if 0
   1330 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1331 #   undef execvp
   1332 #   define execvp rpl_execvp
   1333 #  endif
   1334 _GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv)
   1335                                _GL_ARG_NONNULL ((1, 2)));
   1336 _GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv));
   1337 # else
   1338 _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
   1339 # endif
   1340 _GL_CXXALIASWARN (execvp);
   1341 #elif defined GNULIB_POSIXCHECK
   1342 # undef execvp
   1343 # if HAVE_RAW_DECL_EXECVP
   1344 _GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - "
   1345                  "use gnulib module execvp for portability");
   1346 # endif
   1347 #elif 1
   1348 /* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not
   1349    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1350    platforms by defining GNULIB_NAMESPACE::execvp always.  */
   1351 # if defined _WIN32 && !defined __CYGWIN__
   1352 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1353 #   undef execvp
   1354 #   define execvp _execvp
   1355 #  endif
   1356 _GL_CXXALIAS_MDA_CAST (execvp, intptr_t,
   1357                        (const char *program, char * const *argv));
   1358 # else
   1359 _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
   1360 # endif
   1361 _GL_CXXALIASWARN (execvp);
   1362 #endif
   1363 
   1364 #if 0
   1365 # if 0
   1366 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1367 #   undef execvpe
   1368 #   define execvpe rpl_execvpe
   1369 #  endif
   1370 _GL_FUNCDECL_RPL (execvpe, int,
   1371                   (const char *program, char * const *argv, char * const *env)
   1372                   _GL_ARG_NONNULL ((1, 2)));
   1373 _GL_CXXALIAS_RPL (execvpe, int,
   1374                   (const char *program, char * const *argv, char * const *env));
   1375 # else
   1376 #  if !1
   1377 _GL_FUNCDECL_SYS (execvpe, int,
   1378                   (const char *program, char * const *argv, char * const *env)
   1379                   _GL_ARG_NONNULL ((1, 2)));
   1380 #  endif
   1381 _GL_CXXALIAS_SYS (execvpe, int,
   1382                   (const char *program, char * const *argv, char * const *env));
   1383 # endif
   1384 _GL_CXXALIASWARN (execvpe);
   1385 #elif defined GNULIB_POSIXCHECK
   1386 # undef execvpe
   1387 # if HAVE_RAW_DECL_EXECVPE
   1388 _GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - "
   1389                  "use gnulib module execvpe for portability");
   1390 # endif
   1391 #elif 1
   1392 /* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not
   1393    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1394    platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have
   1395    it.  */
   1396 # if defined _WIN32 && !defined __CYGWIN__
   1397 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1398 #   undef execvpe
   1399 #   define execvpe _execvpe
   1400 #  endif
   1401 _GL_CXXALIAS_MDA_CAST (execvpe, intptr_t,
   1402                        (const char *program, char * const *argv,
   1403                         char * const *env));
   1404 # elif 1
   1405 #  if !1
   1406 _GL_FUNCDECL_SYS (execvpe, int,
   1407                   (const char *program, char * const *argv, char * const *env)
   1408                   _GL_ARG_NONNULL ((1, 2)));
   1409 #  endif
   1410 _GL_CXXALIAS_SYS (execvpe, int,
   1411                   (const char *program, char * const *argv, char * const *env));
   1412 # endif
   1413 # if (defined _WIN32 && !defined __CYGWIN__) || 1
   1414 _GL_CXXALIASWARN (execvpe);
   1415 # endif
   1416 #endif
   1417 
   1418 
   1419 #if 0
   1420 # if 0
   1421 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1422 #   undef faccessat
   1423 #   define faccessat rpl_faccessat
   1424 #  endif
   1425 _GL_FUNCDECL_RPL (faccessat, int,
   1426                   (int fd, char const *name, int mode, int flag)
   1427                   _GL_ARG_NONNULL ((2)));
   1428 _GL_CXXALIAS_RPL (faccessat, int,
   1429                   (int fd, char const *name, int mode, int flag));
   1430 # else
   1431 #  if !1
   1432 _GL_FUNCDECL_SYS (faccessat, int,
   1433                   (int fd, char const *file, int mode, int flag)
   1434                   _GL_ARG_NONNULL ((2)));
   1435 #  endif
   1436 _GL_CXXALIAS_SYS (faccessat, int,
   1437                   (int fd, char const *file, int mode, int flag));
   1438 # endif
   1439 _GL_CXXALIASWARN (faccessat);
   1440 #elif defined GNULIB_POSIXCHECK
   1441 # undef faccessat
   1442 # if HAVE_RAW_DECL_FACCESSAT
   1443 _GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
   1444                  "use gnulib module faccessat for portability");
   1445 # endif
   1446 #endif
   1447 
   1448 
   1449 #if 1
   1450 /* Change the process' current working directory to the directory on which
   1451    the given file descriptor is open.
   1452    Return 0 if successful, otherwise -1 and errno set.
   1453    See the POSIX:2008 specification
   1454    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
   1455 # if ! 1
   1456 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
   1457 
   1458 /* Gnulib internal hooks needed to maintain the fchdir metadata.  */
   1459 _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename)
   1460      _GL_ARG_NONNULL ((2));
   1461 _GL_EXTERN_C void _gl_unregister_fd (int fd);
   1462 _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
   1463 _GL_EXTERN_C const char *_gl_directory_name (int fd);
   1464 
   1465 # else
   1466 #  if !1
   1467 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
   1468 #  endif
   1469 # endif
   1470 _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
   1471 _GL_CXXALIASWARN (fchdir);
   1472 #elif defined GNULIB_POSIXCHECK
   1473 # undef fchdir
   1474 # if HAVE_RAW_DECL_FCHDIR
   1475 _GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
   1476                  "use gnulib module fchdir for portability");
   1477 # endif
   1478 #endif
   1479 
   1480 
   1481 #if 0
   1482 # if 0
   1483 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1484 #   undef fchownat
   1485 #   define fchownat rpl_fchownat
   1486 #  endif
   1487 _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file,
   1488                                   uid_t owner, gid_t group, int flag)
   1489                                  _GL_ARG_NONNULL ((2)));
   1490 _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file,
   1491                                   uid_t owner, gid_t group, int flag));
   1492 # else
   1493 #  if !1
   1494 _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file,
   1495                                   uid_t owner, gid_t group, int flag)
   1496                                  _GL_ARG_NONNULL ((2)));
   1497 #  endif
   1498 _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
   1499                                   uid_t owner, gid_t group, int flag));
   1500 # endif
   1501 _GL_CXXALIASWARN (fchownat);
   1502 #elif defined GNULIB_POSIXCHECK
   1503 # undef fchownat
   1504 # if HAVE_RAW_DECL_FCHOWNAT
   1505 _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
   1506                  "use gnulib module fchownat for portability");
   1507 # endif
   1508 #endif
   1509 
   1510 
   1511 #if 0
   1512 /* Synchronize changes to a file.
   1513    Return 0 if successful, otherwise -1 and errno set.
   1514    See POSIX:2008 specification
   1515    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
   1516 # if !1 || !1
   1517 _GL_FUNCDECL_SYS (fdatasync, int, (int fd));
   1518 # endif
   1519 _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
   1520 _GL_CXXALIASWARN (fdatasync);
   1521 #elif defined GNULIB_POSIXCHECK
   1522 # undef fdatasync
   1523 # if HAVE_RAW_DECL_FDATASYNC
   1524 _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
   1525                  "use gnulib module fdatasync for portability");
   1526 # endif
   1527 #endif
   1528 
   1529 
   1530 #if 0
   1531 /* Synchronize changes, including metadata, to a file.
   1532    Return 0 if successful, otherwise -1 and errno set.
   1533    See POSIX:2008 specification
   1534    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
   1535 # if !1
   1536 _GL_FUNCDECL_SYS (fsync, int, (int fd));
   1537 # endif
   1538 _GL_CXXALIAS_SYS (fsync, int, (int fd));
   1539 _GL_CXXALIASWARN (fsync);
   1540 #elif defined GNULIB_POSIXCHECK
   1541 # undef fsync
   1542 # if HAVE_RAW_DECL_FSYNC
   1543 _GL_WARN_ON_USE (fsync, "fsync is unportable - "
   1544                  "use gnulib module fsync for portability");
   1545 # endif
   1546 #endif
   1547 
   1548 
   1549 #if 0
   1550 /* Change the size of the file to which FD is opened to become equal to LENGTH.
   1551    Return 0 if successful, otherwise -1 and errno set.
   1552    See the POSIX:2008 specification
   1553    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
   1554 # if 0
   1555 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1556 #   undef ftruncate
   1557 #   define ftruncate rpl_ftruncate
   1558 #  endif
   1559 _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
   1560 _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
   1561 # else
   1562 #  if !1
   1563 _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
   1564 #  endif
   1565 _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
   1566 # endif
   1567 _GL_CXXALIASWARN (ftruncate);
   1568 #elif defined GNULIB_POSIXCHECK
   1569 # undef ftruncate
   1570 # if HAVE_RAW_DECL_FTRUNCATE
   1571 _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
   1572                  "use gnulib module ftruncate for portability");
   1573 # endif
   1574 #endif
   1575 
   1576 
   1577 #if 1
   1578 /* Get the name of the current working directory, and put it in SIZE bytes
   1579    of BUF.
   1580    Return BUF if successful, or NULL if the directory couldn't be determined
   1581    or SIZE was too small.
   1582    See the POSIX:2008 specification
   1583    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
   1584    Additionally, the gnulib module 'getcwd' guarantees the following GNU
   1585    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
   1586    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
   1587    necessary.  */
   1588 # if 1
   1589 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1590 #   define getcwd rpl_getcwd
   1591 #  endif
   1592 _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size));
   1593 _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size));
   1594 # elif defined _WIN32 && !defined __CYGWIN__
   1595 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1596 #   undef getcwd
   1597 #   define getcwd _getcwd
   1598 #  endif
   1599 _GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size));
   1600 # else
   1601 /* Need to cast, because on mingw, the second parameter is
   1602                                                    int size.  */
   1603 _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
   1604 # endif
   1605 _GL_CXXALIASWARN (getcwd);
   1606 #elif defined GNULIB_POSIXCHECK
   1607 # undef getcwd
   1608 # if HAVE_RAW_DECL_GETCWD
   1609 _GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
   1610                  "use gnulib module getcwd for portability");
   1611 # endif
   1612 #elif 1
   1613 /* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not
   1614    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1615    platforms by defining GNULIB_NAMESPACE::getcwd always.  */
   1616 # if defined _WIN32 && !defined __CYGWIN__
   1617 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1618 #   undef getcwd
   1619 #   define getcwd _getcwd
   1620 #  endif
   1621 /* Need to cast, because on mingw, the second parameter is either
   1622    'int size' or 'size_t size'.  */
   1623 _GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size));
   1624 # else
   1625 _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
   1626 # endif
   1627 _GL_CXXALIASWARN (getcwd);
   1628 #endif
   1629 
   1630 
   1631 #if 0
   1632 /* Return the NIS domain name of the machine.
   1633    WARNING! The NIS domain name is unrelated to the fully qualified host name
   1634             of the machine.  It is also unrelated to email addresses.
   1635    WARNING! The NIS domain name is usually the empty string or "(none)" when
   1636             not using NIS.
   1637 
   1638    Put up to LEN bytes of the NIS domain name into NAME.
   1639    Null terminate it if the name is shorter than LEN.
   1640    If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
   1641    Return 0 if successful, otherwise set errno and return -1.  */
   1642 # if 0
   1643 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1644 #   undef getdomainname
   1645 #   define getdomainname rpl_getdomainname
   1646 #  endif
   1647 _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
   1648                                       _GL_ARG_NONNULL ((1)));
   1649 _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
   1650 # else
   1651 #  if !1
   1652 _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
   1653                                       _GL_ARG_NONNULL ((1)));
   1654 #  endif
   1655 _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
   1656 # endif
   1657 _GL_CXXALIASWARN (getdomainname);
   1658 #elif defined GNULIB_POSIXCHECK
   1659 # undef getdomainname
   1660 # if HAVE_RAW_DECL_GETDOMAINNAME
   1661 _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
   1662                  "use gnulib module getdomainname for portability");
   1663 # endif
   1664 #endif
   1665 
   1666 
   1667 #if 1
   1668 /* Return the maximum number of file descriptors in the current process.
   1669    In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
   1670 # if 0
   1671 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1672 #   undef getdtablesize
   1673 #   define getdtablesize rpl_getdtablesize
   1674 #  endif
   1675 _GL_FUNCDECL_RPL (getdtablesize, int, (void));
   1676 _GL_CXXALIAS_RPL (getdtablesize, int, (void));
   1677 # else
   1678 #  if !1
   1679 _GL_FUNCDECL_SYS (getdtablesize, int, (void));
   1680 #  endif
   1681 /* Need to cast, because on AIX, the parameter list is
   1682                                            (...).  */
   1683 _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void));
   1684 # endif
   1685 _GL_CXXALIASWARN (getdtablesize);
   1686 #elif defined GNULIB_POSIXCHECK
   1687 # undef getdtablesize
   1688 # if HAVE_RAW_DECL_GETDTABLESIZE
   1689 _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
   1690                  "use gnulib module getdtablesize for portability");
   1691 # endif
   1692 #endif
   1693 
   1694 
   1695 #if 0
   1696 /* Fill a buffer with random bytes.  */
   1697 # if !1
   1698 _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length));
   1699 # endif
   1700 _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length));
   1701 _GL_CXXALIASWARN (getentropy);
   1702 #elif defined GNULIB_POSIXCHECK
   1703 # undef getentropy
   1704 # if HAVE_RAW_DECL_GETENTROPY
   1705 _GL_WARN_ON_USE (getentropy, "getentropy is unportable - "
   1706                  "use gnulib module getentropy for portability");
   1707 # endif
   1708 #endif
   1709 
   1710 
   1711 #if 0
   1712 /* Return the supplemental groups that the current process belongs to.
   1713    It is unspecified whether the effective group id is in the list.
   1714    If N is 0, return the group count; otherwise, N describes how many
   1715    entries are available in GROUPS.  Return -1 and set errno if N is
   1716    not 0 and not large enough.  Fails with ENOSYS on some systems.  */
   1717 # if 0
   1718 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1719 #   undef getgroups
   1720 #   define getgroups rpl_getgroups
   1721 #  endif
   1722 _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups));
   1723 _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups));
   1724 # else
   1725 #  if !1
   1726 _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups));
   1727 #  endif
   1728 _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups));
   1729 # endif
   1730 _GL_CXXALIASWARN (getgroups);
   1731 #elif defined GNULIB_POSIXCHECK
   1732 # undef getgroups
   1733 # if HAVE_RAW_DECL_GETGROUPS
   1734 _GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
   1735                  "use gnulib module getgroups for portability");
   1736 # endif
   1737 #endif
   1738 
   1739 
   1740 #if 0
   1741 /* Return the standard host name of the machine.
   1742    WARNING! The host name may or may not be fully qualified.
   1743 
   1744    Put up to LEN bytes of the host name into NAME.
   1745    Null terminate it if the name is shorter than LEN.
   1746    If the host name is longer than LEN, set errno = EINVAL and return -1.
   1747    Return 0 if successful, otherwise set errno and return -1.  */
   1748 # if 0
   1749 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1750 #   undef gethostname
   1751 #   define gethostname rpl_gethostname
   1752 #  endif
   1753 _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len)
   1754                                     _GL_ARG_NONNULL ((1)));
   1755 _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len));
   1756 # else
   1757 #  if !1
   1758 _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len)
   1759                                     _GL_ARG_NONNULL ((1)));
   1760 #  endif
   1761 /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second
   1762    parameter is
   1763                                                       int len.  */
   1764 _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len));
   1765 # endif
   1766 _GL_CXXALIASWARN (gethostname);
   1767 #elif 0
   1768 # undef gethostname
   1769 # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
   1770 #elif defined GNULIB_POSIXCHECK
   1771 # undef gethostname
   1772 # if HAVE_RAW_DECL_GETHOSTNAME
   1773 _GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
   1774                  "use gnulib module gethostname for portability");
   1775 # endif
   1776 #endif
   1777 
   1778 
   1779 #if 0
   1780 /* Returns the user's login name, or NULL if it cannot be found.  Upon error,
   1781    returns NULL with errno set.
   1782 
   1783    See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>.
   1784 
   1785    Most programs don't need to use this function, because the information is
   1786    available through environment variables:
   1787      ${LOGNAME-$USER}        on Unix platforms,
   1788      $USERNAME               on native Windows platforms.
   1789  */
   1790 # if !1
   1791 _GL_FUNCDECL_SYS (getlogin, char *, (void));
   1792 # endif
   1793 _GL_CXXALIAS_SYS (getlogin, char *, (void));
   1794 _GL_CXXALIASWARN (getlogin);
   1795 #elif defined GNULIB_POSIXCHECK
   1796 # undef getlogin
   1797 # if HAVE_RAW_DECL_GETLOGIN
   1798 _GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
   1799                  "use gnulib module getlogin for portability");
   1800 # endif
   1801 #endif
   1802 
   1803 
   1804 #if 1
   1805 /* Copies the user's login name to NAME.
   1806    The array pointed to by NAME has room for SIZE bytes.
   1807 
   1808    Returns 0 if successful.  Upon error, an error number is returned, or -1 in
   1809    the case that the login name cannot be found but no specific error is
   1810    provided (this case is hopefully rare but is left open by the POSIX spec).
   1811 
   1812    See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>.
   1813 
   1814    Most programs don't need to use this function, because the information is
   1815    available through environment variables:
   1816      ${LOGNAME-$USER}        on Unix platforms,
   1817      $USERNAME               on native Windows platforms.
   1818  */
   1819 # if 0
   1820 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1821 #   define getlogin_r rpl_getlogin_r
   1822 #  endif
   1823 _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
   1824                                    _GL_ARG_NONNULL ((1)));
   1825 _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
   1826 # else
   1827 #  if !1
   1828 _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
   1829                                    _GL_ARG_NONNULL ((1)));
   1830 #  endif
   1831 /* Need to cast, because on Solaris 10 systems, the second argument is
   1832                                                      int size.  */
   1833 _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
   1834 # endif
   1835 _GL_CXXALIASWARN (getlogin_r);
   1836 #elif defined GNULIB_POSIXCHECK
   1837 # undef getlogin_r
   1838 # if HAVE_RAW_DECL_GETLOGIN_R
   1839 _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
   1840                  "use gnulib module getlogin_r for portability");
   1841 # endif
   1842 #endif
   1843 
   1844 
   1845 #if 0
   1846 # if 0
   1847 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1848 #   define getpagesize rpl_getpagesize
   1849 #  endif
   1850 _GL_FUNCDECL_RPL (getpagesize, int, (void));
   1851 _GL_CXXALIAS_RPL (getpagesize, int, (void));
   1852 # else
   1853 /* On HP-UX, getpagesize exists, but it is not declared in <unistd.h> even if
   1854    the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used.  */
   1855 #  if defined __hpux
   1856 _GL_FUNCDECL_SYS (getpagesize, int, (void));
   1857 #  endif
   1858 #  if !1
   1859 #   if !defined getpagesize
   1860 /* This is for POSIX systems.  */
   1861 #    if !defined _gl_getpagesize && defined _SC_PAGESIZE
   1862 #     if ! (defined __VMS && __VMS_VER < 70000000)
   1863 #      define _gl_getpagesize() sysconf (_SC_PAGESIZE)
   1864 #     endif
   1865 #    endif
   1866 /* This is for older VMS.  */
   1867 #    if !defined _gl_getpagesize && defined __VMS
   1868 #     ifdef __ALPHA
   1869 #      define _gl_getpagesize() 8192
   1870 #     else
   1871 #      define _gl_getpagesize() 512
   1872 #     endif
   1873 #    endif
   1874 /* This is for BeOS.  */
   1875 #    if !defined _gl_getpagesize && 0
   1876 #     include <OS.h>
   1877 #     if defined B_PAGE_SIZE
   1878 #      define _gl_getpagesize() B_PAGE_SIZE
   1879 #     endif
   1880 #    endif
   1881 /* This is for AmigaOS4.0.  */
   1882 #    if !defined _gl_getpagesize && defined __amigaos4__
   1883 #     define _gl_getpagesize() 2048
   1884 #    endif
   1885 /* This is for older Unix systems.  */
   1886 #    if !defined _gl_getpagesize && 0
   1887 #     include <sys/param.h>
   1888 #     ifdef EXEC_PAGESIZE
   1889 #      define _gl_getpagesize() EXEC_PAGESIZE
   1890 #     else
   1891 #      ifdef NBPG
   1892 #       ifndef CLSIZE
   1893 #        define CLSIZE 1
   1894 #       endif
   1895 #       define _gl_getpagesize() (NBPG * CLSIZE)
   1896 #      else
   1897 #       ifdef NBPC
   1898 #        define _gl_getpagesize() NBPC
   1899 #       endif
   1900 #      endif
   1901 #     endif
   1902 #    endif
   1903 #    if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1904 #     define getpagesize() _gl_getpagesize ()
   1905 #    else
   1906 #     if !GNULIB_defined_getpagesize_function
   1907 _GL_UNISTD_INLINE int
   1908 getpagesize ()
   1909 {
   1910   return _gl_getpagesize ();
   1911 }
   1912 #      define GNULIB_defined_getpagesize_function 1
   1913 #     endif
   1914 #    endif
   1915 #   endif
   1916 #  endif
   1917 /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t.  */
   1918 _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
   1919 # endif
   1920 # if 1
   1921 _GL_CXXALIASWARN (getpagesize);
   1922 # endif
   1923 #elif defined GNULIB_POSIXCHECK
   1924 # undef getpagesize
   1925 # if HAVE_RAW_DECL_GETPAGESIZE
   1926 _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
   1927                  "use gnulib module getpagesize for portability");
   1928 # endif
   1929 #endif
   1930 
   1931 
   1932 #if 0
   1933 /* Function getpass() from module 'getpass':
   1934      Read a password from /dev/tty or stdin.
   1935    Function getpass() from module 'getpass-gnu':
   1936      Read a password of arbitrary length from /dev/tty or stdin.  */
   1937 # if (0 && 0) \
   1938      || (0 && 0)
   1939 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1940 #   undef getpass
   1941 #   define getpass rpl_getpass
   1942 #  endif
   1943 _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt)
   1944                                    _GL_ARG_NONNULL ((1)));
   1945 _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt));
   1946 # else
   1947 #  if !1
   1948 _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt)
   1949                                    _GL_ARG_NONNULL ((1)));
   1950 #  endif
   1951 _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
   1952 # endif
   1953 _GL_CXXALIASWARN (getpass);
   1954 #elif defined GNULIB_POSIXCHECK
   1955 # undef getpass
   1956 # if HAVE_RAW_DECL_GETPASS
   1957 _GL_WARN_ON_USE (getpass, "getpass is unportable - "
   1958                  "use gnulib module getpass or getpass-gnu for portability");
   1959 # endif
   1960 #endif
   1961 
   1962 
   1963 #if 1
   1964 /* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not
   1965    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1966    platforms by defining GNULIB_NAMESPACE::getpid always.  */
   1967 # if defined _WIN32 && !defined __CYGWIN__
   1968 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1969 #   undef getpid
   1970 #   define getpid _getpid
   1971 #  endif
   1972 _GL_CXXALIAS_MDA (getpid, int, (void));
   1973 # else
   1974 _GL_CXXALIAS_SYS (getpid, pid_t, (void));
   1975 # endif
   1976 _GL_CXXALIASWARN (getpid);
   1977 #endif
   1978 
   1979 
   1980 #if 0
   1981 /* Return the next valid login shell on the system, or NULL when the end of
   1982    the list has been reached.  */
   1983 # if !1
   1984 _GL_FUNCDECL_SYS (getusershell, char *, (void));
   1985 # endif
   1986 _GL_CXXALIAS_SYS (getusershell, char *, (void));
   1987 _GL_CXXALIASWARN (getusershell);
   1988 #elif defined GNULIB_POSIXCHECK
   1989 # undef getusershell
   1990 # if HAVE_RAW_DECL_GETUSERSHELL
   1991 _GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
   1992                  "use gnulib module getusershell for portability");
   1993 # endif
   1994 #endif
   1995 
   1996 #if 0
   1997 /* Rewind to pointer that is advanced at each getusershell() call.  */
   1998 # if !1
   1999 _GL_FUNCDECL_SYS (setusershell, void, (void));
   2000 # endif
   2001 _GL_CXXALIAS_SYS (setusershell, void, (void));
   2002 _GL_CXXALIASWARN (setusershell);
   2003 #elif defined GNULIB_POSIXCHECK
   2004 # undef setusershell
   2005 # if HAVE_RAW_DECL_SETUSERSHELL
   2006 _GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
   2007                  "use gnulib module getusershell for portability");
   2008 # endif
   2009 #endif
   2010 
   2011 #if 0
   2012 /* Free the pointer that is advanced at each getusershell() call and
   2013    associated resources.  */
   2014 # if !1
   2015 _GL_FUNCDECL_SYS (endusershell, void, (void));
   2016 # endif
   2017 _GL_CXXALIAS_SYS (endusershell, void, (void));
   2018 _GL_CXXALIASWARN (endusershell);
   2019 #elif defined GNULIB_POSIXCHECK
   2020 # undef endusershell
   2021 # if HAVE_RAW_DECL_ENDUSERSHELL
   2022 _GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
   2023                  "use gnulib module getusershell for portability");
   2024 # endif
   2025 #endif
   2026 
   2027 
   2028 #if 0
   2029 /* Determine whether group id is in calling user's group list.  */
   2030 # if !1
   2031 _GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
   2032 # endif
   2033 _GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
   2034 _GL_CXXALIASWARN (group_member);
   2035 #elif defined GNULIB_POSIXCHECK
   2036 # undef group_member
   2037 # if HAVE_RAW_DECL_GROUP_MEMBER
   2038 _GL_WARN_ON_USE (group_member, "group_member is unportable - "
   2039                  "use gnulib module group-member for portability");
   2040 # endif
   2041 #endif
   2042 
   2043 
   2044 #if 0
   2045 # if 0
   2046 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2047 #   undef isatty
   2048 #   define isatty rpl_isatty
   2049 #  endif
   2050 #  define GNULIB_defined_isatty 1
   2051 _GL_FUNCDECL_RPL (isatty, int, (int fd));
   2052 _GL_CXXALIAS_RPL (isatty, int, (int fd));
   2053 # elif defined _WIN32 && !defined __CYGWIN__
   2054 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2055 #   undef isatty
   2056 #   define isatty _isatty
   2057 #  endif
   2058 _GL_CXXALIAS_MDA (isatty, int, (int fd));
   2059 # else
   2060 _GL_CXXALIAS_SYS (isatty, int, (int fd));
   2061 # endif
   2062 _GL_CXXALIASWARN (isatty);
   2063 #elif defined GNULIB_POSIXCHECK
   2064 # undef isatty
   2065 # if HAVE_RAW_DECL_ISATTY
   2066 _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
   2067                  "use gnulib module isatty for portability");
   2068 # endif
   2069 #elif 1
   2070 /* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not
   2071    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2072    platforms by defining GNULIB_NAMESPACE::isatty always.  */
   2073 # if defined _WIN32 && !defined __CYGWIN__
   2074 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2075 #   undef isatty
   2076 #   define isatty _isatty
   2077 #  endif
   2078 _GL_CXXALIAS_MDA (isatty, int, (int fd));
   2079 # else
   2080 _GL_CXXALIAS_SYS (isatty, int, (int fd));
   2081 # endif
   2082 _GL_CXXALIASWARN (isatty);
   2083 #endif
   2084 
   2085 
   2086 #if 0
   2087 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
   2088    to GID (if GID is not -1).  Do not follow symbolic links.
   2089    Return 0 if successful, otherwise -1 and errno set.
   2090    See the POSIX:2008 specification
   2091    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
   2092 # if 0
   2093 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2094 #   undef lchown
   2095 #   define lchown rpl_lchown
   2096 #  endif
   2097 _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)
   2098                                _GL_ARG_NONNULL ((1)));
   2099 _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group));
   2100 # else
   2101 #  if !1
   2102 _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)
   2103                                _GL_ARG_NONNULL ((1)));
   2104 #  endif
   2105 _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
   2106 # endif
   2107 _GL_CXXALIASWARN (lchown);
   2108 #elif defined GNULIB_POSIXCHECK
   2109 # undef lchown
   2110 # if HAVE_RAW_DECL_LCHOWN
   2111 _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
   2112                  "use gnulib module lchown for portability");
   2113 # endif
   2114 #endif
   2115 
   2116 
   2117 #if 0
   2118 /* Create a new hard link for an existing file.
   2119    Return 0 if successful, otherwise -1 and errno set.
   2120    See POSIX:2008 specification
   2121    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
   2122 # if 0
   2123 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2124 #   define link rpl_link
   2125 #  endif
   2126 _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2)
   2127                              _GL_ARG_NONNULL ((1, 2)));
   2128 _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2));
   2129 # else
   2130 #  if !1
   2131 _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2)
   2132                              _GL_ARG_NONNULL ((1, 2)));
   2133 #  endif
   2134 _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
   2135 # endif
   2136 _GL_CXXALIASWARN (link);
   2137 #elif defined GNULIB_POSIXCHECK
   2138 # undef link
   2139 # if HAVE_RAW_DECL_LINK
   2140 _GL_WARN_ON_USE (link, "link is unportable - "
   2141                  "use gnulib module link for portability");
   2142 # endif
   2143 #endif
   2144 
   2145 
   2146 #if 0
   2147 /* Create a new hard link for an existing file, relative to two
   2148    directories.  FLAG controls whether symlinks are followed.
   2149    Return 0 if successful, otherwise -1 and errno set.  */
   2150 # if 0
   2151 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2152 #   undef linkat
   2153 #   define linkat rpl_linkat
   2154 #  endif
   2155 _GL_FUNCDECL_RPL (linkat, int,
   2156                   (int fd1, const char *path1, int fd2, const char *path2,
   2157                    int flag)
   2158                   _GL_ARG_NONNULL ((2, 4)));
   2159 _GL_CXXALIAS_RPL (linkat, int,
   2160                   (int fd1, const char *path1, int fd2, const char *path2,
   2161                    int flag));
   2162 # else
   2163 #  if !1
   2164 _GL_FUNCDECL_SYS (linkat, int,
   2165                   (int fd1, const char *path1, int fd2, const char *path2,
   2166                    int flag)
   2167                   _GL_ARG_NONNULL ((2, 4)));
   2168 #  endif
   2169 _GL_CXXALIAS_SYS (linkat, int,
   2170                   (int fd1, const char *path1, int fd2, const char *path2,
   2171                    int flag));
   2172 # endif
   2173 _GL_CXXALIASWARN (linkat);
   2174 #elif defined GNULIB_POSIXCHECK
   2175 # undef linkat
   2176 # if HAVE_RAW_DECL_LINKAT
   2177 _GL_WARN_ON_USE (linkat, "linkat is unportable - "
   2178                  "use gnulib module linkat for portability");
   2179 # endif
   2180 #endif
   2181 
   2182 
   2183 #if 0
   2184 /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
   2185    Return the new offset if successful, otherwise -1 and errno set.
   2186    See the POSIX:2008 specification
   2187    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
   2188 # if 0
   2189 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2190 #   define lseek rpl_lseek
   2191 #  endif
   2192 _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence));
   2193 _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence));
   2194 # elif defined _WIN32 && !defined __CYGWIN__
   2195 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2196 #   undef lseek
   2197 #   define lseek _lseek
   2198 #  endif
   2199 _GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence));
   2200 # else
   2201 _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
   2202 # endif
   2203 _GL_CXXALIASWARN (lseek);
   2204 #elif defined GNULIB_POSIXCHECK
   2205 # undef lseek
   2206 # if HAVE_RAW_DECL_LSEEK
   2207 _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
   2208                  "systems - use gnulib module lseek for portability");
   2209 # endif
   2210 #elif 1
   2211 /* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not
   2212    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2213    platforms by defining GNULIB_NAMESPACE::lseek always.  */
   2214 # if defined _WIN32 && !defined __CYGWIN__
   2215 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2216 #   undef lseek
   2217 #   define lseek _lseek
   2218 #  endif
   2219 _GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence));
   2220 # else
   2221 _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
   2222 # endif
   2223 _GL_CXXALIASWARN (lseek);
   2224 #endif
   2225 
   2226 
   2227 #if 1
   2228 /* Create a pipe, defaulting to O_BINARY mode.
   2229    Store the read-end as fd[0] and the write-end as fd[1].
   2230    Return 0 upon success, or -1 with errno set upon failure.  */
   2231 # if !1
   2232 _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
   2233 # endif
   2234 _GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
   2235 _GL_CXXALIASWARN (pipe);
   2236 #elif defined GNULIB_POSIXCHECK
   2237 # undef pipe
   2238 # if HAVE_RAW_DECL_PIPE
   2239 _GL_WARN_ON_USE (pipe, "pipe is unportable - "
   2240                  "use gnulib module pipe-posix for portability");
   2241 # endif
   2242 #endif
   2243 
   2244 
   2245 #if 0
   2246 /* Create a pipe, applying the given flags when opening the read-end of the
   2247    pipe and the write-end of the pipe.
   2248    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
   2249    and O_TEXT, O_BINARY (defined in "binary-io.h").
   2250    Store the read-end as fd[0] and the write-end as fd[1].
   2251    Return 0 upon success, or -1 with errno set upon failure.
   2252    See also the Linux man page at
   2253    <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>.  */
   2254 # if 1
   2255 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2256 #   define pipe2 rpl_pipe2
   2257 #  endif
   2258 _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
   2259 _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
   2260 # else
   2261 _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
   2262 _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
   2263 # endif
   2264 _GL_CXXALIASWARN (pipe2);
   2265 #elif defined GNULIB_POSIXCHECK
   2266 # undef pipe2
   2267 # if HAVE_RAW_DECL_PIPE2
   2268 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
   2269                  "use gnulib module pipe2 for portability");
   2270 # endif
   2271 #endif
   2272 
   2273 
   2274 #if 0
   2275 /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
   2276    Return the number of bytes placed into BUF if successful, otherwise
   2277    set errno and return -1.  0 indicates EOF.
   2278    See the POSIX:2008 specification
   2279    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
   2280 # if 0
   2281 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2282 #   undef pread
   2283 #   define pread rpl_pread
   2284 #  endif
   2285 _GL_FUNCDECL_RPL (pread, ssize_t,
   2286                   (int fd, void *buf, size_t bufsize, off_t offset)
   2287                   _GL_ARG_NONNULL ((2)));
   2288 _GL_CXXALIAS_RPL (pread, ssize_t,
   2289                   (int fd, void *buf, size_t bufsize, off_t offset));
   2290 # else
   2291 #  if !1
   2292 _GL_FUNCDECL_SYS (pread, ssize_t,
   2293                   (int fd, void *buf, size_t bufsize, off_t offset)
   2294                   _GL_ARG_NONNULL ((2)));
   2295 #  endif
   2296 _GL_CXXALIAS_SYS (pread, ssize_t,
   2297                   (int fd, void *buf, size_t bufsize, off_t offset));
   2298 # endif
   2299 _GL_CXXALIASWARN (pread);
   2300 #elif defined GNULIB_POSIXCHECK
   2301 # undef pread
   2302 # if HAVE_RAW_DECL_PREAD
   2303 _GL_WARN_ON_USE (pread, "pread is unportable - "
   2304                  "use gnulib module pread for portability");
   2305 # endif
   2306 #endif
   2307 
   2308 
   2309 #if 0
   2310 /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
   2311    Return the number of bytes written if successful, otherwise
   2312    set errno and return -1.  0 indicates nothing written.  See the
   2313    POSIX:2008 specification
   2314    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
   2315 # if 0
   2316 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2317 #   undef pwrite
   2318 #   define pwrite rpl_pwrite
   2319 #  endif
   2320 _GL_FUNCDECL_RPL (pwrite, ssize_t,
   2321                   (int fd, const void *buf, size_t bufsize, off_t offset)
   2322                   _GL_ARG_NONNULL ((2)));
   2323 _GL_CXXALIAS_RPL (pwrite, ssize_t,
   2324                   (int fd, const void *buf, size_t bufsize, off_t offset));
   2325 # else
   2326 #  if !1
   2327 _GL_FUNCDECL_SYS (pwrite, ssize_t,
   2328                   (int fd, const void *buf, size_t bufsize, off_t offset)
   2329                   _GL_ARG_NONNULL ((2)));
   2330 #  endif
   2331 _GL_CXXALIAS_SYS (pwrite, ssize_t,
   2332                   (int fd, const void *buf, size_t bufsize, off_t offset));
   2333 # endif
   2334 _GL_CXXALIASWARN (pwrite);
   2335 #elif defined GNULIB_POSIXCHECK
   2336 # undef pwrite
   2337 # if HAVE_RAW_DECL_PWRITE
   2338 _GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
   2339                  "use gnulib module pwrite for portability");
   2340 # endif
   2341 #endif
   2342 
   2343 
   2344 #if 0
   2345 /* Read up to COUNT bytes from file descriptor FD into the buffer starting
   2346    at BUF.  See the POSIX:2008 specification
   2347    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
   2348 # if 0
   2349 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2350 #   undef read
   2351 #   define read rpl_read
   2352 #  endif
   2353 _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
   2354                                  _GL_ARG_NONNULL ((2)));
   2355 _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
   2356 # elif defined _WIN32 && !defined __CYGWIN__
   2357 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2358 #   undef read
   2359 #   define read _read
   2360 #  endif
   2361 _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count));
   2362 # else
   2363 _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count));
   2364 # endif
   2365 _GL_CXXALIASWARN (read);
   2366 #elif 1
   2367 /* On native Windows, map 'read' to '_read', so that -loldnames is not
   2368    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2369    platforms by defining GNULIB_NAMESPACE::read always.  */
   2370 # if defined _WIN32 && !defined __CYGWIN__
   2371 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2372 #   undef read
   2373 #   define read _read
   2374 #  endif
   2375 #  ifdef __MINGW32__
   2376 _GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count));
   2377 #  else
   2378 _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count));
   2379 #  endif
   2380 # else
   2381 _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count));
   2382 # endif
   2383 _GL_CXXALIASWARN (read);
   2384 #endif
   2385 
   2386 
   2387 #if 1
   2388 /* Read the contents of the symbolic link FILE and place the first BUFSIZE
   2389    bytes of it into BUF.  Return the number of bytes placed into BUF if
   2390    successful, otherwise -1 and errno set.
   2391    See the POSIX:2008 specification
   2392    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
   2393 # if 1
   2394 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2395 #   define readlink rpl_readlink
   2396 #  endif
   2397 _GL_FUNCDECL_RPL (readlink, ssize_t,
   2398                   (const char *restrict file,
   2399                    char *restrict buf, size_t bufsize)
   2400                   _GL_ARG_NONNULL ((1, 2)));
   2401 _GL_CXXALIAS_RPL (readlink, ssize_t,
   2402                   (const char *restrict file,
   2403                    char *restrict buf, size_t bufsize));
   2404 # else
   2405 #  if !1
   2406 _GL_FUNCDECL_SYS (readlink, ssize_t,
   2407                   (const char *restrict file,
   2408                    char *restrict buf, size_t bufsize)
   2409                   _GL_ARG_NONNULL ((1, 2)));
   2410 #  endif
   2411 _GL_CXXALIAS_SYS (readlink, ssize_t,
   2412                   (const char *restrict file,
   2413                    char *restrict buf, size_t bufsize));
   2414 # endif
   2415 _GL_CXXALIASWARN (readlink);
   2416 #elif defined GNULIB_POSIXCHECK
   2417 # undef readlink
   2418 # if HAVE_RAW_DECL_READLINK
   2419 _GL_WARN_ON_USE (readlink, "readlink is unportable - "
   2420                  "use gnulib module readlink for portability");
   2421 # endif
   2422 #endif
   2423 
   2424 
   2425 #if 0
   2426 # if 0
   2427 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2428 #   define readlinkat rpl_readlinkat
   2429 #  endif
   2430 _GL_FUNCDECL_RPL (readlinkat, ssize_t,
   2431                   (int fd, char const *restrict file,
   2432                    char *restrict buf, size_t len)
   2433                   _GL_ARG_NONNULL ((2, 3)));
   2434 _GL_CXXALIAS_RPL (readlinkat, ssize_t,
   2435                   (int fd, char const *restrict file,
   2436                    char *restrict buf, size_t len));
   2437 # else
   2438 #  if !1
   2439 _GL_FUNCDECL_SYS (readlinkat, ssize_t,
   2440                   (int fd, char const *restrict file,
   2441                    char *restrict buf, size_t len)
   2442                   _GL_ARG_NONNULL ((2, 3)));
   2443 #  endif
   2444 _GL_CXXALIAS_SYS (readlinkat, ssize_t,
   2445                   (int fd, char const *restrict file,
   2446                    char *restrict buf, size_t len));
   2447 # endif
   2448 _GL_CXXALIASWARN (readlinkat);
   2449 #elif defined GNULIB_POSIXCHECK
   2450 # undef readlinkat
   2451 # if HAVE_RAW_DECL_READLINKAT
   2452 _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
   2453                  "use gnulib module readlinkat for portability");
   2454 # endif
   2455 #endif
   2456 
   2457 
   2458 #if 1
   2459 /* Remove the directory DIR.  */
   2460 # if 1
   2461 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2462 #   define rmdir rpl_rmdir
   2463 #  endif
   2464 _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1)));
   2465 _GL_CXXALIAS_RPL (rmdir, int, (char const *name));
   2466 # elif defined _WIN32 && !defined __CYGWIN__
   2467 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2468 #   undef rmdir
   2469 #   define rmdir _rmdir
   2470 #  endif
   2471 _GL_CXXALIAS_MDA (rmdir, int, (char const *name));
   2472 # else
   2473 _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
   2474 # endif
   2475 _GL_CXXALIASWARN (rmdir);
   2476 #elif defined GNULIB_POSIXCHECK
   2477 # undef rmdir
   2478 # if HAVE_RAW_DECL_RMDIR
   2479 _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
   2480                  "use gnulib module rmdir for portability");
   2481 # endif
   2482 #elif 1
   2483 /* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not
   2484    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2485    platforms by defining GNULIB_NAMESPACE::rmdir always.  */
   2486 # if defined _WIN32 && !defined __CYGWIN__
   2487 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2488 #   undef rmdir
   2489 #   define rmdir _rmdir
   2490 #  endif
   2491 _GL_CXXALIAS_MDA (rmdir, int, (char const *name));
   2492 # else
   2493 _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
   2494 # endif
   2495 _GL_CXXALIASWARN (rmdir);
   2496 #endif
   2497 
   2498 
   2499 #if 0
   2500 /* Set the host name of the machine.
   2501    The host name may or may not be fully qualified.
   2502 
   2503    Put LEN bytes of NAME into the host name.
   2504    Return 0 if successful, otherwise, set errno and return -1.
   2505 
   2506    Platforms with no ability to set the hostname return -1 and set
   2507    errno = ENOSYS.  */
   2508 # if !1 || !1
   2509 _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
   2510                                     _GL_ARG_NONNULL ((1)));
   2511 # endif
   2512 /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
   2513    and FreeBSD 6.4 the second parameter is int.  On Solaris 11
   2514    2011-10, the first parameter is not const.  */
   2515 _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
   2516 _GL_CXXALIASWARN (sethostname);
   2517 #elif defined GNULIB_POSIXCHECK
   2518 # undef sethostname
   2519 # if HAVE_RAW_DECL_SETHOSTNAME
   2520 _GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
   2521                  "use gnulib module sethostname for portability");
   2522 # endif
   2523 #endif
   2524 
   2525 
   2526 #if 0
   2527 /* Pause the execution of the current thread for N seconds.
   2528    Returns the number of seconds left to sleep.
   2529    See the POSIX:2008 specification
   2530    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
   2531 # if 0
   2532 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2533 #   undef sleep
   2534 #   define sleep rpl_sleep
   2535 #  endif
   2536 _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n));
   2537 _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n));
   2538 # else
   2539 #  if !1
   2540 _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n));
   2541 #  endif
   2542 _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
   2543 # endif
   2544 _GL_CXXALIASWARN (sleep);
   2545 #elif defined GNULIB_POSIXCHECK
   2546 # undef sleep
   2547 # if HAVE_RAW_DECL_SLEEP
   2548 _GL_WARN_ON_USE (sleep, "sleep is unportable - "
   2549                  "use gnulib module sleep for portability");
   2550 # endif
   2551 #endif
   2552 
   2553 
   2554 #if 1
   2555 /* On native Windows, map 'swab' to '_swab', so that -loldnames is not
   2556    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2557    platforms by defining GNULIB_NAMESPACE::swab always.  */
   2558 # if defined _WIN32 && !defined __CYGWIN__
   2559 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2560 #   undef swab
   2561 #   define swab _swab
   2562 #  endif
   2563 /* Need to cast, because in old mingw the arguments are
   2564                              (const char *from, char *to, size_t n).  */
   2565 _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n));
   2566 # else
   2567 #  if defined __hpux /* HP-UX */
   2568 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n));
   2569 #  elif defined __sun && !defined _XPG4 /* Solaris */
   2570 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n));
   2571 #  else
   2572 _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n));
   2573 #  endif
   2574 # endif
   2575 _GL_CXXALIASWARN (swab);
   2576 #endif
   2577 
   2578 
   2579 #if 0
   2580 # if 0
   2581 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2582 #   undef symlink
   2583 #   define symlink rpl_symlink
   2584 #  endif
   2585 _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file)
   2586                                 _GL_ARG_NONNULL ((1, 2)));
   2587 _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file));
   2588 # else
   2589 #  if !1
   2590 _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file)
   2591                                 _GL_ARG_NONNULL ((1, 2)));
   2592 #  endif
   2593 _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file));
   2594 # endif
   2595 _GL_CXXALIASWARN (symlink);
   2596 #elif defined GNULIB_POSIXCHECK
   2597 # undef symlink
   2598 # if HAVE_RAW_DECL_SYMLINK
   2599 _GL_WARN_ON_USE (symlink, "symlink is not portable - "
   2600                  "use gnulib module symlink for portability");
   2601 # endif
   2602 #endif
   2603 
   2604 
   2605 #if 0
   2606 # if 0
   2607 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2608 #   undef symlinkat
   2609 #   define symlinkat rpl_symlinkat
   2610 #  endif
   2611 _GL_FUNCDECL_RPL (symlinkat, int,
   2612                   (char const *contents, int fd, char const *file)
   2613                   _GL_ARG_NONNULL ((1, 3)));
   2614 _GL_CXXALIAS_RPL (symlinkat, int,
   2615                   (char const *contents, int fd, char const *file));
   2616 # else
   2617 #  if !1
   2618 _GL_FUNCDECL_SYS (symlinkat, int,
   2619                   (char const *contents, int fd, char const *file)
   2620                   _GL_ARG_NONNULL ((1, 3)));
   2621 #  endif
   2622 _GL_CXXALIAS_SYS (symlinkat, int,
   2623                   (char const *contents, int fd, char const *file));
   2624 # endif
   2625 _GL_CXXALIASWARN (symlinkat);
   2626 #elif defined GNULIB_POSIXCHECK
   2627 # undef symlinkat
   2628 # if HAVE_RAW_DECL_SYMLINKAT
   2629 _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
   2630                  "use gnulib module symlinkat for portability");
   2631 # endif
   2632 #endif
   2633 
   2634 
   2635 #if 0
   2636 /* Change the size of the file designated by FILENAME to become equal to LENGTH.
   2637    Return 0 if successful, otherwise -1 and errno set.
   2638    See the POSIX:2008 specification
   2639    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/truncate.html>.  */
   2640 # if 0
   2641 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2642 #   undef truncate
   2643 #   define truncate rpl_truncate
   2644 #  endif
   2645 _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length)
   2646                                  _GL_ARG_NONNULL ((1)));
   2647 _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length));
   2648 # else
   2649 #  if !1
   2650 _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
   2651                                  _GL_ARG_NONNULL ((1)));
   2652 #  endif
   2653 _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
   2654 # endif
   2655 _GL_CXXALIASWARN (truncate);
   2656 #elif defined GNULIB_POSIXCHECK
   2657 # undef truncate
   2658 # if HAVE_RAW_DECL_TRUNCATE
   2659 _GL_WARN_ON_USE (truncate, "truncate is unportable - "
   2660                  "use gnulib module truncate for portability");
   2661 # endif
   2662 #endif
   2663 
   2664 
   2665 #if 0
   2666 /* Store at most BUFLEN characters of the pathname of the terminal FD is
   2667    open on in BUF.  Return 0 on success, otherwise an error number.  */
   2668 # if 0
   2669 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2670 #   undef ttyname_r
   2671 #   define ttyname_r rpl_ttyname_r
   2672 #  endif
   2673 _GL_FUNCDECL_RPL (ttyname_r, int,
   2674                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
   2675 _GL_CXXALIAS_RPL (ttyname_r, int,
   2676                   (int fd, char *buf, size_t buflen));
   2677 # else
   2678 #  if !1
   2679 _GL_FUNCDECL_SYS (ttyname_r, int,
   2680                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
   2681 #  endif
   2682 _GL_CXXALIAS_SYS (ttyname_r, int,
   2683                   (int fd, char *buf, size_t buflen));
   2684 # endif
   2685 _GL_CXXALIASWARN (ttyname_r);
   2686 #elif defined GNULIB_POSIXCHECK
   2687 # undef ttyname_r
   2688 # if HAVE_RAW_DECL_TTYNAME_R
   2689 _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
   2690                  "use gnulib module ttyname_r for portability");
   2691 # endif
   2692 #endif
   2693 
   2694 
   2695 #if 0
   2696 # if 0
   2697 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2698 #   undef unlink
   2699 #   define unlink rpl_unlink
   2700 #  endif
   2701 _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1)));
   2702 _GL_CXXALIAS_RPL (unlink, int, (char const *file));
   2703 # elif defined _WIN32 && !defined __CYGWIN__
   2704 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2705 #   undef unlink
   2706 #   define unlink _unlink
   2707 #  endif
   2708 _GL_CXXALIAS_MDA (unlink, int, (char const *file));
   2709 # else
   2710 _GL_CXXALIAS_SYS (unlink, int, (char const *file));
   2711 # endif
   2712 _GL_CXXALIASWARN (unlink);
   2713 #elif defined GNULIB_POSIXCHECK
   2714 # undef unlink
   2715 # if HAVE_RAW_DECL_UNLINK
   2716 _GL_WARN_ON_USE (unlink, "unlink is not portable - "
   2717                  "use gnulib module unlink for portability");
   2718 # endif
   2719 #elif 1
   2720 /* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not
   2721    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2722    platforms by defining GNULIB_NAMESPACE::unlink always.  */
   2723 # if defined _WIN32 && !defined __CYGWIN__
   2724 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2725 #   undef unlink
   2726 #   define unlink _unlink
   2727 #  endif
   2728 _GL_CXXALIAS_MDA (unlink, int, (char const *file));
   2729 # else
   2730 _GL_CXXALIAS_SYS (unlink, int, (char const *file));
   2731 # endif
   2732 _GL_CXXALIASWARN (unlink);
   2733 #endif
   2734 
   2735 
   2736 #if 0
   2737 # if 0
   2738 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2739 #   undef unlinkat
   2740 #   define unlinkat rpl_unlinkat
   2741 #  endif
   2742 _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag)
   2743                                  _GL_ARG_NONNULL ((2)));
   2744 _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag));
   2745 # else
   2746 #  if !1
   2747 _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag)
   2748                                  _GL_ARG_NONNULL ((2)));
   2749 #  endif
   2750 _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
   2751 # endif
   2752 _GL_CXXALIASWARN (unlinkat);
   2753 #elif defined GNULIB_POSIXCHECK
   2754 # undef unlinkat
   2755 # if HAVE_RAW_DECL_UNLINKAT
   2756 _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
   2757                  "use gnulib module unlinkat for portability");
   2758 # endif
   2759 #endif
   2760 
   2761 
   2762 #if 0
   2763 /* Pause the execution of the current thread for N microseconds.
   2764    Returns 0 on completion, or -1 on range error.
   2765    See the POSIX:2001 specification
   2766    <https://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html>.  */
   2767 # if 0
   2768 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2769 #   undef usleep
   2770 #   define usleep rpl_usleep
   2771 #  endif
   2772 _GL_FUNCDECL_RPL (usleep, int, (useconds_t n));
   2773 _GL_CXXALIAS_RPL (usleep, int, (useconds_t n));
   2774 # else
   2775 #  if !1
   2776 _GL_FUNCDECL_SYS (usleep, int, (useconds_t n));
   2777 #  endif
   2778 /* Need to cast, because on Haiku, the first parameter is
   2779                                      unsigned int n.  */
   2780 _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n));
   2781 # endif
   2782 _GL_CXXALIASWARN (usleep);
   2783 #elif defined GNULIB_POSIXCHECK
   2784 # undef usleep
   2785 # if HAVE_RAW_DECL_USLEEP
   2786 _GL_WARN_ON_USE (usleep, "usleep is unportable - "
   2787                  "use gnulib module usleep for portability");
   2788 # endif
   2789 #endif
   2790 
   2791 
   2792 #if 0
   2793 /* Write up to COUNT bytes starting at BUF to file descriptor FD.
   2794    See the POSIX:2008 specification
   2795    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
   2796 # if 0
   2797 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2798 #   undef write
   2799 #   define write rpl_write
   2800 #  endif
   2801 _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count)
   2802                                   _GL_ARG_NONNULL ((2)));
   2803 _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count));
   2804 # elif defined _WIN32 && !defined __CYGWIN__
   2805 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2806 #   undef write
   2807 #   define write _write
   2808 #  endif
   2809 _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count));
   2810 # else
   2811 _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count));
   2812 # endif
   2813 _GL_CXXALIASWARN (write);
   2814 #elif 1
   2815 /* On native Windows, map 'write' to '_write', so that -loldnames is not
   2816    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   2817    platforms by defining GNULIB_NAMESPACE::write always.  */
   2818 # if defined _WIN32 && !defined __CYGWIN__
   2819 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2820 #   undef write
   2821 #   define write _write
   2822 #  endif
   2823 #  ifdef __MINGW32__
   2824 _GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count));
   2825 #  else
   2826 _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count));
   2827 #  endif
   2828 # else
   2829 _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count));
   2830 # endif
   2831 _GL_CXXALIASWARN (write);
   2832 #endif
   2833 
   2834 _GL_INLINE_HEADER_END
   2835 
   2836 #endif /* _GL_UNISTD_H */
   2837 #endif /* _GL_INCLUDING_UNISTD_H */
   2838 #endif /* _GL_UNISTD_H */
   2839