Export XSI sigpause
There are two common sigpause variants, both of which take an int argument. If you request _XOPEN_SOURCE or _GNU_SOURCE, you get the System V version, which removes the given signal from the process's signal mask; otherwise you get the BSD version, which sets the process's signal mask to the given value. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
This commit is contained in:
		| @@ -200,7 +200,19 @@ int _EXFUN(sigwait, (const sigset_t *set, int *sig)); | ||||
| #endif /* !__CYGWIN__ && !__rtems__ */ | ||||
| #endif /* __POSIX_VISIBLE */ | ||||
|  | ||||
| #if __BSD_VISIBLE | ||||
| /* There are two common sigpause variants, both of which take an int argument. | ||||
|    If you request _XOPEN_SOURCE or _GNU_SOURCE, you get the System V version, | ||||
|    which removes the given signal from the process's signal mask; otherwise | ||||
|    you get the BSD version, which sets the process's signal mask to the given | ||||
|    value. */ | ||||
| #if __XSI_VISIBLE && !defined(__INSIDE_CYGWIN__) | ||||
| # ifdef __GNUC__ | ||||
| int _EXFUN(sigpause, (int)) __asm__ (__ASMNAME ("__xpg_sigpause")); | ||||
| # else | ||||
| int _EXFUN(__xpg_sigpause, (int)); | ||||
| #  define sigpause __xpg_sigpause | ||||
| # endif | ||||
| #elif __BSD_VISIBLE | ||||
| int _EXFUN(sigpause, (int)); | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -102,6 +102,7 @@ __wrap__ZdlPv NOSIGFE               # void operator delete(void *p) throw() | ||||
| __wrap__ZdlPvRKSt9nothrow_t NOSIGFE # void operator delete(void *p, const std::nothrow_t &nt) throw() | ||||
| __xdrrec_getrec SIGFE | ||||
| __xdrrec_setnonblock SIGFE | ||||
| __xpg_sigpause SIGFE | ||||
| __xpg_strerror_r SIGFE | ||||
| _exit SIGFE | ||||
| _feinitialise NOSIGFE | ||||
|   | ||||
| @@ -475,12 +475,13 @@ details. */ | ||||
|   308: Export dladdr. | ||||
|   309: Export getloadavg. | ||||
|   310: Export reallocarray. | ||||
|   311: Export __xpg_sigpause. | ||||
|  | ||||
|   Note that we forgot to bump the api for ualarm, strtoll, strtoull, | ||||
|   sigaltstack, sethostname. */ | ||||
|  | ||||
| #define CYGWIN_VERSION_API_MAJOR 0 | ||||
| #define CYGWIN_VERSION_API_MINOR 310 | ||||
| #define CYGWIN_VERSION_API_MINOR 311 | ||||
|  | ||||
| /* There is also a compatibity version number associated with the shared memory | ||||
|    regions.  It is incremented when incompatible changes are made to the shared | ||||
|   | ||||
| @@ -523,6 +523,18 @@ sigpause (int signal_mask) | ||||
|   return res; | ||||
| } | ||||
|  | ||||
| extern "C" int | ||||
| __xpg_sigpause (int sig) | ||||
| { | ||||
|   int res; | ||||
|   sigset_t signal_mask; | ||||
|   sigprocmask (0, NULL, &signal_mask); | ||||
|   sigdelset (&signal_mask, sig); | ||||
|   res = handle_sigsuspend (signal_mask); | ||||
|   syscall_printf ("%R = __xpg_sigpause(%y)", res, sig); | ||||
|   return res; | ||||
| } | ||||
|  | ||||
| extern "C" int | ||||
| pause (void) | ||||
| { | ||||
|   | ||||
| @@ -877,7 +877,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para> | ||||
|     signal | ||||
|     signbit			(see chapter "Implementation Notes") | ||||
|     signgam | ||||
|     sigpause | ||||
|     sigpause			(see chapter "Implementation Notes") | ||||
|     sigpending | ||||
|     sigprocmask | ||||
|     sigqueue | ||||
| @@ -925,7 +925,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para> | ||||
|     strdup | ||||
|     strerror | ||||
|     strerror_l | ||||
|     strerror_r | ||||
|     strerror_r			(see chapter "Implementation Notes") | ||||
|     strfmon | ||||
|     strfmon_l | ||||
|     strftime | ||||
| @@ -1668,6 +1668,12 @@ depending on whether _BSD_SOURCE or _GNU_SOURCE is defined when compiling.</para | ||||
| <para><function>basename</function> is available in both POSIX and GNU flavors, | ||||
| depending on whether libgen.h is included or not.</para> | ||||
|  | ||||
| <para><function>sigpause</function> is available in both BSD and SysV/XSI | ||||
| flavors, depending on whether _XOPEN_SOURCE is defined when compiling.</para> | ||||
|  | ||||
| <para><function>strerror_r</function> is available in both POSIX and GNU | ||||
| flavors, depending on whether _GNU_SOURCE is defined when compiling.</para> | ||||
|  | ||||
| <para><function>dladdr</function> always sets the Dl_info members dli_sname and | ||||
| dli_saddr to NULL, indicating no symbol matching addr could be found.</para> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user