+2008-06-07 Bruno Haible <bruno@clisp.org>
+
+ * doc/posix-functions/_setjmp.texi: Explain the use of this function
+ regardless of POSIX.
+ * doc/posix-functions/_longjmp.texi: Likewise.
+ * doc/posix-functions/setjmp.texi: Mention HP-UX as not counting as a
+ SystemV platform in this case.
+
2008-06-06 Eric Blake <ebb9@byu.net>
Document abort() bugs.
* doc/posix-functions/abort.texi (abort): Mention anomalies.
+
* doc/posix-functions/setjmp.texi (setjmp): Mingw has setjmp.
* doc/posix-functions/sigsetjmp.texi (sigsetjmp): Cygwin has
sigsetjmp.
@item
This function is missing on some platforms:
Solaris 2.5.1, mingw.
-
-@item
-This function is obsolete; use @code{siglongjmp} instead.
@end itemize
+
+Note: A future revision of POSIX later than the 2008/2009 one may drop the
+functions @code{_setjmp} and @code{_longjmp}. Still, in 2008, on all
+systems which have @code{_setjmp}, it is the fastest way to save the
+registers but not the signal mask (up to 30 times faster than @code{setjmp}
+on some systems).
@item
This function is missing on some platforms:
Solaris 2.5.1.
-
-@item
-This function is obsolete; use @code{sigsetjmp} instead.
@end itemize
+
+Note: A future revision of POSIX later than the 2008/2009 one may drop the
+functions @code{_setjmp} and @code{_longjmp}. Still, in 2008, on all
+systems which have @code{_setjmp}, it is the fastest way to save the
+registers but not the signal mask (up to 30 times faster than @code{setjmp}
+on some systems).
POSIX does not specify whether @code{setjmp} saves the signal mask in the
@code{jmp_buf}. It does on BSD platforms, and on glibc platforms when
@code{_BSD_SOURCE} is defined; in this case @code{setjmp} behaves like
-@code{sigsetjmp}, and functions @code{_setjmp} and @code{_longjmp} are
-available that don't save or restore the signal mask. On System V platforms,
-and on glibc platforms by default, @code{setjmp} doesn't save the signal mask.
+@code{sigsetjmp(.,1)}, and functions @code{_setjmp} and @code{_longjmp} are
+available that don't save or restore the signal mask. On System V platforms
+(excluding HP-UX), and on glibc platforms by default, @code{setjmp} doesn't
+save the signal mask.
@end itemize