+2013-05-22 Eric Blake <eblake@redhat.com>
+
+ getgroups: document portability issues
+ * doc/glibc-functions/initgroups.texi (initgroups): Mention
+ multithread safety.
+ * doc/posix-functions/getpwuid.texi (getpwuid): Likewise.
+ * doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise.
+ * doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention
+ getugroups.
+ * doc/posix-functions/getgroups.texi (getgroups): Mention
+ multithread safety and mgetgroups.
+
2013-05-22 Bernhard Voelker <mail@bernhard-voelker.de>
test-lchown, test-chown: also skip test if chown fails with EPERM
This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, BeOS.
@end itemize
+
+The Gnulib module @code{getugroups} provides a similar API.
Portability problems not fixed by Gnulib:
@itemize
@item
+This function is unsafe to call between @code{fork} and @code{exec} if
+the parent process is multi-threaded. Instead, use @code{getgroups} or
+@code{getgrouplist} (or use the gnulib module @code{mgetgroups})
+before forking, and @code{setgroups} in the child.
+@item
This function is missing on some platforms:
mingw, MSVC 9, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
+This function is unsafe to call between @code{fork} and @code{exec} if
+the parent process is multi-threaded.
+@item
It is unspecified whether the effective group id will be included in
the returned list, nor whether the list will be sorted in any
particular order. For that matter, some platforms include the
effective group id twice, if it is also a member of the current
supplemental group ids.
@end itemize
+
+The Gnulib module @code{mgetgroups} provides a similar API.
Portability problems not fixed by Gnulib:
@itemize
@item
+This function is unsafe to call between @code{fork} and @code{exec} if
+the parent process is multi-threaded. Instead, use @code{getpwuid_r}
+prior to forking.
+@item
This function is missing on some platforms:
mingw, MSVC 9.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
+This function is unsafe to call between @code{fork} and @code{exec} if
+the parent process is multi-threaded. Use it prior to forking.
+@item
This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
@end itemize