This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Define sigsetjmp/siglongjmp only if __POSIX_VISIBLE


On Aug  7 08:43, Ken Brown wrote:
> sigsetjmp and siglongjmp are POSIX extensions but are not properly guarded
> in machine/setjmp.h.  This leads to the problem reported here:
> 
>    https://cygwin.com/ml/cygwin/2017-08/msg00060.html
> 
> Patch attached.
> 
> Ken

> From 50cceaf0e1d33ddf3fc62399bc15761af93fa29d Mon Sep 17 00:00:00 2001
> From: Ken Brown <kbrown@cornell.edu>
> Date: Sun, 6 Aug 2017 17:40:43 -0400
> Subject: [PATCH] Define sigsetjmp/siglongjmp only if __POSIX_VISIBLE
> 
> ---
>  newlib/libc/include/machine/setjmp.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/newlib/libc/include/machine/setjmp.h b/newlib/libc/include/machine/setjmp.h
> index 2b4dd8b91..e6c3142ed 100644
> --- a/newlib/libc/include/machine/setjmp.h
> +++ b/newlib/libc/include/machine/setjmp.h
> @@ -368,7 +368,7 @@ typedef	int jmp_buf[_JBLEN];
>  
>  _END_STD_C
>  
> -#if defined(__CYGWIN__) || defined(__rtems__)
> +#if (defined(__CYGWIN__) || defined(__rtems__)) && __POSIX_VISIBLE
>  #include <signal.h>
>  
>  #ifdef __cplusplus
> @@ -450,4 +450,4 @@ extern int _setjmp (jmp_buf);
>  #ifdef __cplusplus
>  }
>  #endif
> -#endif /* __CYGWIN__ or __rtems__ */
> +#endif /* (__CYGWIN__ or __rtems__) and __POSIX_VISIBLE */
> -- 
> 2.13.2
> 

Pushed.


Thanks,
Corinna


-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]