From: Bruno Haible Date: Sat, 20 Jul 2024 13:34:55 +0000 (+0200) Subject: doc: Update status of functions that are added in POSIX:2024. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=0c7f50628b03856ea4411e805891441ef5bcc2f9;p=gnulib.git doc: Update status of functions that are added in POSIX:2024. * doc/posix-functions/_Fork.texi: Moved here from doc/glibc-functions/. * doc/posix-functions/accept4.texi: Likewise. * doc/posix-functions/asprintf.texi: Likewise. * doc/posix-functions/bind_textdomain_codeset.texi: Likewise. * doc/posix-functions/bindtextdomain.texi: Likewise. * doc/posix-functions/dcgettext.texi: Likewise. * doc/posix-functions/dcngettext.texi: Likewise. * doc/posix-functions/dgettext.texi: Likewise. * doc/posix-functions/dladdr.texi: Likewise. * doc/posix-functions/dngettext.texi: Likewise. * doc/posix-functions/dup3.texi: Likewise. * doc/posix-functions/ffsl.texi: Likewise. * doc/posix-functions/ffsll.texi: Likewise. * doc/posix-functions/getentropy.texi: Likewise. * doc/posix-functions/getresgid.texi: Likewise. * doc/posix-functions/getresuid.texi: Likewise. * doc/posix-functions/gettext.texi: Likewise. * doc/posix-functions/in6addr_any.texi: Likewise. * doc/posix-functions/in6addr_loopback.texi: Likewise. * doc/posix-functions/memmem.texi: Likewise. * doc/posix-functions/mkostemp.texi: Likewise. * doc/posix-functions/ngettext.texi: Likewise. * doc/posix-functions/pipe2.texi: Likewise. * doc/posix-functions/ppoll.texi: Likewise. * doc/posix-functions/pthread_cond_clockwait.texi: Likewise. * doc/posix-functions/pthread_mutex_clocklock.texi: Likewise. * doc/posix-functions/pthread_rwlock_clockrdlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_clockwrlock.texi: Likewise. * doc/posix-functions/ptsname_r.texi: Likewise. * doc/posix-functions/qsort_r.texi: Likewise. * doc/posix-functions/secure_getenv.texi: Likewise. * doc/posix-functions/sem_clockwait.texi: Likewise. * doc/posix-functions/setresgid.texi: Likewise. * doc/posix-functions/setresuid.texi: Likewise. * doc/posix-functions/textdomain.texi: Likewise. * doc/posix-functions/timespec_get.texi: Likewise. * doc/posix-functions/vasprintf.texi: Likewise. * doc/posix-functions/reallocarray.texi: Likewise. Improve text. * doc/gnulib.texi (Function Substitutes): Include them here. (Glibc Function Substitutes): Don't include them here. (Glibc libintl.h): Remove section. (Glibc poll.h): Remove section. (Glibc semaphore.h): Remove section. --- diff --git a/ChangeLog b/ChangeLog index 03b30d7dbc..284fea543f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,50 @@ +2024-07-20 Bruno Haible + + doc: Update status of functions that are added in POSIX:2024. + * doc/posix-functions/_Fork.texi: Moved here from doc/glibc-functions/. + * doc/posix-functions/accept4.texi: Likewise. + * doc/posix-functions/asprintf.texi: Likewise. + * doc/posix-functions/bind_textdomain_codeset.texi: Likewise. + * doc/posix-functions/bindtextdomain.texi: Likewise. + * doc/posix-functions/dcgettext.texi: Likewise. + * doc/posix-functions/dcngettext.texi: Likewise. + * doc/posix-functions/dgettext.texi: Likewise. + * doc/posix-functions/dladdr.texi: Likewise. + * doc/posix-functions/dngettext.texi: Likewise. + * doc/posix-functions/dup3.texi: Likewise. + * doc/posix-functions/ffsl.texi: Likewise. + * doc/posix-functions/ffsll.texi: Likewise. + * doc/posix-functions/getentropy.texi: Likewise. + * doc/posix-functions/getresgid.texi: Likewise. + * doc/posix-functions/getresuid.texi: Likewise. + * doc/posix-functions/gettext.texi: Likewise. + * doc/posix-functions/in6addr_any.texi: Likewise. + * doc/posix-functions/in6addr_loopback.texi: Likewise. + * doc/posix-functions/memmem.texi: Likewise. + * doc/posix-functions/mkostemp.texi: Likewise. + * doc/posix-functions/ngettext.texi: Likewise. + * doc/posix-functions/pipe2.texi: Likewise. + * doc/posix-functions/ppoll.texi: Likewise. + * doc/posix-functions/pthread_cond_clockwait.texi: Likewise. + * doc/posix-functions/pthread_mutex_clocklock.texi: Likewise. + * doc/posix-functions/pthread_rwlock_clockrdlock.texi: Likewise. + * doc/posix-functions/pthread_rwlock_clockwrlock.texi: Likewise. + * doc/posix-functions/ptsname_r.texi: Likewise. + * doc/posix-functions/qsort_r.texi: Likewise. + * doc/posix-functions/secure_getenv.texi: Likewise. + * doc/posix-functions/sem_clockwait.texi: Likewise. + * doc/posix-functions/setresgid.texi: Likewise. + * doc/posix-functions/setresuid.texi: Likewise. + * doc/posix-functions/textdomain.texi: Likewise. + * doc/posix-functions/timespec_get.texi: Likewise. + * doc/posix-functions/vasprintf.texi: Likewise. + * doc/posix-functions/reallocarray.texi: Likewise. Improve text. + * doc/gnulib.texi (Function Substitutes): Include them here. + (Glibc Function Substitutes): Don't include them here. + (Glibc libintl.h): Remove section. + (Glibc poll.h): Remove section. + (Glibc semaphore.h): Remove section. + 2024-07-20 Bruno Haible doc: Reference POSIX:2024 instead of POSIX:2018. @@ -9,7 +56,7 @@ doc: Update status of functions that are removed from POSIX:2024. * doc/pastposix-functions/_longjmp.texi: Moved here - fromdoc/posix-functions/. + from doc/posix-functions/. * doc/pastposix-functions/_setjmp.texi: Likewise. * doc/pastposix-functions/_tolower.texi: Likewise. * doc/pastposix-functions/_toupper.texi: Likewise. @@ -77,7 +124,7 @@ 2024-07-19 Bruno Haible - doc: Mention function that were added in ISO C23. + doc: Mention functions that were added in ISO C23. * doc/posix-functions/acospi.texi: New file. * doc/posix-functions/acospif.texi: New file. * doc/posix-functions/acospil.texi: New file. diff --git a/doc/glibc-functions/_Fork.texi b/doc/glibc-functions/_Fork.texi deleted file mode 100644 index 9b3799c99b..0000000000 --- a/doc/glibc-functions/_Fork.texi +++ /dev/null @@ -1,24 +0,0 @@ -@node _Fork -@subsection @code{_Fork} -@findex _Fork - -Documentation:@* -@ifinfo -@ref{Creating a Process,,Creating a Process,libc} -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Creating-a-Process.html} -@end ifnotinfo - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on all non-glibc platforms: -glibc 2.33, macOS 14, FreeBSD 13.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.3.0, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize diff --git a/doc/glibc-functions/accept4.texi b/doc/glibc-functions/accept4.texi deleted file mode 100644 index 862c9512e1..0000000000 --- a/doc/glibc-functions/accept4.texi +++ /dev/null @@ -1,23 +0,0 @@ -@node accept4 -@subsection @code{accept4} -@findex accept4 - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html,,man accept4} - -Gnulib module: accept4 - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -glibc 2.9, macOS 14, FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 4.4. -But the replacement function is not atomic; this matters in multi-threaded -programs that spawn child processes. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -SOCK_CLOEXEC and SOCK_NONBLOCK may not be defined -as they're also significant to the socket() function. -@end itemize diff --git a/doc/glibc-functions/asprintf.texi b/doc/glibc-functions/asprintf.texi deleted file mode 100644 index fe0cb42062..0000000000 --- a/doc/glibc-functions/asprintf.texi +++ /dev/null @@ -1,104 +0,0 @@ -@node asprintf -@subsection @code{asprintf} -@findex asprintf - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-asprintf.html} - -Documentation: -@itemize -@item -@ifinfo -@ref{Dynamic Output,,Dynamically Allocating Formatted Output,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Dynamic-Output.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/asprintf.3.html,,man asprintf}. -@end itemize - -Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu - -Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}: -@itemize -@item -This function is missing on some platforms: -AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14. -@end itemize - -Portability problems fixed by either Gnulib module @code{vasprintf-posix} or @code{vasprintf-gnu}: -@itemize -@item -This function does not support size specifiers as in C99 (@code{hh}, @code{ll}, -@code{j}, @code{t}, @code{z}) on some platforms: -Cygwin 1.5.24. -@item -This function does not support size specifiers as in C23 (@code{w8}, -@code{w16}, @code{w32}, @code{w64}, @code{wf8}, @code{wf16}, @code{wf32}, -@code{wf64}) on some platforms: -glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. -@item -printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an -incorrect result on some platforms: -AIX 7.3, Solaris 11.4. -@item -This function does not support the @samp{a} and @samp{A} directives on some -platforms: -FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x. -@item -This function does not support the @samp{b} directive, required by ISO C23, -on some platforms: -glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, -AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0. -@item -This function does not support the @samp{F} directive on some platforms: -NetBSD 3.0, Cygwin 1.5.x. -@item -This function does not support the @samp{ls} directive on some platforms: -OpenBSD 4.0, Cygwin 1.5.x, Haiku. -@item -This function does not support precisions in the @samp{ls} directive correctly -on some platforms: -Solaris 11.4. -@item -This function does not support format directives that access arguments in an -arbitrary order, such as @code{"%2$s"}, on some platforms: -NetBSD 3.0. -@item -This function doesn't support the @code{'} flag on some platforms: -NetBSD 3.0, Cygwin 1.5.24. -@item -This function does not round the argument of the @samp{a} directive correctly -on some platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4. -@item -printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded -with zeroes) on some platforms: -Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x. -@item -printf @code{"%#.0x"} or @code{"%#.0X"} with a zero argument yields an -incorrect result (non-empty) on some platforms: -Mac OS X 10.6. -@item -This function produces wrong output for the @samp{lc} directive with a NUL -wide character argument on some platforms: -musl libc 1.2.4. -@item -This function can crash in out-of-memory conditions on some platforms: -FreeBSD 14.0, NetBSD 5.0. -@end itemize - -Portability problems fixed by Gnulib module @code{vasprintf-gnu}: -@itemize -@item -This function does not support the @samp{B} directive on some platforms: -glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -The @code{%m} directive is not portable, use @code{%s} mapped to an -argument of @code{strerror(errno)} (or a version of @code{strerror_r}) -instead. -@end itemize diff --git a/doc/glibc-functions/bind_textdomain_codeset.texi b/doc/glibc-functions/bind_textdomain_codeset.texi deleted file mode 100644 index 5c066b7d1e..0000000000 --- a/doc/glibc-functions/bind_textdomain_codeset.texi +++ /dev/null @@ -1,34 +0,0 @@ -@node bind_textdomain_codeset -@subsection @code{bind_textdomain_codeset} -@findex bind_textdomain_codeset - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-bind-textdomain-codeset.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Charset conversion in gettext,,How to specify the output character set gettext uses,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Charset-conversion-in-gettext.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bind_textdomain_codeset.3.html,,man bind_textdomain_codeset}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize diff --git a/doc/glibc-functions/bindtextdomain.texi b/doc/glibc-functions/bindtextdomain.texi deleted file mode 100644 index 5aa39d3e7b..0000000000 --- a/doc/glibc-functions/bindtextdomain.texi +++ /dev/null @@ -1,34 +0,0 @@ -@node bindtextdomain -@subsection @code{bindtextdomain} -@findex bindtextdomain - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-bindtextdomain.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Locating gettext catalog,,How to determine which catalog to be used,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Locating-gettext-catalog.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bindtextdomain.3.html,,man bindtextdomain}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize diff --git a/doc/glibc-functions/dcgettext.texi b/doc/glibc-functions/dcgettext.texi deleted file mode 100644 index 9fa436b220..0000000000 --- a/doc/glibc-functions/dcgettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node dcgettext -@subsection @code{dcgettext} -@findex dcgettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dcgettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Translation with gettext,,What has to be done to translate a message?,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dcgettext.3.html,,man dcgettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/dcngettext.texi b/doc/glibc-functions/dcngettext.texi deleted file mode 100644 index 24b420c867..0000000000 --- a/doc/glibc-functions/dcngettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node dcngettext -@subsection @code{dcngettext} -@findex dcngettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dcngettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dcngettext.3.html,,man dcngettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/dgettext.texi b/doc/glibc-functions/dgettext.texi deleted file mode 100644 index 5d06c8fc80..0000000000 --- a/doc/glibc-functions/dgettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node dgettext -@subsection @code{dgettext} -@findex dgettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dgettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Translation with gettext,,What has to be done to translate a message?,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dgettext.3.html,,man dgettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/dladdr.texi b/doc/glibc-functions/dladdr.texi deleted file mode 100644 index 3ff64d218d..0000000000 --- a/doc/glibc-functions/dladdr.texi +++ /dev/null @@ -1,20 +0,0 @@ -@node dladdr -@subsection @code{dladdr} -@findex dladdr - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dladdr-3.html} - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dladdr.3.html,,man dladdr} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -Minix 3.1.8, AIX 5.1, Cygwin 1.7.x, mingw, MSVC 14. -@end itemize diff --git a/doc/glibc-functions/dngettext.texi b/doc/glibc-functions/dngettext.texi deleted file mode 100644 index a8acedf55d..0000000000 --- a/doc/glibc-functions/dngettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node dngettext -@subsection @code{dngettext} -@findex dngettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dngettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dngettext.3.html,,man dngettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/dup3.texi b/doc/glibc-functions/dup3.texi deleted file mode 100644 index b52b7e5ee2..0000000000 --- a/doc/glibc-functions/dup3.texi +++ /dev/null @@ -1,27 +0,0 @@ -@node dup3 -@subsection @code{dup3} -@findex dup3 - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html,,man dup3} - -Gnulib module: dup3 - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 4.4. - -@item -This function can crash on some platforms: -Cygwin 1.7.25. - -@item -This function mistakenly succeeds when given two equal file descriptors on some platforms: -@c https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=58266 -NetBSD 10.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/ffsl.texi b/doc/glibc-functions/ffsl.texi deleted file mode 100644 index fbe4f20092..0000000000 --- a/doc/glibc-functions/ffsl.texi +++ /dev/null @@ -1,25 +0,0 @@ -@node ffsl -@subsection @code{ffsl} -@findex ffsl - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsl.3.html,,man ffsl} - -Gnulib module: ffsl - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -FreeBSD 5.2.1, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. -@item -This function is declared in @code{} instead of @code{} -on some platforms: -AIX 7.2, Android 13. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is only defined as an inline function on some platforms: -Android 13. -@end itemize diff --git a/doc/glibc-functions/ffsll.texi b/doc/glibc-functions/ffsll.texi deleted file mode 100644 index 489aad7a56..0000000000 --- a/doc/glibc-functions/ffsll.texi +++ /dev/null @@ -1,28 +0,0 @@ -@node ffsll -@subsection @code{ffsll} -@findex ffsll - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsll.3.html,,man ffsll} - -Gnulib module: ffsll - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -Mac OS X 10.5, FreeBSD 6.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. -@item -This function is declared in @code{} instead of @code{} -on some platforms: -AIX 7.2, Android 13. -@item -This function returns completely wrong values on some platforms: -AIX 7.2 in 32-bit mode. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is only defined as an inline function on some platforms: -Android 13. -@end itemize diff --git a/doc/glibc-functions/getentropy.texi b/doc/glibc-functions/getentropy.texi deleted file mode 100644 index 2864b7fcba..0000000000 --- a/doc/glibc-functions/getentropy.texi +++ /dev/null @@ -1,50 +0,0 @@ -@node getentropy -@subsection @code{getentropy} -@findex getentropy - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1134} - -Documentation: -@itemize -@item -@ifinfo -@ref{Unpredictable Bytes,,Generating Unpredictable Bytes,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Unpredictable-Bytes.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/getentropy.3.html,,man getentropy}. -@end itemize - -Gnulib module: getentropy - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -glibc 2.24, Mac OS X 10.11, FreeBSD 11.0, NetBSD 9.3, OpenBSD 5.5, Minix 3.3, AIX 7.1, HP-UX 11.31, Solaris 11.0, Cygwin 1.7.x, mingw, MSVC 14, Android 8.1. -@item -This function is declared in @code{}, not in @code{}, -on some platforms: -macOS 14, Solaris 11.4, Android 9.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize - -@noindent -Although this function is intended to produce random data, the data's -security properties may not be appropriate for your application. -For example, identical ``random'' data streams might be produced by -rebooted virtual machines. If this is of concern you may need to use -additional techniques such as hedging.@footnote{Ristenpart T, Yilek -S@. @url{http://pages.cs.wisc.edu/~rist/papers/sslhedge.pdf, When good -randomness goes bad: virtual machine vulnerabilities and hedging -deployed cryptography}. NDSS 2010.} - -Related modules include @code{getrandom}, which has a more-flexible -but more-complex API, and @code{crypto/gc-random}, which is likely a -better match for code already using the other @code{crypto} APIs. diff --git a/doc/glibc-functions/getresgid.texi b/doc/glibc-functions/getresgid.texi deleted file mode 100644 index 408907bceb..0000000000 --- a/doc/glibc-functions/getresgid.texi +++ /dev/null @@ -1,21 +0,0 @@ -@node getresgid -@subsection @code{getresgid} -@findex getresgid - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/getresgid.2.html,,man getresgid} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. -@end itemize diff --git a/doc/glibc-functions/getresuid.texi b/doc/glibc-functions/getresuid.texi deleted file mode 100644 index df00ca1799..0000000000 --- a/doc/glibc-functions/getresuid.texi +++ /dev/null @@ -1,21 +0,0 @@ -@node getresuid -@subsection @code{getresuid} -@findex getresuid - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/getresuid.2.html,,man getresuid} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. -@end itemize diff --git a/doc/glibc-functions/gettext.texi b/doc/glibc-functions/gettext.texi deleted file mode 100644 index 8c11136b42..0000000000 --- a/doc/glibc-functions/gettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node gettext -@subsection @code{gettext} -@findex gettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-gettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Translation with gettext,,What has to be done to translate a message?,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/gettext.3.html,,man gettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/in6addr_any.texi b/doc/glibc-functions/in6addr_any.texi deleted file mode 100644 index b599ceeff3..0000000000 --- a/doc/glibc-functions/in6addr_any.texi +++ /dev/null @@ -1,24 +0,0 @@ -@node in6addr_any -@subsection @code{in6addr_any} -@findex in6addr_any - -Documentation:@* -@ifinfo -@ref{Host Address Data Type,,Host Address Data Type,libc}. -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Host-Address-Data-Type.html}. -@end ifnotinfo - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This constant is missing on some platforms: -Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, mingw, MSVC 14, Android 6.0. -@end itemize diff --git a/doc/glibc-functions/in6addr_loopback.texi b/doc/glibc-functions/in6addr_loopback.texi deleted file mode 100644 index 1a945898c4..0000000000 --- a/doc/glibc-functions/in6addr_loopback.texi +++ /dev/null @@ -1,24 +0,0 @@ -@node in6addr_loopback -@subsection @code{in6addr_loopback} -@findex in6addr_loopback - -Documentation:@* -@ifinfo -@ref{Host Address Data Type,,Host Address Data Type,libc}. -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Host-Address-Data-Type.html}. -@end ifnotinfo - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This constant is missing on some platforms: -Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, mingw, MSVC 14, Android 6.0. -@end itemize diff --git a/doc/glibc-functions/memmem.texi b/doc/glibc-functions/memmem.texi deleted file mode 100644 index 4b33e292ad..0000000000 --- a/doc/glibc-functions/memmem.texi +++ /dev/null @@ -1,57 +0,0 @@ -@node memmem -@subsection @code{memmem} -@findex memmem - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-memmem-3.html} - -Documentation: -@itemize -@item -@ifinfo -@ref{Search Functions,,Search Functions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Search-Functions.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/memmem.3.html,,man memmem}. -@end itemize - -Gnulib module: memmem or memmem-simple - -Both modules implement the same replacement for the @code{memmem} function -with the @code{memmem} module providing a replacement on more platforms where -the existing @code{memmem} function has a quadratic worst-case complexity. - -Portability problems fixed by either Gnulib module @code{memmem-simple} -or @code{memmem}: -@itemize -@item -This function is missing on some platforms: -Mac OS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, Minix 3.1.8, HP-UX 11, Solaris 10, mingw, MSVC 14. -@item -This function has reversed arguments on some older platforms: -Linux libc 5.0.9 -@item -This function can trigger false positives for long periodic needles on -some platforms: -glibc 2.12, Cygwin 1.7.7. - -@item -This function returns incorrect values in some cases, such as when -given an empty needle: -glibc <= 2.0, macOS 14, AIX 7.2, Solaris 11.3, Cygwin 1.5.x. -@end itemize - -Performance problems fixed by Gnulib module @code{memmem}: -@itemize -@item -This function has quadratic instead of linear worst-case complexity on some -platforms: -glibc 2.8, macOS 14, FreeBSD 11.4, NetBSD 8.2, OpenBSD 6.6, AIX 7.2, Solaris 11.4, Cygwin 1.5.x. -Note for small needles the replacement may be slower. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/mkostemp.texi b/doc/glibc-functions/mkostemp.texi deleted file mode 100644 index 1cf45f3ef0..0000000000 --- a/doc/glibc-functions/mkostemp.texi +++ /dev/null @@ -1,28 +0,0 @@ -@node mkostemp -@subsection @code{mkostemp} -@findex mkostemp - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/mkostemp.3.html,,man mkostemp} - -Gnulib module: mkostemp - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -glibc 2.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.5, mingw, MSVC 14, Android 5.1. -@item -This function is declared in @code{} instead of @code{} -on some platforms: -macOS 14. -@item -On platforms where @code{off_t} is a 32-bit type, @code{mkostemp} may not work -correctly to create files larger than 2 GB@. (Cf. @code{AC_SYS_LARGEFILE}.) -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize - -The gnulib module @code{clean-temp} can create temporary files that will not -be left behind after signals such as SIGINT. diff --git a/doc/glibc-functions/ngettext.texi b/doc/glibc-functions/ngettext.texi deleted file mode 100644 index 8aa5869597..0000000000 --- a/doc/glibc-functions/ngettext.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node ngettext -@subsection @code{ngettext} -@findex ngettext - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-ngettext.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ngettext.3.html,,man ngettext}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@item -This function does not treat a @code{LANGUAGE} environment variable -with an empty value like an unset @code{LANGUAGE} environment variable -on some platforms: -NetBSD 10.0. -@end itemize diff --git a/doc/glibc-functions/pipe2.texi b/doc/glibc-functions/pipe2.texi deleted file mode 100644 index 9a355633f8..0000000000 --- a/doc/glibc-functions/pipe2.texi +++ /dev/null @@ -1,27 +0,0 @@ -@node pipe2 -@subsection @code{pipe2} -@findex pipe2 - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html,,man pipe2} - -Gnulib module: pipe2 - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 2.2. -But the replacement function is not atomic; this matters in multi-threaded -programs that spawn child processes. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function crashes rather than failing with @code{EMFILE} if no -resources are left on some platforms: -Cygwin 1.7.9. -@end itemize - -Note: This function portably supports the @code{O_NONBLOCK} flag only if the -gnulib module @code{nonblocking} is also used. diff --git a/doc/glibc-functions/ppoll.texi b/doc/glibc-functions/ppoll.texi deleted file mode 100644 index d9a8843929..0000000000 --- a/doc/glibc-functions/ppoll.texi +++ /dev/null @@ -1,18 +0,0 @@ -@node ppoll -@subsection @code{ppoll} -@findex ppoll - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/ppoll.2.html,,man ppoll} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -glibc 2.3.6, macOS 14, FreeBSD 6.4, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 4.3. -@end itemize diff --git a/doc/glibc-functions/pthread_cond_clockwait.texi b/doc/glibc-functions/pthread_cond_clockwait.texi deleted file mode 100644 index f657dabc93..0000000000 --- a/doc/glibc-functions/pthread_cond_clockwait.texi +++ /dev/null @@ -1,30 +0,0 @@ -@node pthread_cond_clockwait -@subsection @code{pthread_cond_clockwait} -@findex pthread_cond_clockwait - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1485#c5385} - -Documentation: -@itemize -@item -@ifinfo -@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, -@end ifnotinfo -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. -@end itemize diff --git a/doc/glibc-functions/pthread_mutex_clocklock.texi b/doc/glibc-functions/pthread_mutex_clocklock.texi deleted file mode 100644 index 09b288b061..0000000000 --- a/doc/glibc-functions/pthread_mutex_clocklock.texi +++ /dev/null @@ -1,18 +0,0 @@ -@node pthread_mutex_clocklock -@subsection @code{pthread_mutex_clocklock} -@findex pthread_mutex_clocklock - -Documentation: --- - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. -@end itemize diff --git a/doc/glibc-functions/pthread_rwlock_clockrdlock.texi b/doc/glibc-functions/pthread_rwlock_clockrdlock.texi deleted file mode 100644 index aff92d46ca..0000000000 --- a/doc/glibc-functions/pthread_rwlock_clockrdlock.texi +++ /dev/null @@ -1,30 +0,0 @@ -@node pthread_rwlock_clockrdlock -@subsection @code{pthread_rwlock_clockrdlock} -@findex pthread_rwlock_clockrdlock - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} - -Documentation: -@itemize -@item -@ifinfo -@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, -@end ifnotinfo -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. -@end itemize diff --git a/doc/glibc-functions/pthread_rwlock_clockwrlock.texi b/doc/glibc-functions/pthread_rwlock_clockwrlock.texi deleted file mode 100644 index 332d9d6c42..0000000000 --- a/doc/glibc-functions/pthread_rwlock_clockwrlock.texi +++ /dev/null @@ -1,30 +0,0 @@ -@node pthread_rwlock_clockwrlock -@subsection @code{pthread_rwlock_clockwrlock} -@findex pthread_rwlock_clockwrlock - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} - -Documentation: -@itemize -@item -@ifinfo -@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, -@end ifnotinfo -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. -@end itemize diff --git a/doc/glibc-functions/ptsname_r.texi b/doc/glibc-functions/ptsname_r.texi deleted file mode 100644 index a7b379361e..0000000000 --- a/doc/glibc-functions/ptsname_r.texi +++ /dev/null @@ -1,51 +0,0 @@ -@node ptsname_r -@subsection @code{ptsname_r} -@findex ptsname_r - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=508} - -Documentation: -@itemize -@item -@ifinfo -@ref{Allocation,,Allocating Pseudo-Terminals,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Allocation.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ptsname_r.3.html,,man ptsname_r}. -@end itemize - -Gnulib module: ptsname_r - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -Mac OS X 10.12, FreeBSD 12.0, NetBSD 5.0, OpenBSD 6.7, Minix 3.1.8, -AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.9, mingw, -MSVC 14. -@item -When this function fails, it returns -1 instead of the error code -on some platforms: -macOS 14, FreeBSD 14.0, Android 4.3. -@item -When this function fails with ERANGE, it stores an empty string as result -on some platforms: -NetBSD 10.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -When this function fails, it returns 0 and stores an empty string as result -on some platforms: -Cygwin 2.9. -@end itemize - -Note: Portable programs should expect to find the error code as the -return value of this function, not as the value of @code{errno}. -This is needed for compatibility with musl libc and with the -forthcoming POSIX Issue 8. diff --git a/doc/glibc-functions/qsort_r.texi b/doc/glibc-functions/qsort_r.texi deleted file mode 100644 index 5f415a1e33..0000000000 --- a/doc/glibc-functions/qsort_r.texi +++ /dev/null @@ -1,21 +0,0 @@ -@node qsort_r -@subsection @code{qsort_r} -@findex qsort_r - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/qsort_r.3.html,,man qsort_r} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -glibc 2.7, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. -@item -This function has an incompatible API on some platforms: -FreeBSD 13.2. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/reallocarray.texi b/doc/glibc-functions/reallocarray.texi deleted file mode 100644 index 0e09a341f6..0000000000 --- a/doc/glibc-functions/reallocarray.texi +++ /dev/null @@ -1,39 +0,0 @@ -@node reallocarray -@subsection @code{reallocarray} -@findex reallocarray - -Documentation: -@itemize -@item -@ifinfo -@ref{Changing Block Size,,Changing the Size of a Block,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Changing-Block-Size.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/reallocarray.3.html,,man reallocarray}. -@end itemize - -Gnulib module: reallocarray - -Allocate multiple memory locations of a fixed size with integer overflow -protection. -Glibc Manual: @url{https://www.gnu.org/software/libc/manual/html_node/Changing-Block-Size.html#Changing-Block-Size} - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -glibc 2.25, macOS 14, FreeBSD 10, NetBSD 7, OpenBSD 5.5, Minix 3.3.0, AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. - -@item -On some platforms, @code{reallocarray (n, s)} can succeed even if -multiplying @code{n} by @code{s} would exceed @code{PTRDIFF_MAX}, -which can lead to undefined behavior later: -FreeBSD 13, NetBSD 9, OpenBSD 6, musl 1.2. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/secure_getenv.texi b/doc/glibc-functions/secure_getenv.texi deleted file mode 100644 index 86e24b3055..0000000000 --- a/doc/glibc-functions/secure_getenv.texi +++ /dev/null @@ -1,29 +0,0 @@ -@node secure_getenv -@subsection @code{secure_getenv} -@findex secure_getenv - -Documentation: -@itemize -@item -@ifinfo -@ref{Environment Access,,Environment Access,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Environment-Access.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/secure_getenv.3.html,,man secure_getenv}. -@end itemize - -Gnulib module: secure_getenv - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many non-glibc platforms: -glibc 2.16, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 5.2, Minix 3.2.0, AIX 7.1, HP-UX 11, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/sem_clockwait.texi b/doc/glibc-functions/sem_clockwait.texi deleted file mode 100644 index 227429bc16..0000000000 --- a/doc/glibc-functions/sem_clockwait.texi +++ /dev/null @@ -1,30 +0,0 @@ -@node sem_clockwait -@subsection @code{sem_clockwait} -@findex sem_clockwait - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} - -Documentation: -@itemize -@item -@ifinfo -@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, -@end ifnotinfo -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. -@end itemize diff --git a/doc/glibc-functions/setresgid.texi b/doc/glibc-functions/setresgid.texi deleted file mode 100644 index 3d4075b9c3..0000000000 --- a/doc/glibc-functions/setresgid.texi +++ /dev/null @@ -1,21 +0,0 @@ -@node setresgid -@subsection @code{setresgid} -@findex setresgid - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/setresgid.2.html,,man setresgid} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. -@end itemize diff --git a/doc/glibc-functions/setresuid.texi b/doc/glibc-functions/setresuid.texi deleted file mode 100644 index 4c60ee4e9f..0000000000 --- a/doc/glibc-functions/setresuid.texi +++ /dev/null @@ -1,21 +0,0 @@ -@node setresuid -@subsection @code{setresuid} -@findex setresuid - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} - -Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/setresuid.2.html,,man setresuid} - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. -@end itemize diff --git a/doc/glibc-functions/textdomain.texi b/doc/glibc-functions/textdomain.texi deleted file mode 100644 index 5f357af565..0000000000 --- a/doc/glibc-functions/textdomain.texi +++ /dev/null @@ -1,34 +0,0 @@ -@node textdomain -@subsection @code{textdomain} -@findex textdomain - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-textdomain.html} - -Specified in POSIX.1-2024. -Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} - -Documentation: -@itemize -@item -@ifinfo -@ref{Locating gettext catalog,,How to determine which catalog to be used,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Locating-gettext-catalog.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/textdomain.3.html,,man textdomain}. -@end itemize - -Gnulib module: --- - -Portability problems fixed by Gnulib: -@itemize -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -This function is missing on some platforms: -macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize diff --git a/doc/glibc-functions/timespec_get.texi b/doc/glibc-functions/timespec_get.texi deleted file mode 100644 index b68aba2b7d..0000000000 --- a/doc/glibc-functions/timespec_get.texi +++ /dev/null @@ -1,18 +0,0 @@ -@node timespec_get -@subsection @code{timespec_get} -@findex timespec_get - -ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.29.2.6 - -Gnulib module: timespec_get - -Portability problems fixed by Gnulib: -@itemize -@item -This function is missing on many platforms: -glibc 2.15, macOS 10.14, FreeBSD 11.0, NetBSD 7.1, OpenBSD 6.0, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@end itemize diff --git a/doc/glibc-functions/vasprintf.texi b/doc/glibc-functions/vasprintf.texi deleted file mode 100644 index 116f87e13b..0000000000 --- a/doc/glibc-functions/vasprintf.texi +++ /dev/null @@ -1,104 +0,0 @@ -@node vasprintf -@subsection @code{vasprintf} -@findex vasprintf - -LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vasprintf.html} - -Documentation: -@itemize -@item -@ifinfo -@ref{Variable Arguments Output,,Variable Arguments Output Functions,libc}, -@end ifinfo -@ifnotinfo -@url{https://www.gnu.org/software/libc/manual/html_node/Variable-Arguments-Output.html}, -@end ifnotinfo -@item -@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/vasprintf.3.html,,man vasprintf}. -@end itemize - -Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu - -Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}: -@itemize -@item -This function is missing on some platforms: -AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14. -@end itemize - -Portability problems fixed by either Gnulib module @code{vasprintf-posix} or @code{vasprintf-gnu}: -@itemize -@item -This function does not support size specifiers as in C99 (@code{hh}, @code{ll}, -@code{j}, @code{t}, @code{z}) on some platforms: -Cygwin 1.5.24. -@item -This function does not support size specifiers as in C23 (@code{w8}, -@code{w16}, @code{w32}, @code{w64}, @code{wf8}, @code{wf16}, @code{wf32}, -@code{wf64}) on some platforms: -glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. -@item -printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an -incorrect result on some platforms: -AIX 7.3, Solaris 11.4. -@item -This function does not support the @samp{a} and @samp{A} directives on some -platforms: -FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x. -@item -This function does not support the @samp{b} directive, required by ISO C23, -on some platforms: -glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, -AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0. -@item -This function does not support the @samp{F} directive on some platforms: -NetBSD 3.0, Cygwin 1.5.x. -@item -This function does not support the @samp{ls} directive on some platforms: -OpenBSD 4.0, Cygwin 1.5.x, Haiku. -@item -This function does not support precisions in the @samp{ls} directive correctly -on some platforms: -Solaris 11.4. -@item -This function does not support format directives that access arguments in an -arbitrary order, such as @code{"%2$s"}, on some platforms: -NetBSD 3.0. -@item -This function doesn't support the @code{'} flag on some platforms: -NetBSD 3.0, Cygwin 1.5.24. -@item -This function does not round the argument of the @samp{a} directive correctly -on some platforms: -macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4. -@item -printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded -with zeroes) on some platforms: -Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x. -@item -printf @code{"%#.0x"} or @code{"%#.0X"} with a zero argument yields an -incorrect result (non-empty) on some platforms: -Mac OS X 10.6. -@item -This function produces wrong output for the @samp{lc} directive with a NUL -wide character argument on some platforms: -musl libc 1.2.4. -@item -This function can crash in out-of-memory conditions on some platforms: -FreeBSD 14.0, NetBSD 5.0. -@end itemize - -Portability problems fixed by Gnulib module @code{vasprintf-gnu}: -@itemize -@item -This function does not support the @samp{B} directive on some platforms: -glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. -@end itemize - -Portability problems not fixed by Gnulib: -@itemize -@item -The @code{%m} directive is not portable, use @code{%s} mapped to an -argument of @code{strerror(errno)} (or a version of @code{strerror_r}) -instead. -@end itemize diff --git a/doc/gnulib.texi b/doc/gnulib.texi index b421b59553..c94c37e2ab 100644 --- a/doc/gnulib.texi +++ b/doc/gnulib.texi @@ -1259,10 +1259,12 @@ problems are not worked around by Gnulib. * FD_ZERO:: * _Exit:: * _exit:: +* _Fork:: * a64l:: * abort:: * abs:: * accept:: +* accept4:: * access:: * acos:: * acosf:: @@ -1294,6 +1296,7 @@ problems are not worked around by Gnulib. * asinpi:: * asinpif:: * asinpil:: +* asprintf:: * assert:: * atan:: * atan2:: @@ -1317,6 +1320,8 @@ problems are not worked around by Gnulib. * atoll:: * basename:: * bind:: +* bind_textdomain_codeset:: +* bindtextdomain:: * bsearch:: * btowc:: * c8rtomb:: @@ -1458,23 +1463,29 @@ problems are not worked around by Gnulib. * dbm_nextkey:: * dbm_open:: * dbm_store:: +* dcgettext:: +* dcngettext:: * ddivl:: * dfmal:: +* dgettext:: * difftime:: * dirfd:: * dirname:: * div:: +* dladdr:: * dlclose:: * dlerror:: * dlopen:: * dlsym:: * dmull:: +* dngettext:: * dprintf:: * drand48:: * dsqrtl:: * dsubl:: * dup:: * dup2:: +* dup3:: * duplocale:: * encrypt:: * endgrent:: @@ -1561,6 +1572,8 @@ problems are not worked around by Gnulib. * ffma:: * ffmal:: * ffs:: +* ffsl:: +* ffsll:: * fgetc:: * fgetpos:: * fgets:: @@ -1675,6 +1688,7 @@ problems are not worked around by Gnulib. * getdate_err:: * getdelim:: * getegid:: +* getentropy:: * getenv:: * geteuid:: * getgid:: @@ -1712,6 +1726,8 @@ problems are not worked around by Gnulib. * getpwnam_r:: * getpwuid:: * getpwuid_r:: +* getresgid:: +* getresuid:: * getrlimit:: * getrusage:: * getservbyname:: @@ -1721,6 +1737,7 @@ problems are not worked around by Gnulib. * getsockname:: * getsockopt:: * getsubopt:: +* gettext:: * getuid:: * getutxent:: * getutxid:: @@ -1752,6 +1769,8 @@ problems are not worked around by Gnulib. * ilogbl:: * imaxabs:: * imaxdiv:: +* in6addr_any:: +* in6addr_loopback:: * inet_addr:: * inet_ntoa:: * inet_ntop:: @@ -1908,6 +1927,7 @@ problems are not worked around by Gnulib. * memchr:: * memcmp:: * memcpy:: +* memmem:: * memmove:: * memset:: * memset_explicit:: @@ -1918,6 +1938,7 @@ problems are not worked around by Gnulib. * mkfifoat:: * mknod:: * mknodat:: +* mkostemp:: * mkstemp:: * mktime:: * mlock:: @@ -1973,6 +1994,7 @@ problems are not worked around by Gnulib. * nextupf:: * nextupl:: * nftw:: +* ngettext:: * nice:: * nl_langinfo:: * nl_langinfo_l:: @@ -1994,6 +2016,7 @@ problems are not worked around by Gnulib. * pclose:: * perror:: * pipe:: +* pipe2:: * poll:: * popen:: * posix_fadvise:: @@ -2034,6 +2057,7 @@ problems are not worked around by Gnulib. * powr:: * powrf:: * powrl:: +* ppoll:: * pread:: * printf:: * pselect:: @@ -2069,6 +2093,7 @@ problems are not worked around by Gnulib. * pthread_cleanup_pop:: * pthread_cleanup_push:: * pthread_cond_broadcast:: +* pthread_cond_clockwait:: * pthread_cond_destroy:: * pthread_cond_init:: * pthread_cond_signal:: @@ -2091,6 +2116,7 @@ problems are not worked around by Gnulib. * pthread_key_create:: * pthread_key_delete:: * pthread_kill:: +* pthread_mutex_clocklock:: * pthread_mutex_consistent:: * pthread_mutex_destroy:: * pthread_mutex_getprioceiling:: @@ -2113,6 +2139,8 @@ problems are not worked around by Gnulib. * pthread_mutexattr_setrobust:: * pthread_mutexattr_settype:: * pthread_once:: +* pthread_rwlock_clockrdlock:: +* pthread_rwlock_clockwrlock:: * pthread_rwlock_destroy:: * pthread_rwlock_init:: * pthread_rwlock_rdlock:: @@ -2140,6 +2168,7 @@ problems are not worked around by Gnulib. * pthread_spin_unlock:: * pthread_testcancel:: * ptsname:: +* ptsname_r:: * putc:: * putc_unlocked:: * putchar:: @@ -2151,6 +2180,7 @@ problems are not worked around by Gnulib. * putwchar:: * pwrite:: * qsort:: +* qsort_r:: * quick_exit:: * raise:: * rand:: @@ -2163,6 +2193,7 @@ problems are not worked around by Gnulib. * readlinkat:: * readv:: * realloc:: +* reallocarray:: * realpath:: * recv:: * recvfrom:: @@ -2215,9 +2246,11 @@ problems are not worked around by Gnulib. * sched_setparam:: * sched_setscheduler:: * sched_yield:: +* secure_getenv:: * seed48:: * seekdir:: * select:: +* sem_clockwait:: * sem_close:: * sem_destroy:: * sem_getvalue:: @@ -2257,6 +2290,8 @@ problems are not worked around by Gnulib. * setprotoent:: * setpwent:: * setregid:: +* setresgid:: +* setresuid:: * setreuid:: * setrlimit:: * setservent:: @@ -2413,6 +2448,7 @@ problems are not worked around by Gnulib. * tcsetpgrp:: * tdelete:: * telldir:: +* textdomain:: * tfind:: * tgamma:: * tgammaf:: @@ -2433,6 +2469,7 @@ problems are not worked around by Gnulib. * timer_gettime:: * timer_settime:: * times:: +* timespec_get:: * timespec_getres:: * timezone:: * tmpfile:: @@ -2488,6 +2525,7 @@ problems are not worked around by Gnulib. * va_copy:: * va_end:: * va_start:: +* vasprintf:: * vdprintf:: * vfprintf:: * vfscanf:: @@ -2575,10 +2613,12 @@ problems are not worked around by Gnulib. @include posix-functions/FD_ZERO.texi @include posix-functions/_Exit_C99.texi @include posix-functions/_exit.texi +@include posix-functions/_Fork.texi @include posix-functions/a64l.texi @include posix-functions/abort.texi @include posix-functions/abs.texi @include posix-functions/accept.texi +@include posix-functions/accept4.texi @include posix-functions/access.texi @include posix-functions/acos.texi @include posix-functions/acosf.texi @@ -2610,6 +2650,7 @@ problems are not worked around by Gnulib. @include posix-functions/asinpi.texi @include posix-functions/asinpif.texi @include posix-functions/asinpil.texi +@include posix-functions/asprintf.texi @include posix-functions/assert.texi @include posix-functions/atan.texi @include posix-functions/atan2.texi @@ -2633,6 +2674,8 @@ problems are not worked around by Gnulib. @include posix-functions/atoll.texi @include posix-functions/basename.texi @include posix-functions/bind.texi +@include posix-functions/bind_textdomain_codeset.texi +@include posix-functions/bindtextdomain.texi @include posix-functions/bsearch.texi @include posix-functions/btowc.texi @include posix-functions/c8rtomb.texi @@ -2774,23 +2817,29 @@ problems are not worked around by Gnulib. @include posix-functions/dbm_nextkey.texi @include posix-functions/dbm_open.texi @include posix-functions/dbm_store.texi +@include posix-functions/dcgettext.texi +@include posix-functions/dcngettext.texi @include posix-functions/ddivl.texi @include posix-functions/dfmal.texi +@include posix-functions/dgettext.texi @include posix-functions/difftime.texi @include posix-functions/dirfd.texi @include posix-functions/dirname.texi @include posix-functions/div.texi +@include posix-functions/dladdr.texi @include posix-functions/dlclose.texi @include posix-functions/dlerror.texi @include posix-functions/dlopen.texi @include posix-functions/dlsym.texi @include posix-functions/dmull.texi +@include posix-functions/dngettext.texi @include posix-functions/dprintf.texi @include posix-functions/drand48.texi @include posix-functions/dsqrtl.texi @include posix-functions/dsubl.texi @include posix-functions/dup.texi @include posix-functions/dup2.texi +@include posix-functions/dup3.texi @include posix-functions/duplocale.texi @include posix-functions/encrypt.texi @include posix-functions/endgrent.texi @@ -2877,6 +2926,8 @@ problems are not worked around by Gnulib. @include posix-functions/ffma.texi @include posix-functions/ffmal.texi @include posix-functions/ffs.texi +@include posix-functions/ffsl.texi +@include posix-functions/ffsll.texi @include posix-functions/fgetc.texi @include posix-functions/fgetpos.texi @include posix-functions/fgets.texi @@ -2991,6 +3042,7 @@ problems are not worked around by Gnulib. @include posix-functions/getdate_err.texi @include posix-functions/getdelim.texi @include posix-functions/getegid.texi +@include posix-functions/getentropy.texi @include posix-functions/getenv.texi @include posix-functions/geteuid.texi @include posix-functions/getgid.texi @@ -3028,6 +3080,8 @@ problems are not worked around by Gnulib. @include posix-functions/getpwnam_r.texi @include posix-functions/getpwuid.texi @include posix-functions/getpwuid_r.texi +@include posix-functions/getresgid.texi +@include posix-functions/getresuid.texi @include posix-functions/getrlimit.texi @include posix-functions/getrusage.texi @include posix-functions/getservbyname.texi @@ -3037,6 +3091,7 @@ problems are not worked around by Gnulib. @include posix-functions/getsockname.texi @include posix-functions/getsockopt.texi @include posix-functions/getsubopt.texi +@include posix-functions/gettext.texi @include posix-functions/getuid.texi @include posix-functions/getutxent.texi @include posix-functions/getutxid.texi @@ -3068,6 +3123,8 @@ problems are not worked around by Gnulib. @include posix-functions/ilogbl.texi @include posix-functions/imaxabs.texi @include posix-functions/imaxdiv.texi +@include posix-functions/in6addr_any.texi +@include posix-functions/in6addr_loopback.texi @include posix-functions/inet_addr.texi @include posix-functions/inet_ntoa.texi @include posix-functions/inet_ntop.texi @@ -3224,6 +3281,7 @@ problems are not worked around by Gnulib. @include posix-functions/memchr.texi @include posix-functions/memcmp.texi @include posix-functions/memcpy.texi +@include posix-functions/memmem.texi @include posix-functions/memmove.texi @include posix-functions/memset.texi @include posix-functions/memset_explicit.texi @@ -3234,6 +3292,7 @@ problems are not worked around by Gnulib. @include posix-functions/mkfifoat.texi @include posix-functions/mknod.texi @include posix-functions/mknodat.texi +@include posix-functions/mkostemp.texi @include posix-functions/mkstemp.texi @include posix-functions/mktime.texi @include posix-functions/mlock.texi @@ -3289,6 +3348,7 @@ problems are not worked around by Gnulib. @include posix-functions/nextupf.texi @include posix-functions/nextupl.texi @include posix-functions/nftw.texi +@include posix-functions/ngettext.texi @include posix-functions/nice.texi @include posix-functions/nl_langinfo.texi @include posix-functions/nl_langinfo_l.texi @@ -3310,6 +3370,7 @@ problems are not worked around by Gnulib. @include posix-functions/pclose.texi @include posix-functions/perror.texi @include posix-functions/pipe.texi +@include posix-functions/pipe2.texi @include posix-functions/poll.texi @include posix-functions/popen.texi @include posix-functions/posix_fadvise.texi @@ -3350,6 +3411,7 @@ problems are not worked around by Gnulib. @include posix-functions/powr.texi @include posix-functions/powrf.texi @include posix-functions/powrl.texi +@include posix-functions/ppoll.texi @include posix-functions/pread.texi @include posix-functions/printf.texi @include posix-functions/pselect.texi @@ -3385,6 +3447,7 @@ problems are not worked around by Gnulib. @include posix-functions/pthread_cleanup_pop.texi @include posix-functions/pthread_cleanup_push.texi @include posix-functions/pthread_cond_broadcast.texi +@include posix-functions/pthread_cond_clockwait.texi @include posix-functions/pthread_cond_destroy.texi @include posix-functions/pthread_cond_init.texi @include posix-functions/pthread_cond_signal.texi @@ -3407,6 +3470,7 @@ problems are not worked around by Gnulib. @include posix-functions/pthread_key_create.texi @include posix-functions/pthread_key_delete.texi @include posix-functions/pthread_kill.texi +@include posix-functions/pthread_mutex_clocklock.texi @include posix-functions/pthread_mutex_consistent.texi @include posix-functions/pthread_mutex_destroy.texi @include posix-functions/pthread_mutex_getprioceiling.texi @@ -3429,6 +3493,8 @@ problems are not worked around by Gnulib. @include posix-functions/pthread_mutexattr_setrobust.texi @include posix-functions/pthread_mutexattr_settype.texi @include posix-functions/pthread_once.texi +@include posix-functions/pthread_rwlock_clockrdlock.texi +@include posix-functions/pthread_rwlock_clockwrlock.texi @include posix-functions/pthread_rwlock_destroy.texi @include posix-functions/pthread_rwlock_init.texi @include posix-functions/pthread_rwlock_rdlock.texi @@ -3456,6 +3522,7 @@ problems are not worked around by Gnulib. @include posix-functions/pthread_spin_unlock.texi @include posix-functions/pthread_testcancel.texi @include posix-functions/ptsname.texi +@include posix-functions/ptsname_r.texi @include posix-functions/putc.texi @include posix-functions/putc_unlocked.texi @include posix-functions/putchar.texi @@ -3467,6 +3534,7 @@ problems are not worked around by Gnulib. @include posix-functions/putwchar.texi @include posix-functions/pwrite.texi @include posix-functions/qsort.texi +@include posix-functions/qsort_r.texi @include posix-functions/quick_exit.texi @include posix-functions/raise.texi @include posix-functions/rand.texi @@ -3479,6 +3547,7 @@ problems are not worked around by Gnulib. @include posix-functions/readlinkat.texi @include posix-functions/readv.texi @include posix-functions/realloc.texi +@include posix-functions/reallocarray.texi @include posix-functions/realpath.texi @include posix-functions/recv.texi @include posix-functions/recvfrom.texi @@ -3531,9 +3600,11 @@ problems are not worked around by Gnulib. @include posix-functions/sched_setparam.texi @include posix-functions/sched_setscheduler.texi @include posix-functions/sched_yield.texi +@include posix-functions/secure_getenv.texi @include posix-functions/seed48.texi @include posix-functions/seekdir.texi @include posix-functions/select.texi +@include posix-functions/sem_clockwait.texi @include posix-functions/sem_close.texi @include posix-functions/sem_destroy.texi @include posix-functions/sem_getvalue.texi @@ -3573,6 +3644,8 @@ problems are not worked around by Gnulib. @include posix-functions/setprotoent.texi @include posix-functions/setpwent.texi @include posix-functions/setregid.texi +@include posix-functions/setresgid.texi +@include posix-functions/setresuid.texi @include posix-functions/setreuid.texi @include posix-functions/setrlimit.texi @include posix-functions/setservent.texi @@ -3729,6 +3802,7 @@ problems are not worked around by Gnulib. @include posix-functions/tcsetpgrp.texi @include posix-functions/tdelete.texi @include posix-functions/telldir.texi +@include posix-functions/textdomain.texi @include posix-functions/tfind.texi @include posix-functions/tgamma.texi @include posix-functions/tgammaf.texi @@ -3749,6 +3823,7 @@ problems are not worked around by Gnulib. @include posix-functions/timer_gettime.texi @include posix-functions/timer_settime.texi @include posix-functions/times.texi +@include posix-functions/timespec_get.texi @include posix-functions/timespec_getres.texi @include posix-functions/timezone.texi @include posix-functions/tmpfile.texi @@ -3804,6 +3879,7 @@ problems are not worked around by Gnulib. @include posix-functions/va_copy.texi @include posix-functions/va_end.texi @include posix-functions/va_start.texi +@include posix-functions/vasprintf.texi @include posix-functions/vdprintf.texi @include posix-functions/vfprintf.texi @include posix-functions/vfscanf.texi @@ -4245,7 +4321,6 @@ This list of functions is sorted according to the header that declares them. * Glibc grp.h:: * Glibc gshadow.h:: * Glibc ifaddrs.h:: -* Glibc libintl.h:: * Glibc link.h:: * Glibc malloc.h:: * Glibc math.h:: @@ -4255,7 +4330,6 @@ This list of functions is sorted according to the header that declares them. * Glibc netinet/ether.h:: * Glibc netinet/in.h:: * Glibc obstack.h:: -* Glibc poll.h:: * Glibc printf.h:: * Glibc pthread.h:: * Glibc pty.h:: @@ -4282,7 +4356,6 @@ This list of functions is sorted according to the header that declares them. * Glibc sched.h:: * Glibc search.h:: * Glibc selinux/selinux.h:: -* Glibc semaphore.h:: * Glibc shadow.h:: * Glibc signal.h:: * Glibc spawn.h:: @@ -4543,7 +4616,6 @@ This list of functions is sorted according to the header that declares them. @section Glibc Extensions to @code{} @menu -* dladdr:: * dladdr1:: * dlinfo:: * dlmopen:: @@ -4551,7 +4623,6 @@ This list of functions is sorted according to the header that declares them. * _dl_find_object:: @end menu -@include glibc-functions/dladdr.texi @include glibc-functions/dladdr1.texi @include glibc-functions/dlinfo.texi @include glibc-functions/dlmopen.texi @@ -4839,30 +4910,8 @@ This list of functions is sorted according to the header that declares them. @c @node Glibc libgen.h @c @section Glibc Extensions to @code{} -@node Glibc libintl.h -@section Glibc @code{} - -@menu -* bind_textdomain_codeset:: -* bindtextdomain:: -* dcgettext:: -* dcngettext:: -* dgettext:: -* dngettext:: -* gettext:: -* ngettext:: -* textdomain:: -@end menu - -@include glibc-functions/bind_textdomain_codeset.texi -@include glibc-functions/bindtextdomain.texi -@include glibc-functions/dcgettext.texi -@include glibc-functions/dcngettext.texi -@include glibc-functions/dgettext.texi -@include glibc-functions/dngettext.texi -@include glibc-functions/gettext.texi -@include glibc-functions/ngettext.texi -@include glibc-functions/textdomain.texi +@c @node Glibc libintl.h +@c @section Glibc @code{} @c @node Glibc limits.h @c @section Glibc Extensions to @code{} @@ -5131,8 +5180,6 @@ This list of functions is sorted according to the header that declares them. * bindresvport:: * getipv4sourcefilter:: * getsourcefilter:: -* in6addr_any:: -* in6addr_loopback:: * inet6_option_alloc:: * inet6_option_append:: * inet6_option_find:: @@ -5159,8 +5206,6 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/bindresvport.texi @include glibc-functions/getipv4sourcefilter.texi @include glibc-functions/getsourcefilter.texi -@include glibc-functions/in6addr_any.texi -@include glibc-functions/in6addr_loopback.texi @include glibc-functions/inet6_option_alloc.texi @include glibc-functions/inet6_option_append.texi @include glibc-functions/inet6_option_find.texi @@ -5206,14 +5251,8 @@ This list of functions is sorted according to the header that declares them. @c @node Glibc paths.h @c @section Glibc @code{} -@node Glibc poll.h -@section Glibc Extensions to @code{} - -@menu -* ppoll:: -@end menu - -@include glibc-functions/ppoll.texi +@c @node Glibc poll.h +@c @section Glibc Extensions to @code{} @node Glibc printf.h @section Glibc @code{} @@ -5245,15 +5284,11 @@ This list of functions is sorted according to the header that declares them. * pthread_attr_getsigmask_np:: * pthread_attr_setsigmask_np:: * pthread_clockjoin_np:: -* pthread_cond_clockwait:: * pthread_getaffinity_np:: * pthread_getattr_default_np:: * pthread_getattr_np:: * pthread_getname_np:: * pthread_kill_other_threads_np:: -* pthread_mutex_clocklock:: -* pthread_rwlock_clockrdlock:: -* pthread_rwlock_clockwrlock:: * pthread_rwlockattr_getkind_np:: * pthread_rwlockattr_setkind_np:: * pthread_setaffinity_np:: @@ -5269,15 +5304,11 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/pthread_attr_getsigmask_np.texi @include glibc-functions/pthread_attr_setsigmask_np.texi @include glibc-functions/pthread_clockjoin_np.texi -@include glibc-functions/pthread_cond_clockwait.texi @include glibc-functions/pthread_getaffinity_np.texi @include glibc-functions/pthread_getattr_default_np.texi @include glibc-functions/pthread_getattr_np.texi @include glibc-functions/pthread_getname_np.texi @include glibc-functions/pthread_kill_other_threads_np.texi -@include glibc-functions/pthread_mutex_clocklock.texi -@include glibc-functions/pthread_rwlock_clockrdlock.texi -@include glibc-functions/pthread_rwlock_clockwrlock.texi @include glibc-functions/pthread_rwlockattr_getkind_np.texi @include glibc-functions/pthread_rwlockattr_setkind_np.texi @include glibc-functions/pthread_setaffinity_np.texi @@ -6037,14 +6068,8 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/getfilecon.texi @include glibc-functions/lgetfilecon.texi -@node Glibc semaphore.h -@section Glibc Extensions to @code{} - -@menu -* sem_clockwait:: -@end menu - -@include glibc-functions/sem_clockwait.texi +@c @node Glibc semaphore.h +@c @section Glibc Extensions to @code{} @c @node Glibc setjmp.h @c @section Glibc Extensions to @code{} @@ -6156,7 +6181,6 @@ This list of functions is sorted according to the header that declares them. @section Glibc Extensions to @code{} @menu -* asprintf:: * cuserid:: * clearerr_unlocked:: * fcloseall:: @@ -6179,10 +6203,8 @@ This list of functions is sorted according to the header that declares them. * sys_errlist:: * sys_nerr:: * tmpnam_r:: -* vasprintf:: @end menu -@include glibc-functions/asprintf.texi @include glibc-functions/cuserid.texi @include glibc-functions/clearerr_unlocked.texi @include glibc-functions/fcloseall.texi @@ -6205,7 +6227,6 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/sys_errlist.texi @include glibc-functions/sys_nerr.texi @include glibc-functions/tmpnam_r.texi -@include glibc-functions/vasprintf.texi @node Glibc stdlib.h @section Glibc Extensions to @code{} @@ -6227,22 +6248,18 @@ This list of functions is sorted according to the header that declares them. * jrand48_r:: * lcong48_r:: * lrand48_r:: -* mkostemp:: * mkostemps:: * mkstemps:: * mrand48_r:: * nrand48_r:: * on_exit:: -* ptsname_r:: * qecvt:: * qecvt_r:: * qfcvt:: * qfcvt_r:: * qgcvt:: -* qsort_r:: * random_r:: * rpmatch:: -* secure_getenv:: * seed48_r:: * setstate_r:: * srand48_r:: @@ -6275,22 +6292,18 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/jrand48_r.texi @include glibc-functions/lcong48_r.texi @include glibc-functions/lrand48_r.texi -@include glibc-functions/mkostemp.texi @include glibc-functions/mkostemps.texi @include glibc-functions/mkstemps.texi @include glibc-functions/mrand48_r.texi @include glibc-functions/nrand48_r.texi @include glibc-functions/on_exit.texi -@include glibc-functions/ptsname_r.texi @include glibc-functions/qecvt.texi @include glibc-functions/qecvt_r.texi @include glibc-functions/qfcvt.texi @include glibc-functions/qfcvt_r.texi @include glibc-functions/qgcvt.texi -@include glibc-functions/qsort_r.texi @include glibc-functions/random_r.texi @include glibc-functions/rpmatch.texi -@include glibc-functions/secure_getenv.texi @include glibc-functions/seed48_r.texi @include glibc-functions/setstate_r.texi @include glibc-functions/srand48_r.texi @@ -6311,10 +6324,7 @@ This list of functions is sorted according to the header that declares them. @menu * explicit_bzero:: -* ffsl:: -* ffsll:: * memfrob:: -* memmem:: * mempcpy:: * memrchr:: * rawmemchr:: @@ -6330,10 +6340,7 @@ This list of functions is sorted according to the header that declares them. @end menu @include glibc-functions/explicit_bzero.texi -@include glibc-functions/ffsl.texi -@include glibc-functions/ffsll.texi @include glibc-functions/memfrob.texi -@include glibc-functions/memmem.texi @include glibc-functions/mempcpy.texi @include glibc-functions/memrchr.texi @include glibc-functions/rawmemchr.texi @@ -6622,11 +6629,9 @@ This list of functions is sorted according to the header that declares them. @section Glibc @code{} @menu -* getentropy:: * getrandom:: @end menu -@include glibc-functions/getentropy.texi @include glibc-functions/getrandom.texi @node Glibc sys/reboot.h @@ -6693,13 +6698,11 @@ This list of functions is sorted according to the header that declares them. @section Glibc Extensions to @code{} @menu -* accept4:: * isfdtype:: * recvmmsg:: * sendmmsg:: @end menu -@include glibc-functions/accept4.texi @include glibc-functions/isfdtype.texi @include glibc-functions/recvmmsg.texi @include glibc-functions/sendmmsg.texi @@ -6965,7 +6968,6 @@ This list of functions is sorted according to the header that declares them. * stime:: * strptime_l:: * timelocal:: -* timespec_get:: @end menu @include glibc-functions/clock_adjtime.texi @@ -6974,7 +6976,6 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/stime.texi @include glibc-functions/strptime_l.texi @include glibc-functions/timelocal.texi -@include glibc-functions/timespec_get.texi @c @node Glibc trace.h @c @section Glibc Extensions to @code{} @@ -7007,7 +7008,6 @@ This list of functions is sorted according to the header that declares them. @section Glibc Extensions to @code{} @menu -* _Fork:: * acct:: * brk:: * chroot:: @@ -7015,7 +7015,6 @@ This list of functions is sorted according to the header that declares them. * close_range:: * copy_file_range:: * daemon:: -* dup3:: * eaccess:: * endusershell:: * euidaccess:: @@ -7026,12 +7025,9 @@ This list of functions is sorted according to the header that declares them. * getdtablesize:: * getpagesize:: * getpass:: -* getresgid:: -* getresuid:: * gettid:: * getusershell:: * group_member:: -* pipe2:: * profil:: * revoke:: * sbrk:: @@ -7039,8 +7035,6 @@ This list of functions is sorted according to the header that declares them. * setdomainname:: * sethostid:: * sethostname:: -* setresgid:: -* setresuid:: * setusershell:: * syncfs:: * syscall:: @@ -7048,7 +7042,6 @@ This list of functions is sorted according to the header that declares them. * vhangup:: @end menu -@include glibc-functions/_Fork.texi @include glibc-functions/acct.texi @include glibc-functions/brk.texi @include glibc-functions/chroot.texi @@ -7056,7 +7049,6 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/close_range.texi @include glibc-functions/copy_file_range.texi @include glibc-functions/daemon.texi -@include glibc-functions/dup3.texi @include glibc-functions/eaccess.texi @include glibc-functions/endusershell.texi @include glibc-functions/euidaccess.texi @@ -7067,12 +7059,9 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/getdtablesize.texi @include glibc-functions/getpagesize.texi @include glibc-functions/getpass.texi -@include glibc-functions/getresgid.texi -@include glibc-functions/getresuid.texi @include glibc-functions/gettid.texi @include glibc-functions/getusershell.texi @include glibc-functions/group_member.texi -@include glibc-functions/pipe2.texi @include glibc-functions/profil.texi @include glibc-functions/revoke.texi @include glibc-functions/sbrk.texi @@ -7080,8 +7069,6 @@ This list of functions is sorted according to the header that declares them. @include glibc-functions/setdomainname.texi @include glibc-functions/sethostid.texi @include glibc-functions/sethostname.texi -@include glibc-functions/setresgid.texi -@include glibc-functions/setresuid.texi @include glibc-functions/setusershell.texi @include glibc-functions/syncfs.texi @include glibc-functions/syscall.texi diff --git a/doc/posix-functions/_Fork.texi b/doc/posix-functions/_Fork.texi new file mode 100644 index 0000000000..4110168221 --- /dev/null +++ b/doc/posix-functions/_Fork.texi @@ -0,0 +1,24 @@ +@node _Fork +@section @code{_Fork} +@findex _Fork + +Documentation:@* +@ifinfo +@ref{Creating a Process,,Creating a Process,libc} +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Creating-a-Process.html} +@end ifnotinfo + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on all non-glibc platforms: +glibc 2.33, macOS 14, FreeBSD 13.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.3.0, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize diff --git a/doc/posix-functions/accept4.texi b/doc/posix-functions/accept4.texi new file mode 100644 index 0000000000..ad74412517 --- /dev/null +++ b/doc/posix-functions/accept4.texi @@ -0,0 +1,23 @@ +@node accept4 +@section @code{accept4} +@findex accept4 + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html,,man accept4} + +Gnulib module: accept4 + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +glibc 2.9, macOS 14, FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 4.4. +But the replacement function is not atomic; this matters in multi-threaded +programs that spawn child processes. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +SOCK_CLOEXEC and SOCK_NONBLOCK may not be defined +as they're also significant to the socket() function. +@end itemize diff --git a/doc/posix-functions/asprintf.texi b/doc/posix-functions/asprintf.texi new file mode 100644 index 0000000000..a1c6b7e88c --- /dev/null +++ b/doc/posix-functions/asprintf.texi @@ -0,0 +1,104 @@ +@node asprintf +@section @code{asprintf} +@findex asprintf + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-asprintf.html} + +Documentation: +@itemize +@item +@ifinfo +@ref{Dynamic Output,,Dynamically Allocating Formatted Output,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Dynamic-Output.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/asprintf.3.html,,man asprintf}. +@end itemize + +Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu + +Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}: +@itemize +@item +This function is missing on some platforms: +AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14. +@end itemize + +Portability problems fixed by either Gnulib module @code{vasprintf-posix} or @code{vasprintf-gnu}: +@itemize +@item +This function does not support size specifiers as in C99 (@code{hh}, @code{ll}, +@code{j}, @code{t}, @code{z}) on some platforms: +Cygwin 1.5.24. +@item +This function does not support size specifiers as in C23 (@code{w8}, +@code{w16}, @code{w32}, @code{w64}, @code{wf8}, @code{wf16}, @code{wf32}, +@code{wf64}) on some platforms: +glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. +@item +printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an +incorrect result on some platforms: +AIX 7.3, Solaris 11.4. +@item +This function does not support the @samp{a} and @samp{A} directives on some +platforms: +FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x. +@item +This function does not support the @samp{b} directive, required by ISO C23, +on some platforms: +glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, +AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0. +@item +This function does not support the @samp{F} directive on some platforms: +NetBSD 3.0, Cygwin 1.5.x. +@item +This function does not support the @samp{ls} directive on some platforms: +OpenBSD 4.0, Cygwin 1.5.x, Haiku. +@item +This function does not support precisions in the @samp{ls} directive correctly +on some platforms: +Solaris 11.4. +@item +This function does not support format directives that access arguments in an +arbitrary order, such as @code{"%2$s"}, on some platforms: +NetBSD 3.0. +@item +This function doesn't support the @code{'} flag on some platforms: +NetBSD 3.0, Cygwin 1.5.24. +@item +This function does not round the argument of the @samp{a} directive correctly +on some platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4. +@item +printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded +with zeroes) on some platforms: +Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x. +@item +printf @code{"%#.0x"} or @code{"%#.0X"} with a zero argument yields an +incorrect result (non-empty) on some platforms: +Mac OS X 10.6. +@item +This function produces wrong output for the @samp{lc} directive with a NUL +wide character argument on some platforms: +musl libc 1.2.4. +@item +This function can crash in out-of-memory conditions on some platforms: +FreeBSD 14.0, NetBSD 5.0. +@end itemize + +Portability problems fixed by Gnulib module @code{vasprintf-gnu}: +@itemize +@item +This function does not support the @samp{B} directive on some platforms: +glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@end itemize diff --git a/doc/posix-functions/bind_textdomain_codeset.texi b/doc/posix-functions/bind_textdomain_codeset.texi new file mode 100644 index 0000000000..2b37fe9082 --- /dev/null +++ b/doc/posix-functions/bind_textdomain_codeset.texi @@ -0,0 +1,34 @@ +@node bind_textdomain_codeset +@section @code{bind_textdomain_codeset} +@findex bind_textdomain_codeset + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-bind-textdomain-codeset.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Charset conversion in gettext,,How to specify the output character set gettext uses,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Charset-conversion-in-gettext.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bind_textdomain_codeset.3.html,,man bind_textdomain_codeset}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize diff --git a/doc/posix-functions/bindtextdomain.texi b/doc/posix-functions/bindtextdomain.texi new file mode 100644 index 0000000000..16cab144c7 --- /dev/null +++ b/doc/posix-functions/bindtextdomain.texi @@ -0,0 +1,34 @@ +@node bindtextdomain +@section @code{bindtextdomain} +@findex bindtextdomain + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-bindtextdomain.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Locating gettext catalog,,How to determine which catalog to be used,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Locating-gettext-catalog.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bindtextdomain.3.html,,man bindtextdomain}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize diff --git a/doc/posix-functions/dcgettext.texi b/doc/posix-functions/dcgettext.texi new file mode 100644 index 0000000000..804ce9e8f9 --- /dev/null +++ b/doc/posix-functions/dcgettext.texi @@ -0,0 +1,39 @@ +@node dcgettext +@section @code{dcgettext} +@findex dcgettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dcgettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Translation with gettext,,What has to be done to translate a message?,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dcgettext.3.html,,man dcgettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/dcngettext.texi b/doc/posix-functions/dcngettext.texi new file mode 100644 index 0000000000..549a40cbcb --- /dev/null +++ b/doc/posix-functions/dcngettext.texi @@ -0,0 +1,39 @@ +@node dcngettext +@section @code{dcngettext} +@findex dcngettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dcngettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dcngettext.3.html,,man dcngettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/dgettext.texi b/doc/posix-functions/dgettext.texi new file mode 100644 index 0000000000..2e3116f6ae --- /dev/null +++ b/doc/posix-functions/dgettext.texi @@ -0,0 +1,39 @@ +@node dgettext +@section @code{dgettext} +@findex dgettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dgettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Translation with gettext,,What has to be done to translate a message?,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dgettext.3.html,,man dgettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/dladdr.texi b/doc/posix-functions/dladdr.texi new file mode 100644 index 0000000000..3103d292ac --- /dev/null +++ b/doc/posix-functions/dladdr.texi @@ -0,0 +1,20 @@ +@node dladdr +@section @code{dladdr} +@findex dladdr + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dladdr-3.html} + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dladdr.3.html,,man dladdr} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +Minix 3.1.8, AIX 5.1, Cygwin 1.7.x, mingw, MSVC 14. +@end itemize diff --git a/doc/posix-functions/dngettext.texi b/doc/posix-functions/dngettext.texi new file mode 100644 index 0000000000..fc8830eaf3 --- /dev/null +++ b/doc/posix-functions/dngettext.texi @@ -0,0 +1,39 @@ +@node dngettext +@section @code{dngettext} +@findex dngettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-dngettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/dngettext.3.html,,man dngettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/dup3.texi b/doc/posix-functions/dup3.texi new file mode 100644 index 0000000000..95a04bd044 --- /dev/null +++ b/doc/posix-functions/dup3.texi @@ -0,0 +1,27 @@ +@node dup3 +@section @code{dup3} +@findex dup3 + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html,,man dup3} + +Gnulib module: dup3 + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 4.4. + +@item +This function can crash on some platforms: +Cygwin 1.7.25. + +@item +This function mistakenly succeeds when given two equal file descriptors on some platforms: +@c https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=58266 +NetBSD 10.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/ffsl.texi b/doc/posix-functions/ffsl.texi new file mode 100644 index 0000000000..beb207ccce --- /dev/null +++ b/doc/posix-functions/ffsl.texi @@ -0,0 +1,25 @@ +@node ffsl +@section @code{ffsl} +@findex ffsl + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsl.3.html,,man ffsl} + +Gnulib module: ffsl + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +FreeBSD 5.2.1, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. +@item +This function is declared in @code{} instead of @code{} +on some platforms: +AIX 7.2, Android 13. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is only defined as an inline function on some platforms: +Android 13. +@end itemize diff --git a/doc/posix-functions/ffsll.texi b/doc/posix-functions/ffsll.texi new file mode 100644 index 0000000000..f87c730621 --- /dev/null +++ b/doc/posix-functions/ffsll.texi @@ -0,0 +1,28 @@ +@node ffsll +@section @code{ffsll} +@findex ffsll + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsll.3.html,,man ffsll} + +Gnulib module: ffsll + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +Mac OS X 10.5, FreeBSD 6.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. +@item +This function is declared in @code{} instead of @code{} +on some platforms: +AIX 7.2, Android 13. +@item +This function returns completely wrong values on some platforms: +AIX 7.2 in 32-bit mode. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is only defined as an inline function on some platforms: +Android 13. +@end itemize diff --git a/doc/posix-functions/getentropy.texi b/doc/posix-functions/getentropy.texi new file mode 100644 index 0000000000..f55ea059b7 --- /dev/null +++ b/doc/posix-functions/getentropy.texi @@ -0,0 +1,50 @@ +@node getentropy +@section @code{getentropy} +@findex getentropy + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1134} + +Documentation: +@itemize +@item +@ifinfo +@ref{Unpredictable Bytes,,Generating Unpredictable Bytes,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Unpredictable-Bytes.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/getentropy.3.html,,man getentropy}. +@end itemize + +Gnulib module: getentropy + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +glibc 2.24, Mac OS X 10.11, FreeBSD 11.0, NetBSD 9.3, OpenBSD 5.5, Minix 3.3, AIX 7.1, HP-UX 11.31, Solaris 11.0, Cygwin 1.7.x, mingw, MSVC 14, Android 8.1. +@item +This function is declared in @code{}, not in @code{}, +on some platforms: +macOS 14, Solaris 11.4, Android 9.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize + +@noindent +Although this function is intended to produce random data, the data's +security properties may not be appropriate for your application. +For example, identical ``random'' data streams might be produced by +rebooted virtual machines. If this is of concern you may need to use +additional techniques such as hedging.@footnote{Ristenpart T, Yilek +S@. @url{http://pages.cs.wisc.edu/~rist/papers/sslhedge.pdf, When good +randomness goes bad: virtual machine vulnerabilities and hedging +deployed cryptography}. NDSS 2010.} + +Related modules include @code{getrandom}, which has a more-flexible +but more-complex API, and @code{crypto/gc-random}, which is likely a +better match for code already using the other @code{crypto} APIs. diff --git a/doc/posix-functions/getresgid.texi b/doc/posix-functions/getresgid.texi new file mode 100644 index 0000000000..4ae0cd466e --- /dev/null +++ b/doc/posix-functions/getresgid.texi @@ -0,0 +1,21 @@ +@node getresgid +@section @code{getresgid} +@findex getresgid + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/getresgid.2.html,,man getresgid} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. +@end itemize diff --git a/doc/posix-functions/getresuid.texi b/doc/posix-functions/getresuid.texi new file mode 100644 index 0000000000..d192b7b1b4 --- /dev/null +++ b/doc/posix-functions/getresuid.texi @@ -0,0 +1,21 @@ +@node getresuid +@section @code{getresuid} +@findex getresuid + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/getresuid.2.html,,man getresuid} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. +@end itemize diff --git a/doc/posix-functions/gettext.texi b/doc/posix-functions/gettext.texi new file mode 100644 index 0000000000..f32eb899dd --- /dev/null +++ b/doc/posix-functions/gettext.texi @@ -0,0 +1,39 @@ +@node gettext +@section @code{gettext} +@findex gettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-gettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Translation with gettext,,What has to be done to translate a message?,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Translation-with-gettext.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/gettext.3.html,,man gettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/in6addr_any.texi b/doc/posix-functions/in6addr_any.texi new file mode 100644 index 0000000000..3771366e6e --- /dev/null +++ b/doc/posix-functions/in6addr_any.texi @@ -0,0 +1,24 @@ +@node in6addr_any +@section @code{in6addr_any} +@findex in6addr_any + +Documentation:@* +@ifinfo +@ref{Host Address Data Type,,Host Address Data Type,libc}. +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Host-Address-Data-Type.html}. +@end ifnotinfo + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This constant is missing on some platforms: +Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, mingw, MSVC 14, Android 6.0. +@end itemize diff --git a/doc/posix-functions/in6addr_loopback.texi b/doc/posix-functions/in6addr_loopback.texi new file mode 100644 index 0000000000..0603a6c19e --- /dev/null +++ b/doc/posix-functions/in6addr_loopback.texi @@ -0,0 +1,24 @@ +@node in6addr_loopback +@section @code{in6addr_loopback} +@findex in6addr_loopback + +Documentation:@* +@ifinfo +@ref{Host Address Data Type,,Host Address Data Type,libc}. +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Host-Address-Data-Type.html}. +@end ifnotinfo + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This constant is missing on some platforms: +Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, mingw, MSVC 14, Android 6.0. +@end itemize diff --git a/doc/posix-functions/memmem.texi b/doc/posix-functions/memmem.texi new file mode 100644 index 0000000000..55494a85a5 --- /dev/null +++ b/doc/posix-functions/memmem.texi @@ -0,0 +1,57 @@ +@node memmem +@section @code{memmem} +@findex memmem + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-memmem-3.html} + +Documentation: +@itemize +@item +@ifinfo +@ref{Search Functions,,Search Functions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Search-Functions.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/memmem.3.html,,man memmem}. +@end itemize + +Gnulib module: memmem or memmem-simple + +Both modules implement the same replacement for the @code{memmem} function +with the @code{memmem} module providing a replacement on more platforms where +the existing @code{memmem} function has a quadratic worst-case complexity. + +Portability problems fixed by either Gnulib module @code{memmem-simple} +or @code{memmem}: +@itemize +@item +This function is missing on some platforms: +Mac OS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, Minix 3.1.8, HP-UX 11, Solaris 10, mingw, MSVC 14. +@item +This function has reversed arguments on some older platforms: +Linux libc 5.0.9 +@item +This function can trigger false positives for long periodic needles on +some platforms: +glibc 2.12, Cygwin 1.7.7. + +@item +This function returns incorrect values in some cases, such as when +given an empty needle: +glibc <= 2.0, macOS 14, AIX 7.2, Solaris 11.3, Cygwin 1.5.x. +@end itemize + +Performance problems fixed by Gnulib module @code{memmem}: +@itemize +@item +This function has quadratic instead of linear worst-case complexity on some +platforms: +glibc 2.8, macOS 14, FreeBSD 11.4, NetBSD 8.2, OpenBSD 6.6, AIX 7.2, Solaris 11.4, Cygwin 1.5.x. +Note for small needles the replacement may be slower. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/mkostemp.texi b/doc/posix-functions/mkostemp.texi new file mode 100644 index 0000000000..2e6b917072 --- /dev/null +++ b/doc/posix-functions/mkostemp.texi @@ -0,0 +1,28 @@ +@node mkostemp +@section @code{mkostemp} +@findex mkostemp + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/mkostemp.3.html,,man mkostemp} + +Gnulib module: mkostemp + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +glibc 2.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.5, mingw, MSVC 14, Android 5.1. +@item +This function is declared in @code{} instead of @code{} +on some platforms: +macOS 14. +@item +On platforms where @code{off_t} is a 32-bit type, @code{mkostemp} may not work +correctly to create files larger than 2 GB@. (Cf. @code{AC_SYS_LARGEFILE}.) +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize + +The gnulib module @code{clean-temp} can create temporary files that will not +be left behind after signals such as SIGINT. diff --git a/doc/posix-functions/ngettext.texi b/doc/posix-functions/ngettext.texi new file mode 100644 index 0000000000..5e61acca4b --- /dev/null +++ b/doc/posix-functions/ngettext.texi @@ -0,0 +1,39 @@ +@node ngettext +@section @code{ngettext} +@findex ngettext + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-ngettext.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Advanced gettext functions,,Additional functions for more complicated situations,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Advanced-gettext-functions.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ngettext.3.html,,man ngettext}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@item +This function does not treat a @code{LANGUAGE} environment variable +with an empty value like an unset @code{LANGUAGE} environment variable +on some platforms: +NetBSD 10.0. +@end itemize diff --git a/doc/posix-functions/pipe2.texi b/doc/posix-functions/pipe2.texi new file mode 100644 index 0000000000..5a1d9b115f --- /dev/null +++ b/doc/posix-functions/pipe2.texi @@ -0,0 +1,27 @@ +@node pipe2 +@section @code{pipe2} +@findex pipe2 + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html,,man pipe2} + +Gnulib module: pipe2 + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 2.2. +But the replacement function is not atomic; this matters in multi-threaded +programs that spawn child processes. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function crashes rather than failing with @code{EMFILE} if no +resources are left on some platforms: +Cygwin 1.7.9. +@end itemize + +Note: This function portably supports the @code{O_NONBLOCK} flag only if the +gnulib module @code{nonblocking} is also used. diff --git a/doc/posix-functions/ppoll.texi b/doc/posix-functions/ppoll.texi new file mode 100644 index 0000000000..2b85a00223 --- /dev/null +++ b/doc/posix-functions/ppoll.texi @@ -0,0 +1,18 @@ +@node ppoll +@section @code{ppoll} +@findex ppoll + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/ppoll.2.html,,man ppoll} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +glibc 2.3.6, macOS 14, FreeBSD 6.4, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 10, Cygwin 1.7.x, mingw, MSVC 14, Android 4.3. +@end itemize diff --git a/doc/posix-functions/pthread_cond_clockwait.texi b/doc/posix-functions/pthread_cond_clockwait.texi new file mode 100644 index 0000000000..0f6c7d3bf1 --- /dev/null +++ b/doc/posix-functions/pthread_cond_clockwait.texi @@ -0,0 +1,30 @@ +@node pthread_cond_clockwait +@section @code{pthread_cond_clockwait} +@findex pthread_cond_clockwait + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1485#c5385} + +Documentation: +@itemize +@item +@ifinfo +@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, +@end ifnotinfo +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. +@end itemize diff --git a/doc/posix-functions/pthread_mutex_clocklock.texi b/doc/posix-functions/pthread_mutex_clocklock.texi new file mode 100644 index 0000000000..cb9d204cef --- /dev/null +++ b/doc/posix-functions/pthread_mutex_clocklock.texi @@ -0,0 +1,18 @@ +@node pthread_mutex_clocklock +@section @code{pthread_mutex_clocklock} +@findex pthread_mutex_clocklock + +Documentation: --- + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. +@end itemize diff --git a/doc/posix-functions/pthread_rwlock_clockrdlock.texi b/doc/posix-functions/pthread_rwlock_clockrdlock.texi new file mode 100644 index 0000000000..a2d77da942 --- /dev/null +++ b/doc/posix-functions/pthread_rwlock_clockrdlock.texi @@ -0,0 +1,30 @@ +@node pthread_rwlock_clockrdlock +@section @code{pthread_rwlock_clockrdlock} +@findex pthread_rwlock_clockrdlock + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} + +Documentation: +@itemize +@item +@ifinfo +@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, +@end ifnotinfo +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. +@end itemize diff --git a/doc/posix-functions/pthread_rwlock_clockwrlock.texi b/doc/posix-functions/pthread_rwlock_clockwrlock.texi new file mode 100644 index 0000000000..c13e1f3e05 --- /dev/null +++ b/doc/posix-functions/pthread_rwlock_clockwrlock.texi @@ -0,0 +1,30 @@ +@node pthread_rwlock_clockwrlock +@section @code{pthread_rwlock_clockwrlock} +@findex pthread_rwlock_clockwrlock + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} + +Documentation: +@itemize +@item +@ifinfo +@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, +@end ifnotinfo +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. +@end itemize diff --git a/doc/posix-functions/ptsname_r.texi b/doc/posix-functions/ptsname_r.texi new file mode 100644 index 0000000000..c619d72519 --- /dev/null +++ b/doc/posix-functions/ptsname_r.texi @@ -0,0 +1,51 @@ +@node ptsname_r +@section @code{ptsname_r} +@findex ptsname_r + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=508} + +Documentation: +@itemize +@item +@ifinfo +@ref{Allocation,,Allocating Pseudo-Terminals,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Allocation.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ptsname_r.3.html,,man ptsname_r}. +@end itemize + +Gnulib module: ptsname_r + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +Mac OS X 10.12, FreeBSD 12.0, NetBSD 5.0, OpenBSD 6.7, Minix 3.1.8, +AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.9, mingw, +MSVC 14. +@item +When this function fails, it returns -1 instead of the error code +on some platforms: +macOS 14, FreeBSD 14.0, Android 4.3. +@item +When this function fails with ERANGE, it stores an empty string as result +on some platforms: +NetBSD 10.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +When this function fails, it returns 0 and stores an empty string as result +on some platforms: +Cygwin 2.9. +@end itemize + +Note: Portable programs should expect to find the error code as the +return value of this function, not as the value of @code{errno}. +This is needed for compatibility with musl libc and with the +forthcoming POSIX Issue 8. diff --git a/doc/posix-functions/qsort_r.texi b/doc/posix-functions/qsort_r.texi new file mode 100644 index 0000000000..a2a7735dea --- /dev/null +++ b/doc/posix-functions/qsort_r.texi @@ -0,0 +1,21 @@ +@node qsort_r +@section @code{qsort_r} +@findex qsort_r + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/qsort_r.3.html,,man qsort_r} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +glibc 2.7, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. +@item +This function has an incompatible API on some platforms: +FreeBSD 13.2. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/reallocarray.texi b/doc/posix-functions/reallocarray.texi new file mode 100644 index 0000000000..7b955541f9 --- /dev/null +++ b/doc/posix-functions/reallocarray.texi @@ -0,0 +1,37 @@ +@node reallocarray +@section @code{reallocarray} +@findex reallocarray + +POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/reallocarray.html} + +Documentation: +@itemize +@item +@ifinfo +@ref{Changing Block Size,,Changing the Size of a Block,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Changing-Block-Size.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/reallocarray.3.html,,man reallocarray}. +@end itemize + +Gnulib module: reallocarray + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +glibc 2.25, macOS 14, FreeBSD 10, NetBSD 7, OpenBSD 5.5, Minix 3.3.0, AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0. + +@item +On some platforms, @code{reallocarray (n, s)} can succeed even if +multiplying @code{n} by @code{s} would exceed @code{PTRDIFF_MAX}, +which can lead to undefined behavior later: +FreeBSD 13, NetBSD 9, OpenBSD 6, musl 1.2. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/secure_getenv.texi b/doc/posix-functions/secure_getenv.texi new file mode 100644 index 0000000000..475cb5df69 --- /dev/null +++ b/doc/posix-functions/secure_getenv.texi @@ -0,0 +1,29 @@ +@node secure_getenv +@section @code{secure_getenv} +@findex secure_getenv + +Documentation: +@itemize +@item +@ifinfo +@ref{Environment Access,,Environment Access,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Environment-Access.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/secure_getenv.3.html,,man secure_getenv}. +@end itemize + +Gnulib module: secure_getenv + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many non-glibc platforms: +glibc 2.16, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 5.2, Minix 3.2.0, AIX 7.1, HP-UX 11, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/sem_clockwait.texi b/doc/posix-functions/sem_clockwait.texi new file mode 100644 index 0000000000..35fa3520b9 --- /dev/null +++ b/doc/posix-functions/sem_clockwait.texi @@ -0,0 +1,30 @@ +@node sem_clockwait +@section @code{sem_clockwait} +@findex sem_clockwait + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1216} + +Documentation: +@itemize +@item +@ifinfo +@ref{Non-POSIX Extensions,,Non-POSIX Extensions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Non_002dPOSIX-Extensions.html}, +@end ifnotinfo +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 6.7, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 29. +@end itemize diff --git a/doc/posix-functions/setresgid.texi b/doc/posix-functions/setresgid.texi new file mode 100644 index 0000000000..d28d7a3597 --- /dev/null +++ b/doc/posix-functions/setresgid.texi @@ -0,0 +1,21 @@ +@node setresgid +@section @code{setresgid} +@findex setresgid + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/setresgid.2.html,,man setresgid} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. +@end itemize diff --git a/doc/posix-functions/setresuid.texi b/doc/posix-functions/setresuid.texi new file mode 100644 index 0000000000..fc238de0f2 --- /dev/null +++ b/doc/posix-functions/setresuid.texi @@ -0,0 +1,21 @@ +@node setresuid +@section @code{setresuid} +@findex setresuid + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1344} + +Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/setresuid.2.html,,man setresuid} + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14. +@end itemize diff --git a/doc/posix-functions/textdomain.texi b/doc/posix-functions/textdomain.texi new file mode 100644 index 0000000000..d2682f2966 --- /dev/null +++ b/doc/posix-functions/textdomain.texi @@ -0,0 +1,34 @@ +@node textdomain +@section @code{textdomain} +@findex textdomain + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-textdomain.html} + +Specified in POSIX.1-2024. +Draft specification:@* @url{https://www.austingroupbugs.net/view.php?id=1122} + +Documentation: +@itemize +@item +@ifinfo +@ref{Locating gettext catalog,,How to determine which catalog to be used,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Locating-gettext-catalog.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/textdomain.3.html,,man textdomain}. +@end itemize + +Gnulib module: --- + +Portability problems fixed by Gnulib: +@itemize +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +This function is missing on some platforms: +macOS 14, FreeBSD 14.0, OpenBSD 6.7, Minix 3.1.8, HP-UX 11, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize diff --git a/doc/posix-functions/timespec_get.texi b/doc/posix-functions/timespec_get.texi new file mode 100644 index 0000000000..1313e0b9c4 --- /dev/null +++ b/doc/posix-functions/timespec_get.texi @@ -0,0 +1,18 @@ +@node timespec_get +@section @code{timespec_get} +@findex timespec_get + +ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.29.2.6 + +Gnulib module: timespec_get + +Portability problems fixed by Gnulib: +@itemize +@item +This function is missing on many platforms: +glibc 2.15, macOS 10.14, FreeBSD 11.0, NetBSD 7.1, OpenBSD 6.0, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff --git a/doc/posix-functions/vasprintf.texi b/doc/posix-functions/vasprintf.texi new file mode 100644 index 0000000000..84b7bd8f16 --- /dev/null +++ b/doc/posix-functions/vasprintf.texi @@ -0,0 +1,104 @@ +@node vasprintf +@section @code{vasprintf} +@findex vasprintf + +LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vasprintf.html} + +Documentation: +@itemize +@item +@ifinfo +@ref{Variable Arguments Output,,Variable Arguments Output Functions,libc}, +@end ifinfo +@ifnotinfo +@url{https://www.gnu.org/software/libc/manual/html_node/Variable-Arguments-Output.html}, +@end ifnotinfo +@item +@uref{https://www.kernel.org/doc/man-pages/online/pages/man3/vasprintf.3.html,,man vasprintf}. +@end itemize + +Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu + +Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}: +@itemize +@item +This function is missing on some platforms: +AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14. +@end itemize + +Portability problems fixed by either Gnulib module @code{vasprintf-posix} or @code{vasprintf-gnu}: +@itemize +@item +This function does not support size specifiers as in C99 (@code{hh}, @code{ll}, +@code{j}, @code{t}, @code{z}) on some platforms: +Cygwin 1.5.24. +@item +This function does not support size specifiers as in C23 (@code{w8}, +@code{w16}, @code{w32}, @code{w64}, @code{wf8}, @code{wf16}, @code{wf32}, +@code{wf64}) on some platforms: +glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. +@item +printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an +incorrect result on some platforms: +AIX 7.3, Solaris 11.4. +@item +This function does not support the @samp{a} and @samp{A} directives on some +platforms: +FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x. +@item +This function does not support the @samp{b} directive, required by ISO C23, +on some platforms: +glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, +AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0. +@item +This function does not support the @samp{F} directive on some platforms: +NetBSD 3.0, Cygwin 1.5.x. +@item +This function does not support the @samp{ls} directive on some platforms: +OpenBSD 4.0, Cygwin 1.5.x, Haiku. +@item +This function does not support precisions in the @samp{ls} directive correctly +on some platforms: +Solaris 11.4. +@item +This function does not support format directives that access arguments in an +arbitrary order, such as @code{"%2$s"}, on some platforms: +NetBSD 3.0. +@item +This function doesn't support the @code{'} flag on some platforms: +NetBSD 3.0, Cygwin 1.5.24. +@item +This function does not round the argument of the @samp{a} directive correctly +on some platforms: +macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4. +@item +printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded +with zeroes) on some platforms: +Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x. +@item +printf @code{"%#.0x"} or @code{"%#.0X"} with a zero argument yields an +incorrect result (non-empty) on some platforms: +Mac OS X 10.6. +@item +This function produces wrong output for the @samp{lc} directive with a NUL +wide character argument on some platforms: +musl libc 1.2.4. +@item +This function can crash in out-of-memory conditions on some platforms: +FreeBSD 14.0, NetBSD 5.0. +@end itemize + +Portability problems fixed by Gnulib module @code{vasprintf-gnu}: +@itemize +@item +This function does not support the @samp{B} directive on some platforms: +glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0. +@end itemize + +Portability problems not fixed by Gnulib: +@itemize +@item +The @code{%m} directive is not portable, use @code{%s} mapped to an +argument of @code{strerror(errno)} (or a version of @code{strerror_r}) +instead. +@end itemize