1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-13 02:42:48 +03:00
Commit Graph

134 Commits

Author SHA1 Message Date
Paul Eggert
aa459ef443 reallocarray: minor fixes
* doc/glibc-functions/reallocarray.texi: Update version numbers.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Don't trust _cv_ contents.
* modules/reallocarray (License): Change from GPL to LGPL.
* tests/test-reallocarray.c (main): Fix ENOMEM typo.
Indent properly and don't use tabs.
2017-08-13 11:02:40 -07:00
Darshit Shah
98756762a3 reallocarray: New module
reallocarray is a new function in glibc 2.26 to safely allocate an array
of memory locations with integer overflow protection.
* MODULES.html.sh: Add reallocarray.
* doc/glibc-functions/reallocarray.texi: Documentation for reallocarray.
* lib/reallocarray.c: New file to implement module reallocarray.
* lib/stdlib.in.h: Add function declarations for reallocarray.
* m4/reallocarray.m4: New file.
* m4/stdlib_h.m4: Declare reallocarray.
* modules/reallocarray: New file.
* modules/reallocarray-test: New file.
* modules/stdlib: Coerce stdlib.h to export reallocarray.
* tests/test-reallocarray.c: New test.
2017-08-13 11:02:40 -07:00
Paul Eggert
276416a1ae explicit_bzero: new module
The explicit_bzero function has been added to glibc.
This module is intended to supports its use in GNU programs.
* doc/glibc-functions/explicit_bzero.texi, lib/explicit_bzero.c:
* m4/explicit_bzero.m4, modules/explicit_bzero:
New files.
* doc/gnulib.texi (Glibc string.h): Link to new doc.
* lib/string.in.h (explicit_bzero): Declare.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add defaults for it.
* modules/string (string.h): Substitute its vars.
2017-07-16 07:27:49 -07:00
Bruno Haible
231fb8c807 getdtablesize: Add minimal support for OpenVMS.
Reported by John E. Malmberg <wb8tyw@qsl.net>.

* modules/getdtablesize (Description): Fix.
* lib/getdtablesize.c: Fix comment.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Don't replace the
getdtablesize() function, even though the test fails.
* doc/glibc-functions/getdtablesize.texi: Reference SUSv2. Describe
limitation on OpenVMS.
2017-07-15 17:00:37 +02:00
Bruno Haible
8fb59b8fac doc: Update for MSVC 14.
* doc/posix-headers/*.texi: Add info about MSVC 14.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2017-07-06 01:15:49 +02:00
Bruno Haible
dfba158b2a *printf: Work around rounding bug on Mac OS X.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Test for Mac OS X 10.12 bug.
* doc/posix-functions/*printf.texi: Mention the rounding bugs of
Mac OS X and FreeBSD.
* doc/glibc-functions/*printf.texi: Likewise.
2017-04-22 16:27:45 +02:00
Bruno Haible
9c84fea634 sethostname: Update doc.
* doc/glibc-functions/sethostname.texi: Mention differing prototype on
Mac OS X.
2017-04-22 14:39:09 +02:00
Paul Eggert
174653f460 sys_types: fix Texinfo typos
* doc/glibc-functions/gnu_dev_major.texi:
* doc/glibc-functions/gnu_dev_makedev.texi:
* doc/glibc-functions/gnu_dev_minor.texi: Fix typos.
2016-10-26 18:11:57 -07:00
Eric Blake
a512e04112 sys_types: avoid glibc 2.25 warnings about major()
glibc 2.25 is deprecating the namespace pollution of <sys/types.h>
injecting major(), minor(), and makedev() into the compilation
environment, with a warning that insists that users include
<sys/sysmacros.h> instead.  However, because the expansion of
AC_HEADER_MAJOR didn't bother checking sys/sysmacros.h until
after probing whether sys/types.h pollutes the namespace, it was
not defining MAJOR_IN_SYSMACROS, with the result that code
compiled with -Werror chokes on the deprecation warnings because
it was not including sysmacros.h.

Backport the autoconf fix (see autoconf commit e17a30e98), so that
gnulib projects avoid the warnings even when using older autoconf.

* m4/sys_types_h.m4 (AC_HEADER_MAJOR): Replace broken version in
older autoconf.
* doc/posix-headers/sys_types.texi (sys/types.h): Document fix.
* doc/glibc-functions/gnu_dev_major.texi (gnu_dev_major): Likewise.
* doc/glibc-functions/gnu_dev_makedev.texi (gnu_dev_makedev): Likewise.
* doc/glibc-functions/gnu_dev_minor.texi (gnu_dev_minor): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2016-09-15 12:40:24 -05:00
Bruno Haible
b117e55e41 secure_getenv: Port to many more platforms.
* m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV): Also check for get*id
functions.
* lib/secure_getenv.c (secure_getenv): Add alternate implementations
for non-BSD Unix platforms and for native Windows.
* doc/glibc-functions/secure_getenv.texi: Remove known issue.
Prompted by a request from Nikos Mavrogiannopoulos.
2016-05-29 12:56:52 +02:00
Pino Toscano
f982bc8df2 accept4-tests: fix to avoid non portable flags
* tests/test-accept4.c (main): Pass only SOCK_* flags to accept4(),
as they are the only documented ones, and passing others may trigger
EINVAL (seen on FreeBSD 10.1-RELEASE).
* doc/glibc-functions/accept4.texi: Mention that we don't provide
the SOCK_CLOEXEC or SOCK_NONBLOCK defines.
2015-10-12 12:32:53 +01:00
Paul Eggert
b4d1637b79 mgetgroups: port to strict OS X
* doc/glibc-functions/getgrouplist.texi (getgrouplist):
Document the getgrouplist problem.
* lib/mgetgroups.c (getgrouplist_gids) [HAVE_GETGROUPLIST]:
New macro.
(mgetgroups): Use it.
* m4/mgetgroups.m4 (gl_MGETGROUPS):
Check for OS X signature for getgrouplist.
2015-06-29 08:03:48 -07:00
Pádraig Brady
98aa8776dd file-has-acl: fix build on Mac OS X 10
This reverts commit f1b37e3a which doesn't work on Mac OS X >= 10.4
which has an incompatible 6 parameter getxattr() call.

* doc/glibc-functions/getxattr.texi: Mention the divergent getxattr()
call on Mac OS X >= 10.4.
* doc/glibc-functions/fgetxattr.texi: Likewise.
* lib/file-has-acl.c: Revert to more complete combined check.
* m4/acl.m4 (gl_FILE_HAS_ACL): Likewise.
Reported by Jack Howarth.
2015-06-02 01:12:34 +01:00
Eric Blake
0f4fa16dfd error: document all entry points provided
Based on a report by Mohammad Akhlaghi.

* doc/glibc-functions/error_print_progname.texi
(error_print_progname): Mention the error module.
* doc/glibc-functions/error_at_line.texi (error_at_line):
Likewise.
* doc/glibc-functions/error_message_count.texi
(error_message_count): Likewise.
* doc/glibc-functions/error_one_per_line.texi
(error_one_per_line): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2015-03-09 09:51:29 -06:00
Paul Eggert
62667e387b getdtablesize: port better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00112.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize): Mention bug.
* lib/getdtablesize.c (getdtablesize): Don't fall back on _SC_OPEN_MAX.
Instead, just use getrlimit, taking care to avoid Cygwin bug.

dup2, fcntl: cross-compile better for Android
2015-02-20 10:54:03 -08:00
Paul Eggert
5e2516d4aa getdtablesize, dup2, fcntl: port to Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00092.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize):
Mention that getdtablesize doesn't work on Android.
* lib/getdtablesize.c: Use getrlimit substitute only if
getdtablesize is declared.  This should suffice for Cygwin
while not breaking Android.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Prefer sysconf (_SC_OPEN_MAX) to getdtablesize, as the former is
standardized but the latter is not, and sysconf works on Android.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE):
Also check that getdtablesize is declared.
This removes the need for a special case for Android.
2015-02-16 21:40:49 -08:00
Paul Eggert
1ce0e7dc09 qsort_r: new module, for GNU-style qsort_r
This works even on FreeBSD, which has an incompatible qsort_r API.
* MODULES.html.sh: Add it.
* doc/glibc-functions/qsort_r.texi: It's now supported.
* lib/qsort.c: New file, taken from glibc with minor changes
inside "#ifndef _LIBC" and with an unnecessary "#include <alloca.h>"
removed.
* lib/qsort_r.c: New file, compiled only on FreeBSD.
* lib/stdlib.in.h (qsort_r): Declare in the usual way.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS):
* modules/qsort_r, modules/qsort_r-tests: New files.
* modules/stdlib (Makefile): Set up its defaults.
* tests/test-qsort_r.c: New file.
2014-08-29 13:49:52 -07:00
Eric Blake
fdd1b511c5 dup2, dup3: work around another cygwin crasher
Cygwin 1.7.25 can crash due to an off-by-one bug on an attempt to
duplicate a file into the current RLIMIT_NOFILE soft limit, when
that limit is smaller than the hard limit.  The intent in the
cygwin code was to allow the dup and auto-increase the soft limit,
which is itself questionable (and which we work around in the
gnulib getdtablesize module); but avoiding the crash is worth
doing even if the soft limit semantics are wrong.

http://cygwin.com/ml/cygwin/2013-09/msg00397.html
http://cygwin.com/ml/cygwin-developers/2013-q3/msg00010.html

* m4/dup2.m4 (gl_FUNC_DUP2): Expose the bug.
* m4/dup3.m4 (gl_FUNC_DUP3): Likewise.
* tests/test-dup2.c (main): Likewise.
* lib/dup2.c (rpl_dup2): Use setdtablesize to avoid it.
* lib/dup3.c (dup3): Likewise.
* doc/posix-functions/dup2.texi (dup2): Document it.
* doc/glibc-functions/dup3.texi (dup3): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-26 13:16:04 -06:00
Eric Blake
3bd0d48db8 getdtablesize: work around cygwin issue
Cygwin 1.7.25 has a bug that even though it claims to support
RLIMIT_NOFILE inheritance, there is no enforcement of the soft
limit, and getdtablesize() automatically grows until it reaches
the hard limit which cannot be changed by setrlimit().  Best is
to just treat things as an invariant limit, as several other
modules assume that getdtablesize() will not change without an
intervening setrlimit().

* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Detect problem.
* modules/getdtablesize (configure.ac): Build replacement.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set up a witness.
* modules/unistd (Makefile.am): Expose the witness.
* lib/unistd.in.h (getdtablesize): Declare replacement.
* lib/getdtablesize.c (rpl_getdtablesize): Work around it.
* tests/test-getdtablesize.c (main): Test it.
* doc/glibc-functions/getdtablesize.texi (getdtablesize): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-09-26 13:16:03 -06:00
Eric Blake
e28fbd787c getgroups: document portability issues
Because I actually managed to hit deadlock in libvirt's child
process due to glibc's mutex use in user database lookup, I
figured it is worth documenting the issue for others to be
aware of when writing a privileged multithreaded parent app
that spawns child processes owned by non-privileged ids.

* 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.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-05-22 14:21:36 -06:00
Paul Eggert
7517e2fd5e secure_getenv: new module
* MODULES.html.sh (Extra functions based on ANSI C 89):
Add secure_getenv.
* doc/glibc-functions/secure_getenv.texi: New file.
* doc/gnulib.texi: Include it.
* lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv:
New files.
* lib/stdlib.in.h (secure_getenv): New decl.
* m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS):
* modules/stdlib (stdlib.h):
Add secure_getenv checks.
2013-02-04 20:35:19 -08:00
Bruno Haible
06b335ade6 Write "Mac OS X" instead of "MacOS X".
* README: Write "Mac OS X" instead of "MacOS X".
* build-aux/bootstrap: Likewise.
* build-aux/install-reloc: Likewise.
* lib/acl-internal.h: Likewise.
* lib/acl_entries.c: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/config.charset: Likewise.
* lib/copy-acl.c: Likewise.
* lib/csharpexec.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fflush.c: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/filemode.h: Likewise.
* lib/fpurge.c: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freading.c: Likewise.
* lib/freadptr.c: Likewise.
* lib/freadseek.c: Likewise.
* lib/fseeko.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fsusage.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
* lib/get-rusage-as.c: Likewise.
* lib/get-rusage-data.c: Likewise.
* lib/getdomainname.c: Likewise.
* lib/idpriv-drop.c: Likewise.
* lib/idpriv-droptemp.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/locale.in.h: Likewise.
* lib/localename.c: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/nproc.c: Likewise.
* lib/passfd.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/set-mode-acl.c: Likewise.
* lib/signal.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/strtod.c: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/tcgetsid.c: Likewise.
* lib/unistd.in.h: Likewise.
* lib/unlockpt.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/vma-iter.c: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/acl.m4: Likewise.
* m4/acosl.m4: Likewise.
* m4/asinl.m4: Likewise.
* m4/atanl.m4: Likewise.
* m4/c-stack.m4: Likewise.
* m4/cosl.m4: Likewise.
* m4/expl.m4: Likewise.
* m4/extensions.m4: Likewise.
* m4/fdatasync.m4: Likewise.
* m4/fmal.m4: Likewise.
* m4/frexp.m4: Likewise.
* m4/frexpf.m4: Likewise.
* m4/frexpl.m4: Likewise.
* m4/fsusage.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getloadavg.m4: Likewise.
* m4/getopt.m4: Likewise.
* m4/gettext.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/intdiv0.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/ldexpl.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/locale-ar.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
* m4/locale-zh.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/logl.m4: Likewise.
* m4/mathfunc.m4: Likewise.
* m4/minus-zero.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/mmap-anon.m4: Likewise.
* m4/multiarch.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/nocrash.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/printf-frexpl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/signbit.m4: Likewise.
* m4/sinl.m4: Likewise.
* m4/sqrtl.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/tanl.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/ttyname_r.m4: Likewise.
* m4/unlink.m4: Likewise.
* m4/visibility.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* tests/minus-zero.h: Likewise.
* tests/test-alloca-opt.c: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-fdatasync.c: Likewise.
* tests/test-file-has-acl.sh: Likewise.
* tests/test-flock.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-malloca.c: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-openpty.c: Likewise.
* tests/test-posix_openpt.c: Likewise.
* tests/test-ptsname.c: Likewise.
* tests/test-ptsname_r.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-select.h: Likewise.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-strtod.c: Likewise.
* tests/test-time.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* doc/acl-resources.txt: Likewise.
* doc/**/*.texi: Likewise.
Reported by Max Horn <max@quendi.de>.
2012-06-22 13:28:15 +02:00
Eric Blake
f69217cabe docs: update cygwin progress
Now that cygwin 1.7.11 is released, it's time to update some docs.

Not listed: cygwin 1.7.10 added __fpurge; but the fpurge module
properly uses it.

* doc/posix-functions/llround.texi (llround): Added in cygwin
1.7.8.
* doc/posix-functions/llroundf.texi (llroundf): Likewise.
* doc/glibc-functions/program_invocation_name.texi
(program_invocation_name): Likewise.
* doc/glibc-functions/program_invocation_short_name.texi
(program_invocation_short_name): Likewise.
* doc/glibc-functions/madvise.texi (madvise): Likewise.
* doc/glibc-functions/pthread_yield.texi (pthread_yield):
Likewise.
* doc/posix-functions/pthread_spin_destroy.texi
(pthread_spin_destroy): Added in cygwin 1.7.10.
* doc/posix-functions/pthread_spin_init.texi (pthread_spin_init):
Likewise.
* doc/posix-functions/pthread_spin_lock.texi (pthread_spin_lock):
Likewise.
* doc/posix-functions/pthread_spin_trylock.texi
(pthread_spin_trylock): Likewise.
* doc/posix-functions/pthread_spin_unlock.texi
(pthread_spin_unlock): Likewise.
* doc/posix-functions/pthread_setschedprio.texi
(pthread_setschedprio): Likewise.
* doc/posix-functions/pthread_attr_getstack.texi
(pthread_attr_getstack): Likewise.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi
(pthread_attr_getstackaddr): Likewise.
* doc/glibc-functions/pthread_getattr_np.texi
(pthread_getattr_np): Likewise.
* doc/glibc-functions/sys_siglist.texi (sys_siglist): Likewise.
* doc/glibc-functions/sysinfo.texi (sysinfo): Likewise.
* doc/posix-functions/clock_settime.texi (clock_settime):
Likewise.
* doc/posix-functions/pthread_attr_getguardsize.texi
(pthread_attr_getguardsize): Likewise.
* doc/posix-functions/pthread_attr_setguardsize.texi
(pthread_attr_setguardsize): Likewise.
* doc/posix-functions/pthread_attr_setstack.texi
(pthread_attr_setstack): Likewise.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi
(pthread_attr_setstackaddr): Likewise.
* doc/posix-functions/clock_getcpuclockid.texi
(clock_getcpuclockid): Likewise.
* doc/posix-functions/pthread_getcpuclockid.texi
(pthread_getcpuclockid): Likewise.
* doc/glibc-functions/error.texi (error): Likewise.
* doc/glibc-functions/error_at_line.texi (error_at_line):
Likewise.
* doc/glibc-functions/error_message_count.texi
(error_message_count): Likewise.
* doc/glibc-functions/error_one_per_line.texi
(error_one_per_line): Likewise.
* doc/glibc-functions/error_print_progname.texi
(error_print_progname): Likewise.
* doc/posix-functions/pthread_condattr_getclock.texi
(pthread_condattr_getclock): Likewise.
* doc/posix-functions/pthread_condattr_setclock.texi
(pthread_condattr_setclock): Likewise.
* doc/posix-functions/clock_nanosleep.texi (clock_nanosleep):
Likewise.
* doc/glibc-functions/getgrouplist.texi (getgrouplist): Likewise.
* doc/glibc-functions/getpt.texi (getpt): Likewise.
* doc/glibc-functions/get_current_dir_name.texi
(get_current_dir_name): Likewise.
* doc/glibc-functions/pthread_sigqueue.texi (pthread_sigqueue):
Likewise.
* doc/posix-functions/tcgetsid.texi (tcgetsid): Likewise, but with
wrong return type.
* doc/glibc-functions/scandirat.texi (scandirat): Added in cygwin
1.7.11.

Signed-off-by: Eric Blake <eblake@redhat.com>
2012-02-29 06:35:27 -07:00
Bruno Haible
98ba3c74ae doc: Move ISO C11 feature notes into POSIX chapters.
* doc/posix-functions/aligned_alloc.texi: Renamed from
doc/glibc-functions/aligned_alloc.texi.
* doc/posix-functions/quick_exit.texi: Renamed from
doc/glibc-functions/quick_exit.texi.
* doc/posix-headers/uchar.texi: Renamed from
doc/glibc-headers/uchar.texi.
* doc/posix-functions/c16rtomb.texi: Renamed from
doc/glibc-functions/c16rtomb.texi.
* doc/posix-functions/c32rtomb.texi: Renamed from
doc/glibc-functions/c32rtomb.texi.
* doc/posix-functions/mbrtoc16.texi: Renamed from
doc/glibc-functions/mbrtoc16.texi.
* doc/posix-functions/mbrtoc32.texi: Renamed from
doc/glibc-functions/mbrtoc32.texi.
* doc/gnulib.texi: Update.
(Glibc uchar.h): Remove section.
Suggested by Eric Blake.
2012-02-29 12:10:52 +01:00
Bruno Haible
75ca5935f8 doc: Mention new glibc headers and functions.
* doc/glibc-headers/uchar.texi: New file.
* doc/glibc-functions/aligned_alloc.texi: New file.
* doc/glibc-functions/c16rtomb.texi: New file.
* doc/glibc-functions/c32rtomb.texi: New file.
* doc/glibc-functions/clock_adjtime.texi: New file.
* doc/glibc-functions/fanotify_init.texi: New file.
* doc/glibc-functions/fanotify_mark.texi: New file.
* doc/glibc-functions/inet6_opt_append.texi: New file.
* doc/glibc-functions/inet6_opt_find.texi: New file.
* doc/glibc-functions/inet6_opt_finish.texi: New file.
* doc/glibc-functions/inet6_opt_get_val.texi: New file.
* doc/glibc-functions/inet6_opt_init.texi: New file.
* doc/glibc-functions/inet6_opt_next.texi: New file.
* doc/glibc-functions/inet6_opt_set_val.texi: New file.
* doc/glibc-functions/inet6_rth_add.texi: New file.
* doc/glibc-functions/inet6_rth_getaddr.texi: New file.
* doc/glibc-functions/inet6_rth_init.texi: New file.
* doc/glibc-functions/inet6_rth_reverse.texi: New file.
* doc/glibc-functions/inet6_rth_segments.texi: New file.
* doc/glibc-functions/inet6_rth_space.texi: New file.
* doc/glibc-functions/login.texi: New file.
* doc/glibc-functions/mbrtoc16.texi: New file.
* doc/glibc-functions/mbrtoc32.texi: New file.
* doc/glibc-functions/name_to_handle_at.texi: New file.
* doc/glibc-functions/ntp_gettimex.texi: New file.
* doc/glibc-functions/open_by_handle_at.texi: New file.
* doc/glibc-functions/prlimit.texi: New file.
* doc/glibc-functions/process_vm_readv.texi: New file.
* doc/glibc-functions/process_vm_writev.texi: New file.
* doc/glibc-functions/recvmmsg.texi: New file.
* doc/glibc-functions/scandirat.texi: New file.
* doc/glibc-functions/sendmmsg.texi: New file.
* doc/glibc-functions/setns.texi: New file.
* doc/glibc-functions/timespec_get.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc sys/fanotify.h, Glibc sys/resource.h, Glibc uchar.h): New
sections.
Reported by Eric Blake.
2012-02-28 13:03:39 +01:00
Bruno Haible
8661b04d4c pipe2: refine doc about thread-safety
* doc/glibc-functions/pipe2.texi: Clarify the extent of the
multithread-safety problem.
* doc/glibc-functions/accept4.texi: Likewise.
2012-01-26 22:21:45 +01:00
Eric Blake
41423a6ca6 pipe2, assign4: document lack of thread-safety in replacement
* doc/glibc-functions/pipe2.texi (pipe2): Mention thread safety
issue in replacement.
* doc/glibc-functions/accept4.texi (accept4): Likewise.
Based on a report by Eric Wong.
2012-01-26 08:31:48 -07:00
Bruno Haible
2c0e4c5dc8 random_r: Override incompatible API on AIX, OSF/1.
* lib/stdlib.in.h (random_r, srandom_r, initstate_r, setstate_r):
Override the system function if REPLACE_RANDOM_R is 1.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Require AC_CANONICAL_HOST. On AIX
and OSF/1, set REPLACE_RANDOM_R.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_RANDOM_R.
* modules/stdlib (Makefile.am): Substitute REPLACE_RANDOM_R.
* modules/random_r (configure.ac): Test REPLACE_RANDOM_R.
* doc/glibc-functions/initstate_r.texi: Mention the AIX, OSF/1 problem.
* doc/glibc-functions/random_r.texi: Likewise.
* doc/glibc-functions/setstate_r.texi: Likewise.
2012-01-12 22:54:15 +01:00
Bruno Haible
fca3cc12dc doc: Update for Solaris 11 2011-11.
* doc/*/*.texi: Mention Solaris 11 2011-11 where appropriate.
* m4/printf.m4: Update comments.
2012-01-08 19:57:53 +01:00
Bruno Haible
be67080286 sethostname: Fix documentation.
* doc/glibc-functions/sethostname.texi: Move the Solaris problem to the
"not fixed" section.
2011-12-04 15:47:27 +01:00
Bruno Haible
1917369d72 Tweak last commit.
* lib/sethostname.c: Don't include <string.h>.
(sethostname): No need to copy the argument string to the stack. Don't
call clearerr. Preserve errno when fprintf failed.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Comment about HOST_NAME_MAX.
Don't invoke AC_REPLACE_FUNCS.
* modules/sethostname (Link): Remove empty section.
* doc/glibc-functions/sethostname.texi: Gnulib does not fix the ENOSYS
failure problem.
2011-12-03 14:09:14 +01:00
Ben Walton
ab8fbf44bf Add a new sethostname module
Define sethostname on platforms that do not provide the declaration.
Provide a function for platforms that lack it.  The general handling
of the provided function is to simply return -1 and set errno to
ENOSYS.  A specific handler is provided for Minix.

* lib/sethostname.c (sethostname): New file.  Provide sethostname
for systems that lack it.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): New file.  Detection of
sethostname declaration and function.
* modules/sethostname: New file.  Define the sethostname module.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
2011-12-03 13:30:02 +01:00
Bruno Haible
4d0c5cc219 sethostname: Fix doc about AIX.
* doc/glibc-functions/sethostname.texi: Drop mention that AIX 5.1 lacks
sethostname; it has it.
2011-11-20 15:12:32 +01:00
Bruno Haible
b55f380fa8 sethostname: Mention more portability problems.
* doc/glibc-functions/sethostname.texi: Mention the missing declaration
problem.
Reported by Ben Walton <bwalton@artsci.utoronto.ca>.
2011-11-20 14:21:07 +01:00
Bruno Haible
f5562fca6f ptsname_r: Avoid compilation error on OSF/1 5.1.
* lib/stdlib.in.h (ptsname_r): Override if REPLACE_PTSNAME_R is 1.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_PTSNAME_R.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Set REPLACE_PTSNAME_R if the
function is not declared or incompatibly declared.
* modules/stdlib (Makefile.am): Substitute REPLACE_PTSNAME_R.
* modules/ptsname_r (Depends-on, configure.ac): Update.
* doc/glibc-functions/ptsname_r.texi: Mention the OSF/1 problems.
2011-11-10 13:48:16 +01:00
Eric Blake
78232883c8 ptsname_r: new module
For now, this replacement focuses solely on compilation
compatibility, and assumes that isatty() and ttyname_r() work
on a master side pty; if this assumption fails, or if
thread-safety is also required, then a later patch can follow
the lead of strerror_r.c in wrapping the system ptsname()
with a lock.

* modules/ptsname_r: New module.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): New file.
* lib/ptsname.c (__ptsname_r): Split...
* lib/ptsname_r.c: ...into new file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl.
(gl_STDLIB_H_DEFAULTS): Set witness defaults.
* modules/stdlib (Makefile.am): Substitute witnesses.
* lib/stdlib.in.h (ptsname_r): Declare it.
* doc/glibc-functions/ptsname_r.texi (ptsname_r): Document it.
* MODULES.html.sh (Misc): Likewise.
* modules/ptsname (Depends-on): Alter dependency.
* doc/posix-functions/ptsname.texi (ptsname): Mention new module.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-11-09 15:53:07 -07:00
Bruno Haible
4e39aa4288 doc: Update regarding MSVC 9.
* doc/gnulib-intro.texi (Target Platforms): Classify MSVC as "rarely
tested".
* doc/posix-functions/*.texi: Update with info about MSVC 9.
* doc/posix-headers/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
2011-09-11 21:56:17 +02:00
Bruno Haible
b9816b5292 *printf: Add support for MSVC compiler.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): On MSVC, install a handler that
handles the exception caused by the %n directive. When cross-compiling,
guess no on native Windows.
(gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99,
gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): When snprintf is missing,
emulate it through vsnprintf.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Update comment.
* doc/posix-functions/dprintf.texi: Update documentation regarding
MSVC 9.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/asprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
2011-09-10 21:18:08 +02:00
Bruno Haible
ca2c85799a Documentation about Minix.
* doc/posix-headers/*.texi: Add info about Minix 3.1.8.
* doc/glibc-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2011-07-31 14:50:18 +02:00
Paul Eggert
599a664564 Add dependencies to the 'largefile' module.
* modules/fopen (Depends-on): Add 'largefile'.
* modules/freopen (Depends-on): Likewise.
* modules/fseeko (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Do not require AC_SYS_LARGEFILE,
since the containing module now depends on the largefile module.
* m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Likewise.
* doc/posix-functions/fopen.texi: Mention that the problem of 32-bit
off_t is fixed by gnulib.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fseeko.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/ftello.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/lstat.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/stat.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
2011-07-26 02:50:07 +02:00
Bruno Haible
bac964725a doc: Mention the effects of AC_SYS_LARGEFILE.
* doc/posix-functions/aio_cancel.texi: Mention the effects of AC_SYS_LARGEFILE
on this function.
* doc/posix-functions/aio_error.texi: Likewise.
* doc/posix-functions/aio_fsync.texi: Likewise.
* doc/posix-functions/aio_read.texi: Likewise.
* doc/posix-functions/aio_return.texi: Likewise.
* doc/posix-functions/aio_suspend.texi: Likewise.
* doc/posix-functions/aio_write.texi: Likewise.
* doc/posix-functions/fgetpos.texi: Likewise.
* doc/posix-functions/fopen.texi: Likewise.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fsetpos.texi: Likewise.
* doc/posix-functions/fstatvfs.texi: Likewise.
* doc/posix-functions/ftruncate.texi: Likewise.
* doc/posix-functions/ftw.texi: Likewise.
* doc/posix-functions/getrlimit.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lio_listio.texi: Likewise.
* doc/posix-functions/lockf.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/mmap.texi: Likewise.
* doc/posix-functions/nftw.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/opendir.texi: Likewise.
* doc/posix-functions/posix_fadvise.texi: Likewise.
* doc/posix-functions/posix_fallocate.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/readdir.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/rewinddir.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/seekdir.texi: Likewise.
* doc/posix-functions/setrlimit.texi: Likewise.
* doc/posix-functions/statvfs.texi: Likewise.
* doc/posix-functions/telldir.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/posix-functions/truncate.texi: Likewise.
* doc/glibc-functions/fallocate.texi: Likewise.
* doc/glibc-functions/fstatfs.texi: Likewise.
* doc/glibc-functions/fts_children.texi: Likewise.
* doc/glibc-functions/fts_read.texi: Likewise.
* doc/glibc-functions/getdirentries.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/preadv.texi: Likewise.
* doc/glibc-functions/pwritev.texi: Likewise.
* doc/glibc-functions/sendfile.texi: Likewise.
* doc/glibc-functions/statfs.texi: Likewise.
2011-07-24 22:19:21 +02:00
Bruno Haible
984e3a85f4 doc: Mention new glibc headers and functions.
* doc/glibc-headers/gshadow.texi: New file.
* doc/glibc-functions/endsgent.texi: New file.
* doc/glibc-functions/fgetsgent.texi: New file.
* doc/glibc-functions/fgetsgent_r.texi: New file.
* doc/glibc-functions/getsgent.texi: New file.
* doc/glibc-functions/getsgent_r.texi: New file.
* doc/glibc-functions/getsgnam.texi: New file.
* doc/glibc-functions/getsgnam_r.texi: New file.
* doc/glibc-functions/putsgent.texi: New file.
* doc/glibc-functions/setsgent.texi: New file.
* doc/glibc-functions/sgetsgent.texi: New file.
* doc/glibc-functions/sgetsgent_r.texi: New file.
* doc/glibc-functions/malloc_info.texi: New file.
* doc/glibc-functions/preadv.texi: New file.
* doc/glibc-functions/pwritev.texi: New file.
* doc/glibc-functions/register_printf_modifier.texi: New file.
* doc/glibc-functions/register_printf_specifier.texi: New file.
* doc/glibc-functions/register_printf_type.texi: New file.
* doc/glibc-functions/pthread_attr_getaffinity_np.texi: New file.
* doc/glibc-functions/pthread_attr_setaffinity_np.texi: New file.
* doc/glibc-functions/pthread_getaffinity_np.texi: New file.
* doc/glibc-functions/pthread_getname_np.texi: New file.
* doc/glibc-functions/pthread_mutex_consistent_np.texi: New file.
* doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: New file.
* doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: New file.
* doc/glibc-functions/pthread_setaffinity_np.texi: New file.
* doc/glibc-functions/pthread_setname_np.texi: New file.
* doc/glibc-functions/pthread_sigqueue.texi: New file.
* doc/glibc-functions/pthread_timedjoin_np.texi: New file.
* doc/glibc-functions/pthread_tryjoin_np.texi: New file.
* doc/glibc-functions/qsort_r.texi: New file.
* doc/glibc-functions/quick_exit.texi: New file.
* doc/glibc-functions/syncfs.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc gshadow.h, Glibc sys/uio.h): New sections.
* doc/posix-functions/psiginfo.texi: Fix info about glibc version.
* doc/posix-functions/pthread_mutex_consistent.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_getrobust.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_setrobust.texi: Likewise.
* doc/glibc-functions/execvpe.texi: Likewise.
2011-07-24 19:05:25 +02:00
Eric Blake
9c6e26caf1 ffsl, ffsll: new modules
* modules/ffsl: New file.
* modules/ffsll: Likewise.
* m4/ffsl.m4: Likewise.
* m4/ffsll.m4: Likewise.
* lib/ffsl.c: Likewise.
* lib/ffsl.h: Likewise.
* lib/ffsll.c: Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY)
(gl_HEADER_STRING_H_DEFAULTS): Add defaults.
* modules/string (Makefile.am): Substitute witnesses.
* lib/strings.in.h (ffsl, ffsll): Declare.
* modules/ffsl-tests: New test file.
* modules/ffsll-tests: Likewise.
* tests/test-ffsl.c: Likewise.
* tests/test-ffsll.c: Likewise.
* MODULES.html.sh (Integer arithmetic functions): Mention it.
* doc/glibc-functions/ffsl.texi (ffsl): Likewise.
* doc/glibc-functions/ffsll.texi (ffsll): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-07-15 15:13:31 -06:00
Eric Blake
366d08c003 getopt-gnu: avoid crash in glibc getopt
Use of "W;" in an option string may be rare, but we might as well
avoid crashing on it.

* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem.
* tests/test-getopt.h (test_getopt): Enhance test.
* tests/test-getopt_long.h (test_getopt_long): Likewise.
* doc/posix-functions/getopt.texi (getopt): Document it.
* doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-07-07 10:58:40 -06:00
Eric Blake
3dbe75e4eb pipe, pipe2: don't corrupt fd on error
I noticed a potential subtle double-close bug in libvirt.  There,
a common idiom is to initialize an int fd[2]={-1,-1}, then have
multiple error paths goto common cleanup code.  In the cleanup
code, the fds are closed if they are not already -1; this works
if the error label is reached before the pipe call, or after
pipe succeeds, but if it was the pipe call itself that jumped
to the error label, then it is relying on failed pipe() not
altering the values already in fd array prior to the failure.
Our pipe2 replacement violated this assumption, and could leave
a non-negative value in the array, which in turn would let
libvirt close an already-closed fd, possibly nuking an unrelated
fd opened by another thread that happened to get the same value.

As a result, I raised a POSIX issue regarding the behavior of
pipe on failure: http://austingroupbugs.net/view.php?id=467

Using that test program, I learned that most systems leave fd
unchanged on error, but that mingw always assigns -1 into the
array.  This fixes the mingw pipe() replacement, as well as
the gnulib pipe2() replacement.

I don't know of any race-free way to work around a cygwin crash:
http://cygwin.com/ml/cygwin/2011-06/msg00328.html - we could
always open() and then close() two fds to guess whether two
spare fd still remain before calling pipe(), but that is racy.

* lib/pipe.c (pipe): Leave fd unchanged on error.
* lib/pipe2.c (pipe2): Likewise.
* doc/posix-functions/pipe.texi (pipe): Document cygwin issue.
* doc/glibc-functions/pipe2.texi (pipe2): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-06-29 16:04:56 -06:00
Bruno Haible
64e338384b pipe2: Remove dependency on 'nonblocking' module.
* lib/pipe2.c: Include verify.h. Include nonblocking.h only if
O_NONBLOCK is defined by gnulib.
(pipe2) [WIN32]: If O_NONBLOCK is not defined by gnulib, verify that it
is zero.
* modules/pipe2 (Depends-on): Add verify. Remove nonblocking.
* tests/test-pipe2.c: Include nonblocking.h only if O_NONBLOCK is
defined by gnulib.
(get_nonblocking_flag): New function.
(main): Test O_NONBLOCK flag only if it is nonzero.
2011-06-04 10:59:53 +02:00
Bruno Haible
c88fd8fa87 group-member: Document module.
* doc/glibc-functions/group_member.texi: Mention the 'group-member'
module.
2011-05-12 02:01:42 +02:00
Bruno Haible
a4e3a1d306 mkstemps: Ensure declaration on MacOS X 10.5.
* lib/stdlib.in.h: Include <unistd.h> when mkstemps is requested.
* doc/glibc-functions/mkstemps.texi: Document header file problem on
MacOS X.
2011-04-28 00:06:48 +02:00
Bruno Haible
5ea8bedd0c clean-temp: Clarify what it does.
* lib/clean-temp.h: Add more comments.
* doc/posix-functions/mkstemp.texi: Tweak reference to 'clean-temp'
module.
* doc/glibc-functions/mkostemp.texi: Mention 'clean-temp' here too.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
2011-04-27 23:29:32 +02:00
Bruno Haible
d8fb6162b9 strchrnul: Tweak last commit.
* doc/glibc-functions/strchrnul.texi: Add more details about Cygwin
bug.
* lib/string.in.h (strchrnul): Use same arguments in _GL_FUNCDECL_RPL
as in _GL_FUNCDECL_SYS.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Invoke gl_PREREQ_STRCHRNUL after
AC_LIBOBJ. When cross-compiling, say "guessing yes" not "yes".
2011-04-16 12:10:16 +02:00