2011-07-06 17:58:37 +00:00
/* A GNU-like <signal.h>.
2024-01-02 01:47:10 +00:00
Copyright ( C ) 2006 - 2024 Free Software Foundation , Inc .
2011-07-06 17:58:37 +00:00
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
This file is free software : you can redistribute it and / or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation ; either version 2.1 of the
License , or ( at your option ) any later version .
2011-07-06 17:58:37 +00:00
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
This file is distributed in the hope that it will be useful ,
2011-07-06 17:58:37 +00:00
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
GNU Lesser General Public License for more details .
2011-07-06 17:58:37 +00:00
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
You should have received a copy of the GNU Lesser General Public License
2017-09-13 09:07:03 +00:00
along with this program . If not , see < https : //www.gnu.org/licenses/>. */
2011-07-06 17:58:37 +00:00
# if __GNUC__ >= 3
@ PRAGMA_SYSTEM_HEADER @
# endif
@ PRAGMA_COLUMNS @
2011-07-08 20:20:19 +00:00
# if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T)
/* Special invocation convention:
- Inside glibc header files .
- On glibc systems we have a sequence of nested includes
< signal . h > - > < ucontext . h > - > < signal . h > .
In this situation , the functions are not yet declared , therefore we cannot
provide the C + + aliases .
- On glibc systems with GCC 4.3 we have a sequence of nested includes
< csignal > - > < / usr / include / signal . h > - > < sys / ucontext . h > - > < signal . h > .
In this situation , some of the functions are not yet declared , therefore
we cannot provide the C + + aliases . */
2011-07-06 17:58:37 +00:00
# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
# else
/* Normal invocation convention. */
# ifndef _@GUARD_PREFIX@_SIGNAL_H
2011-07-08 20:20:19 +00:00
# define _GL_ALREADY_INCLUDING_SIGNAL_H
2011-07-06 17:58:37 +00:00
/* Define pid_t, uid_t.
Also , mingw defines sigset_t not in < signal . h > , but in < sys / types . h > .
On Solaris 10 , < signal . h > includes < sys / types . h > , which eventually includes
us ; so include < sys / types . h > now , before the second inclusion guard . */
# include <sys/types.h>
/* The include_next requires a split double-inclusion guard. */
# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
2011-07-08 20:20:19 +00:00
# undef _GL_ALREADY_INCLUDING_SIGNAL_H
2011-07-06 17:58:37 +00:00
# ifndef _@GUARD_PREFIX@_SIGNAL_H
# define _@GUARD_PREFIX@_SIGNAL_H
2023-05-15 01:51:22 +00:00
/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
# if !_GL_CONFIG_H_INCLUDED
# error "Please include config.h first."
# endif
2022-09-28 07:29:09 +00:00
/* For testing the OpenBSD version. */
# if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
& & defined __OpenBSD__
# include <sys / param.h>
# endif
/* Mac OS X 10.3, FreeBSD < 8.0, OpenBSD < 5.1, OSF/1 4.0, Solaris 2.6, Android,
2020-12-24 15:48:40 +00:00
OS / 2 kLIBC declare pthread_sigmask in < pthread . h > , not in < signal . h > .
2011-07-08 20:20:19 +00:00
But avoid namespace pollution on glibc systems . */
# if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
Merge from gnulib
* doc/misc/texinfo.tex: Update from gnulib.
* lib/getdtablesize.c, lib/getopt.c, lib/signal.in.h, lib/tempname.c:
* lib/tempname.h, m4/dup2.m4, m4/fcntl.m4, m4/getdtablesize.m4:
Update from gnulib, incorporating:
2015-02-20 getdtablesize: port better for Android
2015-02-19 fcntl: Fix cross compiling
2015-02-18 dup2, fcntl: cross-compile better for Android
2015-02-18 getopt: don't crash on memory exhaustion
2015-02-17 tempname: allow compilation with C++ (trivial)
2015-02-17 dup2, fcntl: port to AIX
2015-02-16 getdtablesize, dup2, fcntl: port to Android
2015-02-11 getdtablesize, signal_h: Fix Android build
2015-02-11 maint: various whitespace cleanups in tempname
2015-02-21 07:31:17 +00:00
& & ( ( defined __APPLE__ & & defined __MACH__ ) \
2022-09-28 07:29:09 +00:00
| | ( defined __FreeBSD__ & & __FreeBSD__ < 8 ) \
| | ( defined __OpenBSD__ & & OpenBSD < 201205 ) \
| | defined __osf__ | | defined __sun | | defined __ANDROID__ \
| | defined __KLIBC__ ) \
2011-07-08 20:20:19 +00:00
& & ! defined __GLIBC__
# include <pthread.h>
# endif
2011-07-06 17:58:37 +00:00
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
/* On AIX, sig_atomic_t already includes volatile. C99 requires that
' volatile sig_atomic_t ' ignore the extra modifier , but C89 did not .
Hence , redefine this to a non - volatile type as needed . */
# if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
# if !GNULIB_defined_sig_atomic_t
typedef int rpl_sig_atomic_t ;
# undef sig_atomic_t
# define sig_atomic_t rpl_sig_atomic_t
# define GNULIB_defined_sig_atomic_t 1
# endif
# endif
/* A set or mask of signals. */
# if !@HAVE_SIGSET_T@
# if !GNULIB_defined_sigset_t
typedef unsigned int sigset_t ;
# define GNULIB_defined_sigset_t 1
# endif
# endif
/* Define sighandler_t, the type of signal handlers. A GNU extension. */
# if !@HAVE_SIGHANDLER_T@
# ifdef __cplusplus
extern " C " {
# endif
# if !GNULIB_defined_sighandler_t
typedef void ( * sighandler_t ) ( int ) ;
# define GNULIB_defined_sighandler_t 1
# endif
# ifdef __cplusplus
}
# endif
# endif
# if @GNULIB_SIGNAL_H_SIGPIPE@
# ifndef SIGPIPE
/* Define SIGPIPE to a value that does not overlap with other signals. */
# define SIGPIPE 13
# define GNULIB_defined_SIGPIPE 1
/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask',
' write ' , ' stdio ' . */
# endif
# endif
/* Maximum signal number + 1. */
# ifndef NSIG
# if defined __TANDEM
# define NSIG 32
# endif
# endif
# if @GNULIB_PTHREAD_SIGMASK@
# if @REPLACE_PTHREAD_SIGMASK@
2011-07-08 20:20:19 +00:00
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef pthread_sigmask
# define pthread_sigmask rpl_pthread_sigmask
# endif
_GL_FUNCDECL_RPL ( pthread_sigmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int how ,
const sigset_t * restrict new_mask ,
sigset_t * restrict old_mask ) ) ;
2011-07-08 20:20:19 +00:00
_GL_CXXALIAS_RPL ( pthread_sigmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int how ,
const sigset_t * restrict new_mask ,
sigset_t * restrict old_mask ) ) ;
2011-07-08 20:20:19 +00:00
# else
Merge from Gnulib
This incorporates:
2018-01-05 maint: Add encoding marker for Emacs to non-ASCII sources
2018-01-04 update-copyright: Handle use of ©
2018-01-04 pthread_sigmask: Avoid compilation error on mingw
2018-01-02 stat-time: silence -Wunused-parameter regression
* build-aux/config.guess, build-aux/config.sub:
* build-aux/update-copyright, doc/misc/texinfo.tex, lib/gnulib.mk.in:
* lib/md5.c, lib/md5.h, lib/sha1.c, lib/sha1.h, lib/sha256.c:
* lib/sha256.h, lib/sha512.c, lib/sha512.h, lib/signal.in.h:
* lib/stat-time.h: Copy from Gnulib, or regenerate.
2018-01-09 23:21:44 +00:00
# if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask)
2011-07-08 20:20:19 +00:00
_GL_FUNCDECL_SYS ( pthread_sigmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int how ,
const sigset_t * restrict new_mask ,
sigset_t * restrict old_mask ) ) ;
2011-07-08 20:20:19 +00:00
# endif
_GL_CXXALIAS_SYS ( pthread_sigmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int how ,
const sigset_t * restrict new_mask ,
sigset_t * restrict old_mask ) ) ;
2011-07-06 17:58:37 +00:00
# endif
2019-11-26 21:14:42 +00:00
# if __GLIBC__ >= 2
2011-07-08 20:20:19 +00:00
_GL_CXXALIASWARN ( pthread_sigmask ) ;
2019-11-26 21:14:42 +00:00
# endif
2011-07-06 17:58:37 +00:00
# elif defined GNULIB_POSIXCHECK
# undef pthread_sigmask
# if HAVE_RAW_DECL_PTHREAD_SIGMASK
_GL_WARN_ON_USE ( pthread_sigmask , " pthread_sigmask is not portable - "
" use gnulib module pthread_sigmask for portability " ) ;
# endif
# endif
Merge from gnulib, improving some licensing wording.
This clarifies and fixes some licensing issues raised by Glenn Morris
<http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00397.html>.
It also merges the latest version of texinfo.tex and has some
MSVC-related changes that don't affect Emacs.
* Makefile.in (GNULIB_TOOL_FLAGS): Avoid msvc-inval, msvc-nothrow,
pathmax, and raise, since these are needed only to address
MSVC-related issues that Emacs doesn't have.
* doc/misc/texinfo.tex, lib/dup2.c, lib/gnulib.mk, lib/signal.in.h:
* lib/sigprocmask.c, lib/stat.c, lib/stdio.in.h, lib/sys_stat.in.h:
* lib/unistd.in.h, m4/dup2.m4, m4/getloadavg.m4, m4/gl-comp.m4:
* m4/include_next.m4, m4/signal_h.m4, m4/signalblocking.m4:
* m4/stdint.m4, m4/stdio_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Merge from gnulib.
2011-09-26 21:30:18 +00:00
# if @GNULIB_RAISE@
# if @REPLACE_RAISE@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef raise
# define raise rpl_raise
# endif
_GL_FUNCDECL_RPL ( raise , int , ( int sig ) ) ;
_GL_CXXALIAS_RPL ( raise , int , ( int sig ) ) ;
# else
# if !@HAVE_RAISE@
_GL_FUNCDECL_SYS ( raise , int , ( int sig ) ) ;
# endif
_GL_CXXALIAS_SYS ( raise , int , ( int sig ) ) ;
# endif
2019-11-26 21:14:42 +00:00
# if __GLIBC__ >= 2
Merge from gnulib, improving some licensing wording.
This clarifies and fixes some licensing issues raised by Glenn Morris
<http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00397.html>.
It also merges the latest version of texinfo.tex and has some
MSVC-related changes that don't affect Emacs.
* Makefile.in (GNULIB_TOOL_FLAGS): Avoid msvc-inval, msvc-nothrow,
pathmax, and raise, since these are needed only to address
MSVC-related issues that Emacs doesn't have.
* doc/misc/texinfo.tex, lib/dup2.c, lib/gnulib.mk, lib/signal.in.h:
* lib/sigprocmask.c, lib/stat.c, lib/stdio.in.h, lib/sys_stat.in.h:
* lib/unistd.in.h, m4/dup2.m4, m4/getloadavg.m4, m4/gl-comp.m4:
* m4/include_next.m4, m4/signal_h.m4, m4/signalblocking.m4:
* m4/stdint.m4, m4/stdio_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Merge from gnulib.
2011-09-26 21:30:18 +00:00
_GL_CXXALIASWARN ( raise ) ;
2019-11-26 21:14:42 +00:00
# endif
Merge from gnulib, improving some licensing wording.
This clarifies and fixes some licensing issues raised by Glenn Morris
<http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00397.html>.
It also merges the latest version of texinfo.tex and has some
MSVC-related changes that don't affect Emacs.
* Makefile.in (GNULIB_TOOL_FLAGS): Avoid msvc-inval, msvc-nothrow,
pathmax, and raise, since these are needed only to address
MSVC-related issues that Emacs doesn't have.
* doc/misc/texinfo.tex, lib/dup2.c, lib/gnulib.mk, lib/signal.in.h:
* lib/sigprocmask.c, lib/stat.c, lib/stdio.in.h, lib/sys_stat.in.h:
* lib/unistd.in.h, m4/dup2.m4, m4/getloadavg.m4, m4/gl-comp.m4:
* m4/include_next.m4, m4/signal_h.m4, m4/signalblocking.m4:
* m4/stdint.m4, m4/stdio_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Merge from gnulib.
2011-09-26 21:30:18 +00:00
# elif defined GNULIB_POSIXCHECK
# undef raise
/* Assume raise is always declared. */
_GL_WARN_ON_USE ( raise , " raise can crash on native Windows - "
" use gnulib module raise for portability " ) ;
# endif
2011-07-06 17:58:37 +00:00
# if @GNULIB_SIGPROCMASK@
# if !@HAVE_POSIX_SIGNALBLOCKING@
2011-10-07 21:15:00 +00:00
# ifndef GNULIB_defined_signal_blocking
# define GNULIB_defined_signal_blocking 1
# endif
2011-07-06 17:58:37 +00:00
/* Maximum signal number + 1. */
# ifndef NSIG
# define NSIG 32
# endif
/* This code supports only 32 signals. */
# if !GNULIB_defined_verify_NSIG_constraint
typedef int verify_NSIG_constraint [ NSIG < = 32 ? 1 : - 1 ] ;
# define GNULIB_defined_verify_NSIG_constraint 1
# endif
# endif
2013-09-19 21:40:08 +00:00
/* When also using extern inline, suppress the use of static inline in
standard headers of problematic Apple configurations , as Libc at
least through Libc - 825.26 ( 2013 - 04 - 09 ) mishandles it ; see , e . g . ,
Merge from Gnulib
This incorporates:
2017-11-23 stat: work around Solaris bug with tv_nsec < 0
2017-11-12 maint: shorten https://lists.gnu.org/archive/html/... links
* build-aux/config.sub, doc/misc/texinfo.tex, lib/allocator.h:
* lib/fstatat.c, lib/intprops.h, lib/lstat.c, lib/signal.in.h:
* lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h:
* lib/timespec.h, m4/alloca.m4, m4/extern-inline.m4:
* m4/faccessat.m4, m4/fstatat.m4, m4/gnulib-common.m4:
* m4/lstat.m4, m4/std-gnu11.m4, m4/sys_types_h.m4:
* m4/vararrays.m4:
Copy from Gnulib.
2017-11-26 06:28:31 +00:00
< https : //lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
2013-09-19 21:40:08 +00:00
Perhaps Apple will fix this some day . */
# if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
& & ( defined __i386__ | | defined __x86_64__ ) )
# undef sigaddset
# undef sigdelset
# undef sigemptyset
# undef sigfillset
# undef sigismember
# endif
2011-07-06 17:58:37 +00:00
/* Test whether a given signal is contained in a signal set. */
# if @HAVE_POSIX_SIGNALBLOCKING@
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-22 17:20:00 +00:00
/* This function is defined as a macro on Mac OS X. */
2011-07-06 17:58:37 +00:00
# if defined __cplusplus && defined GNULIB_NAMESPACE
# undef sigismember
# endif
# else
_GL_FUNCDECL_SYS ( sigismember , int , ( const sigset_t * set , int sig )
_GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigismember , int , ( const sigset_t * set , int sig ) ) ;
_GL_CXXALIASWARN ( sigismember ) ;
/* Initialize a signal set to the empty set. */
# if @HAVE_POSIX_SIGNALBLOCKING@
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-22 17:20:00 +00:00
/* This function is defined as a macro on Mac OS X. */
2011-07-06 17:58:37 +00:00
# if defined __cplusplus && defined GNULIB_NAMESPACE
# undef sigemptyset
# endif
# else
_GL_FUNCDECL_SYS ( sigemptyset , int , ( sigset_t * set ) _GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigemptyset , int , ( sigset_t * set ) ) ;
_GL_CXXALIASWARN ( sigemptyset ) ;
/* Add a signal to a signal set. */
# if @HAVE_POSIX_SIGNALBLOCKING@
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-22 17:20:00 +00:00
/* This function is defined as a macro on Mac OS X. */
2011-07-06 17:58:37 +00:00
# if defined __cplusplus && defined GNULIB_NAMESPACE
# undef sigaddset
# endif
# else
_GL_FUNCDECL_SYS ( sigaddset , int , ( sigset_t * set , int sig )
_GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigaddset , int , ( sigset_t * set , int sig ) ) ;
_GL_CXXALIASWARN ( sigaddset ) ;
/* Remove a signal from a signal set. */
# if @HAVE_POSIX_SIGNALBLOCKING@
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-22 17:20:00 +00:00
/* This function is defined as a macro on Mac OS X. */
2011-07-06 17:58:37 +00:00
# if defined __cplusplus && defined GNULIB_NAMESPACE
# undef sigdelset
# endif
# else
_GL_FUNCDECL_SYS ( sigdelset , int , ( sigset_t * set , int sig )
_GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigdelset , int , ( sigset_t * set , int sig ) ) ;
_GL_CXXALIASWARN ( sigdelset ) ;
/* Fill a signal set with all possible signals. */
# if @HAVE_POSIX_SIGNALBLOCKING@
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-22 17:20:00 +00:00
/* This function is defined as a macro on Mac OS X. */
2011-07-06 17:58:37 +00:00
# if defined __cplusplus && defined GNULIB_NAMESPACE
# undef sigfillset
# endif
# else
_GL_FUNCDECL_SYS ( sigfillset , int , ( sigset_t * set ) _GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigfillset , int , ( sigset_t * set ) ) ;
_GL_CXXALIASWARN ( sigfillset ) ;
/* Return the set of those blocked signals that are pending. */
# if !@HAVE_POSIX_SIGNALBLOCKING@
_GL_FUNCDECL_SYS ( sigpending , int , ( sigset_t * set ) _GL_ARG_NONNULL ( ( 1 ) ) ) ;
# endif
_GL_CXXALIAS_SYS ( sigpending , int , ( sigset_t * set ) ) ;
_GL_CXXALIASWARN ( sigpending ) ;
/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET.
Then , if SET is not NULL , affect the current set of blocked signals by
combining it with * SET as indicated in OPERATION .
In this implementation , you are not allowed to change a signal handler
while the signal is blocked . */
# if !@HAVE_POSIX_SIGNALBLOCKING@
# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */
# define SIG_SETMASK 1 /* blocked_set = *set; */
# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */
_GL_FUNCDECL_SYS ( sigprocmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int operation ,
const sigset_t * restrict set ,
sigset_t * restrict old_set ) ) ;
2011-07-06 17:58:37 +00:00
# endif
_GL_CXXALIAS_SYS ( sigprocmask , int ,
Update from Gnulib
This incorporates:
2020-02-22 fchmodat, lchmod: simplify
2020-02-22 lchmod: fix link error on Solaris 10
2020-02-22 use 'restrict' in all POSIX function declarations
2020-02-22 chmodat, chownat: new modules
* lib/gnulib.mk.in: Regenerate.
* lib/inttypes.in.h, lib/openat.h, lib/signal.in.h:
* lib/stdio.in.h, lib/stdlib.in.h, lib/string.in.h:
* lib/sys_stat.in.h, lib/time.in.h, lib/unistd.in.h, m4/inttypes.m4:
* m4/signal_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/string_h.m4:
* m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/time_h.m4:
* m4/unistd_h.m4: Copy from Gnulib.
2020-02-23 09:24:21 +00:00
( int operation ,
const sigset_t * restrict set ,
sigset_t * restrict old_set ) ) ;
2011-07-06 17:58:37 +00:00
_GL_CXXALIASWARN ( sigprocmask ) ;
/* Install the handler FUNC for signal SIG, and return the previous
handler . */
# ifdef __cplusplus
extern " C " {
# endif
# if !GNULIB_defined_function_taking_int_returning_void_t
typedef void ( * _gl_function_taking_int_returning_void_t ) ( int ) ;
# define GNULIB_defined_function_taking_int_returning_void_t 1
# endif
# ifdef __cplusplus
}
# endif
# if !@HAVE_POSIX_SIGNALBLOCKING@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define signal rpl_signal
# endif
_GL_FUNCDECL_RPL ( signal , _gl_function_taking_int_returning_void_t ,
( int sig , _gl_function_taking_int_returning_void_t func ) ) ;
_GL_CXXALIAS_RPL ( signal , _gl_function_taking_int_returning_void_t ,
( int sig , _gl_function_taking_int_returning_void_t func ) ) ;
# else
Update from gnulib
This incorporates:
2019-12-23 mktime, nstrftime: tweak division performance
2019-12-22 count-leading-zeros: assume 'long long'
2019-12-22 count-one-bits: assume 'long long'
2019-12-22 count-trailing-zeros: assume 'long long'
2019-12-12 inttypes-incomplete: assume 'long long'
2019-12-22 malloca: assume 'long long'
2019-12-22 stdint: assume 'long long'
2019-12-22 strtoll, strtoimax, strtoumax: assume 'long long'
2019-12-22 prefer lib_SOURCES to unconditional AC_LIBOBJ
2019-12-19 nstrftime: avoid a shadowing warning
2019-12-18 improve port of AC_C_RESTRICT to Oracle C++
2019-12-12 stdalign: port to xlclang 16.01
2019-12-11 stddef, unistd: fix compilation error in C++ mode on MSVC
2019-12-08 fix compilation errors in C++ mode on Haiku
2019-12-08 fix compilation errors in 32-bit C++ mode on HP-UX 11/ia64
2019-12-08 fix compilation error in C++ mode on OpenBSD
* build-aux/config.guess, doc/misc/texinfo.tex:
* lib/count-leading-zeros.h, lib/count-one-bits.h:
* lib/count-trailing-zeros.h, lib/inttypes.in.h, lib/malloca.h:
* lib/mktime.c, lib/nstrftime.c, lib/signal.in.h, lib/stdalign.in.h:
* lib/stddef.in.h, lib/stdint.in.h, lib/stdio.in.h, lib/stdlib.in.h:
* lib/strtoimax.c, lib/unistd.in.h, m4/gnulib-common.m4:
* m4/inttypes.m4, m4/largefile.m4, m4/malloca.m4, m4/strtoimax.m4:
* m4/strtoll.m4:
Copy from Gnulib. Also, change copyright notices in some other
Gnulib-copied files to exactly match Gnulib, as Gnulib updated
them in a trivially different way.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2020-01-01 03:11:22 +00:00
/* On OpenBSD, the declaration of 'signal' may not be present at this point,
because it occurs in < sys / signal . h > , not < signal . h > directly . */
# if defined __OpenBSD__
_GL_FUNCDECL_SYS ( signal , _gl_function_taking_int_returning_void_t ,
( int sig , _gl_function_taking_int_returning_void_t func ) ) ;
# endif
2011-07-06 17:58:37 +00:00
_GL_CXXALIAS_SYS ( signal , _gl_function_taking_int_returning_void_t ,
( int sig , _gl_function_taking_int_returning_void_t func ) ) ;
# endif
2019-11-26 21:14:42 +00:00
# if __GLIBC__ >= 2
2011-07-06 17:58:37 +00:00
_GL_CXXALIASWARN ( signal ) ;
2019-11-26 21:14:42 +00:00
# endif
2011-07-06 17:58:37 +00:00
# if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE
2011-10-07 21:15:00 +00:00
/* Raise signal SIGPIPE. */
_GL_EXTERN_C int _gl_raise_SIGPIPE ( void ) ;
2011-07-06 17:58:37 +00:00
# endif
# elif defined GNULIB_POSIXCHECK
# undef sigaddset
# if HAVE_RAW_DECL_SIGADDSET
_GL_WARN_ON_USE ( sigaddset , " sigaddset is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigdelset
# if HAVE_RAW_DECL_SIGDELSET
_GL_WARN_ON_USE ( sigdelset , " sigdelset is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigemptyset
# if HAVE_RAW_DECL_SIGEMPTYSET
_GL_WARN_ON_USE ( sigemptyset , " sigemptyset is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigfillset
# if HAVE_RAW_DECL_SIGFILLSET
_GL_WARN_ON_USE ( sigfillset , " sigfillset is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigismember
# if HAVE_RAW_DECL_SIGISMEMBER
_GL_WARN_ON_USE ( sigismember , " sigismember is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigpending
# if HAVE_RAW_DECL_SIGPENDING
_GL_WARN_ON_USE ( sigpending , " sigpending is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# undef sigprocmask
# if HAVE_RAW_DECL_SIGPROCMASK
_GL_WARN_ON_USE ( sigprocmask , " sigprocmask is unportable - "
" use the gnulib module sigprocmask for portability " ) ;
# endif
# endif /* @GNULIB_SIGPROCMASK@ */
# if @GNULIB_SIGACTION@
# if !@HAVE_SIGACTION@
# if !@HAVE_SIGINFO_T@
# if !GNULIB_defined_siginfo_types
/* Present to allow compilation, but unsupported by gnulib. */
union sigval
{
int sival_int ;
void * sival_ptr ;
} ;
/* Present to allow compilation, but unsupported by gnulib. */
struct siginfo_t
{
int si_signo ;
int si_code ;
int si_errno ;
pid_t si_pid ;
uid_t si_uid ;
void * si_addr ;
int si_status ;
long si_band ;
union sigval si_value ;
} ;
typedef struct siginfo_t siginfo_t ;
# define GNULIB_defined_siginfo_types 1
# endif
# endif /* !@HAVE_SIGINFO_T@ */
/* We assume that platforms which lack the sigaction() function also lack
the ' struct sigaction ' type , and vice versa . */
# if !GNULIB_defined_struct_sigaction
struct sigaction
{
union
{
void ( * _sa_handler ) ( int ) ;
/* Present to allow compilation, but unsupported by gnulib. POSIX
says that implementations may , but not must , make sa_sigaction
overlap with sa_handler , but we know of no implementation where
they do not overlap . */
void ( * _sa_sigaction ) ( int , siginfo_t * , void * ) ;
} _sa_func ;
sigset_t sa_mask ;
/* Not all POSIX flags are supported. */
int sa_flags ;
} ;
# define sa_handler _sa_func._sa_handler
# define sa_sigaction _sa_func._sa_sigaction
/* Unsupported flags are not present. */
# define SA_RESETHAND 1
# define SA_NODEFER 2
# define SA_RESTART 4
# define GNULIB_defined_struct_sigaction 1
# endif
_GL_FUNCDECL_SYS ( sigaction , int , ( int , const struct sigaction * restrict ,
struct sigaction * restrict ) ) ;
# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
# define sa_sigaction sa_handler
# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
_GL_CXXALIAS_SYS ( sigaction , int , ( int , const struct sigaction * restrict ,
struct sigaction * restrict ) ) ;
_GL_CXXALIASWARN ( sigaction ) ;
# elif defined GNULIB_POSIXCHECK
# undef sigaction
# if HAVE_RAW_DECL_SIGACTION
_GL_WARN_ON_USE ( sigaction , " sigaction is unportable - "
" use the gnulib module sigaction for portability " ) ;
# endif
# endif
/* Some systems don't have SA_NODEFER. */
# ifndef SA_NODEFER
# define SA_NODEFER 0
# endif
# endif /* _@GUARD_PREFIX@_SIGNAL_H */
# endif /* _@GUARD_PREFIX@_SIGNAL_H */
# endif