+2021-12-26 Bruno Haible <bruno@clisp.org>
+
+ pselect: Fix compilation error in C++ mode on AIX 7.
+ * lib/sys_select.in.h (pselect): Use _GL_CXXALIAS_SYS_CAST instead of
+ _GL_CXXALIAS_SYS.
+ * doc/posix-functions/pselect.texi: Mention the AIX problem.
+
2021-12-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix handling of module libtextstyle-optional.
Portability problems not fixed by Gnulib:
@itemize
@item
+This function has a slightly incompatible declaration on some platforms:
+AIX 7.1 (when @code{_ALL_SOURCE} is defined).
+@item
When the @var{sigmask} argument is nonnull on platforms that do not
natively support this function, race conditions are possible when its
gnulib implementation temporarily modifies the signal mask, and the
(int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
struct timespec const *restrict, const sigset_t *restrict));
# endif
-_GL_CXXALIAS_SYS (pselect, int,
- (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
- struct timespec const *restrict, const sigset_t *restrict));
+/* Need to cast, because on AIX 7, the second, third, fourth argument may be
+ void *restrict, void *restrict, void *restrict. */
+_GL_CXXALIAS_SYS_CAST (pselect, int,
+ (int,
+ fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict,
+ const sigset_t *restrict));
# endif
_GL_CXXALIASWARN (pselect);
#elif defined GNULIB_POSIXCHECK