From eb3f08acf86feff10cfecc235758a1cc07da29cf Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sat, 21 Jun 2008 18:48:45 +0000 Subject: [PATCH] * libc/include/machine/setjmp.h (_longjmp): Define as function on Cygwin. (_setjmp): Ditto. --- newlib/ChangeLog | 6 ++++++ newlib/libc/include/machine/setjmp.h | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 0d19e35d4..c3e5a15d6 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,9 @@ +2008-06-21 Corinna Vinschen + + * libc/include/machine/setjmp.h (_longjmp): Define as function on + Cygwin. + (_setjmp): Ditto. + 2008-06-18 Eric Blake Per Posix, strsignal returns non-const char*. diff --git a/newlib/libc/include/machine/setjmp.h b/newlib/libc/include/machine/setjmp.h index 4e850cf2f..9d798ffb6 100644 --- a/newlib/libc/include/machine/setjmp.h +++ b/newlib/libc/include/machine/setjmp.h @@ -307,11 +307,16 @@ typedef int sigjmp_buf[_JBLEN+2]; #endif -/* POSIX _setjmp/_longjmp macros, maintained for XSI compatibility. These +/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These are equivalent to sigsetjmp/siglongjmp when not saving the signal mask. New applications should use sigsetjmp/siglongjmp instead. */ +#ifdef __CYGWIN__ +extern void _longjmp(jmp_buf, int); +extern int _setjmp(jmp_buf); +#else #define _setjmp(env) sigsetjmp ((env), 0) #define _longjmp(env, val) siglongjmp ((env), (val)) +#endif #ifdef __cplusplus }