Blame gnulib/lib/libc-config.h

Packit 06dd63
/* System definitions for code taken from the GNU C Library
Packit 06dd63
Packit 06dd63
   Copyright 2017-2019 Free Software Foundation, Inc.
Packit 06dd63
Packit 06dd63
   This program is free software; you can redistribute it and/or
Packit 06dd63
   modify it under the terms of the GNU Lesser General Public
Packit 06dd63
   License as published by the Free Software Foundation; either
Packit 06dd63
   version 2.1 of the License, or (at your option) any later version.
Packit 06dd63
Packit 06dd63
   This program is distributed in the hope that it will be useful,
Packit 06dd63
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 06dd63
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 06dd63
   Lesser General Public License for more details.
Packit 06dd63
Packit 06dd63
   You should have received a copy of the GNU Lesser General Public
Packit 06dd63
   License along with this program; if not, see
Packit 06dd63
   <https://www.gnu.org/licenses/>.  */
Packit 06dd63
Packit 06dd63
/* Written by Paul Eggert.  */
Packit 06dd63
Packit 06dd63
/* This is intended to be a good-enough substitute for glibc system
Packit 06dd63
   macros like those defined in <sys/cdefs.h>, so that Gnulib code
Packit 06dd63
   shared with glibc can do this as the first #include:
Packit 06dd63
Packit 06dd63
     #ifndef _LIBC
Packit 06dd63
     # include <libc-config.h>
Packit 06dd63
     #endif
Packit 06dd63
Packit 06dd63
   When compiled as part of glibc this is a no-op; when compiled as
Packit 06dd63
   part of Gnulib this includes Gnulib's <config.h> and defines macros
Packit 06dd63
   that glibc library code would normally assume.  */
Packit 06dd63
Packit 06dd63
#include <config.h>
Packit 06dd63
Packit 06dd63
/* On glibc this includes <features.h> and <sys/cdefs.h> and #defines
Packit 06dd63
   _FEATURES_H, __WORDSIZE, and __set_errno.  On FreeBSD 11 it
Packit 06dd63
   includes <sys/cdefs.h> which defines __nonnull.  Elsewhere it
Packit 06dd63
   is harmless.  */
Packit 06dd63
#include <errno.h>
Packit 06dd63
Packit 06dd63
/* From glibc <errno.h>.  */
Packit 06dd63
#ifndef __set_errno
Packit 06dd63
# define __set_errno(val) (errno = (val))
Packit 06dd63
#endif
Packit 06dd63
Packit 06dd63
/* From glibc <features.h>.  */
Packit 06dd63
Packit 06dd63
#ifndef __GNUC_PREREQ
Packit 06dd63
# if defined __GNUC__ && defined __GNUC_MINOR__
Packit 06dd63
#  define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__))
Packit 06dd63
# else
Packit 06dd63
#  define __GNUC_PREREQ(maj, min) 0
Packit 06dd63
# endif
Packit 06dd63
#endif
Packit 06dd63
Packit 06dd63
#ifndef __glibc_clang_prereq
Packit 06dd63
# if defined __clang_major__ && defined __clang_minor__
Packit 06dd63
#  define __glibc_clang_prereq(maj, min) \
Packit 06dd63
     ((maj) < __clang_major__ + ((min) <= __clang_minor__))
Packit 06dd63
# else
Packit 06dd63
#  define __glibc_clang_prereq(maj, min) 0
Packit 06dd63
# endif
Packit 06dd63
#endif
Packit 06dd63
Packit 06dd63
Packit 06dd63
/* Prepare to include <cdefs.h>, which is our copy of glibc
Packit 06dd63
   <sys/cdefs.h>.  */
Packit 06dd63
Packit 06dd63
/* Define _FEATURES_H so that <cdefs.h> does not include <features.h>.  */
Packit 06dd63
#ifndef _FEATURES_H
Packit 06dd63
# define _FEATURES_H 1
Packit 06dd63
#endif
Packit 06dd63
/* Define __WORDSIZE so that <cdefs.h> does not attempt to include
Packit 06dd63
   nonexistent files.  Make it a syntax error, since Gnulib does not
Packit 06dd63
   use __WORDSIZE now, and if Gnulib uses it later the syntax error
Packit 06dd63
   will let us know that __WORDSIZE needs configuring.  */
Packit 06dd63
#ifndef __WORDSIZE
Packit 06dd63
# define __WORDSIZE %%%
Packit 06dd63
#endif
Packit 06dd63
/* Undef the macros unconditionally defined by our copy of glibc
Packit 06dd63
   <sys/cdefs.h>, so that they do not clash with any system-defined
Packit 06dd63
   versions.  */
Packit 06dd63
#undef _SYS_CDEFS_H
Packit 06dd63
#undef __ASMNAME
Packit 06dd63
#undef __ASMNAME2
Packit 06dd63
#undef __BEGIN_DECLS
Packit 06dd63
#undef __CONCAT
Packit 06dd63
#undef __END_DECLS
Packit 06dd63
#undef __HAVE_GENERIC_SELECTION
Packit 06dd63
#undef __LDBL_COMPAT
Packit 06dd63
#undef __LDBL_REDIR
Packit 06dd63
#undef __LDBL_REDIR1
Packit 06dd63
#undef __LDBL_REDIR1_DECL
Packit 06dd63
#undef __LDBL_REDIR1_NTH
Packit 06dd63
#undef __LDBL_REDIR_DECL
Packit 06dd63
#undef __LDBL_REDIR_NTH
Packit 06dd63
#undef __LEAF
Packit 06dd63
#undef __LEAF_ATTR
Packit 06dd63
#undef __NTH
Packit 06dd63
#undef __NTHNL
Packit 06dd63
#undef __P
Packit 06dd63
#undef __PMT
Packit 06dd63
#undef __REDIRECT
Packit 06dd63
#undef __REDIRECT_LDBL
Packit 06dd63
#undef __REDIRECT_NTH
Packit 06dd63
#undef __REDIRECT_NTHNL
Packit 06dd63
#undef __REDIRECT_NTH_LDBL
Packit 06dd63
#undef __STRING
Packit 06dd63
#undef __THROW
Packit 06dd63
#undef __THROWNL
Packit 06dd63
#undef __always_inline
Packit 06dd63
#undef __attribute__
Packit 06dd63
#undef __attribute_alloc_size__
Packit 06dd63
#undef __attribute_artificial__
Packit 06dd63
#undef __attribute_const__
Packit 06dd63
#undef __attribute_deprecated__
Packit 06dd63
#undef __attribute_deprecated_msg__
Packit 06dd63
#undef __attribute_format_arg__
Packit 06dd63
#undef __attribute_format_strfmon__
Packit 06dd63
#undef __attribute_malloc__
Packit 06dd63
#undef __attribute_noinline__
Packit 06dd63
#undef __attribute_nonstring__
Packit 06dd63
#undef __attribute_pure__
Packit 06dd63
#undef __attribute_used__
Packit 06dd63
#undef __attribute_warn_unused_result__
Packit 06dd63
#undef __bos
Packit 06dd63
#undef __bos0
Packit 06dd63
#undef __errordecl
Packit 06dd63
#undef __extension__
Packit 06dd63
#undef __extern_always_inline
Packit 06dd63
#undef __extern_inline
Packit 06dd63
#undef __flexarr
Packit 06dd63
#undef __fortify_function
Packit 06dd63
#undef __glibc_c99_flexarr_available
Packit 06dd63
#undef __glibc_clang_has_extension
Packit 06dd63
#undef __glibc_likely
Packit 06dd63
#undef __glibc_macro_warning
Packit 06dd63
#undef __glibc_macro_warning1
Packit 06dd63
#undef __glibc_unlikely
Packit 06dd63
#undef __inline
Packit 06dd63
#undef __ptr_t
Packit 06dd63
#undef __restrict
Packit 06dd63
#undef __restrict_arr
Packit 06dd63
#undef __va_arg_pack
Packit 06dd63
#undef __va_arg_pack_len
Packit 06dd63
#undef __warnattr
Packit 06dd63
#undef __warndecl
Packit 06dd63
Packit 06dd63
/* Include our copy of glibc <sys/cdefs.h>.  */
Packit 06dd63
#include <cdefs.h>
Packit 06dd63
Packit 06dd63
/* <cdefs.h> __inline is too pessimistic for non-GCC.  */
Packit 06dd63
#undef __inline
Packit 06dd63
#ifndef HAVE___INLINE
Packit 06dd63
# if 199901 <= __STDC_VERSION__ || defined inline
Packit 06dd63
#  define __inline inline
Packit 06dd63
# else
Packit 06dd63
#  define __inline
Packit 06dd63
# endif
Packit 06dd63
#endif
Packit 06dd63
Packit 06dd63
Packit 06dd63
/* A substitute for glibc <libc-symbols.h>, good enough for Gnulib.  */
Packit 06dd63
#define attribute_hidden
Packit 06dd63
#define libc_hidden_proto(name, ...)
Packit 06dd63
#define libc_hidden_def(name)
Packit 06dd63
#define libc_hidden_weak(name)
Packit 06dd63
#define libc_hidden_ver(local, name)
Packit 06dd63
#define strong_alias(name, aliasname)
Packit 06dd63
#define weak_alias(name, aliasname)
Packit 06dd63
Packit 06dd63
/* A substitute for glibc <shlib-compat.h>, good enough for Gnulib.  */
Packit 06dd63
#define SHLIB_COMPAT(lib, introduced, obsoleted) 0
Packit 06dd63
#define versioned_symbol(lib, local, symbol, version)