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

@@ -1110,6 +1110,7 @@ sighold SIGFE
sigignore SIGFE
siginterrupt SIGFE
sigismember SIGFE
siglongjmp NOSIGFE
signal SIGFE
significand NOSIGFE
significandf NOSIGFE
@@ -1119,6 +1120,7 @@ sigprocmask SIGFE
sigqueue SIGFE
sigrelse SIGFE
sigset SIGFE
sigsetjmp NOSIGFE
sigsuspend SIGFE
sigwait SIGFE
sigwaitinfo SIGFE