Cygwin: Implement siglongjmp and sigsetjmp functions.

* libc/include/machine/setjmp.h (siglongjmp): Declare as function on
	Cygwin.
	(sigsetjmp): Ditto.
	(_longjmp): Mark as noreturn function on Cygwin.

	* common.din (siglongjmp): Export.
	(sigsetjmp): Export.
	* gendef: Change formatting of some comments.
	(sigsetjmp): Implement.
	(siglongjmp): Implement.
	(__setjmpex): x86_64 only: Drop entry point.
	(setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR
	and FPUCW registers in Spare, as MSVCRT does.
	(longjmp): x86_64 only: Restore tls stackptr from Frame now, restore
	MXCSR and FPUCW registers from Spare.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

	* new-features.xml (ov-new2.2): Document sigsetjmp, siglongjmp.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2015-07-21 17:31:02 +02:00
parent b723ec272e
commit 7c96ab0b43
9 changed files with 148 additions and 25 deletions

View File

@@ -470,13 +470,14 @@ details. */
286: Export cabsl, cimagl, creall, finitel, hypotl, sqrtl.
287: Export issetugid.
288: Export getcontext, makecontext, setcontext, swapcontext.
289: Export sigsetjmp, siglongjmp.
*/
/* 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 288
#define CYGWIN_VERSION_API_MINOR 289
/* There is also a compatibity version number associated with the
shared memory regions. It is incremented when incompatible