+2011-08-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ openat: work around AIX 7.1 fstatat bug
+ Problem reported by Kevin Brott for GNU tar, in the thread containing
+ <http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00015.html>.
+ * lib/fstatat.c (rpl_fstatat): Do not invoke underlying fstatat if
+ FSTATAT_ST_SIZE_ETC_BROKEN.
+ (fstatat) [FSTATAT_ST_SIZE_ETC_BROKEN && HAVE_FSTATAT]: #define to
+ rpl_fstatat.
+ * m4/openat.m4 (gl_FUNC_FSTATAT): New macro, with the fstatat-relevant
+ part of gl_FUNC_OPENAT. Also, check for the AIX 7.1 bug, and use
+ AC_CHECK_FUNCS_ONCE for fstatat.
+ (gl_FUNC_OPENAT): Use it. Use AC_CHECK_FUNCS_ONCE for
+ fchmodat, mkdirat, openat and unlinkat.
+
+2011-08-30 Bruno Haible <bruno@clisp.org>
+
+ Avoid endless recursions if config.h includes some header files.
+ * lib/fopen.c (__need_FILE): Define already before including config.h.
+ * lib/freopen.c (__need_FILE): Likewise.
+ * lib/open.c (__need_system_fcntl_h): Likewise.
+ * lib/stat.c (__need_system_sys_stat_h): Likewise.
+ * lib/lstat.c (__need_system_sys_stat_h): Likewise.
+ Reported by Michael Goffioul <michael.goffioul@gmail.com>.
+
+2011-08-25 Karl Berry <karl@gnu.org>
+
+ * config/srclist.txt (ylwrap): new try.
+ * build-aux/ylwrap: new file.
+
+2011-08-23 Bruno Haible <bruno@clisp.org>
+
+ tmpdir: Use a good default directory on native Windows.
+ * lib/tmpdir.c: Include <windows.h>, pathmax.h.
+ (P_tmpdir): Default to _P_tmpdir on native Windows.
+ (path_search): On native Windows, try the value returned by GetTempPath
+ before trying P_tmpdir.
+ * modules/tmpdir (Depends-on): Add pathmax.
+ Suggested by John Darrington <john@darrington.wattle.id.au>.
+
+2011-08-20 Reuben Thomas <rrt@sc3d.org>
+
+ doc: fix typo in README-release
+ * top/README-release: Capitalize first word of a sentence.
+
+2011-08-19 Jim Meyering <meyering@redhat.com>
+
+ fts: do not exhaust memory when processing million-entry directories
+ Before this change, traversing (via rm -rf, find, du, etc.) an N-entry
+ directory would require about 256*N bytes of memory. Thus, it was
+ easy to construct a directory too large to be processed by any of
+ those tools. With this change, fts' maximum memory utilization is
+ now limited to around 30MB.
+ * lib/fts.c (FTS_MAX_READDIR_ENTRIES): Define.
+ (fts_read): When we've processed the final entry (i.e., when
+ ->fts_link is NULL) and fts_dirp is non-NULL, call fts_build
+ using the parent entry to read any remaining entries. Dispatch
+ depending on what fts_build returns:
+ - NULL+stop, aka failure: stop
+ - NULL otherwise: move up in the dir hierarchy
+ - non-NULL: handle this new entry
+ (fts_build): Declare and use new local, continue_readdir.
+ Prepare to be called from fts_read, when the entries
+ from a partially-read directory have just been exhausted.
+ In that case, we'll skip the opendir and instead use the parent's
+ fts_dirp and derive dir_fd from that.
+ Finally, in the readdir loop, if we read max_entries entries,
+ exit the loop ensuring *not* to call closedir. This is required
+ so that fts_dirp can be reused on a subsequent call.
+ Prompted by Ben England's report of memory exhaustion in find
+ and rm -rf vs. NFS: https://bugzilla.redhat.com/719749.
+
+ maint: fts: move decl of `dp' down into while loop; split a long line
+ * lib/fts.c (fts_build): No semantic change.
+
+ fts: add/use new struct member, fts_dirp
+ We are about to use this to manage any directory with
+ too many entries to read all of them into memory at once.
+ To do that, we'll need to save the DIR* pointer in each
+ affected FTSENT struct.
+ * lib/fts_.h: Include <dirent.h>.
+ (struct FTSENT) [fts_dirp]: New member.
+ * lib/fts.c (closedir_and_clear): Define.
+ Use it in place of closedir so that we are sure to
+ clear the new fts_dirp member when done with it.
+ (fts_alloc): Initialize the new member.
+ (fts_lfree): Free, if needed.
+
+ maint: fts: give __opendir2 a new parameter and rename
+ * lib/fts.c (__opendir2): Give it a new parameter, Pdir_fd, rather
+ than surreptitiously using sole caller's "dir_fd".
+ (fts_opendir): Rename from __opendir2.
+
+ maint: fts.c: remove __opendir2's now-unused parameter, oflag
+ * lib/fts.c (__opendir2): Remove unused parameter, oflag.
+
+ maint: fts.c: correct off-by-one indentation
+ * lib/fts.c (fts_build): Correct indentation, change style
+ of a couple of block comments, and bracing style.
+
+ maint: fts.c: move __opendir2 #define "up" out of function body
+ * lib/fts.c (__opendir2): Move "up". No semantic change.
+
+ maint: fts.c: remove #if-0'd FTS_WHITEOUT code
+ * lib/fts.c: Remove #if-0'd FTS_WHITEOUT code. It's been #if-0'd
+ out for a long time and besides was useful only on BSD systems.
+
+2011-08-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: port to Stratus OpenVOS
+ * lib/regex_internal.h (internal_function) [!_LIBC]: Simply
+ define to empty, rather than attempting nonportable optimizations.
+ Problem reported by Paul Green in:
+ http://lists.gnu.org/archive/html/bug-diffutils/2011-08/msg00047.html
+ and fix suggested by Eric Blake in:
+ http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00143.html
+
+2011-08-17 Eric Blake <eblake@redhat.com>
+
+ getcwd: fix test failures on mingw
+ * lib/getcwd.c (__getcwd): Early exit for ERANGE.
+ * tests/test-getcwd.c (test_abort_bug, test_long_name): Don't fail
+ test if long directory cannot be created, and allow mingw errno.
+
+ getcwd-lgpl: fix m4 to match relaxed test for BSD
+ * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Relax probe.
+ (gl_FUNC_GETCWD_SIGNATURE): New macro.
+ (gl_FUNC_GETCWD_LGPL, gl_FUNC_GETCWD): Use it.
+ * doc/posix-functions/getcwd.texi (getcwd): Tweak mentions of
+ signature problem.
+
+ getcwd: fix compilation on mingw64
+ * lib/unistd.in.h (includes) [mingw]: Include <direct.h> for
+ getcwd.
+ Reported by Marc-André Lureau.
+
+ pipe2: silence compiler warning
+ * lib/pipe2.c (pipe2): Hide label if it is not used.
+
+2011-08-15 Ben Pfaff <blp@cs.stanford.edu>
+
+ relocatable-prog: fix link error
+ * modules/relocatable-prog (configure.ac) [RELOCATABLE]: Also
+ invoke AC_LIBOBJ([relocatable]). This invocation was previously
+ in the gl_RELOCATABLE_LIBRARY macro. That invocation was moved
+ into modules/relocatable-lib without noticing that
+ modules/relocatable-prog also invokes gl_RELOCATABLE_LIBRARY and
+ also needs to build relocatable.c.
+
+2011-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ getaddrinfo: fix sh typo in gai_strerrorA decl checking
+ * m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix typo in the generated
+ shell code: it contained a 'break' that was not in a loop.
+ Apparently the macro assumed that AC_CHECK_DECLS is implemenented
+ via a shell-language loop; this may have been true in old Autoconf
+ versions, but it's not true in Autoconf 2.68. I found this bug
+ when testing coreutils git on Solaris 8, whose shell complains
+ about the syntax error.
+
+2011-08-12 Simon Josefsson <simon@josefsson.org>
+
+ * lib/base64.c: Fix comment to reference RFC 4648.
+ Suggested by Bruno Haible <bruno@clisp.org> and Gijs van Tulder
+ <gvtulder@gmail.com>.
+
+2011-08-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * build-aux/bootstrap (slurp): Remove obsolescent gettext.m4 patch.
+
+ po/Makefile.in.in: fix make -q problem
+ * build-aux/po/Makefile.in.in (check-macro-version): Remove this
+ rule, since there's no file named 'check-macro-version' and its
+ use as a file breaks make -q.
+ (all): Don't depend on check-macro-version.
+ (CHECK_MACRO_VERSION): New macro.
+ (stamp-po): Use it.
+
+ configmake: fix make -q problem
+ * modules/configmake (configmake.h): Update configmake.h's time stamp
+ even if the file does not change. Otherwise, 'make -q' fails.
+ Problem reported by Simon Josefsson in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00088.html>.
+
+2011-08-11 Jim Meyering <meyering@redhat.com>
+
+ git-version-gen: correct the advice in a comment
+ * build-aux/git-version-gen: Correct comment.
+ Don't recommend to list .tarball-version in .gitignore.
+
+2011-08-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ base64: fix off-by-one buffer size bug
+ Problem and (trivial) fix reported by Gijs van Tulder in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-08/msg00083.html>.
+ * lib/base64.c (base64_decode_alloc_ctx): Allocate one more byte.
+ * tests/test-base64.c (main): Catch the bug.
+
+2011-08-10 Eric Blake <eblake@redhat.com>
+
+ closein: correct comments
+ * lib/closein.c (close_stdin): Improve comments.
+
+2011-08-09 Bruno Haible <bruno@clisp.org>
+
+ More tests for 'fseeko'.
+ * tests/test-fseeko3.c: New file, from Eric Blake.
+ * tests/test-fseeko3.sh: New file.
+ * modules/fseeko-tests (Files): Add them.
+ (TESTS): Add test-fseeko3.sh.
+ (check_PROGRAMS): Add test-fseeko3.
+
+2011-08-09 Eric Blake <eblake@redhat.com>
+
+ fseeko: remove unneeded hack
+ * lib/fseeko.c (fseeko): Don't special-case SEEK_END.
+
+ fseeko: fix bug on glibc
+ * lib/fseeko.c (fseeko): Set stream offset to match fd offset.
+ Reported by John W. Eaton.
+
+2011-08-08 Bruno Haible <bruno@clisp.org>
+
+ unictype/base: Fix interoperability with preinstalled libunistring.
+ * modules/unictype/base (configure.ac): Bump minimum version to 0.9.4.
+ Reported by Simon Josefsson.
+
+2011-08-08 Bruno Haible <bruno@clisp.org>
+
+ iswblank: Detect declaration correctly.
+ * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Use correct headers in
+ AC_CHECK_DECLS invocation.
+
+2011-08-08 Bruno Haible <bruno@clisp.org>
+
+ tcgetsid: Detect declaration correctly.
+ * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Use correct headers in
+ AC_CHECK_DECLS invocation.
+ Reported by Simon Josefsson.
+
+2011-08-08 Eric Blake <eblake@redhat.com>
+
+ largefile: fix typo that regressed large file support
+ * modules/largefile (configure.ac-early): Fix section name.
+
+2011-08-06 Karl Berry <karl@gnu.org>
+
+ * MODULES.html.sh (func_all_files): _Noreturn is no longer
+ a separate module.
+
+2011-08-05 Simon Josefsson <simon@josefsson.org>
+
+ openat: Fix warnings and commens when building unlinkat.c on Hurd.
+ * lib/unlinkat.c: Mention Hurd in comments. Include stdlib.h to
+ get prototype for free.
+
+2011-08-04 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'pathmax'.
+ * modules/pathmax-tests: New file.
+ * tests/test-pathmax.c: New file.
+
+ canonicalize-lgpl: Support larger filenames on the Hurd.
+ * lib/canonicalize-lgpl.c (__realpath): Bump path_max fallback to 8192.
+ Reported by Paul Eggert.
+
+ pathmax: Leave PATH_MAX undefined on the Hurd, and a constant otherwise.
+ * lib/pathmax.h (PATH_MAX): Leave it undefined on GNU/Hurd.
+ * lib/chdir-long.h: Include pathmax.h.
+ * lib/clean-temp.c (PATH_MAX): Remove code that is done by pathmax.h.
+ * lib/getcwd.c: Include pathmax.h instead of <limits.h>.
+ (PATH_MAX): Remove code that is done by pathmax.h.
+ * lib/canonicalize.c (PATH_MAX): Provide a fallback value.
+ * lib/tmpfile.c: Add a comment.
+ * m4/pathmax.m4 (gl_PATHMAX): Don't test for pathconf.
+ * modules/chdir-long (Depends-on): Add pathmax.
+ * modules/getcwd (Depends-on): Add pathmax.
+ * tests/test-getcwd.c (test_abort_bug): Avoid syntax error when PATH_MAX
+ is not defined.
+ * doc/posix-headers/limits.texi: Mention the pathmax module.
+ * NEWS: Mention the change.
+
+2011-08-02 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Actually use results of gl_THREADLIB.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test and require
+ gl_THREADLIB, not gl_[]THREADLIB.
+ Reported by Eric Blake.
+
+2011-08-02 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: relax the default _gl_TS_function_match regexp
+ * top/maint.mk (_gl_TS_function_match): Don't require at least one
+ space between function name and "(" in an "extern" declaration.
+ That would fail to match a decl with no space there: extern void foo();
+
+2011-07-31 Iain Nicol <iain@thenicols.net>
+
+ git-version-gen: document that EXTRA_DIST must include .version
+ * build-aux/git-version-gen: In the how-to-use comment, document
+ that EXTRA_DIST must include .version. Otherwise, "make distcheck"
+ will fail when run from an unpacked distribution tarball.
+
+2011-08-01 Bruno Haible <bruno@clisp.org>
+
+ wctype-h: Fix last change.
+ * m4/wctype_h.m4 (gl_WCTYPE_H): If towlower is defined, set
+ REPLACE_TOWLOWER to 0.
+ Reported by Sam Steingold <sds@gnu.org>.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ frexpl: Update autoconf test.
+ * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Update overrides of <float.h>,
+ according to changes of 2011-06-20.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ sys_utsname: Add support for Minix.
+ * lib/sys_utsname.in.h [Minix]: Include <stddef.h> before
+ <sys/utsname.h>.
+ * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
+ * doc/posix-headers/sys_utsname.texi: Document the Minix problem.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ strings: Add support for Minix.
+ * lib/strings.in.h [Minix]: Include <sys/types.h> before <strings.h>.
+ * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
+ * doc/posix-headers/strings.texi: Document the Minix problem.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ wctype-h: Add support for Minix.
+ * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towlower is declared. Set
+ REPLACE_TOWLOWER.
+ * modules/wctype-h (Makefile.am): Substitute REPLACE_TOWLOWER.
+ * lib/wctype.in.h (towlower, towupper): Test REPLACE_TOWLOWER, not
+ REPLACE_ISWCNTRL.
+
+2011-07-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/xalloc.h (DEFAULT_MXFAST): Track 64-bit glibc.
+ This is a performance improvement for 64-bit hosts: it causes the
+ value of DEFAULT_MXFAST to track what's in glibc on such hosts.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ stdioext: Add support for Minix.
+ * lib/fbufmode.c (fbufmode) [__minix]: Add conditional code.
+ * lib/fpurge.c (fpurge): Likewise.
+ * lib/freadahead.c (freadahead): Likewise.
+ * lib/freadable.c (freadable): Likewise.
+ * lib/freading.c (freading): Likewise.
+ * lib/freadptr.c (freadptr): Likewise.
+ * lib/freadseek.c (freadptrinc): Likewise.
+ * lib/fseeko.c (rpl_fseeko): Likewise.
+ * lib/fseterr.c (fseterr): Likewise.
+ * lib/fwritable.c (fwritable): Likewise.
+ * lib/fwriting.c (fwriting): Likewise.
+ * lib/fflush.c (clear_ungetc_buffer): Update comment.
+ * m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Minix.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ errno: Port to Minix.
+ * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also whether ENETRESET and
+ ECONNABORTED are defined.
+ * lib/errno.in.h (ENETRESET, GNULIB_defined_ENETRESET, ECONNABORTED,
+ GNULIB_defined_ECONNABORTED): New macros.
+ * lib/strerror-override.h (strerror_override): Test also
+ GNULIB_defined_ENETRESET, GNULIB_defined_ECONNABORTED.
+ * lib/strerror-override.c (strerror_override): Handle also ENETRESET,
+ ECONNABORTED.
+ * doc/posix-headers/errno.texi: Mention the Minix problem.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ Work around declaration collisions on Minix.
+ * m4/mbsinit.m4 (gl_FUNC_MBSINIT): If mbsinit is declared but not
+ defined, set REPLACE_MBSINIT.
+ * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): If mbrtowc is declared but not
+ defined, set REPLACE_MBRTOWC.
+ * m4/mbrlen.m4 (gl_FUNC_MBRLEN): If mbrlen is declared but not defined,
+ set REPLACE_MBRLEN.
+ * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): If mbsrtowcs is declared but not
+ defined, set REPLACE_MBSRTOWCS.
+ * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): If wcrtomb is declared but not
+ defined, set REPLACE_WCRTOMB.
+ * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): If wcsrtombs is declared but not
+ defined, set REPLACE_WCSRTOMBS.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ Add support for Minix with ACK compiler.
+ * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): New macro.
+ * gnulib-tool (func_import, func_create_testdir): Emit invocation of
+ gl_PROG_AR_RANLIB instead of AC_PROG_RANLIB.
+
+2011-07-31 Bruno Haible <bruno@clisp.org>
+
+ 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 Bruno Haible <bruno@clisp.org>
+
+ snippet/warn-on-use: Fix indentation.
+ * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix indentation.
+
+2011-07-25 Jim Meyering <meyering@redhat.com>
+
+ tests: test-update-copyright.sh: remove unnecessary "rm" commands
+ * tests/test-update-copyright.sh: Remove unused rm -f $TMP.*.bak
+ commands.
+
+2011-07-27 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: avoid sc_prohibit_always-defined_macros failure in coreutils
+ * top/maint.mk (gl_extract_significant_defines_): Now that
+ SA_RESETHAND and SA_RESTART are #defined (albeit conditionally) in
+ gnulib/lib/signal.in.h, and now that we recommend to
+ define-if-undefined those two symbols in application code,
+ we must filter them out of the "significant" list.
+ This avoids a "make syntax-check" failure in coreutils.
+
+2011-07-26 Eric Blake <eblake@redhat.com>
+
+ warnings: add comments about previous patch
+ * m4/absolute-header.m4: Document AS_VAR_PUSHDEF limitation.
+ * m4/include_next.m4: Likewise.
+ * m4/warn-on-use.m4: Likewise.
+ * m4/warnings.m4: Likewise, and simplify use.
+ Suggested by Stefano Lattarini.
+
+ include-next, warnings: support older autoconf
+ * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Use
+ AS_VAR_PUSHDEF in a way that works with older autoconf.
+ * m4/warnings.m4 (gl_WARN_ADD): Likewise.
+ Reported by Daniel P. Berrange.
+
+2011-07-25 Bruno Haible <bruno@clisp.org>
+
+ fseek, ftell: Fix doc.
+ * doc/posix-functions/fseek.texi: Reword statement about
+ AC_SYS_LARGEFILE.
+ * doc/posix-functions/ftell.texi: Likewise.
+
+2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
+ Bruno Haible <bruno@clisp.org>
+
+ 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-25 Bruno Haible <bruno@clisp.org>
+
+ fcntl: Move AC_LIBOBJ invocation to module description.
+ * m4/fcntl.m4 (gl_REPLACE_FCNTL): Don't invoke AC_LIBOBJ.
+ * modules/fcntl (configure.ac): Invoke AC_LIBOBJ.
+
+ fcntl: Remove call-in from fchdir.m4.
+ * m4/fcntl.m4 (gl_FUNC_FCNTL): Conditionally invoke gl_TEST_FCHDIR.
+ * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_FCNTL.
+
+ dup3: Remove potential call-in from fchdir.m4.
+ * m4/dup3.m4 (gl_FUNC_DUP3): Add comment about fchdir.
+ * m4/fchdir.m4 (gl_FUNC_FCHDIR): Remove comment about dup3.
+
+ dup2: Move AC_LIBOBJ invocation to module description.
+ * m4/dup2.m4 (gl_REPLACE_DUP2): Remove macro.
+ (gl_FUNC_DUP2): Instead of gl_REPLACE_DUP2, just set REPLACE_DUP2 to 1.
+ Don't invoke AC_LIBOBJ.
+ * modules/dup2 (configure.ac): Invoke AC_LIBOBJ.
+
+ dup2: Remove call-in from fchdir.m4.
+ * m4/dup2.m4 (gl_FUNC_DUP2): Conditionally invoke gl_TEST_FCHDIR.
+ * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_DUP2.
+
+ fclose: Move AC_LIBOBJ invocation to module description.
+ * m4/fclose.m4 (gl_REPLACE_FCLOSE): Remove macro.
+ (gl_FUNC_FCLOSE): Instead of gl_REPLACE_FCLOSE, just set REPLACE_FCLOSE
+ to 1.
+ * modules/fclose (configure.ac): Invoke AC_LIBOBJ.
+
+ fclose: Remove call-in from close.m4.
+ * m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_CLOSE.
+ * m4/close.m4 (gl_FUNC_CLOSE): Don't invoke gl_REPLACE_FCLOSE.
+
+ close: Move AC_LIBOBJ invocation to module description.
+ * m4/close.m4 (gl_REPLACE_CLOSE): Remove macro.
+ (gl_FUNC_CLOSE): Instead of gl_REPLACE_CLOSE, just set REPLACE_CLOSE to
+ 1.
+ * modules/close (configure.ac): Invoke AC_LIBOBJ.
+
+ close: Remove call-in from fchdir.m4.
+ * m4/close.m4 (gl_FUNC_CLOSE): Conditionally invoke gl_TEST_FCHDIR.
+ * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_CLOSE.
+
+ open: Move AC_LIBOBJ invocation to module description.
+ * m4/open.m4 (gl_REPLACE_OPEN): Remove macro.
+ (gl_FUNC_OPEN): Instead of gl_REPLACE_OPEN, just set REPLACE_OPEN to 1.
+ * modules/open (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_OPEN.
+
+ open: Remove call-in from fchdir.m4.
+ * m4/open.m4 (gl_FUNC_OPEN): Conditionally invoke gl_TEST_FCHDIR.
+ * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_OPEN.
+
+ fchdir: Start to remove gl_REPLACE_* idiom.
+ * m4/fchdir.m4 (gl_TEST_FCHDIR): New macro.
+ (gl_FUNC_FCHDIR): Invoke it.
+
+2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/ftell.c (ftell): Comment out cast.
+
+ close: use gl_REPLACE_FCLOSE only if defined
+ * m4/close.m4 (gl_REPLACE_CLOSE): Use gl_REPLACE_FCLOSE only if it
+ is defined. The close module doesn't depend on the fclose module
+ any more, so gl_REPLACE_CLOSE's existence cannot be assumed. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00392.html>.
+ I reproduced the problem with "./gnulib-tool --test close sys_socket".
+
+2011-07-24 Jim Meyering <meyering@redhat.com>
+
+ test-select.h: avoid warning when using gcc's -Wmissing-declarations
+ * tests/test-select.h (test_function): Declare as "static".
+
+2011-07-24 Bruno Haible <bruno@clisp.org>
+
+ 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 Bruno Haible <bruno@clisp.org>
+
+ doc: Fix typo.
+ * doc/posix-functions/fstat.texi: Talk about fstat, not stat.
+
+2011-07-24 Bruno Haible <bruno@clisp.org>
+
+ doc: Mention fsusage.
+ * doc/posix-functions/statvfs.texi: Mention the fsusage module.
+
+2011-07-24 Bruno Haible <bruno@clisp.org>
+
+ 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 Paul Eggert <eggert@cs.ucla.edu>
+
+ ftell: don't include <unistd.h>
+ * lib/ftell.c: Don't include <unistd.h>. <stdio.h> is now
+ guaranteed to define off_t, and the ftell module depends on the
+ stdio module.
+
+ ftell: do not assume wraparound signed arithmetic
+ * lib/ftell.c: Include <limits.h>.
+ (ftell): Don't assume wraparound signed arithmetic.
+
+2011-07-24 Bruno Haible <bruno@clisp.org>
+
+ close: No longer depend on module 'fclose'.
+ * modules/close (Depends-on): Remove fclose.
+ * NEWS: Mention the change.
+ Suggested by Sam Steingold <sds@gnu.org>.
+
+2011-07-24 Bruno Haible <bruno@clisp.org>
+
+ fsusage: Enable large volume support on AIX >= 5.2.
+ * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): If 'struct statvfs64' has a
+ larger f_blocks field than 'struct statvfs', define STAT_STATVFS64
+ instead of STAT_STATVFS.
+ * lib/fsusage.c (get_fs_usage) [STAT_STATVFS64]: Use statvfs64.
+
+ fsusage: Restore previous behaviour on AIX, Cygwin, Interix.
+ * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Enforce a 64-bit struct statvfs
+ f_blocks field only on MacOS X.
+
+ fsusage: Support large volumes on glibc/Hurd, HP-UX, Solaris, MacOS X.
+ * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Require AC_SYS_LARGEFILE.
+ * modules/fsusage (Depends-on): Add largefile.
+
+2011-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * README: Modernize discussion of signed integers.
+ Assuming overflow wraparound is no longer safe.
+ Mention ones' complement and signed magnitude.
+
+2011-07-22 Bruno Haible <bruno@clisp.org>
+
+ select tests, pselect tests: Refactor.
+ * tests/test-select.h: New file, extracted from tests/test-select.c.
+ (select_fn): New type.
+ (test, do_select, do_select_nowait, do_select_wait, test_tty,
+ test_connect_first, test_accept_first, test_pair, test_socket_pair,
+ test_pipe): Add my_select argument.
+ (test_function): Renamed from main. Add my_select argument.
+ * tests/test-select.c: Move most code to tests/test-select.h. Include
+ test-select.h.
+ * modules/select-tests (Files): Add tests/test-select.h.
+ * tests/test-pselect.c: Include test-select.h instead of test-select.c.
+ (my_select, main): New functions.
+ * modules/pselect-tests (Files): Add tests/test-select.h,
+ tests/macros.h, tests/signature.h.
+ (Depends-on): Remove select-tests. Add dependencies of test-select.h.
+ (configure.ac): Check for <sys/wait.h>.
+
+2011-07-22 Bruno Haible <bruno@clisp.org>
+
+ sys_select tests: Check the signature of FD_*.
+ * tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Move
+ signature tests from here...
+ * tests/test-sys_select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): ... to
+ here.
+ * modules/sys_select-tests (Files): Add tests/signature.h.
+
+2011-07-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ largefile: new module, replacing large-inode
+ Pádraig Brady suggested this in <http://debbugs.gnu.org/9140#20>.
+ * MODULES.html.sh: Add largefile, remove large-inode.
+ * modules/largefile, m4/largefile.m4: New files.
+ * modules/large-inode, m4/large-inode.m4: Remove.
+
+ fsusage: port to MacOS X 10.7 with 4 TiB file systems
+ * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Reject statvfs
+ implementations that use only 32 bits to count blocks.
+ On typical hosts with 1024-byte blocks, this fails with file
+ systems as small as 4 TiB. Problem reported by Herb Wartens
+ <http://debbugs.gnu.org/9140> and this should also fix a similar
+ problem reported by Tim Spriggs <http://debbugs.gnu.org/7355>.
+
+ large-inode: New module
+ * MODULES.html.sh: Add it.
+ * modules/large-inode, m4/large-inode.m4: New files.
+
+ extensions: Enable extensions on MacOS X 10.5 and later.
+ * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _DARWIN_C_SOURCE.
+
+2011-07-22 Kamil Dudka <kdudka@redhat.com>
+
+ file-has-acl: use acl_extended_file_nofollow if available
+ * lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro.
+ (acl_extended_file): New macro.
+ * lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow.
+ * m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow.
+
+2011-07-21 Bruno Haible <bruno@clisp.org>
+
+ Declare system functions in a way that works with C++.
+ * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR) [C++]: In the test program,
+ declare fdopendir as extern "C".
+ * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS) [C++]: In the test program,
+ declare frexpl as extern "C".
+ * m4/getaddrinfo.m4 (gl_GETADDRINFO) [C++]: In the test program,
+ declare gai_strerror as extern "C".
+ * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME) [C++]: In the test
+ programs, declare gai_strerror as extern "C".
+ * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R) [C++]: In the test program,
+ declare getlogin_r as extern "C".
+ * m4/ioctl.m4 (gl_FUNC_IOCTL) [C++]: In the test program, declare ioctl
+ as extern "C".
+ * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS) [C++]: In the test program,
+ declare ldexpl as extern "C".
+ * m4/logb.m4 (gl_FUNC_LOGB) [C++]: In the test programs, declare logb
+ as extern "C".
+ * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS) [C++]: In the test
+ program, declare getmntinfo as extern "C".
+ * m4/stpncpy.m4 (gl_FUNC_STPNCPY) [C++]: In the test program, declare
+ stpncpy as extern "C".
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS) [C++]: In the test
+ program, declare __xpg_strerror_r as extern "C".
+ * m4/strndup.m4 (gl_FUNC_STRNDUP) [C++]: In the test program, declare
+ strndup as extern "C".
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT) [C++]: In the test program,
+ declare memset and bzero as extern "C".
+ Reported by Sam Steingold <sds@gnu.org>.
+
+2011-07-12 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: prohibit inclusion of "verify.h" without use
+ * top/maint.mk (sc_prohibit_verify_without_use): New rule.
+
+2011-07-19 Pádraig Brady <P@draigBrady.com>
+
+ timer-time: A new module to check for timer_settime()
+ * m4/timer_time.m4: Check for the posix function.
+ * modules/timer-time: Add the new module.
+ * MODULES.html.sh (Compat checks for POSIX:2008 functions):
+ Mention it.
+
+2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
+ Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: assume POSIX threads if --avoid=threadlib
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): If gl_THREADLIB is
+ not defined, assume POSIX threads and look for pthread_sigmask in
+ $LIBS, without changing $CPPFLAGS.
+
+2011-07-19 Bruno Haible <bruno@clisp.org>
+
+ strstr: Update cross-compilation guess.
+ * m4/strstr.m4 (gl_FUNC_STRSTR): On glibc > 2.12 with x86 or x86_64
+ CPUs, guess no, in view of glibc
+ BZ #12100 <http://sourceware.org/bugzilla/show_bug.cgi?id=12100>.
+ Suggested by Eric Blake. Reported by Reuben Thomas.
+
+2011-07-19 Pádraig Brady <P@draigBrady.com>
+
+ getopt-gnu: suppress core dumps from detection code
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Use the nocrash module
+ to suppress core dumps that may well occur on glibc systems.
+ * modules/getopt-gnu: Depend on nocrash.
+
+2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ pthread_sigmask: ensure usleep is declared
+ * lib/pthread_sigmask.c [PTHREAD_SIGMASK_UNBLOCK_BUG]:
+ Include <unistd.h>, to declare usleep. Needed on Solaris 8,
+
+2011-07-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ doc: Document NonStop portability issues.
+ * doc/posix-functions/sigaction.texi (sigaction):
+ * doc/posix-headers/signal.texi (signal.h):
+ Document NonStop. See Joachim Schmitz in
+ http://lists.gnu.org/archive/html/bug-coreutils/2011-07/msg00062.html
+
+2011-07-15 Bruno Haible <bruno@clisp.org>
+
+ ffsl, ffsll: Avoid unportable behaviour.
+ * lib/ffsl.h (FUNC): Use 'unsigned int' instead of 'int'.
+
+2011-07-15 Bruno Haible <bruno@clisp.org>
+
+ ffs: More tests.
+ * tests/test-ffs.c (NBITS): New macro.
+ (main): Add more tests.
+ * tests/test-ffsl.c (NBITS): New macro.
+ (main): Add more tests.
+ * tests/test-ffsll.c (NBITS): New macro.
+ (main): Add more tests.
+
+2011-07-15 Eric Blake <eblake@redhat.com>
+
+ 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.
+
+ ffs: fix m4 prerequisite
+ * m4/ffs.m4 (gl_FUNC_FFS): Require strings.h defaults.
+
+ ffs: avoid undefined behavior
+ * lib/ffs.c (ffs): Provide fallback for non-32-bit int.
+ * tests/test-ffs.c (naive, main): Avoid signed shifts.
+ Reported by Bruno Haible.
+
+2011-07-12 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Rely on module 'threadlib'.
+ * modules/pthread_sigmask (Depends-on): Add threadlib.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB
+ is defined.
+
+2011-07-12 Bruno Haible <bruno@clisp.org>
+
+ regex: Depend on module 'strcase'.
+ * modules/regex (Depends-on): Add strcase, for strcasecmp().
+
+2011-07-12 Jim Meyering <meyering@redhat.com>
+
+ warn-on-use: fix typo in file name
+ * modules/snippet/warn-on-use (Files): Correct file name:
+ include /snippet/ component in "build-aux/snippet/warn-on-use.h".
+
+2011-07-12 Bruno Haible <bruno@clisp.org>
+
+ strings: Document module.
+ * doc/posix-headers/strings.texi: Mention module 'strings'.
+
+2011-07-12 Bruno Haible <bruno@clisp.org>
+
+ Rename module '_Noreturn' to 'snippet/_Noreturn'.
+ * modules/snippet/_Noreturn: Renamed from modules/_Noreturn.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/_Noreturn.h: Renamed from build-aux/_Noreturn.h.
+ * modules/stdlib (Depends-on): Update.
+
+2011-07-12 Bruno Haible <bruno@clisp.org>
+
+ * NEWS: Mention the changes.
+
+ Rename module 'warn-on-use' to 'snippet/warn-on-use'.
+ * modules/snippet/warn-on-use: Renamed from modules/warn-on-use.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/warn-on-use.h: Renamed from build-aux/warn-on-use.h.
+ * modules/arpa_inet (Depends-on): Update.
+ * modules/ctype (Depends-on): Update.
+ * modules/dirent (Depends-on): Update.
+ * modules/fcntl-h (Depends-on): Update.
+ * modules/glob (Depends-on): Update.
+ * modules/iconv-h (Depends-on): Update.
+ * modules/inttypes-incomplete (Depends-on): Update.
+ * modules/langinfo (Depends-on): Update.
+ * modules/locale (Depends-on): Update.
+ * modules/math (Depends-on): Update.
+ * modules/netdb (Depends-on): Update.
+ * modules/poll-h (Depends-on): Update.
+ * modules/pty (Depends-on): Update.
+ * modules/search (Depends-on): Update.
+ * modules/signal (Depends-on): Update.
+ * modules/spawn (Depends-on): Update.
+ * modules/stdio (Depends-on): Update.
+ * modules/stdlib (Depends-on): Update.
+ * modules/string (Depends-on): Update.
+ * modules/strings (Depends-on): Update.
+ * modules/sys_file (Depends-on): Update.
+ * modules/sys_ioctl (Depends-on): Update.
+ * modules/sys_select (Depends-on): Update.
+ * modules/sys_socket (Depends-on): Update.
+ * modules/sys_stat (Depends-on): Update.
+ * modules/sys_time (Depends-on): Update.
+ * modules/sys_times (Depends-on): Update.
+ * modules/sys_utsname (Depends-on): Update.
+ * modules/sys_wait (Depends-on): Update.
+ * modules/termios (Depends-on): Update.
+ * modules/time (Depends-on): Update.
+ * modules/unistd (Depends-on): Update.
+ * modules/wchar (Depends-on): Update.
+ * modules/wctype-h (Depends-on): Update.
+ * MODULES.html.sh (Support for building libraries and executables):
+ Update.
+
+ Rename module 'unused-parameter' to 'snippet/unused-parameter'.
+ * modules/snippet/unused-parameter: Renamed from
+ modules/unused-parameter.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/unused-parameter.h: Renamed from
+ build-aux/unused-parameter.h.
+ * modules/selinux-h (Depends-on): Update.
+ * modules/unistr/base (Depends-on): Update.
+ * MODULES.html.sh (Core language properties): Update.
+
+ Rename module 'link-warning' to 'snippet/link-warning'.
+ * modules/snippet/link-warning: Renamed from modules/link-warning.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/link-warning.h: Renamed from
+ build-aux/link-warning.h.
+ * MODULES.html.sh (Support for building libraries and executables):
+ Update.
+
+ Rename module 'c++defs' to 'snippet/c++defs'.
+ * modules/snippet/c++defs: Renamed from modules/c++defs.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/c++defs.h: Renamed from build-aux/c++defs.h.
+ * modules/arpa_inet (Depends-on): Update.
+ * modules/ctype (Depends-on): Update.
+ * modules/dirent (Depends-on): Update.
+ * modules/fcntl-h (Depends-on): Update.
+ * modules/glob (Depends-on): Update.
+ * modules/iconv-h (Depends-on): Update.
+ * modules/langinfo (Depends-on): Update.
+ * modules/locale (Depends-on): Update.
+ * modules/math (Depends-on): Update.
+ * modules/netdb (Depends-on): Update.
+ * modules/poll-h (Depends-on): Update.
+ * modules/pty (Depends-on): Update.
+ * modules/search (Depends-on): Update.
+ * modules/signal (Depends-on): Update.
+ * modules/spawn (Depends-on): Update.
+ * modules/stdio (Depends-on): Update.
+ * modules/stdlib (Depends-on): Update.
+ * modules/string (Depends-on): Update.
+ * modules/strings (Depends-on): Update.
+ * modules/sys_ioctl (Depends-on): Update.
+ * modules/sys_select (Depends-on): Update.
+ * modules/sys_socket (Depends-on): Update.
+ * modules/sys_stat (Depends-on): Update.
+ * modules/sys_time (Depends-on): Update.
+ * modules/sys_wait (Depends-on): Update.
+ * modules/termios (Depends-on): Update.
+ * modules/time (Depends-on): Update.
+ * modules/unistd (Depends-on): Update.
+ * modules/wchar (Depends-on): Update.
+ * modules/wctype-h (Depends-on): Update.
+
+ Rename module 'arg-nonnull' to 'snippet/arg-nonnull'.
+ * modules/snippet/arg-nonnull: Renamed from modules/arg-nonnull.
+ (Files, Makefile.am): Update.
+ * build-aux/snippet/arg-nonnull.h: Renamed from build-aux/arg-nonnull.h.
+ * modules/argv-iter (Depends-on): Update.
+ * modules/arpa_inet (Depends-on): Update.
+ * modules/dirent (Depends-on): Update.
+ * modules/fcntl-h (Depends-on): Update.
+ * modules/fnmatch (Depends-on): Update.
+ * modules/getopt-posix (Depends-on): Update.
+ * modules/glob (Depends-on): Update.
+ * modules/iconv-h (Depends-on): Update.
+ * modules/inttypes-incomplete (Depends-on): Update.
+ * modules/locale (Depends-on): Update.
+ * modules/math (Depends-on): Update.
+ * modules/netdb (Depends-on): Update.
+ * modules/search (Depends-on): Update.
+ * modules/signal (Depends-on): Update.
+ * modules/spawn (Depends-on): Update.
+ * modules/stdio (Depends-on): Update.
+ * modules/stdlib (Depends-on): Update.
+ * modules/string (Depends-on): Update.
+ * modules/strings (Depends-on): Update.
+ * modules/sys_socket (Depends-on): Update.
+ * modules/sys_stat (Depends-on): Update.
+ * modules/sys_time (Depends-on): Update.
+ * modules/sys_times (Depends-on): Update.
+ * modules/sys_utsname (Depends-on): Update.
+ * modules/time (Depends-on): Update.
+ * modules/unistd (Depends-on): Update.
+ * modules/wchar (Depends-on): Update.
+ * MODULES.html.sh (Support for building libraries and executables):
+ Update.
+
+2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improvements on _Noreturn and related modules.
+
+ modules/_Exit-tests: test _Noreturn too
+ * tests/test-_Exit.c (MTA, Charlie): New functions, taken from the
+ old tests/test-stdnoreturn.c. This tests the _Noreturn keyword a bit.
+ (main): Use them.
+
+ stdnoreturn, stdnoreturn-tests: remove modules
+ They're not needed here and a bit premature for use elsewhere. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00209.html>.
+ * m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests:
+ * tests/test-stdnoreturn.c: Remove files.
+ * MODULES.html.sh (_Noreturn <stdnoreturn.h>): Remove section.
+ * lib/openat.h, lib/sigpipe-die.h, lib/xalloc.h, lib/xmemdup0.h:
+ * lib/xstrtol.h: Use _Noreturn rather than including <stdnoreturn.h>
+ and using noreturn.
+ * modules/openat, modules/sigpipe-die, modules/xalloc:
+ * modules/xmemdup0, modules/xstrtol:
+ Remove dependency on stdnoreturn.
+
+ _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
+ * build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__.
+ Reparenthesize to avoid GCC warning.
+ Support Microsoft's syntax.
+ * m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
+
+ _Noreturn-tests: remove module
+ * modules/_Noreturn-tests: Remove.
+ * modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c.
+ * tests/test-_Noreturn.c: Remove.
+ * tests/test-stdnoreturn.c: Merge from the old
+ tests/test-_Noreturn.c, testing both noreturn and _Noreturn.
+
+2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ _Noreturn, stdnoreturn, and related modules.
+
+ * top/maint.mk: Adjust to new noreturn support.
+ (gl_extract_significant_defines_): Omit pattern ATTRIBUTE_NORETURN.
+ (def_sym_regex): Do not remove ATTRIBUTE_NORETURN.
+
+ xalloc: use stdnoreturn.h
+ * lib/xalloc.h: Include <stdnoreturn.h>.
+ (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+ * modules/xalloc (Depends-on): Add stdnoreturn.
+
+ xstrtol: use stdnoreturn.h
+ * lib/xstrtol.h: Include <stdnoreturn.h>.
+ (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+ * modules/xstrtol (Depends-on): Add stdnoreturn.
+
+ xmemdup0: use stdnoreturn.h
+ * lib/xmemdup0.h: Include <stdnoreturn.h>.
+ (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+ * modules/xmemdup0 (Depends-on): Add stdnoreturn.
+
+ sigpipe-die: use stdnoreturn.h
+ * lib/sigpipe-die.h: Include <stdnoreturn.h>.
+ (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+ * modules/sigpipe-die (Depends-on): Add stdnoreturn.
+
+ openat: use stdnoreturn.h
+ * lib/openat.h: Include <stdnoreturn.h>.
+ (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+ * modules/openat (Depends-on): Add stdnoreturn.
+
+ * lib/openat-die.c (openat_save_fail): Modernize comment.
+
+ * lib/xalloc-die.c (xalloc_die): Modernize comment.
+
+ * lib/glthread/thread.h: Modernize comment.
+
+ obstack: use _Noreturn
+ * lib/obstack.c (__attribute__): Remove macro.
+ (print_and_abort): Use _Noreturn.
+
+ c-stack: use _Noreturn
+ * lib/c-stack.c (die, overflow_handler, segv_handler):
+ Use _Noreturn rather than __attribute__((noreturn)).
+
+ argmatch-tests, exclude_tests: use _Noreturn
+ * tests/test-argmatch.c, tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN):
+ Remove.
+ (ARGMATCH_DIE_DECL): Use _Noreturn instead.
+
+ stdlib: use _Noreturn
+ * lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove.
+ (_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN.
+ * modules/stdlib (Depends-on): Add _Noreturn.
+ (stdlib.h): Depend on $(_NORETURN_H), and copy it in.
+
+ stdnoreturn-tests: new module
+ * modules/stdnoreturn-tests, tests/test-stdnoreturn.c: New files.
+
+ stdnoreturn: new module
+ * MODULES.html.sh (Noreturn <stdnoreturn.h>): New section.
+ * m4/stdnoreturn.m4, modules/stdnoreturn: New files.
+
+ _Noreturn-tests: new module
+ * modules/_Noreturn-tests, tests/test-_Noreturn.c: New files.
+
+ _Noreturn: new module
+ * MODULES.html.sh (Support for systems lacking draft ISO C 1X):
+ New section, mentioning it.
+ * build-aux/_Noreturn.h, modules/_Noreturn: New files.
+
+ * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
+
+2011-07-11 Eric Blake <eblake@redhat.com>
+
+ ffs: new module
+ * modules/ffs: New file.
+ * m4/ffs.m4: Likewise.
+ * lib/ffs.c: Likewise.
+ * m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Add default.
+ * modules/strings (Makefile.am): Substitute witness.
+ (Depends-on): Add c++defs.
+ * lib/strings.in.h (ffs): Declare.
+ * modules/ffs-tests: New test file.
+ * tests/test-ffs.c: Test new module.
+ * MODULES.html.sh (Integer arithmetic functions): Mention it.
+ * doc/posix-functions/ffs.texi (ffs): Likewise.
+
+ regex: avoid compiler warning
+ * lib/regex.c (includes): Include <strings.h>, for use of
+ strcasecmp in regcomp.c.
+ Reported by Joachim Schmitz.
+
+2011-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ stdint: respect system's intmax_t if INTMAX_MAX
+ * lib/stdint.in.h (intmax_t, uintmax_t): If the system defines
+ INTMAX_MAX, assume its intmax_t is OK. Similarly for and
+ uintmax_t. This is for some Mac OS X builds, where intmax_t is
+ long but int64_t is long long, and where we will clash with the
+ system intmax_t if we override it. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00160.html>.
+ (INTMAX_C, UINTMAX_C): For consistency, respect the system's
+ INTMAX_C if INTMAX_MAX and INTMAX_C are both defined, and
+ similarly for UINTMAX_C.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask tests: Avoid a compiler warning.
+ * tests/test-pthread_sigmask1.c (main): Complain if system() returns
+ non-zero.
+
+ sigprocmask tests: A better way to avoid a compiler warning.
+ * tests/test-sigprocmask.c: Don't include "ignore-value.h".
+ (main): Complain if system() returns non-zero.
+ * modules/sigprocmask-tests (Depends-on): Remove ignore-value.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Work around IRIX bug.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the IRIX
+ bug.
+ * lib/pthread_sigmask.c (pthread_sigmask): usleep for some time when
+ there may be unblocked pending signals.
+ * doc/posix-functions/pthread_sigmask.texi: Mention the IRIX bug.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Work around Cygwin bug.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the Cygwin
+ bug.
+ * lib/pthread_sigmask.c (pthread_sigmask): Fix the return value from
+ the system's pthread_sigmask function.
+ * doc/posix-functions/pthread_sigmask.texi: Mention the Cygwin bug.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Work around bug in single-threaded implementation.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the
+ FreeBSD, HP-UX, Solaris bug.
+ (gl_PREREQ_PTHREAD_SIGMASK): New macro.
+ * lib/pthread_sigmask.c: Include <stddef.h>.
+ (pthread_sigmask): If HAVE_PTHREAD_SIGMASK, define as a wrapper around
+ the system's pthread_sigmask function.
+ * modules/pthread_sigmask (configure.ac): Invoke
+ gl_PREREQ_PTHREAD_SIGMASK.
+ * doc/posix-functions/pthread_sigmask.texi: Mention bug on FreeBSD,
+ HP-UX, Solaris.
+
+2011-07-08 Eric Blake <eblake@redhat.com>
+
+ test-sigprocmask: avoid compiler warning
+ * modules/sigprocmask-tests (Depends-on): Add ignore-value.
+ * tests/test-sigprocmask.c (main): Use it to silence warning.
+ Reported by Jim Meyering.
+
+ test-snprintf: avoid compiler warning
+ * tests/test-snprintf.c (main): Avoid shadowed declaration.
+ * tests/test-vsnprintf.c (main): Likewise.
+ Reported by Jim Meyering.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'pthread_sigmask'.
+ * modules/pthread_sigmask-tests: New file.
+ * tests/test-pthread_sigmask1.c: New file, based on
+ tests/test-sigprocmask.c.
+ * tests/test-pthread_sigmask2.c: New file.
+
+2011-07-08 Jim Meyering <meyering@redhat.com>
+
+ test-getopt.h: avoid warning about an unused variable
+ * tests/test-getopt.h (test_getopt): Remove unused variable, "c".
+
+2011-07-07 Jim Meyering <meyering@redhat.com>
+
+ maint: reduce list of files exempt from sc_prohibit_leading_TABs
+ * Makefile (sc_prohibit_leading_TABs): Don't exempt m4/po.m4,
+ now that it no longer contains leading TABs.
+ Remove unused "url=FIXME" statement.
+
+2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ pthread_sigmask: Assume POSIX when not gl_THREADLIB.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
+ When gl_THREADLIB is not in use, assume that the POSIX sematics
+ are desired. This is better for Emacs, which uses POSIX semantics
+ on GNUish and/or POSIXish platforms, and does not use threads at
+ all otherwise.
+
+ pthread_sigmask: fix typo when testing for libraries
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
+ AC_LINK_IFELSE, not AC_COMPILE_IFELSE.
+
+2011-07-08 Eric Blake <eblake@redhat.com>
+
+ fts: introduce FTS_NOATIME
+ * lib/fts_.h (FTS_NOATIME): New bit flag.
+ (FTS_OPTIONMASK): Adjust.
+ * lib/fts.c (diropen, fts_open, fts_build): Honor it.
+ (fd_ring_check): Debug code unconditionally uses O_NOATIME.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'thread'.
+ * modules/thread-tests: New file.
+ * tests/test-thread_self.c: New file.
+ * tests/test-thread_create.cc: New file.
+
+2011-07-08 Bruno Haible <bruno@clisp.org>
+
+ thread: Avoid gcc warnings when using gl_thread_self().
+ * lib/glthread/thread.h (gl_thread_self): Return a pthread_t, not a
+ 'void *'.
+ (gl_thread_self_pointer): Update.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ signal-c++-tests: Check declaration of pthread_sigmask.
+ * tests/test-signal-c++.cc: Check declaration of pthread_sigmask.
+ * modules/signal-c++-tests (Makefile.am): Link test-signal-c++ against
+ $(LIB_PTHREAD_SIGMASK).
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Fix link requirements on OSF/1 5.1 and with pth.
+ * lib/signal.in.h (pthread_sigmask): Override if
+ REPLACE_PTHREAD_SIGMASK is 1.
+ * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+ REPLACE_PTHREAD_SIGMASK.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Set also
+ REPLACE_PTHREAD_SIGMASK. Set and substitute LIB_PTHREAD_SIGMASK.
+ * modules/signal (Makefile.am): Substitute REPLACE_PTHREAD_SIGMASK.
+ * modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
+ (Link): Set to $(LIB_PTHREAD_SIGMASK), not $(LIBMULTITHREAD).
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Ensure declaration in <signal.h>.
+ * lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, Solaris 2.6,
+ include <pthread.h>.
+ * doc/posix-functions/pthread_sigmask.texi: Mention the header file
+ problem.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Document the module.
+ * doc/posix-functions/pthread_sigmask.texi: Mention the new module.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Follow gnulib conventions.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from
+ gl_PTHREAD_SIGMASK.
+ * modules/pthread_sigmask (configure.ac): Update.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Make declaration C++ safe.
+ * lib/signal.in.h: In two special conditions, just do an #include_next.
+ (pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+ Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN.
+ * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+ HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+ * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK,
+ not REPLACE_PTHREAD_MASK.
+ * modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK,
+ not REPLACE_PTHREAD_MASK.
+ * modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Fix return value.
+ * lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
+ * lib/pthread_sigmask.c: New file.
+ * modules/pthread_sigmask (Files): Add it.
+ (configure.ac): Invoke AC_LIBOBJ.
+
+2011-07-07 Eric Blake <eblake@redhat.com>
+
+ getopt: more portable argv creation
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away
+ const, use char arrays rather than strings.
+ Suggested by Paul Eggert.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'sigprocmask'.
+ * modules/sigprocmask-tests: New file.
+ * tests/test-sigprocmask.c: New file.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ float tests: Tweak.
+ * tests/test-float.c (main): Tweak skip message.
+
+2011-07-07 Eric Blake <eblake@redhat.com>
+
+ getopt: avoid compiler warning during configure
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with
+ assigning string literals to non-const pointer.
+
+ getopt-gnu: avoid crash in glibc getopt
+ * 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.
+
+2011-07-07 Ulrich Drepper <drepper@gmail.com>
+
+ getopt: handle W; without long options in getopt [BZ #12922]
+ * lib/getopt.c (_getopt_internal_r): When "W;" is in short options
+ but no long options are defined, just return 'W'.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Avoid literal tabs.
+ * m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell
+ variable containing a tab instead of a literal tab.
+ Reported by Jim Meyering.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Comments.
+ * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw.
+
+2011-07-06 Bruno Haible <bruno@clisp.org>
+
+ sys_select: Fix compilation error on mingw, introduced on 2011-06-30.
+ * lib/sys_select.in.h: Don't include <sys/socket.h>. Instead, include
+ <winsock2.h>.
+ (rpl_fd_isset, FD_ISSET): New definitions, copied from
+ lib/sys_socket.in.h.
+ (close, gethostname): Hide declarations from <winsock2.h>.
+ (socket, connect, accept, bind, getpeername, getsockname, getsockopt,
+ listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise.
+ * lib/sys_socket.in.h (close, gethostname): Tweak indentation.
+ (select): Don't override if gnulib's <sys/select.h> was already
+ included.
+ * lib/unistd.in.h (socket, connect, accept, bind, getpeername,
+ getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
+ setsockopt, shutdown, select): Tweak indentation.
+
+2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR
+ and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed
+ in an application that does not use the sys_select module.
+
+2011-07-06 Erik Faye-Lund <kusmabite@gmail.com>
+
+ poll: do not return 0 on timeout=-1
+ * lib/poll.c: Loop with yield if no events occured
+
+2011-07-06 Eric Blake <eblake@redhat.com>
+
+ pthread_sigmask: always replace when not using pthread
+ * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask
+ replacement when using some threading other than pthread. Fix
+ logic bug.
+
+2011-07-06 Bruno Haible <bruno@clisp.org>
+
+ Comments.
+ * m4/printf.m4: Update comments about mingw.
+
+2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ sys_select: define sigset_t more portably
+ * lib/sys_select.in.h: Always include <sys/types.h>, since
+ we now need sigset_t and mingw defines it there.
+ Include <signal.h> before split inclusion guard, to avoid
+ mishaps on Solaris, whose <signal.h> eventually includes us.
+ * m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T.
+ (gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of
+ which come from ...
+ * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
+ gl_CHECK_TYPE_SIGSET_T.
+ (gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T
+ does the real work.
+ * modules/sys_select (Depends-on): Add 'signal'.
+
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect.
+ Suggested by Bruno Haible.
+
+ pselect: Use pthread_sigmask, not sigprocmask.
+ * lib/pselect.c (pselect): Use pthread_sigmask, as it supports
+ multithreaded apps better than sigprocmask does.
+ * modules/pselect (Depends-on): Depend on pthread_sigmask, not
+ sigprocmask directly.
+
+2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/pselect.c (pselect): Use plain name, without "rpl_".
+ Don't #undef, since we don't need any underlying pselect.
+ * modules/pselect (configure.ac): Use our pselect.o if !HAVE_PSELECT.
+ (Depends-on): Add select.
+ (Link): Add $(LIBSOCKET).
+ These changes suggested by Bruno Haible.
+
+ pselect: document better
+ * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+ * doc/posix-functions/pselect.texi (pselect): Document new module.
+
+ pthread_sigmask: new module
+ * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+ * doc/posix-functions/pthread_sigmask.texi: Document new module.
+ * lib/signal.in.h (pthread_sigmask): Arrange for replacement.
+ This is done only as a macro; I don't know how well that'll
+ work for C++. Move <sys/types.h> include before the include_next,
+ to avoid mishap on Solaris.
+ * m4/signal_h.m4 (gl_SIGNAL_H, gl_SIGNAL_H_DEFAULTS): Check for it.
+ * modules/signal (Makefile.am): Substitute the check's results.
+ * modules/pthread_sigmask, m4/pthread_sigmask.m4: New files.
+
+ test-pselect: new module
+ * modules/pselect-tests, tests/test-pselect.c: New files.
+ * tests/test-select.c, tests/test-sys_select-c++.cc:
+ If TEST_PSELECT is defined, test pselect instead of testing select.
+
+ * tests/test-sys_select.c (sigset_t): Test for it, too.
+ Suggested by Bruno Haible.
+
+2011-07-05 Eric Blake <eblake@redhat.com>
+
+ snprintf: guarantee %1$d, for libintl
+ * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require %1$d support.
+ * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise.
+ * doc/posix-functions/snprintf.texi (snprintf): Update.
+ * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
+ * tests/test-snprintf.c (main): Enhance test.
+ * tests/test-vsnprintf.c (main): Likewise.
+
+2011-07-05 Jim Meyering <meyering@redhat.com>
+
+ maint: exempt stdio-read.c and stdio-write.c from the cppi check
+ * Makefile (sc_cpp_indent_check): Exempt stdio-read.c and stdio-write.c
+ per Bruno's request, to accommodate this idiom (no space after "#")
+ even when the function is inside an #if block:
+ char *
+ gets (char *s)
+ #undef gets
+ {
+ ...
+ }
+
+2011-07-04 Jim Meyering <meyering@redhat.com>
+
+ maint: indent with spaces, not TABs, and add a rule to check this
+ * tests/test-userspec.c: Indent with spaces, not TABs.
+ * tests/test-argp.c: Likewise.
+ * tests/test-c-stack2.sh: Likewise.
+ * tests/test-parse-duration.sh: Likewise
+ * m4/strtod.m4: Likewise.
+ * m4/alloca.m4: Likewise.
+ * m4/pselect.m4: Likewise.
+ * Makefile (sc_prohibit_leading_TABs): Prohibit leading TABs.
+
+2011-07-03 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: correct omissions in prohibit_argmatch_without_use check
+ This rule would mistakenly report that argmatch.h is included without
+ use even when both the argmatch and invalid_arg macro were used.
+ * top/maint.mk (sc_prohibit_argmatch_without_use): Also detect uses
+ of argmatch and invalid_arg.
+
+2011-07-03 Bruno Haible <bruno@clisp.org>
+
+ Comments about EINTR.
+ * lib/safe-read.h: Explain the purpose of this module.
+ * lib/safe-write.h: Likewise.
+ * doc/posix-functions/read.texi: Mention EINTR and the 'safe-read'
+ module.
+ * doc/posix-functions/write.texi: Mention EINTR and the 'safe-write'
+ module.
+ Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
+
+2011-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ xnanosleep: Rewrite to use new dtotimespec module.
+ It has the conversion code that used to be in xnanosleep.
+ * lib/xnanosleep.c: Do not include limits.h, stdbool.h, stdio.h,
+ assert.h, sys/types.h, or intprops.h. Include timespec.h instead.
+ (TIME_T_MAX): Remove.
+ (xnanosleep): Rewrite in terms of dtotimespec.
+ * modules/xnanosleep (Depends-on): Add dtotimespec.
+ Remove intprops, stdbool.
+
+ timespec-add, timespec-sub: new modules
+ * lib/timespec.h (timespec_add, timespec_sub): New decls.
+ * lib/timespec-add.c, lib/timespec-sub.c:
+ * modules/timespec-add, modules/timespec-sub: New files.
+
+ dtotimespec: new module
+ * lib/timespec.h (dtotimespec): New decl.
+ * lib/dtotimespec.c, modules/dtotimespec: New files.
+
+ * lib/timespec.h (timespec_sign, timespectod): New inline functions.
+
+ pselect: new module
+ * lib/sys_select.in.h: Include <signal.h>, for 'sigset_t'.
+ (pselect): New decls.
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Require AC_C_RESTRICT,
+ since the standard pselect decl uses 'restrict'.
+ (gl_SYS_SELECT_H_DEFAULTS): Add defaults for GNULIB_PSELECT,
+ HAVE_PSELECT, REPLACE_PSELECT.
+ * modules/sys_select (sys/select.h): Substitute GNULIB_PSELECT,
+ HAVE_PSELECT, REPLACE_PSELECT.
+ * lib/pselect.c, m4/pselect.m4, modules/pselect: New files.
+
+ sys_select: don't depend on sys_socket
+ This is so that Emacs doesn't have to drag in m4/sockpfaf.m4 etc; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00358.html>.
+ This fix works on GNU and GNU-like platforms, but has not been tested
+ on native Windows.
+ * lib/sys_select.in.h: Include <sys/socket.h> only if native Windows.
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Do not require
+ gl_HEADER_SYS_SOCKET.
+ * modules/sys_select (Files): Add m4/sys_socket_h.m4, for
+ gl_PREREQ_SYS_H_WINSOCK2.
+
+2011-06-29 Eric Blake <eblake@redhat.com>
+
+ pipe2: fix C89 compile problem
+ * lib/pipe2.c (pipe2): Avoid C99 array initialization.
+ Reported by Bruno Haible.
+
+ pipe, pipe2: don't corrupt fd on error
+ * 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.
+
+2011-06-27 Paolo Bonzini <bonzini@gnu.org>
+
+ mmap-anon: do not use regular expressions inadvertently
+ * m4/mmap-anon.m4: Remove trailing period from strings sought
+ in the output.
+
+2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ nanosleep: fix integer overflow problem
+ * lib/nanosleep.c (my_usleep): Don't assume signed integer
+ arithmetic wraps around on overflow.
+
+ nanosleep: simplify carrying
+ * lib/nanosleep.c (nanosleep): Use the requested tv_nsec for the
+ first call to the underyling nanosleep, not for the last one.
+ This doesn't fix any bugs, but it simplifies the computation of
+ the remaining delay. Found while auditing integer overflow issues.
+
+ dup2: remove test for existence of fcntl
+ * m4/dup2.m4 (gl_FUNC_DUP2): Use "#ifdef FD_CLOEXEC", not
+ "#if HAVE_FCNTL", in the configure-time test program.
+ This removes the need for the AC_CHECK_FUNCS_ONCE([fcntl]),
+ and therefore speeds up "configure" a bit. Found while
+ adding the dup2 module to Emacs.
+
+2011-06-24 Eric Blake <eblake@redhat.com>
+
+ maint.mk: enhance useless header checks
+ * top/maint.mk (_sc_header_without_use): Check both include
+ styles.
+ (sc_prohibit_assert_without_use)
+ (sc_prohibit_close_stream_without_use)
+ (sc_prohibit_getopt_without_use)
+ (sc_prohibit_quotearg_without_use)
+ (sc_prohibit_quote_without_use)
+ (sc_prohibit_long_options_without_use)
+ (sc_prohibit_inttostr_without_use)
+ (sc_prohibit_ignore_value_without_use)
+ (sc_prohibit_error_without_use, sc_prohibit_xalloc_without_use)
+ (sc_prohibit_hash_without_use, sc_prohibit_cloexec_without_use)
+ (sc_prohibit_posixver_without_use, sc_prohibit_same_without_use)
+ (sc_prohibit_hash_pjw_without_use)
+ (sc_prohibit_safe_read_without_use)
+ (sc_prohibit_argmatch_without_use)
+ (sc_prohibit_canonicalize_without_use)
+ (sc_prohibit_root_dev_ino_without_use)
+ (sc_prohibit_openat_without_use)
+ (sc_prohibit_c_ctype_without_use)
+ (sc_prohibit_signal_without_use)
+ (sc_prohibit_stdio--_without_use)
+ (sc_prohibit_stdio-safer_without_use)
+ (sc_prohibit_strings_without_use)
+ (sc_prohibit_intprops_without_use)
+ (sc_prohibit_stddef_without_use)
+ (sc_prohibit_xfreopen_without_use): Update clients.
+
+2011-06-24 Jim Meyering <meyering@redhat.com>
+
+ syntax-check: keep one maint.mk rule in sync with its header
+ * Makefile (sc_check_sym_list): Add a rule to prevent a repeat
+ of the bug Eric has just fixed, with today's commit 25e4c2ec.
+ I prefer to avoid temporary files here, so use <(...), but that
+ is not supported by /bin/sh, so...
+ (SHELL): Define to /bin/bash.
+
+2011-06-24 Eric Blake <eblake@redhat.com>
+
+ maint.mk: update sc_prohibit_intprops_without_use
+ * top/maint.mk (_intprops_names): Match recent changes.
+
+2011-06-24 Bruno Haible <bruno@clisp.org>
+
+ strerror-override: No-op tweak.
+ * lib/strerror-override.h (strerror_override): Reorder conditions,
+ for consistency with lib/strerror-override.c.
+
+2011-06-23 Eric Blake <eblake@redhat.com>
+
+ maint.mk: test further PATH_MAX issues
+ * top/maint.mk (sc_prohibit_path_max_array): Rename...
+ (sc_prohibit_path_max_allocation): ...and also test alloca.
+ Suggested by Jim Meyering.
+
+2011-06-22 Eric Blake <eblake@redhat.com>
+
+ maint.mk: add syntax-check to avoid char[PATH_MAX]
+ * top/maint.mk (sc_prohibit_path_max_array): New rule.
+
+ stat: be robust to PATH_MAX definition
+ * lib/stat.c (rpl_stat): Require reasonable PATH_MAX.
+ * modules/stat (Depends-on): Add verify.
+
+ link: work around IRIX bug
+ * m4/link.m4 (gl_FUNC_LINK): Expose the bug.
+ * lib/link.c (rpl_link): Work around it.
+ * tests/test-link.h (test_link): Enhance test.
+ * doc/posix-functions/link.texi (link): Document the bug.
+
+ getopt: silence clang warning
+ * lib/getopt.c (_getopt_internal_r): Avoid unlikely NULL
+ dereference.
+ Reported by Gustavo Martin Domato.
+
+2011-06-22 Jim Meyering <meyering@redhat.com>
+
+ bootstrap: do not insert a blank line into each .gitignore file
+ * build-aux/bootstrap (sort_patterns): Filter out blank lines.
+
+2011-06-21 Eric Blake <eblake@redhat.com>
+
+ perror: test for output mismatch
+ * m4/perror.m4 (gl_FUNC_PERROR): Add test, in order to replace
+ perror on IRIX.
+
+ strerror_r: fix OpenBSD behavior on out-of-range
+ * lib/strerror_r.c (strerror_r): Always use maximal string.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document it.
+
+ strerror_r: fix OpenBSD behavior on 0
+ * lib/strerror-override.c (strerror_override): Also override 0
+ when needed.
+ * lib/strerror-override.h (strerror_override): Likewise.
+ * lib/strerror.c (strerror): Simplify, now that 0 override is done
+ earlier.
+ * lib/strerror_r.c (strerror_r): Likewise.
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Split detection of 0
+ behavior...
+ (gl_FUNC_STRERROR_0): ...into new macro.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Replace strerror_r if 0
+ is overridden.
+ (gl_FUNC_STRERROR_R_WORKS): Avoid extra tests if 0 is broken.
+ * modules/strerror-override (Files): Add strerror.m4.
+ (configure.ac): Also provide override for 0 when needed.
+ * doc/posix-functions/strerror.texi (strerror): Document this.
+ * doc/posix-functions/perror.texi (perror): Likewise.
+
+ perror: adjust array size
+ * modules/perror (Depends-on): Add strerror-override.
+ * lib/perror.c (perror): Use it to avoid magic number.
+
+ strerror-override: reduce size
+ * lib/strerror-override.c (strerror_override): Use fewer lines.
+
+2011-06-20 Bruno Haible <bruno@clisp.org>
+
+ pathmax: Ensure correct value for PATH_MAX on HP-UX.
+ * lib/pathmax.h (PATH_MAX) [HP-UX]: Define to 1024.
+
+2011-06-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ alloca: port to compilers that can optimize like GCC 4.6.0
+ * lib/alloca.c (find_stack_direction): New signature, taken from
+ Autoconf git. This works with GCC 4.6.0. This code should never
+ be used with GCC 4.6.0 itself, as GCC has alloca, but it might
+ be used with other compilers that optimize as well as GCC 4.6.0 does.
+ (alloca): Adjust to new signature.
+ * m4/alloca.m4 (__AC_LIBOBJ_ALLOCA) [Autoconf version < 2.69]:
+ New macro, which patches Autoconf in a similar way.
+
+ c-stack: stop worrying about stack direction
+ * lib/c-stack.c (find_stack_direction): Remove.
+ (segv_handler): Don't worry about stack direction growth, as it's
+ too much of a pain to configure this correctly, given how compilers
+ are optimizing-away our stack-growth detection code. Instead, assume
+ that any access to just before or just after the stack is OK.
+ * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC):
+ Don't require AC_FUNC_ALLOCA; no longer needed.
+
+2011-06-20 Eric Blake <eblake@redhat.com>
+
+ test-stat: don't allocate PATH_MAX bytes
+ * tests/test-stat.h (test_stat_func): Don't stack-allocate a
+ PATH_MAX-sized buffer.
+ * modules/openat-tests (Depends-on): Add getcwd-lgpl, drop pathmax.
+ * modules/stat-tests (Depends-on): Likewise.
+ * tests/test-fstatat.c (includes): Drop pathmax.h.
+ * tests/test-stat.c (includes): Likewise.
+ Reported by Bruno Haible.
+
+2011-06-20 Bruno Haible <bruno@clisp.org>
+
+ float: Work around <float.h> bugs on FreeBSD/x86, AIX with GCC, IRIX.
+ * lib/float.in.h: Add workarounds for FreeBSD/x86, AIX with GCC, IRIX.
+ * lib/float.c: New file.
+ * m4/float_h.m4 (gl_FLOAT_H): Also handle FreeBSD, AIX, IRIX. Set
+ REPLACE_FLOAT_LDBL.
+ * modules/float (Files): Add lib/float.c.
+ (configure.ac): Invoke AC_LIBOBJ.
+ * doc/posix-headers/float.texi: Mention problems on FreeBSD, AIX, IRIX.
+
+2011-06-20 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'float'.
+ * modules/float-tests: New file.
+ * tests/test-float.c: New file.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ isinf: Coding style.
+ * lib/isinf.c: Use GNU coding style.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ linkat test: Avoid test failure on AIX 7.1.
+ * tests/test-linkat.c (main): Allow EINVAL as alternate error value.
+ * tests/test-link.h (test_link): Likewise.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ pread test: Avoid test failure on OpenBSD 4.9.
+ * tests/test-pread.c (main): Allow EFBIG instead of EINBAL.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ sprintf-posix: Fix test failure on AIX 7.1.
+ * m4/printf.m4 (gl_PRINTF_PRECISION): Test against AIX bug.
+ * doc/posix-functions/dprintf.texi: Mention limited precision problem
+ on AIX.
+ * 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/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.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ roundl-ieee: Fix test failure on AIX 7.1.
+ * m4/roundl.m4 (gl_FUNC_ROUNDL): Test also the sign of roundl (-0.3L).
+ * doc/posix-functions/roundl.texi: Mention problem with negative
+ arguments.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ round-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1.
+ * modules/round-ieee (Depends-on): Add floor-ieee, ceil-ieee.
+ * doc/posix-functions/round.texi: Mention problem with negative
+ arguments.
+ * doc/posix-functions/ceil.texi: Mention problem on OSF/1 5.1.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ roundf-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1.
+ * m4/roundf.m4 (gl_FUNC_ROUNDF): Test also the sign of roundf (-0.3f).
+ * modules/roundf-ieee (Depends-on): Add floorf-ieee, ceilf-ieee.
+ * doc/posix-functions/roundf.texi: Mention problem with negative
+ arguments.
+ * doc/posix-functions/ceilf.texi: Mention problem on OSF/1 5.1.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ ceilf-ieee: Work around bug on MacOS X 10.5.
+ * doc/posix-functions/ceilf.texi: Mention the MacOS X 10.5 problem.
+
+ floor*-ieee, ceil*-ieee, trunc*-ieee, round*-ieee: More robust checks.
+ * m4/floorf.m4 (gl_FUNC_FLOORF): In the test whether the function is
+ IEEE compliant, avoid compiler optimizations.
+ * m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
+ * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
+ * m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
+ * m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
+ * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
+ * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
+ * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
+ * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
+ * m4/round.m4 (gl_FUNC_ROUND): Likewise.
+ * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ ceilf-ieee: Work around bug on AIX 7.1.
+ * m4/ceilf.m4 (gl_FUNC_CEILF): Test also the sign of ceilf (-0.3f).
+ * doc/posix-functions/ceilf.texi: Mention the AIX 7.1 problem.
+
+2011-06-19 Bruno Haible <bruno@clisp.org>
+
+ ceil-ieee: Work around bug on AIX 7.1.
+ * m4/ceil.m4 (gl_FUNC_CEIL): Test also the sign of ceil (-0.3).
+ * doc/posix-functions/ceil.texi: Mention the AIX 7.1 problem.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ fsync test: Avoid test failure on MacOS X and AIX.
+ * tests/test-fsync.c (fsync): Allow ENOTSUP and EBADF instead of
+ EINVAL.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ openat, fdopendir tests: Fix link errors.
+ * modules/openat-tests (Depends-on): Add progname.
+ * modules/fdopendir-tests (Depends-on): Likewise.
+ * tests/test-fchownat.c: Include progname.h.
+ (main): Call set_program_name.
+ * tests/test-fstatat.c: Include progname.h.
+ (main): Call set_program_name.
+ * tests/test-mkdirat.c: Include progname.h.
+ (main): Call set_program_name.
+ * tests/test-openat.c: Include progname.h.
+ (main): Call set_program_name.
+ * tests/test-unlinkat.c: Include progname.h.
+ (main): Call set_program_name.
+ * tests/test-fdopendir.c: Include progname.h.
+ (main): Call set_program_name.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ Doc update.
+ * doc/posix-functions/pthread_attr_getstack.texi: Update info regarding
+ HP-UX.
+ * doc/posix-functions/pthread_attr_setstack.texi: Likewise.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ getcwd tests: Avoid compilation error on HP-UX 11.31.
+ * modules/getcwd-tests (Depends-on): Add pathmax.
+ * tests/test-getcwd.c: Include pathmax.h.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ isfinite, isinf: Fix link error on AIX 6 and 7.
+ * m4/isfinite.m4 (gl_ISFINITE): When determining whether libm is
+ needed, also test the macro with a 'float' argument.
+ * m4/isinf.m4 (gl_ISINF): Likewise.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ getloadavg: Don't clobber LIBS. Regression from previous commit.
+ * m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Move tests that use
+ AC_CHECK_LIB from here...
+ (gl_GETLOADAVG): ... to here, inside the experiment with LIBS.
+ (gl_GETLOADAVG, gl_PREREQ_GETLOADAVG): Rename gl_have_func to
+ gl_func_getloadavg_done.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2011-06-18 Bruno Haible <bruno@clisp.org>
+
+ clean-temp: Improve documentation.
+ * lib/clean-temp.h: Explain better how to use this module.
+ Reported by John Darrington <john@darrington.wattle.id.au>.
+
+2011-06-17 Bruno Haible <bruno@clisp.org>
+
+ pread, pwrite: Avoid cc warning on AIX.
+ * lib/unistd.in.h (pread): Undefine before defining as a macro.
+ (pwrite): Likewise.
+
+2011-06-17 Bruno Haible <bruno@clisp.org>
+
+ spawn-pipe tests: Fix link error.
+ * tests/test-spawn-pipe-child.c: Undefine fprintf.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2011-06-17 Bruno Haible <bruno@clisp.org>
+
+ Tests: Remove unnecessary dependency.
+ * modules/canonicalize-tests (Depends-on): Remove progname.
+ * modules/chown-tests (Depends-on): Likewise.
+ * modules/dirname-tests (Depends-on): Likewise.
+ * modules/fdopendir-tests (Depends-on): Likewise.
+ * modules/fdutimensat-tests (Depends-on): Likewise.
+ * modules/hash-tests (Depends-on): Likewise.
+ * modules/lchown-tests (Depends-on): Likewise.
+ * modules/linkat-tests (Depends-on): Likewise.
+ * modules/renameat-tests (Depends-on): Likewise.
+ * modules/spawn-pipe-tests (Depends-on): Likewise.
+ * modules/utimensat-tests (Depends-on): Likewise.
+
+2011-06-17 Bruno Haible <bruno@clisp.org>
+
+ spawn-pipe tests: Fix link error.
+ * tests/test-spawn-pipe-child.c: Undefine fflush.
+
+2011-06-17 Bruno Haible <bruno@clisp.org>
+
+ Fix tests link errors.
+ * modules/ceil-ieee-tests (Makefile.am): Use CEIL_LIBM, not FLOOR_LIBM.
+ * modules/chown-tests (Makefile.am): Don't link test-chown with
+ LIBINTL.
+ * modules/lchown-tests (Makefile.am): Don't link test-lchown with
+ LIBINTL.
+ * modules/utimens-tests (Makefile.am): Don't link test-utimens with
+ LIBINTL.
+ * modules/futimens-tests (Makefile.am): Don't link test-futimens with
+ LIBINTL.
+
+2011-06-16 Bruno Haible <bruno@clisp.org>
+
+ crypto/gc-sha1: Fix recent regression.
+ * modules/crypto/gc-sha1 (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-sha1.m4 (gl_GC_SHA1): Don't invoke gl_SHA1.
+
+ crypto/gc-md5: Fix recent regression.
+ * modules/crypto/gc-md5 (configure.ac): Invoke AC_LIBOBJ here.
+
+ crypto/gc-md4: Fix recent regression.
+ * modules/crypto/gc-md4 (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/md4.m4 (gl_MD4): Ensure the expansion is non-empty.
+
+ crypto/gc-arctwo: Fix recent regression.
+ * modules/crypto/gc-arctwo (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/arctwo.m4 (gl_ARCTWO): Ensure the expansion is non-empty.
+
+ crypto/gc-rijndael: Fix recent regression.
+ * modules/crypto/gc-rijndael (Files): Remove m4/rijndael.m4.
+ (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-rijndael.m4 (gl_GC_RIJNDAEL): Don't invoke gl_RIJNDAEL.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+ crypto/gc-hmac-sha1: Fix recent regression.
+ * modules/crypto/gc-hmac-sha1 (Files): Remove m4/hmac-sha1.m4.
+ (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-hmac-sha1.m4 (gl_GC_HMAC_SHA1): Don't invoke gl_HMAC_SHA1.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+ crypto/gc-hmac-md5: Fix recent regression.
+ * modules/crypto/gc-hmac-md5 (Files): Remove m4/hmac-md5.m4.
+ (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-hmac-md5.m4 (gl_GC_HMAC_MD5): Don't invoke gl_HMAC_MD5.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+ crypto/gc-des: Fix recent regression.
+ * modules/crypto/gc-des (Files): Remove m4/des.m4.
+ (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-des.m4 (gl_GC_DES): Don't invoke gl_DES.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+ crypto/gc-arcfour: Fix recent regression.
+ * modules/crypto/gc-arcfour (Files): Remove m4/arcfour.m4.
+ (configure.ac): Invoke AC_LIBOBJ here.
+ * m4/gc-arcfour.m4 (gl_GC_ARCFOUR): Don't invoke gl_ARCFOUR.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * m4/lstat.m4 (gl_FUNC_LSTAT): Fix typo in prerequisite.
+ After the 2011-05-21 change, this macro requires
+ gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, not
+ AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
+
+2011-06-16 Bruno Haible <bruno@clisp.org>
+
+ fprintftime: Move AC_LIBOBJ invocations to module description.
+ * m4/fprintftime.m4: Remove file.
+ * modules/fprintftime (Files): Remove m4/fprintftime.m4.
+ (configure.ac): Remove gl_FPRINTFTIME call.
+ (Makefile.am): Augment lib_SOURCES.
+ Reported by Jim Meyering.
+
+2011-06-16 Bruno Haible <bruno@clisp.org>
+
+ tmpfile-safer: Finish 2011-05-23 commit.
+ * m4/stdio-safer.m4: Really remove file.
+ Reported by Jim Meyering.
+
+2011-06-16 Bruno Haible <bruno@clisp.org>
+
+ syntax-check: Fix typo.
+ * Makefile (allow_AC_LIBOBJ): Mention printf-posix-rpl.m4, not
+ printf-posix.m4.
+ Reported by Jim Meyering.
+
+2011-06-13 Jim Meyering <meyering@redhat.com>
+
+ syntax-check: add a rule to help enforce the no-AC_LIBOBJ-in-m4/ policy
+ * Makefile (sc_prohibit_AC_LIBOBJ_in_m4): New rule.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ yesno: Move AC_LIBOBJ invocations to module description.
+ * m4/yesno.m4 (gl_YESNO): Remove AC_LIBOBJ invocation.
+ * modules/yesno (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xstrtol: Move AC_LIBOBJ invocations to module description.
+ * m4/xstrtol.m4 (gl_XSTRTOL): Remove AC_LIBOBJ invocations.
+ * modules/xstrtol (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xstrtold: Move AC_LIBOBJ invocations to module description.
+ * m4/xstrtod.m4 (gl_XSTRTOLD): Remove AC_LIBOBJ invocation.
+ * modules/xstrtold (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xstrtod: Move AC_LIBOBJ invocations to module description.
+ * m4/xstrtod.m4 (gl_XSTRTOD): Remove AC_LIBOBJ invocation.
+ * modules/xstrtod (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xnanosleep: Move AC_LIBOBJ invocations to module description.
+ * m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove AC_LIBOBJ invocation.
+ * modules/xnanosleep (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xgetcwd: Move AC_LIBOBJ invocations to module description.
+ * m4/xgetcwd.m4 (gl_XGETCWD): Remove AC_LIBOBJ invocation.
+ * modules/xgetcwd (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ xalloc: Move AC_LIBOBJ invocations to module description.
+ * m4/xalloc.m4 (gl_XALLOC): Remove AC_LIBOBJ invocation.
+ * modules/xalloc (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ write-any-file: Move AC_LIBOBJ invocations to module description.
+ * m4/write-any-file.m4 (gl_WRITE_ANY_FILE): Remove AC_LIBOBJ
+ invocation.
+ * modules/write-any-file (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ utimens: Move AC_LIBOBJ invocations to module description.
+ * m4/utimens.m4 (gl_UTIMENS): Remove AC_LIBOBJ invocation.
+ * modules/utimens (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ utimecmp: Move AC_LIBOBJ invocations to module description.
+ * m4/utimecmp.m4 (gl_UTIMECMP): Remove AC_LIBOBJ invocation.
+ * modules/utimecmp (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ userspec: Move AC_LIBOBJ invocations to module description.
+ * m4/userspec.m4 (gl_USERSPEC): Remove AC_LIBOBJ invocation.
+ * modules/userspec (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ unlinkdir: Move AC_LIBOBJ invocations to module description.
+ * m4/unlinkdir.m4 (gl_UNLINKDIR): Remove AC_LIBOBJ invocation.
+ * modules/unlinkdir (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ unistd-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/unistd-safer.m4 (gl_UNISTD_SAFER): Remove AC_LIBOBJ invocations.
+ * modules/unistd-safer (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ tempname: Move AC_LIBOBJ invocations to module description.
+ * m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Remove AC_LIBOBJ invocation.
+ * modules/tempname (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ strftime: Move AC_LIBOBJ invocations to module description.
+ * m4/strftime.m4 (gl_FUNC_STRFTIME): Remove AC_LIBOBJ invocation.
+ * modules/strftime (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ stdlib-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/stdlib-safer.m4: Remove file.
+ * modules/stdlib-safer (Files): Remove m4/stdlib-safer.m4.
+ (configure.ac): Remove gl_STDLIB_SAFER call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ tmpfile-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/stdio-safer.m4: Remove file.
+ * modules/tmpfile-safer (Files): Remove m4/stdio-safer.m4.
+ (configure.ac): Remove gl_TMPFILE_SAFER call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ popen-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/stdio-safer.m4 (gl_POPEN_SAFER): Remove macro.
+ * modules/popen-safer (Files): Remove m4/stdio-safer.m4.
+ (configure.ac): Remove gl_POPEN_SAFER call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ freopen-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/stdio-safer.m4 (gl_FREOPEN_SAFER): Remove macro.
+ * modules/freopen-safer (Files): Remove m4/stdio-safer.m4.
+ (configure.ac): Remove gl_FREOPEN_SAFER call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ fopen-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/stdio-safer.m4 (gl_FOPEN_SAFER): Remove macro.
+ * modules/fopen-safer (Files): Remove m4/stdio-safer.m4.
+ (configure.ac): Remove gl_FOPEN_SAFER call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/sha512: Move AC_LIBOBJ invocations to module description.
+ * m4/sha512.m4 (gl_SHA512): Remove AC_LIBOBJ invocation.
+ * modules/crypto/sha512 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/sha256: Move AC_LIBOBJ invocations to module description.
+ * m4/sha256.m4 (gl_SHA256): Remove AC_LIBOBJ invocation.
+ * modules/crypto/sha256 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/sha1: Move AC_LIBOBJ invocations to module description.
+ * m4/sha1.m4 (gl_SHA1): Remove AC_LIBOBJ invocation.
+ * modules/crypto/sha1 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ settime: Move AC_LIBOBJ invocations to module description.
+ * m4/settime.m4 (gl_SETTIME): Remove AC_LIBOBJ invocation.
+ * modules/settime (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ savedir: Move AC_LIBOBJ invocations to module description.
+ * m4/savedir.m4 (gl_SAVEDIR): Remove AC_LIBOBJ invocation.
+ * modules/savedir (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ save-cwd: Move AC_LIBOBJ invocations to module description.
+ * m4/save-cwd.m4 (gl_SAVE_CWD): Remove AC_LIBOBJ invocation.
+ * modules/save-cwd (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ same: Move AC_LIBOBJ invocations to module description.
+ * m4/same.m4 (gl_SAME): Remove AC_LIBOBJ invocation.
+ * modules/same (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ safe-write: Move AC_LIBOBJ invocations to module description.
+ * m4/safe-write.m4 (gl_SAFE_WRITE): Remove macro.
+ * modules/safe-write (configure.ac): Invoke gl_PREREQ_SAFE_WRITE
+ instead of gl_SAFE_WRITE.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ safe-read: Move AC_LIBOBJ invocations to module description.
+ * m4/safe-read.m4 (gl_SAFE_READ): Remove macro.
+ * modules/safe-read (configure.ac): Invoke gl_PREREQ_SAFE_READ instead
+ of gl_SAFE_READ.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ safe-alloc: Move AC_LIBOBJ invocations to module description.
+ * m4/safe-alloc.m4 (gl_SAFE_ALLOC): Remove AC_LIBOBJ invocation.
+ * modules/safe-alloc (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/rijndael: Move AC_LIBOBJ invocations to module description.
+ * m4/rijndael.m4: Remove file.
+ * modules/crypto/rijndael (Files): Remove it.
+ (configure.ac): Remove gl_RIJNDAEL call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ readtokens: Move AC_LIBOBJ invocations to module description.
+ * m4/readtokens.m4 (gl_READTOKENS): Remove AC_LIBOBJ invocation.
+ * modules/readtokens (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ read-file: Move AC_LIBOBJ invocations to module description.
+ * m4/read-file.m4 (gl_FUNC_READ_FILE): Remove macro.
+ * modules/read-file (configure.ac): Invoke gl_PREREQ_READ_FILE instead
+ of gl_FUNC_READ_FILE.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ quotearg: Move AC_LIBOBJ invocations to module description.
+ * m4/quotearg.m4 (gl_QUOTEARG): Remove AC_LIBOBJ invocation.
+ * modules/quotearg (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ quote: Move AC_LIBOBJ invocations to module description.
+ * m4/quote.m4 (gl_QUOTE): Remove AC_LIBOBJ invocation.
+ * modules/quote (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ posixver: Move AC_LIBOBJ invocations to module description.
+ * m4/posixver.m4 (gl_POSIXVER): Remove AC_LIBOBJ invocation.
+ * modules/posixver (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ posixtm: Move AC_LIBOBJ invocations to module description.
+ * m4/posixtm.m4 (gl_POSIXTM): Remove AC_LIBOBJ invocation.
+ * modules/posixtm (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ physmem: Move AC_LIBOBJ invocations to module description.
+ * m4/physmem.m4 (gl_PHYSMEM): Remove AC_LIBOBJ invocation.
+ * modules/physmem (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ pagealign_alloc: Move AC_LIBOBJ invocations to module description.
+ * m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): Remove AC_LIBOBJ
+ invocation.
+ * modules/pagealign_alloc (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ mpsort: Move AC_LIBOBJ invocations to module description.
+ * m4/mpsort.m4 (gl_MPSORT): Remove AC_LIBOBJ invocation.
+ * modules/mpsort (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ modechange: Move AC_LIBOBJ invocations to module description.
+ * m4/modechange.m4 (gl_MODECHANGE): Remove AC_LIBOBJ invocation.
+ * modules/modechange (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ mkdir-p: Move AC_LIBOBJ invocations to module description.
+ * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Remove AC_LIBOBJ invocations.
+ * modules/mkdir-p (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ mkancesdirs: Move AC_LIBOBJ invocations to module description.
+ * m4/mkancesdirs.m4 (gl_MKANCESDIRS): Remove AC_LIBOBJ invocation.
+ * modules/mkancesdirs (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ mgetgroups: Move AC_LIBOBJ invocations to module description.
+ * m4/mgetgroups.m4 (gl_MGETGROUPS): Remove AC_LIBOBJ invocation.
+ * modules/mgetgroups (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ memxor: Move AC_LIBOBJ invocations to module description.
+ * m4/memxor.m4 (gl_MEMXOR): Remove AC_LIBOBJ invocation.
+ * modules/memxor (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ memcoll: Move AC_LIBOBJ invocations to module description.
+ * m4/memcoll.m4 (gl_MEMCOLL): Remove AC_LIBOBJ invocation.
+ * modules/memcoll (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ memcasecmp: Move AC_LIBOBJ invocations to module description.
+ * m4/memcasecmp.m4 (gl_MEMCASECMP): Remove AC_LIBOBJ invocation.
+ * modules/memcasecmp (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/md5: Move AC_LIBOBJ invocations to module description.
+ * m4/md5.m4 (gl_MD5): Remove AC_LIBOBJ invocation.
+ * modules/crypto/md5 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/md4: Move AC_LIBOBJ invocations to module description.
+ * m4/md4.m4 (gl_MD4): Remove AC_LIBOBJ invocation.
+ * modules/crypto/md4 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/md2: Move AC_LIBOBJ invocations to module description.
+ * m4/md2.m4: Remove file.
+ * modules/crypto/md2 (Files): Remove it.
+ (configure.ac): Remove gl_MD2 call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ long-options: Move AC_LIBOBJ invocations to module description.
+ * m4/long-options.m4: Remove file.
+ * modules/long-options (Files): Remove it.
+ (configure.ac): Remove gl_LONG_OPTIONS call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ i-ring: Move AC_LIBOBJ invocations to module description.
+ * m4/i-ring.m4 (gl_I_RING): Remove AC_LIBOBJ invocation.
+ * modules/i-ring (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ idcache: Move AC_LIBOBJ invocations to module description.
+ * m4/idcache.m4 (gl_IDCACHE): Remove AC_LIBOBJ invocation.
+ * modules/idcache (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ human: Move AC_LIBOBJ invocations to module description.
+ * m4/human.m4 (gl_HUMAN): Remove AC_LIBOBJ invocation.
+ * modules/human (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/hmac-sha1: Move AC_LIBOBJ invocations to module description.
+ * m4/hmac-sha1.m4: Remove file.
+ * modules/crypto/hmac-sha1 (Files): Remove it.
+ (configure.ac): Remove gl_HMAC_SHA1 call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/hmac-md5: Move AC_LIBOBJ invocations to module description.
+ * m4/hmac-md5.m4: Remove file.
+ * modules/crypto/hmac-md5 (Files): Remove it.
+ (configure.ac): Remove gl_HMAC_MD5 call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ hash: Move AC_LIBOBJ invocations to module description.
+ * m4/hash.m4: Remove file.
+ * modules/hash (Files): Remove it.
+ (configure.ac): Remove gl_HASH call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ hard-locale: Move AC_LIBOBJ invocations to module description.
+ * m4/hard-locale.m4 (gl_HARD_LOCALE): Remove AC_LIBOBJ invocation.
+ * modules/hard-locale (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ getugroups: Move AC_LIBOBJ invocations to module description.
+ * m4/getugroups.m4 (gl_GETUGROUPS): Remove AC_LIBOBJ invocation.
+ * modules/getugroups (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ gettime: Move AC_LIBOBJ invocations to module description.
+ * m4/gettime.m4 (gl_GETTIME): Remove AC_LIBOBJ invocation.
+ * modules/gettime (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ getndelim2: Move AC_LIBOBJ invocations to module description.
+ * m4/getndelim2.m4 (gl_GETNDELIM2): Remove AC_LIBOBJ invocation.
+ * modules/getndelim2 (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/gc-pbkdf2-sha1: Move AC_LIBOBJ invocations to module description.
+ * m4/gc-pbkdf2-sha1.m4: Remove file.
+ * modules/crypto/gc-pbkdf2-sha1 (Files): Remove it.
+ (configure.ac): Remove gl_GC_PBKDF2_SHA1 call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ fts: Move AC_LIBOBJ invocations to module description.
+ * m4/fts.m4 (gl_FUNC_FTS_CORE): Move AC_LIBOBJ invocation from here...
+ * modules/fts (configure.ac): ... to here.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ file-type: Move AC_LIBOBJ invocations to module description.
+ * m4/file-type.m4: Remove file.
+ * modules/file-type (Files): Remove it.
+ (configure.ac): Remove gl_FILE_TYPE call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ filenamecat*: Respect rules for use of AC_LIBOBJ.
+ * m4/filenamecat.m4 (gl_FILE_NAME_CONCAT, gl_FILE_NAME_CONCAT_LGPL):
+ Remove AC_LIBOBJ invocation.
+ * modules/filenamecat (Makefile.am): Augment lib_SOURCES.
+ * modules/filenamecat-lgpl (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ filemode: Move AC_LIBOBJ invocations to module description.
+ * m4/filemode.m4 (gl_FILEMODE): Remove AC_LIBOBJ invocation.
+ * modules/filemode (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ openat-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/fcntl-safer.m4 (gl_OPENAT_SAFER): Remove AC_LIBOBJ invocation.
+ * modules/openat-safer (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ fcntl-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Remove AC_LIBOBJ invocations.
+ * modules/fcntl-safer (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ exclude: Move AC_LIBOBJ invocations to module description.
+ * m4/exclude.m4: Remove file.
+ * modules/exclude (Files): Remove it.
+ (configure.ac): Remove gl_EXCLUDE call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ dirname*: Respect rules for use of AC_LIBOBJ.
+ * m4/dirname.m4 (gl_DIRNAME, gl_DIRNAME_LGPL): Remove AC_LIBOBJ
+ invocations.
+ * modules/dirname (Makefile.am): Augment lib_SOURCES.
+ * modules/dirname-lgpl (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ dirent-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/dirent-safer.m4 (gl_DIRENT_SAFER): Remove AC_LIBOBJ invocation.
+ * modules/dirent-safer (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/des: Move AC_LIBOBJ invocations to module description.
+ * m4/des.m4: Remove file.
+ * modules/crypto/des (Files): Remove it.
+ (configure.ac): Remove gl_DES call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ cycle-check: Move AC_LIBOBJ invocations to module description.
+ * m4/cycle-check.m4 (gl_CYCLE_CHECK): Remove AC_LIBOBJ invocation.
+ * modules/cycle-check (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ c-strtold: Move AC_LIBOBJ invocations to module description.
+ * m4/c-strtod.m4 (gl_C_STRTOLD): Remove AC_LIBOBJ invocation.
+ * modules/c-strtold (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ c-strtod: Move AC_LIBOBJ invocations to module description.
+ * m4/c-strtod.m4 (gl_C_STRTOD): Remove AC_LIBOBJ invocation.
+ * modules/c-strtod (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crc: Move AC_LIBOBJ invocations to module description.
+ * m4/crc.m4: Remove file.
+ * modules/crc (Files): Remove it.
+ (configure.ac): Remove gl_CRC call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ close-stream: Move AC_LIBOBJ invocations to module description.
+ * m4/close-stream.m4 (gl_CLOSE_STREAM): Remove AC_LIBOBJ invocation.
+ * modules/close-stream (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ closeout: Move AC_LIBOBJ invocations to module description.
+ * m4/closeout.m4 (gl_CLOSEOUT): Remove AC_LIBOBJ invocation.
+ * modules/closeout (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ closein: Move AC_LIBOBJ invocations to module description.
+ * m4/closein.m4 (gl_CLOSEIN): Remove AC_LIBOBJ invocation.
+ * modules/closein (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ cloexec: Move AC_LIBOBJ invocations to module description.
+ * m4/cloexec.m4: Remove file.
+ * modules/cloexec (Files): Remove it.
+ (configure.ac): Remove gl_CLOEXEC call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ check-version: Move AC_LIBOBJ invocations to module description.
+ * m4/check-version.m4: Remove file.
+ * modules/check-version (Files): Remove it.
+ (configure.ac): Remove gl_CHECK_VERSION call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ chdir-safer: Move AC_LIBOBJ invocations to module description.
+ * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Remove AC_LIBOBJ invocation.
+ * modules/chdir-safer (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ canonicalize: Move AC_LIBOBJ invocations to module description.
+ * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Remove
+ AC_LIBOBJ invocation.
+ * modules/canonicalize (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ canon-host: Move AC_LIBOBJ invocations to module description.
+ * m4/canon-host.m4 (gl_CANON_HOST): Remove macro.
+ * modules/canon-host (configure.ac): Invoke gl_PREREQ_CANON_HOST
+ instead of gl_CANON_HOST.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ backupfile: Move AC_LIBOBJ invocations to module description.
+ * m4/backupfile.m4 (gl_BACKUPFILE): Remove AC_LIBOBJ invocation.
+ * modules/backupfile (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ argmatch: Move AC_LIBOBJ invocations to module description.
+ * m4/argmatch.m4: Remove file.
+ * modules/argmatch (Files): Remove it.
+ (configure.ac): Remove gl_ARGMATCH call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/arctwo: Move AC_LIBOBJ invocations to module description.
+ * m4/arctwo.m4 (gl_ARCTWO): Remove AC_LIBOBJ invocation.
+ * modules/crypto/arctwo (Makefile.am): Augment lib_SOURCES.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ crypto/arcfour: Move AC_LIBOBJ invocations to module description.
+ * m4/arcfour.m4: Remove file.
+ * modules/crypto/arcfour (Files): Remove it.
+ (configure.ac): Remove gl_ARCFOUR call.
+ (Makefile.am): Augment lib_SOURCES.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ write: Move AC_LIBOBJ invocations to module description.
+ * m4/write.m4 (gl_FUNC_WRITE): Move AC_LIBOBJ invocation from here...
+ * modules/write (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wmemset: Move AC_LIBOBJ invocations to module description.
+ * m4/wmemset.m4 (gl_FUNC_WMEMSET): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wmemset (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wmemmove: Move AC_LIBOBJ invocations to module description.
+ * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wmemmove (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wmemcpy: Move AC_LIBOBJ invocations to module description.
+ * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wmemcpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wmemcmp: Move AC_LIBOBJ invocations to module description.
+ * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wmemcmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wmemchr: Move AC_LIBOBJ invocations to module description.
+ * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wmemchr (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcswidth: Move AC_LIBOBJ invocations to module description.
+ * m4/wcswidth.m4 (gl_FUNC_WCSWIDTH): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcswidth (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcwidth: Respect rules for use of AC_LIBOBJ.
+ * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Set HAVE_WCWIDTH. Move AC_LIBOBJ
+ invocation from here...
+ * modules/wcwidth (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wctype: Move AC_LIBOBJ invocations to module description.
+ * m4/wctype.m4 (gl_FUNC_WCTYPE): Set HAVE_WCTYPE. Move AC_LIBOBJ
+ invocation from here...
+ * modules/wctype (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wctrans: Move AC_LIBOBJ invocations to module description.
+ * m4/wctrans.m4 (gl_FUNC_WCTRANS): Set HAVE_WCTRANS. Move AC_LIBOBJ
+ invocation from here...
+ * modules/wctrans (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wctomb: Move AC_LIBOBJ invocations to module description.
+ * m4/wctomb.m4 (gl_FUNC_WCTOMB): Move AC_LIBOBJ and gl_PREREQ_WCTOMB
+ invocations from here...
+ * modules/wctomb (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wctob: Move AC_LIBOBJ invocations to module description.
+ * m4/wctob.m4 (gl_FUNC_WCTOB): Set HAVE_WCTOB. Move AC_LIBOBJ and
+ gl_PREREQ_WCTOB invocations from here...
+ * modules/wctob (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsxfrm: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsxfrm.m4 (gl_FUNC_WCSXFRM): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsxfrm (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcstok: Move AC_LIBOBJ invocations to module description.
+ * m4/wcstok.m4 (gl_FUNC_WCSTOK): Move AC_LIBOBJ invocation from here...
+ * modules/wcstok (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsstr: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsstr.m4 (gl_FUNC_WCSSTR): Move AC_LIBOBJ invocation from here...
+ * modules/wcsstr (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsspn: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsspn.m4 (gl_FUNC_WCSSPN): Move AC_LIBOBJ invocation from here...
+ * modules/wcsspn (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsrtombs: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): Move AC_LIBOBJ and
+ gl_PREREQ_WCSRTOMBS invocations from here...
+ * modules/wcsrtombs (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsrchr: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsrchr.m4 (gl_FUNC_WCSRCHR): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsrchr (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcspbrk: Move AC_LIBOBJ invocations to module description.
+ * m4/wcspbrk.m4 (gl_FUNC_WCSPBRK): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcspbrk (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsnrtombs: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Move AC_LIBOBJ and
+ gl_PREREQ_WCSNRTOMBS invocations from here...
+ * modules/wcsnrtombs (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsnlen: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsnlen.m4 (gl_FUNC_WCSNLEN): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsnlen (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsncpy: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsncpy.m4 (gl_FUNC_WCSNCPY): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsncpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsncmp: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsncmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsncat: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsncat.m4 (gl_FUNC_WCSNCAT): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcsncat (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsncasecmp: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsncasecmp.m4 (gl_FUNC_WCSNCASECMP): Move AC_LIBOBJ invocation
+ from here...
+ * modules/wcsncasecmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcslen: Move AC_LIBOBJ invocations to module description.
+ * m4/wcslen.m4 (gl_FUNC_WCSLEN): Move AC_LIBOBJ invocation from here...
+ * modules/wcslen (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcsdup: Move AC_LIBOBJ invocations to module description.
+ * m4/wcsdup.m4 (gl_FUNC_WCSDUP): Move AC_LIBOBJ invocation from here...
+ * modules/wcsdup (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscspn: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscspn.m4 (gl_FUNC_WCSCSPN): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcscspn (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscpy: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscpy.m4 (gl_FUNC_WCSCPY): Move AC_LIBOBJ invocation from here...
+ * modules/wcscpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscoll: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscoll.m4 (gl_FUNC_WCSCOLL): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcscoll (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscmp: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscmp.m4 (gl_FUNC_WCSCMP): Move AC_LIBOBJ invocation from here...
+ * modules/wcscmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcschr: Move AC_LIBOBJ invocations to module description.
+ * m4/wcschr.m4 (gl_FUNC_WCSCHR): Move AC_LIBOBJ invocation from here...
+ * modules/wcschr (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscat: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscat.m4 (gl_FUNC_WCSCAT): Move AC_LIBOBJ invocation from here...
+ * modules/wcscat (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcscasecmp: Move AC_LIBOBJ invocations to module description.
+ * m4/wcscasecmp.m4 (gl_FUNC_WCSCASECMP): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcscasecmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcrtomb: Move AC_LIBOBJ invocations to module description.
+ * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Move AC_LIBOBJ and gl_PREREQ_WCRTOMB
+ invocations from here...
+ * modules/wcrtomb (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcpncpy: Move AC_LIBOBJ invocations to module description.
+ * m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Move AC_LIBOBJ invocation from
+ here...
+ * modules/wcpncpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ wcpcpy: Move AC_LIBOBJ invocations to module description.
+ * m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Move AC_LIBOBJ invocation from here...
+ * modules/wcpcpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ waitpid: Move AC_LIBOBJ invocations to module description.
+ * m4/waitpid.m4 (gl_FUNC_WAITPID): Set HAVE_WAITPID. Move AC_LIBOBJ
+ invocation from here...
+ * modules/waitpid (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ utimensat: Move AC_LIBOBJ invocations to module description.
+ * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Move AC_LIBOBJ invocations from
+ here...
+ * modules/utimensat (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ usleep: Move AC_LIBOBJ invocations to module description.
+ * m4/usleep.m4 (gl_FUNC_USLEEP): Move AC_LIBOBJ invocations from
+ here...
+ * modules/usleep (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ unlockpt: Move AC_LIBOBJ invocations to module description.
+ * m4/unlockpt.m4 (gl_FUNC_UNLOCKPT): Move AC_LIBOBJ and
+ gl_PREREQ_UNLOCKPT invocations from here...
+ * modules/unlockpt (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ unlink: Respect rules for use of AC_LIBOBJ.
+ * m4/unlink.m4 (gl_FUNC_UNLINK): Move AC_LIBOBJ invocation from here...
+ * modules/unlink (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ uname: Move AC_LIBOBJ invocations to module description.
+ * m4/uname.m4 (gl_FUNC_UNAME): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_UNAME invocations from
+ here...
+ * modules/uname (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ ttyname_r: Move AC_LIBOBJ invocations to module description.
+ * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Move AC_LIBOBJ and
+ gl_PREREQ_TTYNAME_R invocations from here...
+ * modules/ttyname_r (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ tsearch: Move AC_LIBOBJ invocations to module description.
+ * m4/tsearch.m4 (gl_FUNC_TSEARCH): Move AC_LIBOBJ and gl_PREREQ_TSEARCH
+ invocations from here...
+ * modules/tsearch (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ towctrans: Move AC_LIBOBJ invocations to module description.
+ * m4/towctrans.m4 (gl_FUNC_TOWCTRANS): Set HAVE_TOWCTRANS. Move
+ AC_LIBOBJ invocation from here...
+ * modules/towctrans (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ tmpfile: Move AC_LIBOBJ invocations to module description.
+ * m4/tmpfile.m4 (gl_FUNC_TMPFILE): Move AC_LIBOBJ and gl_PREREQ_TMPFILE
+ invocations from here...
+ * modules/tmpfile (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ times: Move AC_LIBOBJ invocations to module description.
+ * m4/times.m4 (gl_FUNC_TIMES): Move AC_LIBOBJ invocation from here...
+ * modules/times (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ time_r: Move AC_LIBOBJ invocations to module description.
+ * m4/time_r.m4 (gl_TIME_R): Move AC_LIBOBJ and gl_PREREQ_TIME_R
+ invocations from here...
+ * modules/time_r (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ timegm: Move AC_LIBOBJ invocations to module description.
+ * m4/timegm.m4 (gl_FUNC_TIMEGM): Move AC_LIBOBJ and gl_PREREQ_TIMEGM
+ invocations from here...
+ * modules/timegm (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ tcgetsid: Move AC_LIBOBJ invocations to module description.
+ * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Set HAVE_TCGETSID. Move AC_LIBOBJ
+ and gl_PREREQ_TCGETSID invocations from here...
+ * modules/tcgetsid (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ symlinkat: Move AC_LIBOBJ invocations to module description.
+ * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Move AC_LIBOBJ invocation from
+ here...
+ * modules/symlinkat (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ symlink: Move AC_LIBOBJ invocations to module description.
+ * m4/symlink.m4 (gl_FUNC_SYMLINK): Move AC_LIBOBJ invocations from
+ here...
+ * modules/symlink (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strverscmp: Move AC_LIBOBJ invocations to module description.
+ * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRVERSCMP invocations
+ from here...
+ * modules/strverscmp (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtok_r: Move AC_LIBOBJ invocations to module description.
+ * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_STRTOK_R. Move AC_LIBOBJ
+ and gl_PREREQ_STRTOK_R invocations from here...
+ * modules/strtok_r (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtoumax: Move AC_LIBOBJ invocations to module description.
+ * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOUMAX invocations
+ from here...
+ * modules/strtoumax (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtoimax: Move AC_LIBOBJ invocations to module description.
+ * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOIMAX invocations
+ from here...
+ * modules/strtoimax (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtoull: Move AC_LIBOBJ invocations to module description.
+ * m4/strtoull.m4 (gl_FUNC_STRTOULL): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOULL invocations
+ from here...
+ * modules/strtoull (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtoll: Move AC_LIBOBJ invocations to module description.
+ * m4/strtoll.m4 (gl_FUNC_STRTOLL): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOLL invocations from
+ here...
+ * modules/strtoll (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtoul: Move AC_LIBOBJ invocations to module description.
+ * m4/strtoul.m4 (gl_FUNC_STRTOUL): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here...
+ * modules/strtoul (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtol: Move AC_LIBOBJ invocations to module description.
+ * m4/strtol.m4 (gl_FUNC_STRTOL): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here...
+ * modules/strtol (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strtod: Move AC_LIBOBJ invocations to module description.
+ * m4/strtod.m4 (gl_FUNC_STRTOD): Move AC_LIBOBJ and gl_PREREQ_STRTOD
+ invocations from here...
+ * modules/strtod (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strstr*: Move AC_LIBOBJ invocations to module description.
+ * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Move AC_LIBOBJ
+ invocations from here...
+ * modules/strstr-simple (configure.ac): ... to here.
+ * modules/strstr (configure.ac): ... and here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strsignal: Move AC_LIBOBJ invocations to module description.
+ * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Set HAVE_STRSIGNAL. Move
+ AC_LIBOBJ and gl_PREREQ_STRSIGNAL invocations from here...
+ * modules/strsignal (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strsep: Move AC_LIBOBJ invocations to module description.
+ * m4/strsep.m4 (gl_FUNC_STRSEP): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRSEP invocations from
+ here...
+ * modules/strsep (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strptime: Move AC_LIBOBJ invocations to module description.
+ * m4/strptime.m4 (gl_FUNC_STRPTIME): Move AC_LIBOBJ and
+ gl_PREREQ_STRPTIME invocations from here...
+ * modules/strptime (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strpbrk: Move AC_LIBOBJ invocations to module description.
+ * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRPBRK invocations from
+ here...
+ * modules/strpbrk (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strnlen: Move AC_LIBOBJ invocations to module description.
+ * m4/strnlen.m4 (gl_FUNC_STRNLEN): Move AC_LIBOBJ and gl_PREREQ_STRNLEN
+ invocations from here...
+ * modules/strnlen (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strndup: Move AC_LIBOBJ invocations to module description.
+ * m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_STRNDUP. Move AC_LIBOBJ
+ invocations from here...
+ * modules/strndup (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strncat: Move AC_LIBOBJ invocations to module description.
+ * m4/strncat.m4 (gl_FUNC_STRNCAT): Move AC_LIBOBJ and gl_PREREQ_STRNCAT
+ invocations from here...
+ * modules/strncat (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strdup, strdup-posix: Move AC_LIBOBJ invocations to module description.
+ * m4/strdup.m4 (gl_FUNC_STRDUP): Move AC_LIBOBJ and gl_PREREQ_STRDUP
+ invocations from here...
+ * modules/strdup (configure.ac): ... to here.
+ * modules/strdup-posix (configure.ac): ... and here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strcspn: Move AC_LIBOBJ invocations to module description.
+ * m4/strcspn.m4 (gl_FUNC_STRCSPN): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRCSPN invocations from
+ here...
+ * modules/strcspn (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strchrnul: Move AC_LIBOBJ invocations to module description.
+ * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Move AC_LIBOBJ and
+ gl_PREREQ_STRCHRNUL invocations from here...
+ * modules/strchrnul (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strcasestr*: Move AC_LIBOBJ invocations to module description.
+ * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR):
+ Move AC_LIBOBJ and gl_PREREQ_STRCASESTR invocations from here...
+ * modules/strcasestr-simple (configure.ac): ... to here.
+ * modules/strcasestr (configure.ac): ... and here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strcase: Move AC_LIBOBJ invocations to module description.
+ * m4/strcase.m4 (gl_FUNC_STRNCASECMP): Set HAVE_STRNCASECMP.
+ (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Call AC_CHECK_FUNCS instead
+ of AC_REPLACE_FUNCS. Move AC_LIBOBJ, gl_PREREQ_STRCASECMP,
+ gl_PREREQ_STRNCASECMP invocations from here...
+ * modules/strcase (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ stpncpy: Move AC_LIBOBJ invocations to module description.
+ * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Move AC_LIBOBJ invocations from
+ here...
+ * modules/stpncpy (configure.ac): ... to here.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ stpcpy: Move AC_LIBOBJ invocations to module description.
+ * m4/stpcpy.m4 (gl_FUNC_STPCPY): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STPCPY invocations from
+ here...
+ * modules/stpcpy (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ stat: Move AC_LIBOBJ invocations to module description.
+ * m4/stat.m4 (gl_PREREQ_STAT): New macro, extracted from gl_FUNC_STAT.
+ (gl_FUNC_STAT): Move AC_LIBOBJ and gl_PREREQ_STAT invocations from
+ here...
+ * modules/stat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ sleep: Move AC_LIBOBJ invocations to module description.
+ * m4/sleep.m4 (gl_FUNC_SLEEP): Move AC_LIBOBJ invocations from here...
+ * modules/sleep (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ signbit: Move AC_LIBOBJ invocations to module description.
+ * m4/signbit.m4 (gl_SIGNBIT): Move AC_LIBOBJ invocations from here...
+ * modules/signbit (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ sigprocmask: Move AC_LIBOBJ invocations to module description.
+ * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Move AC_LIBOBJ and
+ gl_PREREQ_SIGPROMASK invocations from here...
+ * modules/sigprocmask (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ sigaction: Move AC_LIBOBJ invocations to module description.
+ * m4/sigaction.m4 (gl_SIGACTION): Move AC_LIBOBJ and
+ gl_PREREQ_SIGACTION invocations from here...
+ * modules/sigaction (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ sig2str: Move AC_LIBOBJ invocations to module description.
+ * m4/sig2str.m4 (gl_FUNC_SIG2STR): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_SIG2STR invocations from
+ here...
+ * modules/sig2str (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ setlocale: Move AC_LIBOBJ invocations to module description.
+ * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Move AC_LIBOBJ and
+ gl_PREREQ_SETLOCALE invocations from here...
+ * modules/setlocale (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ unsetenv: Move AC_LIBOBJ invocations to module description.
+ * m4/setenv.m4 (gl_FUNC_UNSETENV): Set HAVE_UNSETENV. Move AC_LIBOBJ
+ and gl_PREREQ_UNSETENV invocations from here...
+ * modules/unsetenv (configure.ac): ... to here.
+ (Depends-on): Update.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ setenv: Move AC_LIBOBJ invocations to module description.
+ * m4/setenv.m4 (gl_FUNC_SETENV): Move AC_LIBOBJ invocations from
+ here...
+ * modules/setenv (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ selinux-h: Move AC_LIBOBJ invocations to module description.
+ * m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Move
+ AC_LIBOBJ invocation from here...
+ * modules/selinux-h (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ select: Respect rules for use of AC_LIBOBJ.
+ * m4/select.m4 (gl_FUNC_SELECT): Move AC_LIBOBJ invocations from
+ here...
+ * modules/select (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ scandir: Move AC_LIBOBJ invocations to module description.
+ * m4/scandir.m4 (gl_FUNC_SCANDIR): Move AC_LIBOBJ and gl_PREREQ_SCANDIR
+ invocations from here...
+ * modules/scandir (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ rpmatch: Move AC_LIBOBJ invocations to module description.
+ * m4/rpmatch.m4 (gl_FUNC_RPMATCH): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RPMATCH invocations from
+ here...
+ * modules/rpmatch (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ rmdir: Respect rules for use of AC_LIBOBJ.
+ * m4/rmdir.m4 (gl_FUNC_RMDIR): Move AC_LIBOBJ invocation from here...
+ * modules/rmdir (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ renameat: Move AC_LIBOBJ invocations to module description.
+ * m4/renameat.m4 (gl_FUNC_RENAMEAT): Move AC_LIBOBJ invocations from
+ here...
+ * modules/renameat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ rename: Respect rules for use of AC_LIBOBJ.
+ * m4/rename.m4 (gl_FUNC_RENAME): Move AC_LIBOBJ invocations from
+ here...
+ * modules/rename (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ remove: Move AC_LIBOBJ invocations to module description.
+ * m4/remove.m4 (gl_FUNC_REMOVE): Move AC_LIBOBJ invocations from
+ here...
+ * modules/remove (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ relocatable-lib: Move AC_LIBOBJ invocations to module description.
+ * m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_SEPARATE): Remove
+ macro.
+ (gl_RELOCATABLE_LIBRARY): Move AC_LIBOBJ invocation from here...
+ * modules/relocatable-lib (configure.ac): ... to here.
+ * modules/relocatable-prog-wrapper (configure.ac): Invoke
+ gl_RELOCATABLE_LIBRARY instead of gl_RELOCATABLE_LIBRARY_SEPARATE.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ relocatable-prog: Move AC_LIBOBJ invocations to module description.
+ * m4/relocatable.m4 (gl_RELOCATABLE): Move AC_LIBOBJ invocation from
+ here...
+ * modules/relocatable-prog (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ regex: Move AC_LIBOBJ invocations to module description.
+ * m4/regex.m4 (gl_REGEX): Move AC_LIBOBJ and gl_PREREQ_REGEX
+ invocations from here...
+ * modules/regex (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ realloc-*: Move AC_LIBOBJ invocations to module description.
+ * m4/realloc.m4 (gl_REPLACE_REALLOC): Remove macro.
+ (gl_FUNC_REALLOC_GNU, gl_FUNC_REALLOC_POSIX): Inline it here. Move
+ AC_LIBOBJ invocations from here...
+ * modules/realloc-gnu (configure.ac): ... to here.
+ * modules/realloc-posix (configure.ac): ... and here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ readutmp: Move AC_LIBOBJ invocations to module description.
+ * m4/readutmp.m4 (gl_READUTMP): Move AC_LIBOBJ invocation from here...
+ * modules/readutmp (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ readlinkat: Move AC_LIBOBJ invocations to module description.
+ * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Move AC_LIBOBJ invocation from
+ here...
+ * modules/readlinkat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ readlink: Move AC_LIBOBJ invocations to module description.
+ * m4/readlink.m4 (gl_FUNC_READLINK): Move AC_LIBOBJ and
+ gl_PREREQ_READLINK invocations from here...
+ * modules/readlink (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ readline: Move AC_LIBOBJ invocations to module description.
+ * m4/readline.m4 (gl_FUNC_READLINE): Move AC_LIBOBJ and
+ gl_PREREQ_READLINE invocations from here...
+ * modules/readline (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ read: Move AC_LIBOBJ invocations to module description.
+ * m4/read.m4 (gl_FUNC_READ): Move AC_LIBOBJ invocation from here...
+ * modules/read (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ rawmemchr: Move AC_LIBOBJ invocations to module description.
+ * m4/rawmemchr.m4 (gl_FUNC_RAWMEMCHR): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RAWMEMCHR invocations
+ from here...
+ * modules/rawmemchr (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ random_r: Move AC_LIBOBJ invocations to module description.
+ * m4/random_r.m4 (gl_FUNC_RANDOM_R): Move AC_LIBOBJ and
+ gl_PREREQ_RANDOM_R invocations from here...
+ * modules/random_r (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ pwrite: Move AC_LIBOBJ invocations to module description.
+ * m4/pwrite.m4 (gl_FUNC_PWRITE): Move AC_LIBOBJ invocation from here...
+ * modules/pwrite (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ putenv: Move AC_LIBOBJ invocations to module description.
+ * m4/putenv.m4 (gl_FUNC_PUTENV): Move AC_LIBOBJ invocation from here...
+ * modules/putenv (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ login_tty: Move AC_LIBOBJ invocations to module description.
+ * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Move AC_LIBOBJ invocation from here...
+ * modules/login_tty (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ openpty: Move AC_LIBOBJ invocations to module description.
+ * m4/pty.m4 (gl_FUNC_OPENPTY): Move AC_LIBOBJ invocations from here...
+ * modules/openpty (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ forkpty: Move AC_LIBOBJ invocations to module description.
+ * m4/pty.m4 (gl_FUNC_FORKPTY): Move AC_LIBOBJ invocations from here...
+ * modules/forkpty (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ ptsname: Move AC_LIBOBJ invocations to module description.
+ * m4/ptsname.m4 (gl_FUNC_PTSNAME): Move AC_LIBOBJ and gl_PREREQ_PTSNAME
+ invocations from here...
+ * modules/ptsname (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ pread: Move AC_LIBOBJ invocations to module description.
+ * m4/pread.m4 (gl_FUNC_PREAD): Move AC_LIBOBJ invocation from here...
+ * modules/pread (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ posix_spawn*: Move AC_LIBOBJ invocations to module description.
+ * m4/posix_spawn.m4 (gl_PREREQ_POSIX_SPAWN_INTERNAL): Renamed from
+ gl_POSIX_SPAWN_INTERNAL. Move AC_LIBOBJ invocation from here...
+ * modules/posix_spawn (configure.ac): ... to here.
+ * modules/posix_spawnp (configure.ac): ... and here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ popen: Move AC_LIBOBJ invocations to module description.
+ * m4/popen.m4 (gl_FUNC_POPEN): Move AC_LIBOBJ and gl_PREREQ_POPEN
+ invocations from here...
+ * modules/popen (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ poll: Move AC_LIBOBJ invocations to module description.
+ * m4/poll.m4 (gl_FUNC_POLL): Move AC_LIBOBJ and gl_PREREQ_POLL
+ invocations from here...
+ * modules/poll (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ pipe-posix: Move AC_LIBOBJ invocations to module description.
+ * m4/pipe.m4 (gl_FUNC_PIPE): Move AC_LIBOBJ invocation from here...
+ * modules/pipe-posix (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ openat: Respect rules for use of AC_LIBOBJ.
+ * m4/openat.m4 (gl_FUNC_OPENAT): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here...
+ * modules/openat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ obstack-printf*: Move AC_LIBOBJ invocations to module description.
+ * m4/obstack-printf.m4 (gl_REPLACE_OBSTACK_PRINTF): Move AC_LIBOBJ
+ invocation from here...
+ * modules/obstack-printf (configure.ac): ... to here.
+ * modules/obstack-printf-posix (configure.ac): ... and here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ nl_langinfo: Move AC_LIBOBJ invocations to module description.
+ * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Move AC_LIBOBJ invocations
+ from here...
+ * modules/nl_langinfo (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ nanosleep: Move AC_LIBOBJ invocations to module description.
+ * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Move AC_LIBOBJ and
+ gl_PREREQ_NANOSLEEP invocations from here...
+ * modules/nanosleep (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mountlist: Move AC_LIBOBJ invocations to module description.
+ * m4/mountlist.m4 (gl_MOUNTLIST): Move AC_LIBOBJ and
+ gl_PREREQ_MOUNTLIST_EXTRA invocations from here...
+ * modules/mountlist (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mktime: Respect rules for use of AC_LIBOBJ.
+ * m4/mktime.m4 (AC_FUNC_MKTIME): Remove macro.
+ (gl_FUNC_MKTIME): Inline it here. Set gl_cv_func_working_mktime. Move
+ AC_LIBOBJ and gl_PREREQ_MKTIME invocations from here...
+ (gl_FUNC_MKTIME_INTERNAL): ... and here...
+ * modules/mktime (configure.ac): ... to here.
+ * modules/mktime-internal (configure.ac): ... and here.
+ * m4/timegm.m4 (gl_FUNC_TIMEGM): Update.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkstemps: Move AC_LIBOBJ invocations to module description.
+ * m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Move AC_LIBOBJ invocation from
+ here...
+ * modules/mkstemps (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkstemp: Move AC_LIBOBJ invocations to module description.
+ * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Move AC_LIBOBJ and
+ gl_PREREQ_MKSTEMP invocations from here...
+ * modules/mkstemp (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkostemps: Move AC_LIBOBJ invocations to module description.
+ * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Move AC_LIBOBJ invocation from
+ here...
+ * modules/mkostemps (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkostemp: Move AC_LIBOBJ invocations to module description.
+ * m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Move AC_LIBOBJ and
+ gl_PREREQ_MKOSTEMP invocations from here...
+ * modules/mkostemp (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mknod: Move AC_LIBOBJ invocations to module description.
+ * m4/mknod.m4 (gl_FUNC_MKNOD): Move AC_LIBOBJ invocations from here...
+ * modules/mknod (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkfifoat: Move AC_LIBOBJ invocations to module description.
+ * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Move AC_LIBOBJ invocations from
+ here...
+ * modules/mkfifoat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkfifo: Respect rules for use of AC_LIBOBJ.
+ * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Move AC_LIBOBJ invocations from
+ here...
+ * modules/mkfifo (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkdtemp: Move AC_LIBOBJ invocations to module description.
+ * m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Move AC_LIBOBJ and gl_PREREQ_MKDTEMP
+ invocations from here...
+ * modules/mkdtemp (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkdir: Move AC_LIBOBJ invocations to module description.
+ * m4/mkdir.m4 (gl_FUNC_MKDIR): Move AC_LIBOBJ invocations from here...
+ * modules/mkdir (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memset: Move AC_LIBOBJ invocations to module description.
+ * m4/memset.m4 (gl_FUNC_MEMSET): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMSET invocations from
+ here...
+ * modules/memset (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memrchr: Move AC_LIBOBJ invocations to module description.
+ * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMRCHR invocations from
+ here...
+ * modules/memrchr (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mempcpy: Move AC_LIBOBJ invocations to module description.
+ * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMPCPY invocations from
+ here...
+ * modules/mempcpy (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memmove: Move AC_LIBOBJ invocations to module description.
+ * m4/memmove.m4 (gl_FUNC_MEMMOVE): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMMOVE invocations from
+ here...
+ * modules/memmove (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memmem*: Move AC_LIBOBJ invocations to module description.
+ * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Set HAVE_MEMMEM. Move AC_LIBOBJ invocations from
+ here...
+ (gl_FUNC_MEMMEM): ... and here...
+ * modules/memmem-simple (configure.ac): ... to here.
+ * modules/memmem (configure.ac): ... and here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memcpy: Move AC_LIBOBJ invocations to module description.
+ * m4/memcpy.m4 (gl_FUNC_MEMCPY): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMCPY invocations from
+ here...
+ * modules/memcpy (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memcmp: Simplify autoconf macro.
+ * m4/memcmp.m4 (gl_FUNC_MEMCMP): Merge the cross-compilation code into
+ the AC_RUN_IFELSE invocation. Set gl_func_memcmp.
+ * modules/memcmp (Depends-on, configure.ac): Test gl_func_memcmp.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memcmp: Move AC_LIBOBJ invocations to module description.
+ * m4/memcmp.m4 (AC_FUNC_MEMCMP): Remove macro.
+ (gl_FUNC_MEMCMP): Inline it here. Set gl_cv_func_memcmp_working. Move
+ AC_LIBOBJ and gl_PREREQ_MEMCMP invocations from here...
+ * modules/memcmp (configure.ac): ... to here.
+ (Depends-on): Update conditions.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ memchr: Respect rules for use of AC_LIBOBJ.
+ * m4/memchr.m4 (gl_FUNC_MEMCHR): Move AC_LIBOBJ and gl_PREREQ_MEMCHR
+ invocations from here...
+ * modules/memchr (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbtowc: Move AC_LIBOBJ invocations to module description.
+ * m4/mbtowc.m4 (gl_FUNC_MBTOWC): Move AC_LIBOBJ and gl_PREREQ_MBTOWC
+ invocations from here...
+ * modules/mbtowc (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbsrtowcs: Move AC_LIBOBJ invocations to module description.
+ * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Move AC_LIBOBJ and
+ gl_PREREQ_MBSRTOWCS invocations from here...
+ * modules/mbsrtowcs (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbsnrtowcs: Move AC_LIBOBJ invocations to module description.
+ * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Move AC_LIBOBJ and
+ gl_PREREQ_MBSNRTOWCS invocations from here...
+ * modules/mbsnrtowcs (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbsinit: Move AC_LIBOBJ invocations to module description.
+ * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Move AC_LIBOBJ and gl_PREREQ_MBSINIT
+ invocations from here...
+ * modules/mbsinit (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbrlen: Move AC_LIBOBJ invocations to module description.
+ * m4/mbrlen.m4 (gl_FUNC_MBRLEN): Move AC_LIBOBJ and gl_PREREQ_MBRLEN
+ invocations from here...
+ * modules/mbrlen (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mbrtowc: Respect rules for use of AC_LIBOBJ.
+ * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Move AC_LIBOBJ and gl_PREREQ_MBRTOWC
+ invocations from here...
+ * modules/mbrtowc (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ malloc-*: Move AC_LIBOBJ invocations to module description.
+ * m4/malloc.m4 (gl_REPLACE_MALLOC): Remove macro.
+ (gl_FUNC_MALLOC_GNU, gl_FUNC_MALLOC_POSIX): Inline it here. Move
+ AC_LIBOBJ invocations from here...
+ * modules/malloc-gnu (configure.ac): ... to here.
+ * modules/malloc-posix (configure.ac): ... and here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ lstat, openat: Respect rules for use of AC_LIBOBJ.
+ * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Renamed from
+ AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Set variable
+ gl_cv_func_lstat_dereferences_slashed_symlink. Don't invoke AC_LIBOBJ.
+ (gl_PREREQ_LSTAT): New macro, extracted from gl_FUNC_LSTAT.
+ (gl_FUNC_LSTAT): Update. Remove gl_PREREQ_LSTAT code.
+ * modules/lstat (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_LSTAT
+ here.
+ * m4/openat.m4 (gl_FUNC_OPENAT): Update.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ lseek: Move AC_LIBOBJ invocations to module description.
+ * m4/lseek.m4 (gl_REPLACE_LSEEK): Remove macro.
+ (gl_FUNC_LSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
+ * modules/lseek (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ linkat: Move AC_LIBOBJ invocations to module description.
+ * m4/linkat.m4 (gl_FUNC_LINKAT): Move AC_LIBOBJ invocations from
+ here...
+ * modules/linkat (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ link: Respect rules for use of AC_LIBOBJ.
+ * m4/link.m4 (gl_FUNC_LINK): Move AC_LIBOBJ invocations from here...
+ * modules/link (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ lchown: Move AC_LIBOBJ invocations to module description.
+ * m4/lchown.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here...
+ * modules/lchown (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ iswctype: Move AC_LIBOBJ invocations to module description.
+ * m4/iswctype.m4 (gl_FUNC_ISWCTYPE): Move AC_LIBOBJ invocation from
+ here...
+ * modules/iswctype (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ iswblank: Move AC_LIBOBJ invocations to module description.
+ * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Move AC_LIBOBJ invocation from
+ here...
+ * modules/iswblank (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ atanl: Move AC_LIBOBJ invocations to module description.
+ * m4/atanl.m4 (gl_FUNC_ATANL): Move AC_LIBOBJ invocation from here...
+ * modules/atanl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ acosl: Move AC_LIBOBJ invocations to module description.
+ * m4/acosl.m4 (gl_FUNC_ACOSL): Move AC_LIBOBJ invocation from here...
+ * modules/acosl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ asinl: Respect rules for use of AC_LIBOBJ.
+ * m4/asinl.m4 (gl_FUNC_ASINL): Move AC_LIBOBJ invocation from here...
+ * modules/asinl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ tanl: Move AC_LIBOBJ invocations to module description.
+ * m4/tanl.m4 (gl_FUNC_TANL): Move AC_LIBOBJ invocations from here...
+ * modules/tanl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ cosl: Move AC_LIBOBJ invocations to module description.
+ * m4/cosl.m4 (gl_FUNC_COSL): Move AC_LIBOBJ invocations from here...
+ * modules/cosl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ sinl: Move AC_LIBOBJ invocations to module description.
+ * m4/sinl.m4 (gl_FUNC_SINL): Move AC_LIBOBJ invocations from here...
+ * modules/sinl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ logl: Move AC_LIBOBJ invocations to module description.
+ * m4/logl.m4 (gl_FUNC_LOGL): Move AC_LIBOBJ invocation from here...
+ * modules/logl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ expl: Move AC_LIBOBJ invocations to module description.
+ * m4/expl.m4 (gl_FUNC_EXPL): Move AC_LIBOBJ invocation from here...
+ * modules/expl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ roundl: Move AC_LIBOBJ invocations to module description.
+ * m4/roundl.m4 (gl_FUNC_ROUNDL): Move AC_LIBOBJ invocation from here...
+ * modules/roundl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ round: Move AC_LIBOBJ invocations to module description.
+ * m4/round.m4 (gl_FUNC_ROUND): Move AC_LIBOBJ invocation from here...
+ * modules/round (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ roundf: Move AC_LIBOBJ invocations to module description.
+ * m4/roundf.m4 (gl_FUNC_ROUNDF): Move AC_LIBOBJ invocation from here...
+ * modules/roundf (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ truncl: Move AC_LIBOBJ invocations to module description.
+ * m4/truncl.m4 (gl_FUNC_TRUNCL): Move AC_LIBOBJ invocation from here...
+ * modules/truncl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ trunc: Move AC_LIBOBJ invocations to module description.
+ * m4/trunc.m4 (gl_FUNC_TRUNC): Move AC_LIBOBJ invocation from here...
+ * modules/trunc (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ truncf: Move AC_LIBOBJ invocations to module description.
+ * m4/truncf.m4 (gl_FUNC_TRUNCF): Move AC_LIBOBJ invocation from here...
+ * modules/truncf (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ ceill: Move AC_LIBOBJ invocations to module description.
+ * m4/ceill.m4 (gl_FUNC_CEILL): Move AC_LIBOBJ invocation from here...
+ * modules/ceill (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ ceil: Move AC_LIBOBJ invocations to module description.
+ * m4/ceil.m4 (gl_FUNC_CEIL): Move AC_LIBOBJ invocation from here...
+ * modules/ceil (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ ceilf: Move AC_LIBOBJ invocations to module description.
+ * m4/ceilf.m4 (gl_FUNC_CEILF): Move AC_LIBOBJ invocation from here...
+ * modules/ceilf (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ floorl: Respect rules for use of AC_LIBOBJ.
+ * m4/floorl.m4 (gl_FUNC_FLOORL): Move AC_LIBOBJ invocation from here...
+ * modules/floorl (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ floor: Respect rules for use of AC_LIBOBJ.
+ * m4/floor.m4 (gl_FUNC_FLOOR): Move AC_LIBOBJ invocation from here...
+ * modules/floor (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ floorf: Move AC_LIBOBJ invocations to module description.
+ * m4/floorf.m4 (gl_FUNC_FLOORF): Move AC_LIBOBJ invocation from here...
+ * modules/floorf (configure.ac): ... to here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ sqrtl: Respect rules for use of AC_LIBOBJ.
+ * m4/sqrtl.m4 (gl_FUNC_SQRTL): Move AC_LIBOBJ invocation from here...
+ * modules/sqrtl (configure.ac): ... to here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ ldexpl: Respect rules for use of AC_LIBOBJ.
+ * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Move AC_LIBOBJ invocation from here...
+ * modules/ldexpl (configure.ac): ... to here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ frexpl*: Respect rules for use of AC_LIBOBJ.
+ * m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Move AC_LIBOBJ
+ invocation from here...
+ * modules/frexpl (configure.ac): ... to here.
+ * modules/frexpl-nolibm (configure.ac): ... and here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ frexp, frexp-nolibm: Move AC_LIBOBJ invocations to module description.
+ * m4/frexp.m4 (gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Move AC_LIBOBJ
+ invocation from here...
+ * modules/frexp (configure.ac): ... to here.
+ * modules/frexp-nolibm (configure.ac): ... and here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ isnan: Respect rules for use of AC_LIBOBJ.
+ * m4/isnan.m4 (gl_ISNAN): Don't do the AC_LIBOBJ and gl_PREREQ_ISNAN*
+ invocations here.
+ * modules/isnanf (configure.ac): Require gl_ISNAN if it exists. Test
+ REPLACE_ISNAN.
+ * modules/isnand (configure.ac): Likewise.
+ * modules/isnanl (configure.ac): Likewise.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ isnanl*: Respect rules for use of AC_LIBOBJ.
+ * m4/isnanl.m4 (gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Move AC_LIBOBJ
+ invocation from here...
+ * modules/isnanl (configure.ac): ... to here.
+ * modules/isnanl-nolibm (configure.ac): ... and here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ isnand*: Move AC_LIBOBJ invocations to module description.
+ * m4/isnand.m4 (gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Move AC_LIBOBJ
+ invocation from here...
+ * modules/isnand (configure.ac): ... to here.
+ * modules/isnand-nolibm (configure.ac): ... and here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ isnanf*: Move AC_LIBOBJ invocations to module description.
+ * m4/isnanf.m4 (gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Move AC_LIBOBJ
+ invocation from here...
+ * modules/isnanf (configure.ac): ... to here.
+ * modules/isnanf-nolibm (configure.ac): ... and here.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ isnan*: Separate the AC_LIBOBJ invocations.
+ * m4/isnanf.m4 (gl_PREREQ_ISNANF): Renamed from gl_BUILD_ISNANF. Remove
+ AC_LIBOBJ invocation.
+ (gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Update. Invoke AC_LIBOBJ
+ here.
+ * m4/isnand.m4 (gl_PREREQ_ISNAND): Renamed from gl_BUILD_ISNAND. Remove
+ AC_LIBOBJ invocation.
+ (gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Update. Invoke AC_LIBOBJ
+ here.
+ * m4/isnanl.m4 (gl_PREREQ_ISNANL): Renamed from gl_BUILD_ISNANL. Remove
+ AC_LIBOBJ invocation.
+ (gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Update. Invoke AC_LIBOBJ
+ here.
+ * m4/isnan.m4 (gl_ISNAN): Update. Invoke AC_LIBOBJ here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ isinf: Move AC_LIBOBJ invocations to module description.
+ * m4/isinf.m4 (gl_ISINF): Move AC_LIBOBJ invocation from here...
+ * modules/isinf (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ isfinite: Move AC_LIBOBJ invocations to module description.
+ * m4/isfinite.m4 (gl_ISFINITE): Move AC_LIBOBJ invocation from here...
+ * modules/isfinite (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ isblank: Move AC_LIBOBJ invocations to module description.
+ * m4/isblank.m4 (gl_FUNC_ISBLANK): Move AC_LIBOBJ invocation from
+ here...
+ * modules/isblank (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ isapipe: Move AC_LIBOBJ invocations to module description.
+ * m4/isapipe.m4 (gl_ISAPIPE): Set HAVE_ISAPIPE. Move AC_LIBOBJ and
+ gl_PREREQ_ISAPIPE invocations from here...
+ * modules/isapipe (configure.ac): ... to here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ ioctl: Move AC_LIBOBJ invocations to module description.
+ * m4/ioctl.m4 (gl_FUNC_IOCTL): Set HAVE_IOCTL. Move AC_LIBOBJ
+ invocations from here...
+ * modules/ioctl (configure.ac): ... to here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ imaxdiv: Move AC_LIBOBJ invocations to module description.
+ * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Move AC_LIBOBJ and gl_PREREQ_IMAXDIV
+ invocations from here...
+ * modules/imaxdiv (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ imaxabs: Move AC_LIBOBJ invocations to module description.
+ * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Move AC_LIBOBJ and gl_PREREQ_IMAXABS
+ invocations from here...
+ * modules/imaxabs (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getaddrinfo: Move AC_LIBOBJ invocations to module description.
+ * m4/getaddrinfo.m4 (gl_GETADDRINFO): Set HAVE_GETADDRINFO, Move
+ AC_LIBOBJ invocations from here...
+ * modules/getaddrinfo (configure.ac): ... to here.
+ (Depends-on): Add conditions.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ inet_pton. getaddrinfo: Respect rules for use of AC_LIBOBJ.
+ * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Set HAVE_INET_PTON. Call
+ AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke
+ gl_PREREQ_INET_PTON. Move tests for declaration of inet_pton here...
+ (gl_PREREQ_INET_PTON): ... from here.
+ * modules/inet_pton (configure.ac): Invoke AC_LIBOBJ and
+ gl_PREREQ_INET_PTON here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ inet_ntop. getaddrinfo: Respect rules for use of AC_LIBOBJ.
+ * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Set HAVE_INET_NTOP. Call
+ AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke
+ gl_PREREQ_INET_NTOP. Move tests for declaration of inet_ntop here...
+ (gl_PREREQ_INET_NTOP): ... from here.
+ * modules/inet_ntop (configure.ac): Invoke AC_LIBOBJ and
+ gl_PREREQ_INET_NTOP here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ iconv_open: Move AC_LIBOBJ invocations to module description.
+ * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN, gl_REPLACE_ICONV_OPEN): Move
+ AC_LIBOBJ invocations from here...
+ * modules/iconv_open (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ iconv_open, iconv_open-utf: Respect rules for use of AC_LIBOBJ.
+ If module 'iconv_open' is among the main modules and module
+ 'iconv_open-utf' is among the tests dependencies, then
+ REPLACE_ICONV_UTF will be defined to 1, hence iconv_open() in lib may
+ return the special iconv_t values. Therefore iconv() and iconv_close()
+ must support these special iconv_t values, already in lib, not only in
+ tests.
+ * m4/iconv_open-utf.m4: New file, extracted from m4/iconv_open.m4.
+ * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Invoke
+ gl_FUNC_ICONV_OPEN_UTF_SUPPORT if present.
+ (gl_FUNC_ICONV_OPEN_UTF): Remove macro.
+ * modules/iconv_open (Files): Add lib/iconv.c, lib/iconv_close.c.
+ (Depends-on): Add the dependencies of iconv_open-utf.
+ * modules/iconv_open-utf (Files): Add m4/iconv_open-utf.m4. Remove
+ m4/iconv_open.m4, lib/iconv.c, lib/iconv_close.c.
+ (Depends-on): Remove modules needed by lib/iconv.c, lib/iconv_close.c.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ group-member: Move AC_LIBOBJ invocations to module description.
+ * m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Move AC_LIBOBJ and
+ gl_PREREQ_GROUP_MEMBER invocations from here...
+ * modules/group-member (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ grantpt: Move AC_LIBOBJ invocations to module description.
+ * m4/grantpt.m4 (gl_FUNC_GRANTPT): Move AC_LIBOBJ and gl_PREREQ_GRANTPT
+ invocations from here...
+ * modules/grantpt (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ glob: Move AC_LIBOBJ invocations to module description.
+ * m4/glob.m4 (gl_GLOB): Move AC_LIBOBJ and gl_PREREQ_GLOB invocations
+ from here...
+ * modules/glob (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getusershell: Move AC_LIBOBJ invocations to module description.
+ * m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Set HAVE_GETUSERSHELL.
+ Move AC_LIBOBJ invocation from here...
+ * modules/getusershell (configure.ac): ... to here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ gettimeofday: Move AC_LIBOBJ invocations to module description.
+ * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY,
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Move AC_LIBOBJ and
+ gl_PREREQ_GETTIMEOFDAY invocations from here...
+ * modules/gettimeofday (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ gettimeofday, tzset: Respect rules for use of AC_LIBOBJ.
+ * modules/tzset (configure.ac): Don't invoke gl_FUNC_TZSET_CLOBBER,
+ just gl_FUNC_TZSET.
+ * m4/tzset.m4 (gl_FUNC_TZSET): New macro.
+ (gl_FUNC_TZSET_CLOBBER): Remove actions.
+ * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Invoke
+ gl_FUNC_TZSET_CLOBBER and its actions here, if present.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getsubopt: Move AC_LIBOBJ invocations to module description.
+ * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Move AC_LIBOBJ and
+ gl_PREREQ_GETSUBOPT invocations from here...
+ * modules/getsubopt (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getpass-gnu: Move AC_LIBOBJ invocations to module description.
+ * m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Set REPLACE_GETPASS. Move
+ AC_LIBOBJ and gl_PREREQ_GETPASS invocations from here...
+ * modules/getpass-gnu (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getpass: Move AC_LIBOBJ invocations to module description.
+ * m4/getpass.m4 (gl_FUNC_GETPASS): Set HAVE_GETPASS. Move AC_LIBOBJ and
+ gl_PREREQ_GETPASS invocations from here...
+ * modules/getpass (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getpagesize: Move AC_LIBOBJ invocations to module description.
+ * m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Move AC_LIBOBJ invocation
+ from here...
+ * modules/getpagesize (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getopt: Move AC_LIBOBJ invocations to module description.
+ * m4/getopt.m4 (gl_REPLACE_GETOPT): Remove macro.
+ (gl_FUNC_GETOPT): Inline it here. Move AC_LIBOBJ and gl_PREREQ_GETOPT
+ invocations from here...
+ * modules/getopt-gnu (configure.ac): ... to here.
+ * modules/getopt-posix (configure.ac): ... and here.
+ (Depends-on): Update condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getopt, argp: Respect rules for use of AC_LIBOBJ.
+ * m4/argp.m4 (gl_ARGP): Don't invoke gl_REPLACE_GETOPT.
+ (gl_REPLACE_GETOPT_ALWAYS): New macro.
+ * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Test whether
+ gl_REPLACE_GETOPT_ALWAYS is defined. Set REPLACE_GETOPT.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getlogin_r: Move AC_LIBOBJ invocations to module description.
+ * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Move AC_LIBOBJ and
+ gl_PREREQ_GETLOGIN_R invocations from here...
+ * modules/getlogin_r (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getlogin: Move AC_LIBOBJ invocations to module description.
+ * m4/getlogin.m4 (gl_FUNC_GETLOGIN): Move AC_LIBOBJ invocation from
+ here...
+ * modules/getlogin (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getloadavg: Move AC_LIBOBJ invocations to module description.
+ * m4/getloadavg.m4 (gl_FUNC_GETDELIM): Set HAVE_GETLOADAVG. Move
+ AC_LIBOBJ and gl_PREREQ_GETLOADAVG invocations from here...
+ * modules/getloadavg (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ gethrxtime: Move AC_LIBOBJ invocations to module description.
+ * m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Move code that determines
+ LIB_GETHRXTIME from here...
+ (gl_GETHRXTIME): ... to here. Move AC_LIBOBJ and gl_PREREQ_GETHRXTIME
+ invocations from here...
+ * modules/gethrxtime (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ gethostname: Move AC_LIBOBJ invocations to module description.
+ * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Move AC_LIBOBJ and
+ gl_PREREQ_GETHOSTNAME invocations from here...
+ * modules/gethostname (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getgroups: Move AC_LIBOBJ invocations to module description.
+ * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Move AC_LIBOBJ invocations from
+ here...
+ * modules/getgroups (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getdtablesize: Move AC_LIBOBJ invocations to module description.
+ * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Move AC_LIBOBJ
+ invocation from here...
+ * modules/getdtablesize (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getdomainname: Move AC_LIBOBJ invocations to module description.
+ * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Move AC_LIBOBJ and
+ gl_PREREQ_GETDOMAINNAME invocations from here...
+ * modules/getdomainname (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getline: Move AC_LIBOBJ invocations to module description.
+ * m4/getline.m4 (gl_FUNC_GETLINE): Move AC_LIBOBJ and gl_PREREQ_GETLINE
+ invocations from here...
+ * modules/getline (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getline: Simplify.
+ * m4/getline.m4 (gl_PREREQ_GETLINE): Don't invoke gl_FUNC_GETDELIM.
+ It's already handled through the module dependency.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getdelim: Move AC_LIBOBJ invocations to module description.
+ * m4/getdelim.m4 (gl_FUNC_GETDELIM): Set HAVE_GETDELIM. Move AC_LIBOBJ
+ and gl_PREREQ_GETDELIM invocations from here...
+ * modules/getdelim (configure.ac): ... to here.
+ (Depends-on): Fix condition.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getcwd: Move AC_LIBOBJ invocations to module description.
+ * m4/getcwd.m4 (gl_FUNC_GETCWD): Move AC_LIBOBJ and gl_PREREQ_GETCWD
+ invocations from here...
+ * modules/getcwd (configure.ac): ... to here.
+
+2011-05-08 Bruno Haible <bruno@clisp.org>
+
+ getcwd-lgpl: Move AC_LIBOBJ invocations to module description.
+ * m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): Move AC_LIBOBJ invocation from
+ here...
+ * modules/getcwd-lgpl (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ crypto/gc: Move AC_LIBOBJ invocations to module description.
+ * m4/gc.m4 (gl_GC): Move AC_LIBOBJ invocations from here...
+ * modules/crypto/gc (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fwriting: Move AC_LIBOBJ invocations to module description.
+ * m4/fwriting.m4 (gl_FUNC_FWRITINT): Move AC_LIBOBJ invocation from
+ here...
+ * modules/fwriting (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fwritable: Move AC_LIBOBJ invocations to module description.
+ * m4/fwritable.m4 (gl_FUNC_FWRITABLE): Move AC_LIBOBJ invocation from
+ here...
+ * modules/fwritable (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ futimens: Move AC_LIBOBJ invocations to module description.
+ * m4/futimens.m4 (gl_FUNC_FUTIMENS): Move AC_LIBOBJ invocations from
+ here...
+ * modules/futimens (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ ftruncate: Move AC_LIBOBJ invocations to module description.
+ * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Move AC_LIBOBJ and
+ gl_PREREQ_FTRUNCATE invocations from here...
+ * modules/ftruncate (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fsync: Move AC_LIBOBJ invocations to module description.
+ * m4/fsync.m4 (gl_FUNC_FSYNC): Move AC_LIBOBJ and gl_PREREQ_FSYNC
+ invocations from here...
+ * modules/fsync (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fsusage: Move AC_LIBOBJ invocations to module description.
+ * m4/fsusage.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and
+ gl_PREREQ_FSUSAGE_EXTRA invocations from here...
+ * modules/fsusage (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ freopen: Move AC_LIBOBJ invocations to module description.
+ * m4/freopen.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and gl_PREREQ_FREOPEN
+ invocations from here...
+ * modules/freopen (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ free: Move AC_LIBOBJ invocations to module description.
+ * m4/free.m4 (gl_FUNC_FREE): Move AC_LIBOBJ and missing gl_PREREQ_FREE
+ invocations from here...
+ * modules/free (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ freadable: Move AC_LIBOBJ invocations to module description.
+ * m4/freadable.m4 (gl_FUNC_FREADABLE): Move AC_LIBOBJ invocation from
+ here...
+ * modules/freadable (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fpurge: Move AC_LIBOBJ invocations to module description.
+ * m4/fpurge.m4 (gl_FUNC_FPURGE): Set HAVE_FPURGE. Move AC_LIBOBJ
+ invocations from here...
+ * modules/fpurge (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fpending: Move AC_LIBOBJ invocations to module description.
+ * m4/fpending.m4 (gl_PREREQ_FPENDING): New macro, extracted from
+ gl_FUNC_FPENDING.
+ (gl_FUNC_FPENDING): Move AC_LIBOBJ and gl_PREREQ_FPENDING
+ invocations from here...
+ * modules/fpending (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fopen: Move AC_LIBOBJ invocations to module description.
+ * m4/fopen.m4 (gl_FUNC_FOPEN): Move AC_LIBOBJ and gl_PREREQ_FOPEN
+ invocations from here...
+ * modules/fopen (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fnmatch, fnmatch-gnu: Move AC_LIBOBJ invocations to module description.
+ * m4/fnmatch.m4 (gl_PREREQ_FNMATCH): New macro, extracted from
+ gl_FUNC_FNMATCH_POSIX.
+ (gl_FUNC_FNMATCH_POSIX): Move AC_LIBOBJ and gl_PREREQ_FNMATCH
+ invocations from here...
+ * modules/fnmatch (configure.ac): ... to here.
+ * modules/fnmatch-gnu (configure.ac): ... and here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ flock: Move AC_LIBOBJ invocations to module description.
+ * m4/flock.m4 (gl_FUNC_FLOCK): Move AC_LIBOBJ and gl_PREREQ_FLOCK
+ invocations from here...
+ * modules/flock (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fileblocks: Move AC_LIBOBJ invocations to module description.
+ * m4/fileblocks.m4 (gl_FILEBLOCKS): Move AC_LIBOBJ and
+ gl_PREREQ_FILEBLOCKS invocations from here...
+ * modules/fileblocks (configure.ac): ... to here.
+
+2011-05-06 Bruno Haible <bruno@clisp.org>
+
+ fflush: Move AC_LIBOBJ invocations to module description.
+ * m4/fflush.m4 (gl_REPLACE_FFLUSH): Remove macro.
+ (gl_FUNC_FFLUSH): Inline it here. Move AC_LIBOBJ and gl_PREREQ_FFLUSH
+ invocations from here...
+ * modules/fflush (configure.ac): ... to here.
+
+2011-05-06 Bruno Haible <bruno@clisp.org>
+
+ fdopendir: Move AC_LIBOBJ invocations to module description.
+ * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Move AC_LIBOBJ invocations from
+ here...
+ * modules/fdopendir (configure.ac): ... to here.
+ (Depends-on): Improve conditions.
+
+2011-05-06 Bruno Haible <bruno@clisp.org>
+
+ _Exit: Move AC_LIBOBJ invocations to module description.
+ * m4/_Exit.m4 (gl_FUNC__EXIT): Move AC_LIBOBJ and gl_PREREQ__EXIT
+ invocations from here...
+ * modules/_Exit (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ euidaccess: Respect rules for use of AC_LIBOBJ.
+ * m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_EUIDACCESS invocations
+ from here...
+ * modules/euidaccess (configure.ac): ... to here.
+
+2011-05-06 Bruno Haible <bruno@clisp.org>
+
+ error: Move AC_LIBOBJ invocations to module description.
+ * m4/error.m4 (gl_ERROR): Inline AC_FUNC_ERROR_AT_LINE. Remove
+ AC_LIBSOURCES invocation. Move AC_LIBOBJ and gl_PREREQ_ERROR
+ invocations from here...
+ * modules/error (configure.ac): ... to here.
+
+2011-05-06 Bruno Haible <bruno@clisp.org>
+
+ duplocale: Move AC_LIBOBJ invocations to module description.
+ * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Move AC_LIBOBJ and
+ gl_PREREQ_DUPLOCALE invocations from here...
+ * modules/duplocale (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ dirfd: Move AC_LIBOBJ invocations to module description.
+ * m4/dirfd.m4 (gl_PREREQ_DIRFD): New macro, extracted from
+ gl_FUNC_DIRFD.
+ (gl_FUNC_DIRFD): Move AC_LIBOBJ and gl_PREREQ_DIRFD invocations from
+ here...
+ * modules/dirfd (configure.ac): ... to here.
+ (Depends-on): Fix condition.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ chown: Respect rules for use of AC_LIBOBJ.
+ * m4/chown.m4 (gl_FUNC_CHOWN): Move AC_LIBOBJ invocations from here...
+ * modules/chown (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ chdir-long: Move AC_LIBOBJ invocations to module description.
+ * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Move AC_LIBOBJ and
+ gl_PREREQ_CHDIR_LONG invocations from here...
+ * modules/chdir-long (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ canonicalize-lgpl: Move AC_LIBOBJ invocations to module description.
+ * m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Move AC_LIBOBJ invocation
+ from here...
+ * modules/canonicalize-lgpl (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ calloc-posix, calloc-gnu: Move AC_LIBOBJs to module description.
+ * m4/calloc.m4 (gl_REPLACE_CALLOC): Remove macro.
+ (gl_FUNC_CALLOC_GNU, gl_FUNC_CALLOC_POSIX): Instead, just set
+ REPLACE_CALLOC.
+ * modules/calloc-posix (configure.ac): Invoke AC_LIBOBJ here.
+ * modules/calloc-gnu (configure.ac): Likewise.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ btowc: Move AC_LIBOBJ invocations to module description.
+ * m4/btowc.m4 (gl_FUNC_BTOWC): Move AC_LIBOBJ and gl_PREREQ_BTOWC
+ invocations from here...
+ * modules/btowc (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ atexit: Move AC_LIBOBJ invocations to module description.
+ * m4/atexit.m4 (gl_FUNC_ATEXIT): Call AC_CHECK_FUNCS instead of
+ AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_ATEXIT invocations from
+ here...
+ * modules/atexit (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ atoll: Move AC_LIBOBJ invocations to module description.
+ * m4/atoll.m4 (gl_FUNC_ATOLL): Move AC_LIBOBJ and gl_PREREQ_ATOLL
+ invocations from here...
+ * modules/atoll (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ argz: Move AC_LIBOBJ invocations to module description.
+ * m4/argz.m4 (gl_FUNC_ARGZ): Move AC_LIBOBJ invocation from here...
+ * modules/argz (configure.ac): ... to here.
+
+2011-05-05 Bruno Haible <bruno@clisp.org>
+
+ alphasort: Move AC_LIBOBJ invocations to module description.
+ * m4/alphasort.m4 (gl_FUNC_ALPHASORT): Move AC_LIBOBJ and
+ gl_PREREQ_ALPHASORT invocations from here...
+ * modules/alphasort (configure.ac): ... to here.
+
+2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ verify: new macro verify_expr; verify_true deprecated
+ * NEWS: Mention this.
+ * doc/verify.texi (Compile-time Assertions): Document this.
+ * lib/verify.h (verify_true): Deprecate.
+ (verify_expr): New macro.
+ * tests/test-verify.c (function): Test verify_expr.
+
+2011-06-14 Jim Meyering <meyering@redhat.com>
+
+ init.sh: give more portable redirection-related advice in a comment
+ * tests/init.sh (stderr_fileno_): Update the advice in comments.
+ See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488
+ for lots of discussion. Stefano Lattarini suggested the solution
+ of putting "9>&2" after the command. Reported by Bruno Haible.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ locale-zh: Reject zh_CN.GB18030 locale on Solaris 8.
+ * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On Solaris 8, set LOCALE_ZH_CN to
+ 'none'.
+
+2011-06-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ ftoastr: use strtof only if HAVE_STRTOF
+ This is needed on HP-UX 11.11 with GCC 4.2.4; see Bruno Haible's report
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00154.html>.
+ * lib/ftoastr.c (STRTOF) [LENGTH == 1]: Use strtof only if HAVE_STRTOF.
+ * modules/ftoastr (configure.ac): Check for strtof.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Addendum to 2011-06-08 commit.
+ * gnulib-tool (func_emit_lib_Makefile_am): If options --makefile-name
+ and --witness-c-macro have been given, augment AM_CPPFLAGS.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ fseeko: Provide a non-inline replacement of fseek().
+ * lib/stdio.in.h (fseek): Don't provide if module 'fseek' is not used.
+ * modules/fseeko (Depends-on): Add fseek.
+ * modules/fseek (License): Change to LGPLv2+.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ ftello: Provide a non-inline replacement of ftell().
+ * lib/stdio.in.h (ftell): Don't provide if module 'ftell' is not used.
+ * m4/ftell.m4 (gl_FUNC_FTELL): Replace ftell also if the system does
+ not have ftello() (such as on mingw).
+ * modules/ftello (Depends-on): Add ftell.
+ * modules/ftell (License): Change to LGPLv2+.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ ftell: Move AC_LIBOBJ invocations to module description.
+ * m4/ftell.m4 (gl_FUNC_FTELL): Move AC_LIBOBJ invocation from here...
+ * modules/ftell (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ ftello: Respect rules for use of AC_LIBOBJ.
+ * m4/ftello.m4 (gl_REPLACE_FTELLO): Remove macro.
+ (gl_FUNC_FTELLO): Inline it here. Move AC_LIBOBJ invocation from
+ here...
+ * modules/ftello (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fseeko: Simplify.
+ * m4/fseeko.m4 (gl_HAVE_FSEEKO): Remove macro.
+ (gl_FUNC_FSEEKO): Inline it here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fseek: Move AC_LIBOBJ invocations to module description.
+ * m4/fseek.m4 (gl_REPLACE_FSEEK): Remove macro.
+ (gl_FUNC_FSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
+ * modules/fseek (configure.ac): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fseek: Respect rules for use of AC_LIBOBJ.
+ * m4/fseeko.m4 (gl_FUNC_FSEEKO): Move gl_REPLACE_FSEEK invocation from
+ here...
+ * m4/fseek.m4 (gl_FUNC_FSEEK): ... to here.
+
+2011-05-07 Bruno Haible <bruno@clisp.org>
+
+ fseeko: Respect rules for use of AC_LIBOBJ.
+ * m4/fseeko.m4 (gl_REPLACE_FSEEKO): Remove macro.
+ (gl_FUNC_FSEEKO): Inline it here. Move AC_LIBOBJ invocation from
+ here...
+ * modules/fseeko (configure.ac): ... to here.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Allow comments in the 'Depends-on' section.
+ * doc/gnulib.texi (Module description): Mention comment syntax in the
+ Depends-on section.
+ * gnulib-tool (func_get_dependencies): Filter out comment lines.
+
+2011-06-13 Bruno Haible <bruno@clisp.org>
+
+ file-set.h: guard __attibute__ use, now that it's not always defined
+ * lib/file-set.h (record_file): Use __attribute__ only with compiler
+ versions that support it. This fixes a coreutils build failure with
+ the vendor cc on HP-UX 11.31.
+
+2011-06-12 Bruno Haible <bruno@clisp.org>
+
+ acl: Add support for HP-UX >= 11.11 JFS ACLs.
+ * doc/acl-resources.txt: Add info about the ACL APIs on HP-UX.
+ * m4/acl.m4 (gl_FUNC_ACL): Also test for HP-UX 11.11 API.
+ * lib/acl-internal.h [HP-UX 11.11]: Include <aclv.h>.
+ (acl, aclsort): New declarations.
+ (aclv_nontrivial): New declaration.
+ * lib/file-has-acl.c (aclv_nontrivial) [HP-UX 11.11]: New function.
+ (file_has_acl): Read also the second kind of HP-UX ACLs.
+ * lib/set-mode-acl.c (qset_acl) [HP-UX 11.11]: Try to set the second
+ kind of HP-UX ACLs if the first kind fails.
+ * lib/copy-acl.c (qcopy_acl) [HP-UX 11.11]: Read and set also the
+ second kind of HP-UX ACLs.
+ * tests/test-sameacls.c [HP-UX 11.11]: Include <aclv.h>.
+ (main) [HP-UX 11.11]: Test also whether the second kind of HP-UX ACLs
+ agree.
+ * tests/test-file-has-acl.sh (acl_flavor) [HP-UX 11.11]: Set to
+ hpuxjfs.
+ Handle hpuxjfs.
+ * tests/test-set-mode-acl.sh (acl_flavor) [HP-UX 11.11]: Set to
+ hpuxjfs.
+ Handle hpuxjfs.
+ * tests/test-copy-acl.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs.
+ (func_test_same_acls): Use both lsacl and getacl.
+ Handle hpuxjfs.
+ * tests/test-copy-file.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs.
+ (func_test_same_acls): Use both lsacl and getacl.
+ Handle hpuxjfs.
+
+2011-06-12 Bruno Haible <bruno@clisp.org>
+
+ acl: Complete the 2010-08-10 fix.
+ * lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP.
+ * lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise.
+ * lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values
+ explicitly.
+ * tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP.
+ Reported in <http://debbugs.gnu.org/db/60/6053.html>.
+
+2011-06-12 Bruno Haible <bruno@clisp.org>
+
+ spawn-pipe tests: Comments.
+ * tests/test-spawn-pipe-child.c (main): Update comment.
+ Reported by James Youngman <jay@gnu.org>.
+
+2011-06-11 James Youngman <jay@gnu.org>
+
+ New module 'stat-size'.
+ * modules/stat-size: New module. Provides macros for accessing
+ file size information in instances of struct stat. Depends on the
+ fileblocks module because it calls st_blocks.
+ * lib/stat-size.h: New file, adapted from coreutils' system.h.
+ * doc/gnulib.texi: Include stat-size.texi.
+ * doc/stat-size.texi: Documentation for this module.
+ * m4/stat-size.m4: New file; defines gl_STAT_SIZE.
+ * m4/fileblocks.m4: Mention that stat-size depends on the call to
+ AC_STRUCT_ST_BLOCKS.
+
+2011-06-09 Bruno Haible <bruno@clisp.org>
+
+ thread: Support pthreads-win32.
+ * lib/glthread/thread.h (gl_thread_self): Define differently on
+ pthreads-win32.
+ (gl_null_thread): New declaration.
+ (gl_thread_self_pointer): New macro.
+ * lib/glthread/thread.c (gl_null_thread): New constant.
+ * tests/test-lock.c: Use gl_thread_self_pointer instead of
+ gl_thread_self.
+ * tests/test-tls.c: Likewise.
+ Suggested by Paul Eggert. Reported by Eric Blake.
+
2011-06-09 Bruno Haible <bruno@clisp.org>
thread: Fix confusion between NULL and 0.
2011-06-09 Bruno Haible <bruno@clisp.org>
+ spawn-pipe tests: Avoid test failure on HP-UX 11.
+ * tests/test-spawn-pipe-child.c (main) [HP-UX]: Don't assert that fd 2
+ is closed.
+
+2011-06-09 Bruno Haible <bruno@clisp.org>
+
acl tests: Fix compilation error on HP-UX 11.
* tests/test-sameacls.c: Include <sys/acl.h> also on HP-UX.
* tests/test-rmdir.h (test_rmdir_func): Accept ENOTEMPTY error, like
EEXIST.
+2011-06-08 Eric Blake <eblake@redhat.com>
+
+ perror: fix test on mingw
+ * modules/perror-tests (Depends-on): Add dup2.
+
+ strerror_r-posix: fix on MacOS
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix
+ logic bug.
+ * lib/strerror_r.c (strerror_r): Fix the bug.
+ * lib/strerror.c (strerror): Likewise.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document the
+ problem.
+ * doc/posix-functions/strerror.texi (strerror): Likewise.
+ * doc/posix-functions/perror.texi (perror): Likewise.
+ * tests/test-strerror.c (main): Enhance test.
+ * tests/test-strerror_r.c (main): Likewise.
+
+2011-06-08 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Better isolation between different gnulib-tool invocations.
+ * gnulib-tool: New option --witness-c-macro.
+ (witness_c_macro): New variable.
+ (func_emit_lib_Makefile_am): If --witness-c-macro was specified, let
+ AM_CPPFLAGS define it as a C macro.
+ (func_emit_tests_Makefile_am): Likewise.
+ (func_import): Store witness_c_macro setting in gnulib-cache.m4 and
+ read it from there.
+ * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): Define through
+ m4_define, not AC_DEFUN.
+ (gl_MODULE_INDICATOR_SET_VARIABLE_AUX,
+ gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR): New macros.
+ (gl_MODULE_INDICATOR_SET_VARIABLE): Use them.
+ * modules/arpa_inet (Makefile.am): Use sed expression s/.../.../, not
+ s|...|...|, to substitute the values of the GNULIB_* module indicator
+ variables.
+ * modules/dirent (Makefile.am): Likewise.
+ * modules/fcntl-h (Makefile.am): Likewise.
+ * modules/iconv-h (Makefile.am): Likewise.
+ * modules/langinfo (Makefile.am): Likewise.
+ * modules/locale (Makefile.am): Likewise.
+ * modules/math (Makefile.am): Likewise.
+ * modules/netdb (Makefile.am): Likewise.
+ * modules/poll-h (Makefile.am): Likewise.
+ * modules/pty (Makefile.am): Likewise.
+ * modules/search (Makefile.am): Likewise.
+ * modules/signal (Makefile.am): Likewise.
+ * modules/spawn (Makefile.am): Likewise.
+ * modules/stdio (Makefile.am): Likewise.
+ * modules/stdlib (Makefile.am): Likewise.
+ * modules/string (Makefile.am): Likewise.
+ * modules/sys_ioctl (Makefile.am): Likewise.
+ * modules/sys_select (Makefile.am): Likewise.
+ * modules/sys_socket (Makefile.am): Likewise.
+ * modules/sys_stat (Makefile.am): Likewise.
+ * modules/sys_times (Makefile.am): Likewise.
+ * modules/sys_utsname (Makefile.am): Likewise.
+ * modules/sys_wait (Makefile.am): Likewise.
+ * modules/termios (Makefile.am): Likewise.
+ * modules/time (Makefile.am): Likewise.
+ * modules/unistd (Makefile.am): Likewise.
+ * modules/wchar (Makefile.am): Likewise.
+
+2011-06-08 Eric Blake <eblake@redhat.com>
+
+ strerror: simplify replacement
+ * m4/strerror.m4 (gl_PREREQ_STRERROR): Delete.
+ * modules/strerror (configure.ac): No prereqs needed here...
+ * modules/strerror-override (configure.ac): ...but this needs it.
+ (Files): Add file for needed prereq macro.
+
+2011-06-08 Bruno Haible <bruno@clisp.org>
+
+ strerror_r-posix: Tweaks.
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Omit the code that tests
+ gl_cv_func_strerror_r_works if gl_FUNC_STRERROR_R_WORKS is not present.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Fix AC_CACHE_CHECK
+ message. Move gl_HEADER_STRING_H_DEFAULTS invocation from here...
+ (gl_FUNC_STRERROR_R): ... to here.
+ (gl_PREREQ_STRERROR_R): Test for __xpg_strerror_r.
+
+2011-06-07 Eric Blake <eblake@redhat.com>
+
+ perror: document fixed bugs
+ * doc/posix-functions/perror.texi (perror): Document recent
+ patches.
+
+2011-06-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ stat-time: get_stat_birthtime failure is better-defined
+ * lib/stat-time.h (get_stat_birthtime): If the time is not available,
+ return a timestamp whose tv_sec and tv_nsec values are both -1.
+ Previously, the spec said only that the tv_nsec value was negative.
+ This upward-compatible change simplifies GNU tar a bit.
+
+2011-06-07 Eric Blake <eblake@redhat.com>
+
+ strerror_r-posix: work around cygwin 1.7.9
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Split...
+ (gl_FUNC_STRERROR_R_WORKS): ...into new macro, to detect Cygwin
+ bug without replacing strerror_r.
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Replace strerror if
+ strerror_r is buggy, but without requiring strerror_r compilation.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Fix docs.
+
+ test-perror: relax test to ignore cygwin bug
+ * tests/test-perror2.c (main): Relax test on requiring detection
+ of stream errors, and use unbuffered stream.
+ * doc/posix-functions/dprintf.texi (dprintf): Document bug.
+ * doc/posix-functions/fprintf.texi (fprintf): Likewise.
+ * doc/posix-functions/fputc.texi (fputc): Likewise.
+ * doc/posix-functions/fputs.texi (fputs): Likewise.
+ * doc/posix-functions/fputws.texi (fputws): Likewise.
+ * doc/posix-functions/fwprintf.texi (fwprintf): Likewise.
+ * doc/posix-functions/fwrite.texi (fwrite): Likewise.
+ * doc/posix-functions/getopt.texi (getopt): Likewise.
+ * doc/posix-functions/perror.texi (perror): Likewise.
+ * doc/posix-functions/printf.texi (printf): Likewise.
+ * doc/posix-functions/psiginfo.texi (psiginfo): Likewise.
+ * doc/posix-functions/psignal.texi (psignal): Likewise.
+ * doc/posix-functions/putc.texi (putc): Likewise.
+ * doc/posix-functions/putc_unlocked.texi (putc_unlocked):
+ Likewise.
+ * doc/posix-functions/putchar.texi (putchar): Likewise.
+ * doc/posix-functions/putchar_unlocked.texi (putchar_unlocked):
+ Likewise.
+ * doc/posix-functions/puts.texi (puts): Likewise.
+ * doc/posix-functions/putwc.texi (putwc): Likewise.
+ * doc/posix-functions/putwchar.texi (putwchar): Likewise.
+ * doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
+ * doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
+ * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise.
+ * doc/posix-functions/vprintf.texi (vprintf): Likewise.
+ * doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
+ * doc/posix-functions/wordexp.texi (wordexp): Likewise.
+ * doc/posix-functions/wprintf.texi (wprintf): Likewise.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ strerror: Move AC_LIBOBJ invocations to module description.
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Move AC_LIBOBJ and
+ gl_PREREQ_STRERROR invocations from here...
+ * modules/strerror (configure.ac): ... to here.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ perror: Use common idiom.
+ * modules/perror (configure.ac): Reorder statements.
+
2011-06-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix usage message in 'mktempd_'
'mktempd_', not '$ME' (which is even undefined), as the name of
the subroutine.
+2011-06-07 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tests init: new function 'fatal_', for hard errors
+ Before this patch, the only way offered by tests/init.sh to
+ properly signal a hard error was the `framework_failure_'
+ function. But the error message issued by that function,
+ as its name would suggest, refers to a set-up failure in the
+ testsuite, while hard errors can obviously also be due to
+ other reasons. The best way to fix this inconsistency is to
+ introduce a new function with a more general error message.
+ * tests/init.sh (fatal_): New function.
+
2011-06-06 Eric Blake <eblake@redhat.com>
canonicalize-lgpl: use common idiom
* doc/posix-functions/realpath.texi (realpath): Document it.
Reported by Bruno Haible.
+ strerror: work around FreeBSD bug
+ * lib/strerror.c (strerror): Special case 0.
+ Reported by Bruno Haible.
+
+ strerror-override: avoid bloating errno module
+ * modules/errno (Files, configure.ac): Move replacement strings...
+ * modules/strerror-override: ...to new module.
+ * modules/strerror (Depends-on): Add strerror-override.
+ * modules/strerror_r-posix (Depends-on): Likewise.
+ * MODULES.html.sh: Document new module.
+ Reported by Bruno Haible.
+
+2011-06-06 Bruno Haible <bruno@clisp.org>
+
+ spawn-pipe tests: Rename program.
+ * tests/test-spawn-pipe-main.c: Renamed from tests/test-spawn-pipe.c.
+ * tests/test-spawn-pipe-child.c: Update comment.
+ * tests/test-spawn-pipe.sh: Update.
+ * modules/spawn-pipe-tests (Files, Makefile.am): Update.
+
+ spawn-pipe tests: Link the child program only against libc.
+ * tests/test-spawn-pipe-child.c: New file, extracted from
+ tests/test-spawn-pipe.c.
+ (main): Expect only one argument.
+ (is_open): New function, copied from tests/test-pipe.c.
+ * tests/test-spawn-pipe.c: Don't include <errno.h>.
+ (child_main): Remove function.
+ (test_pipe): Pass only one argument to the child program.
+ (main): Remove child process code. Expect the child program's name as
+ first argument.
+ * tests/test-spawn-pipe.sh: Pass the child program's name as first
+ argument.
+ * modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-child.c.
+ (Makefile.am): Add test-spawn-pipe-child to check_PROGRAMS. Link
+ test-spawn-pipe-child against no libraries.
+
2011-06-06 Bruno Haible <bruno@clisp.org>
careadlinkat: Avoid mismatch between ssize_t and int.
* lib/careadlinkat.h (careadlinkatcwd): Declare as a function always.
* lib/careadlinkat.c (careadlinkatcwd): Define always.
+2011-06-06 Jim Meyering <meyering@redhat.com>
+
+ gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
+ * m4/gnulib-common.m4 (gl_COMMON): Emit definitions of
+ _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE.
+
2011-06-05 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Interoperability with libtool.
2011-06-05 Bruno Haible <bruno@clisp.org>
+ error: Avoid gcc warning.
+ * lib/error.c (strerror_r): Declare also when its return type is 'int'.
+
+2011-06-05 Bruno Haible <bruno@clisp.org>
+
unsetenv: Avoid gcc warning.
* lib/unsetenv.c (unsetenv): Provide declaration if system lacks it.
* doc/posix-headers/sys_select.texi: Mention that <sys/select.h> is not
self-contained also on AIX 7.1.
+2011-06-04 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
+ * top/maint.mk (sc_unmarked_diagnostics): Don't hard-code the
+ function name, "error".
+ (_gl_translatable_diag_func_re): New configurable variable.
+
+2011-06-04 Bruno Haible <bruno@clisp.org>
+
+ getopt: Avoid gcc warning.
+ * lib/getopt.c (_getopt_internal_r): Remove unused variable 'ambig'.
+
+2011-06-04 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Fix comments.
+ * lib/strerror_r.c (strerror_r): Update comments after 2011-06-01
+ commit.
+
+2011-06-04 Bruno Haible <bruno@clisp.org>
+
+ perror: Fix compilation error.
+ * lib/perror.c: Don't include intprops.h, verify.h, strerror-impl.h.
+ Undefine fprintf, not sprintf.
+ * modules/perror (Depends-on): Remove intprops, verify.
+
2011-06-04 Bruno Haible <bruno@clisp.org>
setlocale: Enable replacement on Cygwin 1.5.
* doc/posix-functions/setlocale.texi: Mention that the problem with the
LC_CTYPE category also exists on Cygwin 1.5.x.
+2011-06-04 Bruno Haible <bruno@clisp.org>
+
+ strerror-override: Don't disable symbol renamings.
+ * lib/strerror-override.h: Include errno.h and stddef.h, not string.h.
+ * lib/strerror-override.c: Include config.h.
+ (strerror_override): Don't undefine.
+
2011-06-03 Bruno Haible <bruno@clisp.org>
Copyright: Use LGPL 2.1 instead of LGPL 2.0.
(main): Test O_NONBLOCK flag only if it is nonzero.
* doc/glibc-functions/pipe2.texi: Mention the 'nonblocking' module.
+2011-06-03 Jim Meyering <meyering@redhat.com>
+
+ maint: three new prohibit-header-without-use rules
+ Prohibit use of cloexec.h, posixver.h, same.h without use.
+ * top/maint.mk (sc_prohibit_cloexec_without_use): New rule.
+ (sc_prohibit_posixver_without_use): Likewise.
+ (sc_prohibit_same_without_use): Likewise.
+
+2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ allocator: 'die' routine is now given requested size
+ * lib/allocator.h (struct allocator.die): New size arg.
+ * lib/careadlinkat.c (careadlinkat): Pass size to 'die' function.
+ If the actual problem is an ssize_t limitation, not a size_t or
+ malloc failure, fail with errno==ENAMETOOLONG instead of calling 'die'.
+
+2011-06-01 Eric Blake <eblake@redhat.com>
+
+ strerror: drop strerror_r dependency
+ * lib/strerror_r.c (strerror_r): Move gnulib replacement strings...
+ * lib/strerror-override.c (strerror_override): ...to new file.
+ * lib/strerror-override.h: Add prototype.
+ * lib/strerror-impl.h: Delete.
+ * lib/strerror.c (strerror): New implementation.
+ * modules/errno (Files): Add new files.
+ (configure.ac): Compile new file as appropriate.
+ * modules/strerror (Files): Drop unused file.
+ (Depends-on): Drop strerror_r-posix.
+ * MODULES.html.sh: Document strerror_r-posix.
+ Requested by Sam Steingold.
+
+ perror: call strerror_r directly
+ * modules/perror (Files): Drop strerror-impl.h.
+ * lib/perror.c (perror): Use our own stack buffer, rather than
+ calling a wrapper that uses static storage.
+ * doc/posix-functions/perror.texi (perror): Document a limitation
+ of our replacement.
+
+ strerror_r: fix includes for FreeBSD
+ * lib/strerror_r.c (includes): Use <stdlib.h> unconditionally,
+ since we use abort on some platforms.
+ Reported by Matthias Bolte.
+
2011-05-31 Bruno Haible <bruno@clisp.org>
Fix link errors in tests: openat-die uses gettext-h.
test-nonblocking-socket-main against $(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ assert-h: work around 'verify' incompatibility
+ * lib/verify.h: Use @...@ directives, not ifdef.
+ * modules/assert-h (assert.h): Implement the directives.
+ (assert.h): Substitute the symbol-prefix more consistently.
+
+2011-05-29 Jim Meyering <meyering@redhat.com>
+
+ trim: remove three superfluous assignments
+ * lib/trim.c (trim2): Remove three superfluous assignments
+ and correct brace positioning.
+
2011-05-29 Bruno Haible <bruno@clisp.org>
wctype-h: Avoid namespace pollution on Solaris 2.6.
trim: avoid a warning from -O2 -Wstrict-overflow
* lib/trim.c (trim2): Declare local to be "unsigned int", not "int".
+2011-05-29 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Fix bug in yesterday's commit.
+ * gnulib-tool (func_create_testdir): Don't add gltests to $subdirs
+ twice.
+
+2011-05-29 Bruno Haible <bruno@clisp.org>
+
+ Allow multiple gnulib generated include files to be combined.
+ * gnulib-tool (func_compute_include_guard_prefix): New function.
+ (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also
+ ${gl_include_guard_prefix} references.
+ (func_import, func_create_testdir): Invoke
+ func_compute_include_guard_prefix.
+ * lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder.
+ * lib/ctype.in.h: Likewise.
+ * lib/dirent.in.h: Likewise.
+ * lib/errno.in.h: Likewise.
+ * lib/fcntl.in.h: Likewise.
+ * lib/float.in.h: Likewise.
+ * lib/getopt.in.h: Likewise.
+ * lib/iconv.in.h: Likewise.
+ * lib/langinfo.in.h: Likewise.
+ * lib/locale.in.h: Likewise.
+ * lib/math.in.h: Likewise.
+ * lib/netdb.in.h: Likewise.
+ * lib/netinet_in.in.h: Likewise.
+ * lib/poll.in.h: Likewise.
+ * lib/pthread.in.h: Likewise.
+ * lib/pty.in.h: Likewise.
+ * lib/sched.in.h: Likewise.
+ * lib/se-selinux.in.h: Likewise.
+ * lib/search.in.h: Likewise.
+ * lib/signal.in.h: Likewise.
+ * lib/spawn.in.h: Likewise.
+ * lib/stdarg.in.h: Likewise.
+ * lib/stddef.in.h: Likewise.
+ * lib/stdint.in.h: Likewise.
+ * lib/stdio.in.h: Likewise.
+ * lib/stdlib.in.h: Likewise.
+ * lib/string.in.h: Likewise.
+ * lib/strings.in.h: Likewise.
+ * lib/sys_file.in.h: Likewise.
+ * lib/sys_ioctl.in.h: Likewise.
+ * lib/sys_select.in.h: Likewise.
+ * lib/sys_socket.in.h: Likewise.
+ * lib/sys_stat.in.h: Likewise.
+ * lib/sys_time.in.h: Likewise.
+ * lib/sys_times.in.h: Likewise.
+ * lib/sys_uio.in.h: Likewise.
+ * lib/sys_utsname.in.h: Likewise.
+ * lib/sys_wait.in.h: Likewise.
+ * lib/sysexits.in.h: Likewise.
+ * lib/termios.in.h: Likewise.
+ * lib/time.in.h: Likewise.
+ * lib/unistd.in.h: Likewise.
+ * lib/wchar.in.h: Likewise.
+ * lib/wctype.in.h: Likewise.
+ * modules/arpa_inet (Makefile.am): Substitute @GUARD_PREFIX@.
+ * modules/ctype (Makefile.am): Likewise.
+ * modules/dirent (Makefile.am): Likewise.
+ * modules/errno (Makefile.am): Likewise.
+ * modules/fcntl-h (Makefile.am): Likewise.
+ * modules/float (Makefile.am): Likewise.
+ * modules/getopt-posix (Makefile.am): Likewise.
+ * modules/iconv-h (Makefile.am): Likewise.
+ * modules/langinfo (Makefile.am): Likewise.
+ * modules/locale (Makefile.am): Likewise.
+ * modules/math (Makefile.am): Likewise.
+ * modules/netdb (Makefile.am): Likewise.
+ * modules/netinet_in (Makefile.am): Likewise.
+ * modules/poll-h (Makefile.am): Likewise.
+ * modules/pthread (Makefile.am): Likewise.
+ * modules/pty (Makefile.am): Likewise.
+ * modules/sched (Makefile.am): Likewise.
+ * modules/search (Makefile.am): Likewise.
+ * modules/selinux-h (Makefile.am): Likewise.
+ * modules/signal (Makefile.am): Likewise.
+ * modules/spawn (Makefile.am): Likewise.
+ * modules/stdarg (Makefile.am): Likewise.
+ * modules/stddef (Makefile.am): Likewise.
+ * modules/stdint (Makefile.am): Likewise.
+ * modules/stdio (Makefile.am): Likewise.
+ * modules/stdlib (Makefile.am): Likewise.
+ * modules/string (Makefile.am): Likewise.
+ * modules/strings (Makefile.am): Likewise.
+ * modules/sys_file (Makefile.am): Likewise.
+ * modules/sys_ioctl (Makefile.am): Likewise.
+ * modules/sys_select (Makefile.am): Likewise.
+ * modules/sys_socket (Makefile.am): Likewise.
+ * modules/sys_stat (Makefile.am): Likewise.
+ * modules/sys_time (Makefile.am): Likewise.
+ * modules/sys_times (Makefile.am): Likewise.
+ * modules/sys_uio (Makefile.am): Likewise.
+ * modules/sys_utsname (Makefile.am): Likewise.
+ * modules/sys_wait (Makefile.am): Likewise.
+ * modules/sysexits (Makefile.am): Likewise.
+ * modules/termios (Makefile.am): Likewise.
+ * modules/time (Makefile.am): Likewise.
+ * modules/unistd (Makefile.am): Likewise.
+ * modules/wchar (Makefile.am): Likewise.
+ * modules/wctype-h (Makefile.am): Likewise.
+ * modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially.
+
+2011-05-29 Bruno Haible <bruno@clisp.org>
+
+ assert-h: Allow multiple gnulib generated replacements to coexist.
+ * lib/verify.h (struct _gl_verify_type): Avoid identical redefinition.
+
+2011-05-29 Bruno Haible <bruno@clisp.org>
+
+ argp: Allow coexistence with strerror_r-posix module.
+ * lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro
+ (either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r
+ by gnulib's <string.h> replacement), assume it has the POSIX signature,
+ not the glibc signature.
+
+2011-05-28 Bruno Haible <bruno@clisp.org>
+
+ gnulib-tool: Alternative structure of testdirs, similar to --import.
+ * gnulib-tool: New option --single-configure.
+ (func_usage): Document it.
+ (single_configure): New variable.
+ (func_modules_transitive_closure_separately,
+ func_modules_transitive_closure_separately,
+ func_determine_use_libtests, func_modules_add_dummy_separately,
+ func_modules_to_filelist_separately): New functions, extracted from
+ func_import.
+ (func_emit_tests_Makefile_am): Handle $single_configure = true case.
+ (func_import): Use the new functions.
+ (func_create_testdir): Set final_modules. Handle $single_configure =
+ true case.
+
2011-05-28 Bruno Haible <bruno@clisp.org>
getloadavg: Remove an unreliable safety check.
* modules/getloadavg (configure.ac): Drop argument of gl_GETLOADAVG.
Reported by Sam Steingold <sds@gnu.org>.
+2011-05-28 Bruno Haible <bruno@clisp.org>
+
+ doc: Cleanup yet another file produced by texinfo.tex.
+ * doc/Makefile (mostlyclean): Remove also gnulib.cn.
+
+2011-05-28 Bruno Haible <bruno@clisp.org>
+
+ Finish the conditional dependencies mechanism.
+ * gnulib-tool: New option --no-conditional-dependencies.
+ (func_usage): Document it. Don't mark --conditional-dependencies as
+ experimental.
+ (cond_dependencies): The possible values can now be true, false, empty.
+ (func_modules_transitive_closure, func_emit_autoconf_snippets): Update.
+ (func_import): Store setting in gnulib-cache.m4 and read it from there.
+ * doc/gnulib-tool.texi (Conditional dependencies): New section.
+
+2011-05-28 Bruno Haible <bruno@clisp.org>
+
+ doc: Use a recent texinfo.tex.
+ * doc/Makefile (tex_opts): New variable.
+ (%.dvi, %.pdf): Pass it to texi2dvi and texi2pdf.
+
+2011-05-28 Jim Meyering <meyering@redhat.com>
+
+ intprops.h: adjust comment to match code change
+ * lib/intprops.h (_GL_INT_CONVERT): Adjust comment: now that E is used
+ only once, it *may* have side effects. Also fix an unrelated typo.
+ (_GL_INT_SIGNED): Likewise.
+
2011-05-26 Simon Josefsson <simon@josefsson.org>
* lib/gen-uni-tables.c: Say "gen-uni-tables.c" consistently.
* lib/string.in.h (mbsrchr): Define as rpl_mbsrchr also on Interix.
Reported by Markus Duft <mduft@gentoo.org>.
+2011-05-15 James Youngman <jay@gnu.org>
+
+ getopt: for ambiguous options, enumerate the possibilities.
+ * lib/getopt.c (_getopt_internal_r): Merge glibc change printing
+ the ambiguous options when an ambiguous prefix is given. This was
+ http://sourceware.org/bugzilla/show_bug.cgi?id=7101. The merged
+ glibc change was
+ http://sourceware.org/git/?p=glibc.git;a=commit;h=bd25564e1e98910ed69043ed6a6f884ce60e5780.
+
2011-05-25 Eric Blake <eblake@redhat.com>
getcwd: work around mingw bug
diagnostics. Reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
+ intprops: shorten, to pacify gcc -Woverlength-strings
+ * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
+ (_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
+ so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less
+ likely to run afoul of C compiler limits for string constant lengths.
+ See <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
+
2011-05-24 Eric Blake <eblake@redhat.com>
docs: document recently fixed glibc printf bug
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
+ closein-tests: convert to init.sh
+ * modules/closein-tests (Files): Add init.sh
+ * tests/test-closein.sh Use it.
+
+ yesno-tests: convert to init.sh
+ * modules/yesno-tests (Files): Add init.sh.
+ * tests/test-yesno.sh: Use it.
+
+ atexit-tests: ensure reliable exit status
+ * tests/test-atexit.sh: Prefer 'Exit' over 'exit'.
+ Reported by Bruno Haible.
+
+2011-05-24 Bruno Haible <bruno@clisp.org>
+
+ strerror_r-posix: Respect rules for use of AC_LIBOBJ.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move AC_LIBOBJ and
+ gl_PREREQ_STRERROR_R invocations from here...
+ * modules/strerror_r-posix (configure.ac): ... to here.
+
+2011-05-24 Eric Blake <eblake@redhat.com>
+
+ strerror_r: fix missing header
+ * lib/strerror_r.c: Avoid compiler warning about snprintf.
+
+ strerror_r: fix AIX test failures
+ * lib/strerror_r.c (strerror_r): Convert silent truncation to
+ ERANGE failure.
+
+ strerror_r: fix Solaris test failures
+ * lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE
+ failures.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document this.
+
+ strerror_r: enforce POSIX recommendations
+ * lib/strerror_r.c (safe_copy): New helper method.
+ (strerror_r): Guarantee a non-empty string.
+ * tests/test-strerror_r.c (main): Enhance tests to incorporate
+ recent POSIX rulings and to match our strerror guarantees.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document this.
+
+2011-05-24 Jim Meyering <meyering@redhat.com>
+
+ test-perror2.c: avoid warning about unused variable
+ * tests/test-perror2.c (main): Remove declaration of unused "fp".
+
2011-05-24 Eric Blake <eblake@redhat.com>
+ perror: avoid spurious test failure on HP-UX
+ * tests/test-perror.sh: Use Exit to avoid wrong exit status.
+
tests: fix logic bug in init.sh
* tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful
shell.
2011-05-23 Bruno Haible <bruno@clisp.org>
+ hash: Simplify autoconf macro.
+ * m4/hash.m4 (gl_HASH): Don't require AM_STDBOOL_H.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
+
getugroups: Fix module description.
* modules/getugroups (Include): Set to "getugroups.h".
2011-05-23 Bruno Haible <bruno@clisp.org>
+
+ linkat: Simplify autoconf macro.
+ * m4/linkat.m4 (gl_FUNC_LINKAT): Don't require gl_FUNC_LINK.
+
+2011-05-23 Bruno Haible <bruno@clisp.org>
Eric Blake <eblake@redhat.com>
linkat, renameat: Update dependencies.
* modules/linkat (Depends-on): Likewise. Remove also readlink,
symlinkat.
+2011-05-23 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: more tight_scope improvements
+ * top/maint.mk: (_gl_TS_var_match): Use $(_gl_TS_extern) here, too.
+ (_gl_TS_headers): Define only in if-0'd block.
+ (_gl_TS_dir): Omit the $(srcdir)/ prefix. Sometimes we need it,
+ sometimes we must *not* use it. Adjust uses accordingly.
+ (sc_tight_scope): Use much simpler grep-based test to determine
+ whether we skip this rule.
+
+ maint.mk: generalize/improve the tight-scope rule
+ * top/maint.mk: Emit a warning when the test is skipped.
+ (_gl_TS_dir): Add $(srcdir)/ prefix.
+ (_gl_TS_function_match): Simplify, rather than trying
+ to enumerate common types. Otherwise, it would fail to match an
+ "extern unsigned char const *" declaration in idutils.
+ (_gl_TS_extern): Do not endorse use of "XTERN", but do provide
+ a way to support use of that type of macro.
+ (_gl_TS_var_match): Simplify regexp.
+ (_gl_TS_obj_files): New configurable variable.
+ (_gl_TS_headers): Likewise.
+
2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
verify: fix bug when gnulib <assert.h> is also included
Problem reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00478.html>.
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ xgetcwd: Simplify autoconf macro.
+ * m4/xgetcwd.m4 (gl_XGETCWD): Don't require gl_FUNC_GETCWD.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ New module 'mktime-internal'.
+ * modules/mktime-internal: New file.
+ * m4/timegm.m4 (gl_PREREQ_TIMEGM): Move contents to ...
+ * m4/mktime.m4 (gl_FUNC_MKTIME_INTERNAL): New macro. Define
+ mktime_internal as a C macro if libc has __mktime_internal.
+ * modules/timegm (Depends-on): Add mktime-internal. Remove mktime. Add
+ conditions.
+ * MODULES.html.sh (Date and time <time.h>): Add mktime-internal.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ timegm: Correct mktime replacement statements.
+ * m4/timegm.m4 (gl_PREREQ_TIMEGM): Set REPLACE_MKTIME, instead of
+ defining mktime as a C macro. This completes a 2009-07-28 commit.
+
+2011-05-22 Bruno Haible <bruno@clisp.org>
+
+ timegm: Simplify autoconf macro.
+ * m4/timegm.m4 (gl_PREREQ_TIMEGM): Don't require gl_TIME_R.
+
2011-05-21 Paul Eggert <eggert@cs.ucla.edu>
clock-time: change to LGPLv2+.
2011-05-21 Bruno Haible <bruno@clisp.org>
+ strerror_r: Fix comments.
+ * lib/strerror_r.c (strerror_r): Fix comment about Cygwin and sys_nerr.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
relocatable-prog-wrapper: Fix possible link error.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Move determination of
HAVE_SETENV and REPLACE_SETENV and AC_LIBOBJ invocation from here...
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL_SEPARATE): Update comment.
* m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): Likewise.
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ relocatable-prog-wrapper: Assume strerror() exists.
+ * modules/relocatable-prog-wrapper (Files): Remove lib/strerror.c,
+ m4/strerror.m4.
+ (configure.ac): Don't invoke gl_FUNC_STRERROR_SEPARATE.
+ * lib/relocwrapper.c: Remove mention of strerror module.
+ * lib/strerror.c: Assume REPLACE_STRERROR is 1.
+ * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Remove macro.
+ (gl_FUNC_STRERROR): Inline it here. Don't define REPLACE_STRERROR as a
+ C macro.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ select: Simplify replacement idiom.
+ * m4/select.m4 (gl_FUNC_SELECT): Set REPLACE_SELECT also on native
+ Win32 platforms.
+ * lib/sys_select.in.h (select): Simplify accordingly.
+ * modules/select (Depends-on): Likewise.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkdir-p: Simplify autoconf macro.
+ * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't require gl_FUNC_LCHMOD,
+ gl_FUNC_LCHOWN.
+
+2011-05-21 Eric Blake <eblake@redhat.com>
+
+ strerror_r: avoid clobbering strerror on cygwin
+ * lib/strerror_r.c (strerror_r): Don't use cygwin's strerror_r;
+ fall back instead to sys_errlist.
+ * modules/strerror (configure.ac): Add witness.
+ * tests/test-strerror_r.c (main): Enhance test.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document it.
+ * tests/test-perror2.c (main): Free memory before exit.
+
+2011-05-21 Bruno Haible <bruno@clisp.org>
+
+ mkdtemp: Use gnulib naming conventions.
+ * m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Renamed from gt_FUNC_MKDTEMP.
+ * modules/mkdtemp (configure.ac): Update.
+
+2011-05-20 Eric Blake <eblake@redhat.com>
+
+ strerror_r: avoid corrupting errno on Solaris
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Check for Solaris behavior.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document it.
+
+ strerror_r: avoid compiler warning
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't return a char*.
+
+ strerror_r: simplify AIX code
+ * lib/strerror_r.c (strerror_r): Filter out buflen of 1 up front.
+
+ test-perror: avoid spurious failure on FreeBSD
+ * modules/perror-tests (Depends-on): Add strerror, now that
+ strerror_r no longer pulls it in.
+
+2011-05-20 Bruno Haible <bruno@clisp.org>
+
+ strerror_r-posix: Remove unused dependencies.
+ * modules/strerror_r-posix (Depends-on): Remove strerror.
+ Reported by Eric Blake.
+
+2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ intprops: remove assumption about A|B representation
+ * lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Do not assume that A|B
+ is a valid integer if both A and B are. Although this is true for
+ all known practical hosts, the C standard doesn't guarantee it,
+ and the code need not assume it. Also, this change may work around
+ HP-UX 11.23 and IRIX 6.5 cc bugs reported by Bruno Haible in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00426.html>.
+
+2011-05-20 Eric Blake <eblake@redhat.com>
+
+ perror: work around FreeBSD bug
+ * m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r
+ is broken. Move AC_LIBOBJ...
+ * modules/perror (configure.ac): Here.
+ * doc/posix-functions/perror.texi (perror): Document this.
+ * tests/test-perror2.c (main): Enhance test.
+
+ test-perror: check for strerror interactions
+ * tests/macros.h (STREQ): Add macro.
+ * modules/perror-tests (Files): Add second test.
+ * tests/test-perror2.c (main): New file.
+ * doc/posix-functions/perror.texi (perror): Document glibc bug.
+
+ test-perror: rewrite to use init script
+ * modules/perror-tests (Files): Add init.sh.
+ * tests/test-perror.sh: Use temporary directory.
+
2011-05-20 Jim Meyering <meyering@redhat.com>
maint: replace misused "a" with "an"
2011-05-19 Paul Eggert <eggert@cs.ucla.edu>
+ intprops-tests: work around HP-UX 11.23 cc bug with constants
+ * tests/test-intprops.c (VERIFY): New macro.
+ (main): Use it, instead of verify, to work around the compiler bug; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
+
intprops: work around IRIX 6.5 cc bug with 0u - 0u + -1
See http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html
* lib/intprops.h (_GL_INT_NEGATE_CONVERT): New macro.
(_GL_INT_SIGNED, _GL_INT_MAXIMUM, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW): Use it.
+ intprops-tests: revert unsigned part of previous change
+ * tests/test-intprops.c (UINT_MAX, ULONG_MAX, UINTMAX_MAX, U0, U1):
+ Remove; they weren't actually needed. All uses of U0 and U1 removed,
+ and other casts to 'unsigned int' reverted to 'u' suffixes. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.
+
+2011-05-19 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Work around strerror_r() change in Cygwin 1.7.8.
+ * lib/strerror_r.c (strerror_r) [CYGWIN]: Recognize when the system's
+ strerror_r() returned without filling the buffer.
+ Reported by Eric Blake.
+
+2011-05-19 Eric Blake <eblake@redhat.com>
+
+ strerror_r: guarantee unchanged errno
+ * lib/strerror_r.c (strerror_r): Guarantee unchanged errno.
+ * lib/strerror-impl.h (strerror): Set errno to match strerror_r
+ failure.
+ * tests/test-strerror_r.c (main): Enhance test.
+
+2011-05-19 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Reorder #if blocks.
+ * lib/strerror_r.c (strerror_r): Reorder conditionals in the function
+ for consistency with the previous commit.
+
+2011-05-19 Bruno Haible <bruno@clisp.org>
+
+ perror: Avoid clobbering the strerror buffer when possible.
+ * lib/strerror-impl.h: New file, extracted from lib/strerror.c.
+ * lib/strerror.c: Include it.
+ * modules/strerror (Files): Add lib/strerror-impl.h.
+ * lib/perror.c: Include <stdlib.h>, intprops.h, verify.h.
+ (my_strerror): New function, defined through lib/strerror-impl.h.
+ (perror): Use it instead of strerror.
+ * modules/perror (Files): Add lib/strerror-impl.h.
+ (Depends-on): Remove strerror. Add intprops, verify, strerror_r-posix.
+
+2011-05-19 Eric Blake <eblake@redhat.com>
+
+ strerror_r: fix on newer cygwin
+ * lib/strerror_r.c (strerror_r): Cygwin now has
+ __xpg_strerror_r, use it.
+
+2011-05-19 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Avoid clobbering the strerror buffer when possible.
+ * lib/strerror.c: Define _NETBSD_SOURCE. Include <nl_types.h>.
+ (sys_nerr, sys_errlist): New declarations.
+ (strerror_r): Be careful not to clobber the strerror buffer on NetBSD,
+ HP-UX, native Win32, IRIX, and 32-bit Solaris.
+ * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test whether catgets exists.
+
+2011-05-19 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Fix test failure on mingw.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
+ EXTEND_STRERROR_R.
+ * lib/strerror_r.c (strerror_r): Test the various GNULIB_defined_*
+ macros from errno.in.h instead.
+
+2011-05-19 Eric Blake <eblake@redhat.com>
+
+ strerror: relax test for Solaris
+ * tests/test-strerror.c (main): Permit Solaris behavior.
+ * tests/test-strerror_r.c (main): Likewise.
+
+ strerror: enforce POSIX ruling on strerror(0)
+ * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
+ * lib/strerror_r.c (rpl_strerror_r): Work around it.
+ * doc/posix-functions/strerror.texi (strerror): Document it.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Likewise.
+ * tests/test-strerror.c (main): Strengthen test.
+ * tests/test-strerror_r.c (main): Likewise.
+
+2011-05-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ intprop-tests: port to older and more-pedantic compilers
+ * modules/intprops-tests (Files): Add tests/macros.h.
+ * tests/test-intprops.c: Include macros.h.
+ (TYPE_IS_INTEGER): Use ASSERT, not verify, to test this macro, as
+ it's no longer documented to expand to an integer constant expression.
+ (TYPE_SIGNED): Use ASSERT, not verify, to test this macro when the
+ argument is floating point, as it's no longer documented to expand
+ to an integer constant expression in that case.
+ (UINT_MAX, ULONG_MAX, UINTMAX_MAX): Redefine to work around
+ compiler bugs reported by Bruno Haible. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
+ (U0, U1): New constants, to work around the same bugs. Also,
+ in tests, use e.g., "(unsigned int) 39" rather than "39u".
+
intprops: work around C compiler bugs
* lib/intprops.h (INT_MULTIPLY_RANGE_OVERFLOW): Work around compiler
bug in Sun C 5.11 2010/08/13 and other compilers; see
argument is an integer type. (TYPE_IS_INTEGER is the same, but is
hardly worth documented that way....)
+2011-05-18 Bruno Haible <bruno@clisp.org>
+
+ strerror_r: Avoid clobbering the strerror buffer when possible.
+ * lib/strerror_r.c (strerror_r): Merge the three implementations.
+ Handle gnulib defined errno values here. When strerror() returns NULL
+ or an empty string, return EINVAL.
+ * lib/strerror.c (strerror): Always call strerror_r. Don't handle
+ gnulib defined errno values here.
+ * modules/strerror (Depends-on): Add verify, strerror_r-posix.
+
2011-05-18 Eric Blake <eblake@redhat.com>
fnmatch: avoid compiler warning
(x)memcoll: speedup when input is known to be NUL delimited
* lib/memcoll.c: Include stdlib.
- (memcoll0) New function.
- (strcoll_loop) New function, refactored for use in both memcoll
+ (memcoll0): New function.
+ (strcoll_loop): New function, refactored for use in both memcoll
and memcoll0.
- * lib/memcoll.h: Add prototype for memcoll0.
- * lib/xmemcoll.c: (xmemcoll0) New function.
- (collate_error) New function, refactored for use in both xmemcoll
+ * lib/memcoll.h (memcoll0): Add prototype.
+ * lib/xmemcoll.c (xmemcoll0): New function.
+ (collate_error): New function, refactored for use in both xmemcoll
and xmemcoll0.
- * lib/xmemcoll.h: Add prototype for xmemcoll0.
+ * lib/xmemcoll.h (xmemcoll0): Add prototype.
* m4/memcoll.m4: add inline invocation.
2010-07-06 Pádraig Brady <P@draigBrady.com>
2010-06-08 Peter Simons <simons@cryp.to>
maint.mk: make the news-check rule more configurable
- * top/maint.mk (news-check-lines-spec) New variable.
+ * top/maint.mk (news-check-lines-spec): New variable.
(news-check): Use "sed -n 1,10p" in place of "head".
2010-06-07 Jim Meyering <meyering@redhat.com>
* lib/pipe.c (create_pipe) [WIN32]: Likewise. Use fd_safer_noinherit
instead of fd_safer.
* tests/test-pipe.c: Include <windows.h>.
- (child_main) [WIN32]: Test the handle of STDERR_FILENO, not its close() result.
+ (child_main) [WIN32]: Test the handle of STDERR_FILENO, not its close()
+ result.
* tests/test-pipe.c (child_main, parent_main): New functions, extracted
from main.
(signbit): New macro.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_SIGNBIT and
REPLACE_SIGNBIT.
- * modules/math (Makefile.am) Substibute also GNULIB_SIGNBIT and
+ * modules/math (Makefile.am): Substibute also GNULIB_SIGNBIT and
REPLACE_FREXPL into math.h.
2007-04-06 Bruno Haible <bruno@clisp.org>
* lib/math_.h (frexpl): Define as a replacement macro if REPLACE_FREXPL
is set. Don't provide a prototype if REPLACE_FREXPL is not set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FREXPL.
- * modules/math (Makefile.am) Substibute also REPLACE_FREXPL into math.h.
+ * modules/math (Makefile.am): Substibute also REPLACE_FREXPL into
+ math.h.
2007-03-25 Bruno Haible <bruno@clisp.org>
* modules/tempname (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
* modules/gettimeofday (Files): Remove lib/gettimeofday.h.
- (Include:) Change back to <sys/time.h>.
- (Maintainer:) Add self.
+ (Include): Change back to <sys/time.h>.
+ (Maintainer): Add self.
* modules/sys_time: New file.
* modules/tempname (Depends-on): Add gettimeofday.
* tests/test-gettimeofday.c: Include <sys/time.h>
* m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.
* m4/longlong.m4 (gl_AC_TYPE_LONG_LONG): Now just call
AC_TYPE_LONG_LONG_INT. This macro is obsolete and will go soon.
- * m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG) Likewise.
+ * m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Rewrite to accommodate stdint_.h
changes. Make 2.59 a prerequisite. Check and substitute for
2005-04-21 Oskar Liljeblad <oskar@osk.mine.nu>
* gnulib-tool (Options): Add -s for --symlink/--symbolic.
- (func_ln_if_changed) Remove forcibly for no error message
+ (func_ln_if_changed): Remove forcibly for no error message
in case file does not exist.
2005-04-19 Simon Josefsson <jas@extundo.com>
* lib/gethrxtime.h, lib/gethrxtime.c, lib/xtime.h: New files.
* lib/timespec.h (gettime): Return void, since it always
succeeds now. All uses changed.
- * lib/gettime.c (gettime) Likewise.
+ * lib/gettime.c (gettime): Likewise.
[HAVE_NANOTIME]: Prefer nanotime.
Assume gettimeofday succeeds, as POSIX requires.
Assime time () succeeds, since other code already does.
* lib/full-write.c: Correct credits, as cccp.c no longer
exists and anyway it was so heavily changed from the old cccp
code as to be unrecognizable. Include full-write.h.
- (full_write) Return size_t, with short writes meaning failure.
+ (full_write): Return size_t, with short writes meaning failure.
All callers changed. This fixes a bug with large buffers
on 64-bit hosts.
* lib/utime.c: Include full-write.h.
func_module atexit
func_module strtod
func_module strerror
+ func_module strerror-override
func_module mktime
func_end_table
func_begin_table
func_module count-one-bits
+ func_module ffs
+ func_module ffsl
+ func_module ffsll
func_module gcd
func_module minmax
func_end_table
func_module strcasestr-simple
func_module strchrnul
func_module streq
+ func_module strerror_r-posix
func_module strnlen
func_module strnlen1
func_module strndup
func_echo "$element"
func_begin_table
+ func_module mktime-internal
func_module parse-datetime
func_module timegm
func_module tzset
func_module func
func_module inline
func_module longlong
- func_module unused-parameter
+ func_module snippet/unused-parameter
func_module va-args
func_module vararrays
func_end_table
func_module mbfile
func_end_table
+ element="Support for systems lacking draft ISO C 1X"
+ func_section_wrap c1x_sup
+ func_wrap H2
+ func_echo "$element"
+
+ element="Core language properties"
+ element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
+ func_section_wrap c1x_core_properties
+ func_wrap H3
+ func_echo "$element"
+
element="Support for obsolete systems lacking POSIX:2008"
func_section_wrap posix_sup_obsolete
func_wrap H2
func_module posix_spawnp
func_module pread
func_module printf-posix
+ func_module pselect
func_module pthread
func_module ptsname
func_module pwrite
func_module times
func_module timespec
func_module nanosleep
+ func_module pthread_sigmask
func_module regex
func_module rename
func_module renameat
func_module link-follow
func_module rename-dest-slash
func_module rmdir-errno
+ func_module timer-time
func_module unlink-busy
func_module winsz-ioctl
func_module winsz-termios
func_module filenamecat-lgpl
func_module fts
func_module isdir
+ func_module largefile
func_module lchmod
func_module lchown
func_module mkancesdirs
func_begin_table
func_module absolute-header
- func_module arg-nonnull
+ func_module snippet/arg-nonnull
func_module config-h
func_module configmake
func_module dummy
func_module lib-ignore
func_module lib-msvc-compat
func_module lib-symbol-versions
- func_module link-warning
+ func_module snippet/link-warning
func_module manywarnings
func_module no-c++
func_module relocatable-lib
func_module relocatable-prog
func_module relocatable-prog-wrapper
func_module relocatable-script
- func_module warn-on-use
+ func_module snippet/warn-on-use
func_module warnings
func_end_table
# This Makefile requires the use of GNU make. Some targets require
# that you have tools like git, makeinfo and cppi installed.
+# Required for the use of <(...) below.
+SHELL=/bin/bash
+
# Produce some files that are not stored in the repository.
all:
in modules/ 1>&2; exit 1; } || : \
else :; fi
+sc_prohibit_leading_TABs:
+ if test -d .git; then \
+ git grep -l '^ * ' lib m4 tests \
+ | grep -Ev '^lib/reg|Makefile|test-update-copyright' \
+ | grep . \
+ && { printf '*** %s\n' 'indent with spaces, not TABs;' \
+ 1>&2; exit 1; } || : \
+ else :; fi
+
sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT:
if test -d .git; then \
url=http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/22874; \
" see <$$url>" 1>&2; exit 1; } || : \
else :; fi
+# Files in m4/ that (exceptionally) may use AC_LIBOBJ.
+# Do not include their ".m4" suffix.
+allow_AC_LIBOBJ = \
+ close \
+ dprintf \
+ dup2 \
+ faccessat \
+ fchdir \
+ fclose \
+ fcntl \
+ fprintf-posix \
+ open \
+ printf-posix-rpl \
+ snprintf \
+ sprintf-posix \
+ stdio_h \
+ vasnprintf \
+ vasprintf \
+ vdprintf \
+ vfprintf-posix \
+ vprintf-posix \
+ vsnprintf \
+ vsprintf-posix
+
+allow_AC_LIBOBJ_or := $(shell echo $(allow_AC_LIBOBJ) | tr -s ' ' '|')
+
+sc_prohibit_AC_LIBOBJ_in_m4:
+ url=http://article.gmane.org/gmane.comp.lib.gnulib.bugs/26995; \
+ if test -d .git; then \
+ git ls-files m4 \
+ | grep -Ev '^m4/($(allow_AC_LIBOBJ_or))\.m4$$' \
+ | xargs grep '^ *AC_LIBOBJ(' \
+ && { printf '%s\n' 'Do not use AC_LIBOBJ in m4/*.m4;' \
+ "see <$$url>"; exit 1; } || :; \
+ else :; fi
+
sc_pragma_columns:
if test -d .git; then \
git ls-files|grep '\.in\.h$$' \
$$(cd ./modules; grep -ilrE '(meyering|blake)' .) \
| sort -u \
| grep '\.c$$' \
- | grep -v '/getloadavg\.c$$' \
+ | grep -vE '/(stdio-(read|write)|getloadavg)\.c$$' \
| xargs cppi -c
+# Ensure that the list of symbols checked for by the
+# sc_prohibit_intprops_without_use rule match those in the actual file.
+# Extract the symbols from the .h file and compare with the list of
+# symbols extracted from the rule in maint.mk.
+sc_check_sym_list:
+ i=lib/intprops.h; \
+ diff -u <(perl -lne '/^# *define ([A-Z]\w+)\(/ and print $$1' $$i|fmt) \
+ <(sed -n /^_intprops_name/,/^_intprops_syms_re/p top/maint.mk \
+ |sed '/^_/d;s/^ //;s/ *\\$$//')
+
# Regenerate some files that are stored in the repository.
regen: MODULES.html
Date Modules Changes
+2011-08-04 pathmax The header file "pathmax.h" no longer defines
+ PATH_MAX on GNU/Hurd. Please use one of the methods
+ listed in pathmax.h to ensure your package is
+ portable to GNU/Hurd.
+
+2011-07-24 close This module no longer pulls in the 'fclose' module.
+ If your code creates a socket descriptor using
+ socket() or accept(), then a FILE stream referring
+ to it using fdopen(), then in order to close this
+ stream, you need the 'fclose' module.
+
+2011-07-12 arg-nonnull Renamed to snippet/arg-nonnull.
+ c++defs Renamed to snippet/c++defs.
+ link-warning Renamed to snippet/link-warning.
+ unused-parameter Renamed to snippet/unused-parameter.
+ warn-on-use Renamed to snippet/warn-on-use.
+
+2011-06-15 verify verify_true (V) is deprecated; please use
+ verify_expr (V, 1) instead.
+
2011-06-05 ansi-c++-opt When a C++ compiler is not found, the variable CXX
is now set to "no", not to ":".
require 'int' to be at least 32 bits wide, so Gnulib code assumes this
as well. Gnulib code makes the following additional assumptions:
- * With one exception noted below, signed integer arithmetic is two's
- complement, without runtime overflow checking. This is the
- traditional behavior, and is supported by C99 implementations that
- conform to ISO/IEC 10967-1 (LIA-1) and that define signed integer
- types as being modulo.
-
- The exception is signed loop indexes. Here, the behavior is
- undefined if any signed expression derived from the loop index
- overflows. For example, the following code contains two such
- overflows (the "i++" and the "i + 1") and therefore has undefined
- behavior:
-
- int i;
- for (i = INT_MAX - 10; i <= INT_MAX; i++)
- if (i + 1 < 0)
- {
- report_overflow ();
- break;
- }
-
- This exception is a concession to modern optimizing compilers,
- which can turn the above loop into code that executes the loop body
- 11 times, even though wraparound arithmetic would cause the loop to
- iterate forever.
+ * Signed integer arithmetic is two's complement.
+
+ Previously, gnulib code sometimes assumed that signed integer
+ arithmetic wraps around, but modern compiler optimizations
+ sometimes do not guarantee this, and gnulib code with this
+ assumption is now considered to be questionable. For more, please
+ see the file doc/intprops.texi.
+
+ Some gnulib modules contain explicit support for the other signed
+ integer representations allowed by C99 (ones' complement and signed
+ magnitude), but these modules are the exception rather than the rule.
+ All practical gnulib targets use two's complement.
* There are no "holes" in integer values: all the bits of an integer
contribute to its value in the usual way.
Discussion:
<http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00289.html>
- Half of the work has been done, but not yet pushed.
- <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00199.html>
- <http://lists.gnu.org/archive/html/bug-gnulib/2011-02/msg00078.html>
+ Still missing: dealing with include_next and old compilers, cf.
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00269.html>
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00285.html>
2) Allow using libgnu's file name in module descriptions.
<http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00284.html>
+++ /dev/null
-/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
- that the values passed as arguments n, ..., m must be non-NULL pointers.
- n = 1 stands for the first argument, n = 2 for the second argument etc. */
-#ifndef _GL_ARG_NONNULL
-# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
-# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
-# else
-# define _GL_ARG_NONNULL(params)
-# endif
-#endif
#! /bin/sh
# Print a version string.
-scriptversion=2011-05-16.16; # UTC
+scriptversion=2011-08-11.17; # UTC
# Bootstrap this package from checked-out sources.
P
x
s/^\n//
- }'
+ }' | sed '/^$/d'
}
# If $STR is not already on a line by itself in $FILE, insert it,
echo "$me: $dir/$file overrides $1/$dir/$file"
else
copied=$copied$sep$file; sep=$nl
- if test $file = gettext.m4; then
- echo "$me: patching m4/gettext.m4 to remove need for intl/* ..."
- rm -f $dir/$file
- sed '
- /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
- AC_DEFUN([AM_INTL_SUBDIR], [])
- /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
- AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
- $a\
- AC_DEFUN([gl_LOCK_EARLY], [])
- ' $1/$dir/$file >$dir/$file
- else
- cp_mark_as_generated $1/$dir/$file $dir/$file
- fi
+ cp_mark_as_generated $1/$dir/$file $dir/$file
fi || exit
done
+++ /dev/null
-/* C++ compatible function declaration macros.
- Copyright (C) 2010-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef _GL_CXXDEFS_H
-#define _GL_CXXDEFS_H
-
-/* The three most frequent use cases of these macros are:
-
- * For providing a substitute for a function that is missing on some
- platforms, but is declared and works fine on the platforms on which
- it exists:
-
- #if @GNULIB_FOO@
- # if !@HAVE_FOO@
- _GL_FUNCDECL_SYS (foo, ...);
- # endif
- _GL_CXXALIAS_SYS (foo, ...);
- _GL_CXXALIASWARN (foo);
- #elif defined GNULIB_POSIXCHECK
- ...
- #endif
-
- * For providing a replacement for a function that exists on all platforms,
- but is broken/insufficient and needs to be replaced on some platforms:
-
- #if @GNULIB_FOO@
- # if @REPLACE_FOO@
- # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
- # undef foo
- # define foo rpl_foo
- # endif
- _GL_FUNCDECL_RPL (foo, ...);
- _GL_CXXALIAS_RPL (foo, ...);
- # else
- _GL_CXXALIAS_SYS (foo, ...);
- # endif
- _GL_CXXALIASWARN (foo);
- #elif defined GNULIB_POSIXCHECK
- ...
- #endif
-
- * For providing a replacement for a function that exists on some platforms
- but is broken/insufficient and needs to be replaced on some of them and
- is additionally either missing or undeclared on some other platforms:
-
- #if @GNULIB_FOO@
- # if @REPLACE_FOO@
- # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
- # undef foo
- # define foo rpl_foo
- # endif
- _GL_FUNCDECL_RPL (foo, ...);
- _GL_CXXALIAS_RPL (foo, ...);
- # else
- # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
- _GL_FUNCDECL_SYS (foo, ...);
- # endif
- _GL_CXXALIAS_SYS (foo, ...);
- # endif
- _GL_CXXALIASWARN (foo);
- #elif defined GNULIB_POSIXCHECK
- ...
- #endif
-*/
-
-/* _GL_EXTERN_C declaration;
- performs the declaration with C linkage. */
-#if defined __cplusplus
-# define _GL_EXTERN_C extern "C"
-#else
-# define _GL_EXTERN_C extern
-#endif
-
-/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
- declares a replacement function, named rpl_func, with the given prototype,
- consisting of return type, parameters, and attributes.
- Example:
- _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
- _GL_ARG_NONNULL ((1)));
- */
-#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
- _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
-#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
- _GL_EXTERN_C rettype rpl_func parameters_and_attributes
-
-/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
- declares the system function, named func, with the given prototype,
- consisting of return type, parameters, and attributes.
- Example:
- _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
- _GL_ARG_NONNULL ((1)));
- */
-#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
- _GL_EXTERN_C rettype func parameters_and_attributes
-
-/* _GL_CXXALIAS_RPL (func, rettype, parameters);
- declares a C++ alias called GNULIB_NAMESPACE::func
- that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
- Example:
- _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
- */
-#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
- _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
-#if defined __cplusplus && defined GNULIB_NAMESPACE
-# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
- namespace GNULIB_NAMESPACE \
- { \
- rettype (*const func) parameters = ::rpl_func; \
- } \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#else
-# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
- is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
- except that the C function rpl_func may have a slightly different
- declaration. A cast is used to silence the "invalid conversion" error
- that would otherwise occur. */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
-# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
- namespace GNULIB_NAMESPACE \
- { \
- rettype (*const func) parameters = \
- reinterpret_cast<rettype(*)parameters>(::rpl_func); \
- } \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#else
-# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIAS_SYS (func, rettype, parameters);
- declares a C++ alias called GNULIB_NAMESPACE::func
- that redirects to the system provided function func, if GNULIB_NAMESPACE
- is defined.
- Example:
- _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
- */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
- /* If we were to write
- rettype (*const func) parameters = ::func;
- like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
- better (remove an indirection through a 'static' pointer variable),
- but then the _GL_CXXALIASWARN macro below would cause a warning not only
- for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
-# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
- namespace GNULIB_NAMESPACE \
- { \
- static rettype (*func) parameters = ::func; \
- } \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#else
-# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
- is like _GL_CXXALIAS_SYS (func, rettype, parameters);
- except that the C function func may have a slightly different declaration.
- A cast is used to silence the "invalid conversion" error that would
- otherwise occur. */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
-# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
- namespace GNULIB_NAMESPACE \
- { \
- static rettype (*func) parameters = \
- reinterpret_cast<rettype(*)parameters>(::func); \
- } \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#else
-# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
- is like _GL_CXXALIAS_SYS (func, rettype, parameters);
- except that the C function is picked among a set of overloaded functions,
- namely the one with rettype2 and parameters2. Two consecutive casts
- are used to silence the "cannot find a match" and "invalid conversion"
- errors that would otherwise occur. */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
- /* The outer cast must be a reinterpret_cast.
- The inner cast: When the function is defined as a set of overloaded
- functions, it works as a static_cast<>, choosing the designated variant.
- When the function is defined as a single variant, it works as a
- reinterpret_cast<>. The parenthesized cast syntax works both ways. */
-# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
- namespace GNULIB_NAMESPACE \
- { \
- static rettype (*func) parameters = \
- reinterpret_cast<rettype(*)parameters>( \
- (rettype2(*)parameters2)(::func)); \
- } \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#else
-# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIASWARN (func);
- causes a warning to be emitted when ::func is used but not when
- GNULIB_NAMESPACE::func is used. func must be defined without overloaded
- variants. */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
-# define _GL_CXXALIASWARN(func) \
- _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
-# define _GL_CXXALIASWARN_1(func,namespace) \
- _GL_CXXALIASWARN_2 (func, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
- we enable the warning only when not optimizing. */
-# if !__OPTIMIZE__
-# define _GL_CXXALIASWARN_2(func,namespace) \
- _GL_WARN_ON_USE (func, \
- "The symbol ::" #func " refers to the system function. " \
- "Use " #namespace "::" #func " instead.")
-# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
-# define _GL_CXXALIASWARN_2(func,namespace) \
- extern __typeof__ (func) func
-# else
-# define _GL_CXXALIASWARN_2(func,namespace) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-# endif
-#else
-# define _GL_CXXALIASWARN(func) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
- causes a warning to be emitted when the given overloaded variant of ::func
- is used but not when GNULIB_NAMESPACE::func is used. */
-#if defined __cplusplus && defined GNULIB_NAMESPACE
-# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
- _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
- GNULIB_NAMESPACE)
-# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
- _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
- we enable the warning only when not optimizing. */
-# if !__OPTIMIZE__
-# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
- _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
- "The symbol ::" #func " refers to the system function. " \
- "Use " #namespace "::" #func " instead.")
-# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
-# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
- extern __typeof__ (func) func
-# else
-# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-# endif
-#else
-# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
- _GL_EXTERN_C int _gl_cxxalias_dummy
-#endif
-
-#endif /* _GL_CXXDEFS_H */
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
-timestamp='2011-06-03'
+timestamp='2011-08-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
-timestamp='2011-06-03'
+timestamp='2011-08-23'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
#!/bin/sh
# Print a version string.
-scriptversion=2011-02-19.19; # UTC
+scriptversion=2011-08-11.12; # UTC
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
#
# files to pick up a version string change; and leave it stale to
# minimize rebuild time after unrelated changes to configure sources.
#
-# It is probably wise to add these two files to .gitignore, so that you
-# don't accidentally commit either generated file.
+# As with any generated file in a VC'd directory, you should add
+# /.version to .gitignore, so that you don't accidentally commit it.
+# .tarball-version is never generated in a VC'd directory, so needn't
+# be listed there.
#
# Use the following line in your configure.ac, so that $(VERSION) will
# automatically be up-to-date each time configure is run (and note that
# [bug-project@example])
#
# Then use the following lines in your Makefile.am, so that .version
-# will be present for dependencies, and so that .tarball-version will
-# exist in distribution tarballs.
+# will be present for dependencies, and so that .version and
+# .tarball-version will exist in distribution tarballs.
#
+# EXTRA_DIST = $(top_srcdir)/.version
# BUILT_SOURCES = $(top_srcdir)/.version
# $(top_srcdir)/.version:
# echo $(VERSION) > $@-t && mv $@-t $@
+++ /dev/null
-/* A C macro for emitting link time warnings.
- Copyright (C) 1995, 1997, 2000, 2002-2003, 2007, 2009-2011 Free Software
- Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#if @HAVE_FEATURES_H@
-# include <features.h> /* for __GLIBC__, __UCLIBC__ */
-#endif
-
-/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
- a linker warning on most glibc systems.
- We use a linker warning rather than a preprocessor warning, because
- #warning cannot be used inside macros. */
-#ifndef GL_LINK_WARNING
- /* This works on platforms with GNU ld and ELF object format.
- Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
- Testing __ELF__ guarantees the ELF object format.
- Testing __GNUC__ is necessary for the compound expression syntax. */
-# if (defined __GLIBC__ || defined __UCLIBC__) && defined __ELF__ && defined __GNUC__
-# define GL_LINK_WARNING(message) \
- GL_LINK_WARNING1 (__FILE__, __LINE__, message)
-# define GL_LINK_WARNING1(file, line, message) \
- GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */
-# define GL_LINK_WARNING2(file, line, message) \
- GL_LINK_WARNING3 (file ":" #line ": warning: " message)
-# define GL_LINK_WARNING3(message) \
- ({ static const char warning[sizeof (message)] \
- __attribute__ ((__unused__, \
- __section__ (".gnu.warning"), \
- __aligned__ (1))) \
- = message "\n"; \
- (void)0; \
- })
-# else
-# define GL_LINK_WARNING(message) ((void) 0)
-# endif
-#endif
mv t-$@ $@
-all: check-macro-version all-@USE_NLS@
+all: all-@USE_NLS@
all-yes: stamp-po
all-no:
# Ensure that the gettext macros and this Makefile.in.in are in sync.
-check-macro-version:
- @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+CHECK_MACRO_VERSION = \
+ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
|| { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
exit 1; \
}
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
+ @$(CHECK_MACRO_VERSION)
test ! -f $(srcdir)/$(DOMAIN).pot || \
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
@test ! -f $(srcdir)/$(DOMAIN).pot || { \
--- /dev/null
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
--- /dev/null
+/* A C macro for declaring that specific arguments must not be NULL.
+ Copyright (C) 2009-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
+ that the values passed as arguments n, ..., m must be non-NULL pointers.
+ n = 1 stands for the first argument, n = 2 for the second argument etc. */
+#ifndef _GL_ARG_NONNULL
+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
+# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
+# else
+# define _GL_ARG_NONNULL(params)
+# endif
+#endif
--- /dev/null
+/* C++ compatible function declaration macros.
+ Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _GL_CXXDEFS_H
+#define _GL_CXXDEFS_H
+
+/* The three most frequent use cases of these macros are:
+
+ * For providing a substitute for a function that is missing on some
+ platforms, but is declared and works fine on the platforms on which
+ it exists:
+
+ #if @GNULIB_FOO@
+ # if !@HAVE_FOO@
+ _GL_FUNCDECL_SYS (foo, ...);
+ # endif
+ _GL_CXXALIAS_SYS (foo, ...);
+ _GL_CXXALIASWARN (foo);
+ #elif defined GNULIB_POSIXCHECK
+ ...
+ #endif
+
+ * For providing a replacement for a function that exists on all platforms,
+ but is broken/insufficient and needs to be replaced on some platforms:
+
+ #if @GNULIB_FOO@
+ # if @REPLACE_FOO@
+ # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ # undef foo
+ # define foo rpl_foo
+ # endif
+ _GL_FUNCDECL_RPL (foo, ...);
+ _GL_CXXALIAS_RPL (foo, ...);
+ # else
+ _GL_CXXALIAS_SYS (foo, ...);
+ # endif
+ _GL_CXXALIASWARN (foo);
+ #elif defined GNULIB_POSIXCHECK
+ ...
+ #endif
+
+ * For providing a replacement for a function that exists on some platforms
+ but is broken/insufficient and needs to be replaced on some of them and
+ is additionally either missing or undeclared on some other platforms:
+
+ #if @GNULIB_FOO@
+ # if @REPLACE_FOO@
+ # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ # undef foo
+ # define foo rpl_foo
+ # endif
+ _GL_FUNCDECL_RPL (foo, ...);
+ _GL_CXXALIAS_RPL (foo, ...);
+ # else
+ # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
+ _GL_FUNCDECL_SYS (foo, ...);
+ # endif
+ _GL_CXXALIAS_SYS (foo, ...);
+ # endif
+ _GL_CXXALIASWARN (foo);
+ #elif defined GNULIB_POSIXCHECK
+ ...
+ #endif
+*/
+
+/* _GL_EXTERN_C declaration;
+ performs the declaration with C linkage. */
+#if defined __cplusplus
+# define _GL_EXTERN_C extern "C"
+#else
+# define _GL_EXTERN_C extern
+#endif
+
+/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
+ declares a replacement function, named rpl_func, with the given prototype,
+ consisting of return type, parameters, and attributes.
+ Example:
+ _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
+ _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
+ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
+#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
+ _GL_EXTERN_C rettype rpl_func parameters_and_attributes
+
+/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
+ declares the system function, named func, with the given prototype,
+ consisting of return type, parameters, and attributes.
+ Example:
+ _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
+ _GL_ARG_NONNULL ((1)));
+ */
+#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
+ _GL_EXTERN_C rettype func parameters_and_attributes
+
+/* _GL_CXXALIAS_RPL (func, rettype, parameters);
+ declares a C++ alias called GNULIB_NAMESPACE::func
+ that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
+ Example:
+ _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
+ */
+#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
+ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ rettype (*const func) parameters = ::rpl_func; \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
+ is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
+ except that the C function rpl_func may have a slightly different
+ declaration. A cast is used to silence the "invalid conversion" error
+ that would otherwise occur. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ rettype (*const func) parameters = \
+ reinterpret_cast<rettype(*)parameters>(::rpl_func); \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS (func, rettype, parameters);
+ declares a C++ alias called GNULIB_NAMESPACE::func
+ that redirects to the system provided function func, if GNULIB_NAMESPACE
+ is defined.
+ Example:
+ _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
+ */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+ /* If we were to write
+ rettype (*const func) parameters = ::func;
+ like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
+ better (remove an indirection through a 'static' pointer variable),
+ but then the _GL_CXXALIASWARN macro below would cause a warning not only
+ for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ static rettype (*func) parameters = ::func; \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
+ is like _GL_CXXALIAS_SYS (func, rettype, parameters);
+ except that the C function func may have a slightly different declaration.
+ A cast is used to silence the "invalid conversion" error that would
+ otherwise occur. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ static rettype (*func) parameters = \
+ reinterpret_cast<rettype(*)parameters>(::func); \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
+ is like _GL_CXXALIAS_SYS (func, rettype, parameters);
+ except that the C function is picked among a set of overloaded functions,
+ namely the one with rettype2 and parameters2. Two consecutive casts
+ are used to silence the "cannot find a match" and "invalid conversion"
+ errors that would otherwise occur. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+ /* The outer cast must be a reinterpret_cast.
+ The inner cast: When the function is defined as a set of overloaded
+ functions, it works as a static_cast<>, choosing the designated variant.
+ When the function is defined as a single variant, it works as a
+ reinterpret_cast<>. The parenthesized cast syntax works both ways. */
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ static rettype (*func) parameters = \
+ reinterpret_cast<rettype(*)parameters>( \
+ (rettype2(*)parameters2)(::func)); \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN (func);
+ causes a warning to be emitted when ::func is used but not when
+ GNULIB_NAMESPACE::func is used. func must be defined without overloaded
+ variants. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN(func) \
+ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN_1(func,namespace) \
+ _GL_CXXALIASWARN_2 (func, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+ we enable the warning only when not optimizing. */
+# if !__OPTIMIZE__
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ _GL_WARN_ON_USE (func, \
+ "The symbol ::" #func " refers to the system function. " \
+ "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ extern __typeof__ (func) func
+# else
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN(func) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
+ causes a warning to be emitted when the given overloaded variant of ::func
+ is used but not when GNULIB_NAMESPACE::func is used. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
+ GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
+ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+ we enable the warning only when not optimizing. */
+# if !__OPTIMIZE__
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
+ "The symbol ::" #func " refers to the system function. " \
+ "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ extern __typeof__ (func) func
+# else
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+#endif /* _GL_CXXDEFS_H */
--- /dev/null
+/* A C macro for emitting link time warnings.
+ Copyright (C) 1995, 1997, 2000, 2002-2003, 2007, 2009-2011 Free Software
+ Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__, __UCLIBC__ */
+#endif
+
+/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
+ a linker warning on most glibc systems.
+ We use a linker warning rather than a preprocessor warning, because
+ #warning cannot be used inside macros. */
+#ifndef GL_LINK_WARNING
+ /* This works on platforms with GNU ld and ELF object format.
+ Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
+ Testing __ELF__ guarantees the ELF object format.
+ Testing __GNUC__ is necessary for the compound expression syntax. */
+# if (defined __GLIBC__ || defined __UCLIBC__) && defined __ELF__ && defined __GNUC__
+# define GL_LINK_WARNING(message) \
+ GL_LINK_WARNING1 (__FILE__, __LINE__, message)
+# define GL_LINK_WARNING1(file, line, message) \
+ GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */
+# define GL_LINK_WARNING2(file, line, message) \
+ GL_LINK_WARNING3 (file ":" #line ": warning: " message)
+# define GL_LINK_WARNING3(message) \
+ ({ static const char warning[sizeof (message)] \
+ __attribute__ ((__unused__, \
+ __section__ (".gnu.warning"), \
+ __aligned__ (1))) \
+ = message "\n"; \
+ (void)0; \
+ })
+# else
+# define GL_LINK_WARNING(message) ((void) 0)
+# endif
+#endif
--- /dev/null
+/* A C macro for declaring that specific function parameters are not used.
+ Copyright (C) 2008-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
+ declarations for parameters that are not used. This helps to reduce
+ warnings, such as from GCC -Wunused-parameter. The syntax is as follows:
+ type param _GL_UNUSED_PARAMETER
+ or more generally
+ param_decl _GL_UNUSED_PARAMETER
+ For example:
+ int param _GL_UNUSED_PARAMETER
+ int *(*param)(void) _GL_UNUSED_PARAMETER
+ Other possible, but obscure and discouraged syntaxes:
+ int _GL_UNUSED_PARAMETER *(*param)(void)
+ _GL_UNUSED_PARAMETER int *(*param)(void)
+ */
+#ifndef _GL_UNUSED_PARAMETER
+# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_UNUSED_PARAMETER __attribute__ ((__unused__))
+# else
+# define _GL_UNUSED_PARAMETER
+# endif
+#endif
--- /dev/null
+/* A C macro for emitting warnings if a function is used.
+ Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
+ for FUNCTION which will then trigger a compiler warning containing
+ the text of "literal string" anywhere that function is called, if
+ supported by the compiler. If the compiler does not support this
+ feature, the macro expands to an unused extern declaration.
+
+ This macro is useful for marking a function as a potential
+ portability trap, with the intent that "literal string" include
+ instructions on the replacement function that should be used
+ instead. However, one of the reasons that a function is a
+ portability trap is if it has the wrong signature. Declaring
+ FUNCTION with a different signature in C is a compilation error, so
+ this macro must use the same type as any existing declaration so
+ that programs that avoid the problematic FUNCTION do not fail to
+ compile merely because they included a header that poisoned the
+ function. But this implies that _GL_WARN_ON_USE is only safe to
+ use if FUNCTION is known to already have a declaration. Use of
+ this macro implies that there must not be any other macro hiding
+ the declaration of FUNCTION; but undefining FUNCTION first is part
+ of the poisoning process anyway (although for symbols that are
+ provided only via a macro, the result is a compilation error rather
+ than a warning containing "literal string"). Also note that in
+ C++, it is only safe to use if FUNCTION has no overloads.
+
+ For an example, it is possible to poison 'getline' by:
+ - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
+ [getline]) in configure.ac, which potentially defines
+ HAVE_RAW_DECL_GETLINE
+ - adding this code to a header that wraps the system <stdio.h>:
+ #undef getline
+ #if HAVE_RAW_DECL_GETLINE
+ _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
+ "not universally present; use the gnulib module getline");
+ #endif
+
+ It is not possible to directly poison global variables. But it is
+ possible to write a wrapper accessor function, and poison that
+ (less common usage, like &environ, will cause a compilation error
+ rather than issue the nice warning, but the end result of informing
+ the developer about their portability problem is still achieved):
+ #if HAVE_RAW_DECL_ENVIRON
+ static inline char ***rpl_environ (void) { return &environ; }
+ _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
+ # undef environ
+ # define environ (*rpl_environ ())
+ #endif
+ */
+#ifndef _GL_WARN_ON_USE
+
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+/* A compiler attribute is available in gcc versions 4.3.0 and later. */
+# define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function. */
+# define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function
+# else /* Unsupported. */
+# define _GL_WARN_ON_USE(function, message) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
+ is like _GL_WARN_ON_USE (function, "string"), except that the function is
+ declared with the given prototype, consisting of return type, parameters,
+ and attributes.
+ This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
+ not work in this case. */
+#ifndef _GL_WARN_ON_USE_CXX
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes \
+ __attribute__ ((__warning__ (msg)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function. */
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes
+# else /* Unsupported. */
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_EXTERN_C declaration;
+ performs the declaration with C linkage. */
+#ifndef _GL_WARN_EXTERN_C
+# if defined __cplusplus
+# define _GL_WARN_EXTERN_C extern "C"
+# else
+# define _GL_WARN_EXTERN_C extern
+# endif
+#endif
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2011-05-11.16}
+\def\texinfoversion{2011-08-14.17}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
\newdimen\mil \mil=0.001in
-% Old definition--didn't work.
-%\parseargdef\need{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
\parseargdef\need{%
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
\finishedtitlepagetrue
}
-%%% Macros to be used within @titlepage:
+% Macros to be used within @titlepage:
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
}
-%%% Set up page headings and footings.
+% Set up page headings and footings.
\let\thispage=\folio
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
\fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+% If so, set to same dimension as multitablelinespace.
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
% (including whitespace, linebreaking, etc. around it),
% given all the information in convenient, parsed form.
-%%% Args are the skip and penalty (usually negative)
+% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-
\newskip\chapheadingskip
+% Define plain chapter starts, and page on/off switching for it.
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
% Because \domark is called before \chapoddpage, the filler page will
% This is purely so the last item on the list is a known \penalty >
% 10000. This is so \startdefun can avoid allowing breakpoints after
% section headings. Otherwise, it would insert a valid breakpoint between:
- %
% @section sec-whatever
% @deffn def-whatever
\penalty 10001
\normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
% Flag to tell @lisp, etc., not to narrow margin.
\let\nonarrowing = t%
+ %
+ % If this cartouche directly follows a sectioning command, we need the
+ % \parskip glue (backspaced over by default) or the cartouche can
+ % collide with the section heading.
+ \ifnum\lastpenalty>10000 \vskip\parskip \fi
+ %
\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
\lineskip=\normlskip
\parskip=\normpskip
\vskip -\parskip
- \comment % For explanation, see the end of \def\group.
+ \comment % For explanation, see the end of def\group.
}
\def\Ecartouche{%
\ifhmode\par\fi
% commands also insert a nobreak penalty, and we don't want to allow
% a break between a section heading and a defun.
%
- % As a minor refinement, we avoid "club" headers by signalling
+ % As a further refinement, we avoid "club" headers by signalling
% with penalty of 10003 after the very first @deffn in the
% sequence (see above), and penalty of 10002 after any following
% @def command.
\def\domakedefun#1#2#3{%
\envdef#1{%
\startdefun
+ \doingtypefnfalse % distinguish typed functions from all else
\parseargusing\activeparens{\printdefunline#3}%
}%
\def#2{\dodefunx#1}%
\def#3%
}
-%%% Untyped functions:
+\newif\ifdoingtypefn % doing typed function?
+\newif\ifrettypeownline % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line. This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+%
+\parseargdef\deftypefnnewline{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @txideftypefnnl value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+% Untyped functions:
% @deffn category name args
\makedefun{deffn}{\deffngeneral{}}
\defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-%%% Typed functions:
+% Typed functions:
% @deftypefn category type name args
\makedefun{deftypefn}{\deftypefngeneral{}}
%
\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
\dosubind{fn}{\code{#4}}{#1}%
+ \doingtypefntrue
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Typed variables:
+% Typed variables:
% @deftypevr category type var args
\makedefun{deftypevr}{\deftypecvgeneral{}}
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Untyped variables:
+% Untyped variables:
% @defvr category var args
\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
% \defcvof {category of}class var args
\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-%%% Type:
+% Types:
+
% @deftp category name args
\makedefun{deftp}#1 #2 #3\endheader{%
\doind{tp}{\code{#2}}%
% We are followed by (but not passed) the arguments, if any.
%
\def\defname#1#2#3{%
+ \par
% Get the values of \leftskip and \rightskip as they were outside the @def...
\advance\leftskip by -\defbodyindent
%
- % How we'll format the type name. Putting it in brackets helps
+ % Determine if we are typesetting the return type of a typed function
+ % on a line by itself.
+ \rettypeownlinefalse
+ \ifdoingtypefn % doing a typed function specifically?
+ % then check user option for putting return type on its own line:
+ \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+ \rettypeownlinetrue
+ \fi
+ \fi
+ %
+ % How we'll format the category name. Putting it in brackets helps
% distinguish it from the body text that may end up on the next line
% just below it.
\def\temp{#1}%
\setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
%
- % Figure out line sizes for the paragraph shape.
+ % Figure out line sizes for the paragraph shape. We'll always have at
+ % least two.
+ \tempnum = 2
+ %
% The first line needs space for \box0; but if \rightskip is nonzero,
% we need only space for the part of \box0 which exceeds it:
\dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ %
+ % If doing a return type on its own line, we'll have another line.
+ \ifrettypeownline
+ \advance\tempnum by 1
+ \def\maybeshapeline{0in \hsize}%
+ \else
+ \def\maybeshapeline{}%
+ \fi
+ %
% The continuations:
\dimen2=\hsize \advance\dimen2 by -\defargsindent
- % (plain.tex says that \dimen1 should be used only as global.)
- \parshape 2 0in \dimen0 \defargsindent \dimen2
%
- % Put the type name to the right margin.
+ % The final paragraph shape:
+ \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2
+ %
+ % Put the category name at the right margin.
\noindent
\hbox to 0pt{%
\hfil\box0 \kern-\hsize
% . this still does not fix the ?` and !` ligatures, but so far no
% one has made identifiers using them :).
\df \tt
- \def\temp{#2}% return value type
- \ifx\temp\empty\else \tclose{\temp} \fi
+ \def\temp{#2}% text of the return type
+ \ifx\temp\empty\else
+ \tclose{\temp}% typeset the return type
+ \ifrettypeownline
+ % put return type on its own line; prohibit line break following:
+ \hfil\vadjust{\nobreak}\break
+ \else
+ \space % type on same line, so just followed by a space
+ \fi
+ \fi % no return type
#3% output function name
}%
{\rm\enskip}% hskip 0.5 em of \tenrm
+++ /dev/null
-/* A C macro for declaring that specific function parameters are not used.
- Copyright (C) 2008-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
- declarations for parameters that are not used. This helps to reduce
- warnings, such as from GCC -Wunused-parameter. The syntax is as follows:
- type param _GL_UNUSED_PARAMETER
- or more generally
- param_decl _GL_UNUSED_PARAMETER
- For example:
- int param _GL_UNUSED_PARAMETER
- int *(*param)(void) _GL_UNUSED_PARAMETER
- Other possible, but obscure and discouraged syntaxes:
- int _GL_UNUSED_PARAMETER *(*param)(void)
- _GL_UNUSED_PARAMETER int *(*param)(void)
- */
-#ifndef _GL_UNUSED_PARAMETER
-# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-# define _GL_UNUSED_PARAMETER __attribute__ ((__unused__))
-# else
-# define _GL_UNUSED_PARAMETER
-# endif
-#endif
+++ /dev/null
-/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
- for FUNCTION which will then trigger a compiler warning containing
- the text of "literal string" anywhere that function is called, if
- supported by the compiler. If the compiler does not support this
- feature, the macro expands to an unused extern declaration.
-
- This macro is useful for marking a function as a potential
- portability trap, with the intent that "literal string" include
- instructions on the replacement function that should be used
- instead. However, one of the reasons that a function is a
- portability trap is if it has the wrong signature. Declaring
- FUNCTION with a different signature in C is a compilation error, so
- this macro must use the same type as any existing declaration so
- that programs that avoid the problematic FUNCTION do not fail to
- compile merely because they included a header that poisoned the
- function. But this implies that _GL_WARN_ON_USE is only safe to
- use if FUNCTION is known to already have a declaration. Use of
- this macro implies that there must not be any other macro hiding
- the declaration of FUNCTION; but undefining FUNCTION first is part
- of the poisoning process anyway (although for symbols that are
- provided only via a macro, the result is a compilation error rather
- than a warning containing "literal string"). Also note that in
- C++, it is only safe to use if FUNCTION has no overloads.
-
- For an example, it is possible to poison 'getline' by:
- - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
- [getline]) in configure.ac, which potentially defines
- HAVE_RAW_DECL_GETLINE
- - adding this code to a header that wraps the system <stdio.h>:
- #undef getline
- #if HAVE_RAW_DECL_GETLINE
- _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
- "not universally present; use the gnulib module getline");
- #endif
-
- It is not possible to directly poison global variables. But it is
- possible to write a wrapper accessor function, and poison that
- (less common usage, like &environ, will cause a compilation error
- rather than issue the nice warning, but the end result of informing
- the developer about their portability problem is still achieved):
- #if HAVE_RAW_DECL_ENVIRON
- static inline char ***rpl_environ (void) { return &environ; }
- _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
- # undef environ
- # define environ (*rpl_environ ())
- #endif
- */
-#ifndef _GL_WARN_ON_USE
-
-# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
-/* A compiler attribute is available in gcc versions 4.3.0 and later. */
-# define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
-# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
-/* Verify the existence of the function. */
-# define _GL_WARN_ON_USE(function, message) \
-extern __typeof__ (function) function
-# else /* Unsupported. */
-# define _GL_WARN_ON_USE(function, message) \
-_GL_WARN_EXTERN_C int _gl_warn_on_use
-# endif
-#endif
-
-/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
- is like _GL_WARN_ON_USE (function, "string"), except that the function is
- declared with the given prototype, consisting of return type, parameters,
- and attributes.
- This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
- not work in this case. */
-#ifndef _GL_WARN_ON_USE_CXX
-# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
-# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
-extern rettype function parameters_and_attributes \
- __attribute__ ((__warning__ (msg)))
-# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
-/* Verify the existence of the function. */
-# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
-extern rettype function parameters_and_attributes
-# else /* Unsupported. */
-# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
-_GL_WARN_EXTERN_C int _gl_warn_on_use
-# endif
-#endif
-
-/* _GL_WARN_EXTERN_C declaration;
- performs the declaration with C linkage. */
-#ifndef _GL_WARN_EXTERN_C
-# if defined __cplusplus
-# define _GL_WARN_EXTERN_C extern "C"
-# else
-# define _GL_WARN_EXTERN_C extern
-# endif
-#endif
--- /dev/null
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+
+scriptversion=2011-08-25.18; # UTC
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
+# 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+#
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case "$1" in
+ '')
+ echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
+ exit 1
+ ;;
+ --basedir)
+ basedir=$2
+ shift 2
+ ;;
+ -h|--h*)
+ cat <<\EOF
+Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+
+Wrapper for lex/yacc invocations, renaming files as desired.
+
+ INPUT is the input file
+ OUTPUT is one file PROG generates
+ DESIRED is the file we actually want instead of OUTPUT
+ PROGRAM is program to run
+ ARGS are passed to PROG
+
+Any number of OUTPUT,DESIRED pairs may be used.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v|--v*)
+ echo "ylwrap $scriptversion"
+ exit $?
+ ;;
+esac
+
+
+# The input.
+input="$1"
+shift
+case "$input" in
+ [\\/]* | ?:[\\/]*)
+ # Absolute path; do nothing.
+ ;;
+ *)
+ # Relative path. Make it absolute.
+ input="`pwd`/$input"
+ ;;
+esac
+
+pairlist=
+while test "$#" -ne 0; do
+ if test "$1" = "--"; then
+ shift
+ break
+ fi
+ pairlist="$pairlist $1"
+ shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+ [\\/]* | ?:[\\/]*) ;;
+ *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines. But that might take us over the 14-char limit.
+dirname=ylwrap$$
+do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret'
+trap "ret=129; $do_exit" 1
+trap "ret=130; $do_exit" 2
+trap "ret=141; $do_exit" 13
+trap "ret=143; $do_exit" 15
+mkdir $dirname || exit 1
+
+cd $dirname
+
+case $# in
+ 0) "$prog" "$input" ;;
+ *) "$prog" "$@" "$input" ;;
+esac
+ret=$?
+
+if test $ret -eq 0; then
+ set X $pairlist
+ shift
+ first=yes
+ # Since DOS filename conventions don't allow two dots,
+ # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+ # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+ y_tab_nodot="no"
+ if test -f y_tab.c || test -f y_tab.h; then
+ y_tab_nodot="yes"
+ fi
+
+ # The directory holding the input.
+ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+ # Quote $INPUT_DIR so we can use it in a regexp.
+ # FIXME: really we should care about more than `.' and `\'.
+ input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
+
+ while test "$#" -ne 0; do
+ from="$1"
+ # Handle y_tab.c and y_tab.h output by DOS
+ if test $y_tab_nodot = "yes"; then
+ if test $from = "y.tab.c"; then
+ from="y_tab.c"
+ else
+ if test $from = "y.tab.h"; then
+ from="y_tab.h"
+ fi
+ fi
+ fi
+ if test -f "$from"; then
+ # If $2 is an absolute path name, then just use that,
+ # otherwise prepend `../'.
+ case "$2" in
+ [\\/]* | ?:[\\/]*) target="$2";;
+ *) target="../$2";;
+ esac
+
+ # We do not want to overwrite a header file if it hasn't
+ # changed. This avoid useless recompilations. However the
+ # parser itself (the first file) should always be updated,
+ # because it is the destination of the .y.c rule in the
+ # Makefile. Divert the output of all other files to a temporary
+ # file so we can compare them to existing versions.
+ if test $first = no; then
+ realtarget="$target"
+ target="tmp-`echo $target | sed s/.*[\\/]//g`"
+ fi
+ # Edit out `#line' or `#' directives.
+ #
+ # We don't want the resulting debug information to point at
+ # an absolute srcdir; it is better for it to just mention the
+ # .y file with no path.
+ #
+ # We want to use the real output file name, not yy.lex.c for
+ # instance.
+ #
+ # We want the include guards to be adjusted too.
+ FROM=`echo "$from" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+ TARGET=`echo "$2" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+
+ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
+ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
+
+ # Check whether header files must be updated.
+ if test $first = no; then
+ if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+ echo "$2" is unchanged
+ rm -f "$target"
+ else
+ echo updating "$2"
+ mv -f "$target" "$realtarget"
+ fi
+ fi
+ else
+ # A missing file is only an error for the first file. This
+ # is a blatant hack to let us support using "yacc -d". If -d
+ # is not specified, we don't want an error when the header
+ # file is "missing".
+ if test $first = yes; then
+ ret=1
+ fi
+ fi
+ shift
+ shift
+ first=no
+ done
+else
+ ret=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
$AUTOMAKE/lib/mdate-sh build-aux
$AUTOMAKE/lib/missing build-aux
$AUTOMAKE/lib/mkinstalldirs build-aux
+$AUTOMAKE/lib/ylwrap build-aux
#
$TEXINFOSRC/doc/texinfo.tex build-aux
$TEXINFOSRC/util/gendocs.sh build-aux
manual_opts = --no-split --reference-limit=2000
TEXI2HTML = $(MAKEINFO) $(manual_opts) --html
+# Needed so that tex finds a recent enough texinfo.tex.
+tex_opts = -I ../build-aux
+
%.info: %.texi
$(MAKEINFO) $(manual_opts) $<
$(TEXI2HTML) -o $@ $<
%.dvi: %.texi
- texi2dvi $< || { if texi2dvi $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
+ texi2dvi $(tex_opts) $< || { if texi2dvi $(tex_opts) $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
%.pdf: %.texi
- texi2pdf $< || { if texi2pdf $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
+ texi2pdf $(tex_opts) $< || { if texi2pdf $(tex_opts) $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
all: info html dvi
info: $(doc).info
standards.info standards.html standards.dvi: standards.texi make-stds.texi fdl.texi
mostlyclean:
- rm -f *.aux *.cp *.cps *.fn *.ky *.log *.pg *.toc *.tp *.vr *.vrs
+ rm -f *.aux *.cn *.cp *.cps *.fn *.ky *.log *.pg *.toc *.tp *.vr *.vrs
rm -f updated-stamp
clean: mostlyclean
chmod
-HP-UX ACLs
+HP-UX 11.00 ACLs
+Present in HP-UX >= 11.00. On some machines, yields ENOSYS always.
Manual pages:
- http://docs.hp.com/en/B2355-60105/acl.2.html
- http://docs.hp.com/en/B2355-60105/lsacl.1.html
- http://docs.hp.com/en/B2355-60105/chacl.1.html
- http://docs.hp.com/en/B2355-60105/getacl.1.html
+ getacl, fgetacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02261503/c02261503.pdf
+ setacl, fsetacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02267386/c02267386.pdf
+ lsacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02261049/c02261049.pdf
+ chacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01921575/c01921575.pdf p. 125
Includes:
- <acl.h> or <sys/acl.h>, optionally <aclv.h>
+ <acl.h> or <sys/acl.h>
Library:
none needed
Functions:
fgetacl
fsetacl
setacl
-Functions only declared in <aclv.h>:
- acl
Utilities:
lsacl
chacl
+ chmod
+
+
+HP-UX 11.11 ACLs
+
+Present in HP-UX >= 11.11.
+Manual pages:
+ acl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02254861/c02254861.pdf
+ acl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01921366/c01921366.pdf p. 27
+ aclsort: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02254876/c02254876.pdf
+ getacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02261501/c02261501.pdf
+ setacl: http://h20000.www2.hp.com/bc/docs/support/SupportManual/c02267385/c02267385.pdf
+Includes:
+ <aclv.h>
+Library:
+ none needed
+Functions:
+ acl
+ aclsort
+Utilities:
getacl
setacl
- chmod
IRIX ACLs
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Cygwin 1.5.x, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Cygwin 1.5.x, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
This function fails to detect trailing slashes on non-directories on
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, mingw.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
--- /dev/null
+@node endsgent
+@subsection @code{endsgent}
+@findex endsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
@item
This function is missing a declaration on some platforms:
Solaris 9.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-glibc 2.9, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw,
+glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on older glibc versions and all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX
11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX
11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@subsection @code{ffsl}
@findex ffsl
-Gnulib module: ---
+Gnulib module: ffsl
Portability problems fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+MacOS X 10.4, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@subsection @code{ffsll}
@findex ffsll
-Gnulib module: ---
+Gnulib module: ffsll
Portability problems fixed by Gnulib:
@itemize
+@item
+This function is missing on all non-glibc platforms:
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
--- /dev/null
+@node fgetsgent
+@subsection @code{fgetsgent}
+@findex fgetsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node fgetsgent_r
+@subsection @code{fgetsgent_r}
+@findex fgetsgent_r
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.
+Minix 3.1.8, HP-UX 11.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
@item
One some systems (at least including Cygwin, Interix, OSF/1 4 and 5,
and Mac OS X) linking with @code{-lutil} is not required.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@item
This function is missing on some platforms:
AIX 5.1, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{f_blocks} in @samp{struct statfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+MacOS X.
@end itemize
@item
This function is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB and
+may not work correctly on huge directories larger than 2 GB. Also, on
+platforms where @code{ino_t} is a 32-bit type, this function may report
+inode numbers incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE}
+macro (only on MacOS X systems).
@end itemize
@item
This function is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB and
+may not work correctly on huge directories larger than 2 GB. Also, on
+platforms where @code{ino_t} is a 32-bit type, this function may report
+inode numbers incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE}
+macro (only on MacOS X systems).
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix
-3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw,
+Interix 3.5, BeOS.
@item
This function cannot set full timestamp resolution. Use
@code{futimens(fd,times)} instead.
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
@item
On some platforms, this function mis-handles trailing slash:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. The fix is to use
+the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
On those platforms, this module provides a stub that always sets
@code{errno} to @code{ENOTSUP} and returns @samp{-1}.
@item
@itemize
@item
This function is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@item
This function is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Interix 3.5.
+@item
+This function crashes if the option string includes @code{W;} but
+there are no long options, on some platforms:
+glibc 2.14.
@end itemize
Portability problems not fixed by Gnulib:
MacOS X 10.5, OpenBSD 4.0, AIX 5.2, Solaris 11 2010-11, Cygwin 1.5.x.
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5,
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 5.1, mingw, Interix 3.5.
+@item
+This function crashes if the option string includes @code{W;} but
+there are no long options, on some platforms:
+glibc 2.14.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node getsgent
+@subsection @code{getsgent}
+@findex getsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node getsgent_r
+@subsection @code{getsgent_r}
+@findex getsgent_r
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node getsgnam
+@subsection @code{getsgnam}
+@findex getsgnam
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node getsgnam_r
+@subsection @code{getsgnam_r}
+@findex getsgnam_r
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
@item
This function is missing a declaration on some platforms:
Solaris 9.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on most non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5.
+Minix 3.1.8, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This constant is missing on some platforms:
-MacOS X 10.5, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This constant is missing on some platforms:
-MacOS X 10.5, AIX 4.3.2, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, AIX 4.3.2, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5 x86, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5 x86, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
@item
This function requires linking with @code{-lutil} on some platforms:
glibc 2.3.6, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
This function cannot set full timestamp resolution. Use
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node malloc_info
+@subsection @code{malloc_info}
+@findex malloc_info
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw.
+FreeBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.00, OSF/1 5.1, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.00, OSF/1 5.1, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
@item
This function has reversed arguments on some older platforms:
Linux libc 5.0.9
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+@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
@item
This function is missing on many non-glibc platforms:
-glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkostemps} 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
@item
This function is missing on many non-glibc platforms:
-glibc 2.10, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin
-1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.10, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10,
+Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
This function is declared in @code{<unistd.h>} instead of @code{<stdlib.h>}
on some platforms:
MacOS X 10.5.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkstemps} 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
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib module @code{ostack-printf-posix}:
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib module @code{ostack-printf-posix}:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
@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
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node preadv
+@subsection @code{preadv}
+@findex preadv
+
+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.9, MacOS X 10.5, FreeBSD 5.2.1, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
--- /dev/null
+@node pthread_attr_getaffinity_np
+@subsection @code{pthread_attr_getaffinity_np}
+@findex pthread_attr_getaffinity_np
+
+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.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function has a different signature on some platforms:
+glibc 2.3.3.
+@end itemize
--- /dev/null
+@node pthread_attr_setaffinity_np
+@subsection @code{pthread_attr_setaffinity_np}
+@findex pthread_attr_setaffinity_np
+
+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.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function has a different signature on some platforms:
+glibc 2.3.3.
+@end itemize
--- /dev/null
+@node pthread_getaffinity_np
+@subsection @code{pthread_getaffinity_np}
+@findex pthread_getaffinity_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function has a different signature on some platforms:
+glibc 2.3.3.
+@item
+The third parameter has a different type on some platforms:
+FreeBSD 7.2, NetBSD 5.0.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node pthread_getname_np
+@subsection @code{pthread_getname_np}
+@findex pthread_getname_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.11, MacOS X 10.5, FreeBSD 6.4, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node pthread_mutex_consistent_np
+@subsection @code{pthread_mutex_consistent_np}
+@findex pthread_mutex_consistent_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node pthread_mutexattr_getrobust_np
+@subsection @code{pthread_mutexattr_getrobust_np}
+@findex pthread_mutexattr_getrobust_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
+
+This function has now been standardized by POSIX under the name
+@code{pthread_mutexattr_getrobust}.
--- /dev/null
+@node pthread_mutexattr_setrobust_np
+@subsection @code{pthread_mutexattr_setrobust_np}
+@findex pthread_mutexattr_setrobust_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
+
+This function has now been standardized by POSIX under the name
+@code{pthread_mutexattr_setrobust}.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node pthread_setaffinity_np
+@subsection @code{pthread_setaffinity_np}
+@findex pthread_setaffinity_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function has a different signature on some platforms:
+glibc 2.3.3.
+@item
+The third parameter has a different type on some platforms:
+FreeBSD 7.2, NetBSD 5.0.
+@end itemize
--- /dev/null
+@node pthread_setname_np
+@subsection @code{pthread_setname_np}
+@findex pthread_setname_np
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This function is missing on many non-glibc platforms:
+glibc 2.11, MacOS X 10.5, FreeBSD 6.4, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function has a different signature on some platforms:
+NetBSD 5.0, OSF/1 5.1.
+On OSF/1 the third argument must be @code{NULL}.
+On NetBSD the second argument is interpreted as a @code{printf} format string,
+with the third argument as parameter.
+@end itemize
--- /dev/null
+@node pthread_sigqueue
+@subsection @code{pthread_sigqueue}
+@findex pthread_sigqueue
+
+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.10, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node pthread_timedjoin_np
+@subsection @code{pthread_timedjoin_np}
+@findex pthread_timedjoin_np
+
+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.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+FreeBSD 6.4 has a function of this name in @code{libthr} but not in
+@code{libpthread}, and it also is missing a declaration.
+@end itemize
--- /dev/null
+@node pthread_tryjoin_np
+@subsection @code{pthread_tryjoin_np}
+@findex pthread_tryjoin_np
+
+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.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node putsgent
+@subsection @code{putsgent}
+@findex putsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node pwritev
+@subsection @code{pwritev}
+@findex pwritev
+
+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.9, MacOS X 10.5, FreeBSD 5.2.1, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node qsort_r
+@subsection @code{qsort_r}
+@findex qsort_r
+
+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.7, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node quick_exit
+@subsection @code{quick_exit}
+@findex quick_exit
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node register_printf_modifier
+@subsection @code{register_printf_modifier}
+@findex register_printf_modifier
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node register_printf_specifier
+@subsection @code{register_printf_specifier}
+@findex register_printf_specifier
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node register_printf_type
+@subsection @code{register_printf_type}
+@findex register_printf_type
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, mingw.
+Minix 3.1.8, HP-UX 11, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.23, mingw.
+Minix 3.1.8, HP-UX 11.23, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
--- /dev/null
+@node setsgent
+@subsection @code{setsgent}
+@findex setsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, Interix 3.5, BeOS.
@item
This function is missing a declaration on some platforms:
Solaris 9.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node sgetsgent
+@subsection @code{sgetsgent}
+@findex sgetsgent
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- /dev/null
+@node sgetsgent_r
+@subsection @code{sgetsgent_r}
+@findex sgetsgent_r
+
+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.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{f_blocks} in @samp{struct statfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+MacOS X.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.8, mingw, Interix 3.5,
BeOS.
@item
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
--- /dev/null
+@node syncfs
+@subsection @code{syncfs}
+@findex syncfs
+
+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.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This constant is missing on some platforms:
-MacOS X 10.5, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1,
Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5.
+Minix 3.1.8, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11.11, IRIX 6.5, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 4.3.2, HP-UX 11.11, IRIX 6.5, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1
-5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5,
+OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
@item
This function is not declared in the header on some platforms:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@item
This function is not declared in the header on some platforms:
Cygwin 1.7.5.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@item
This function is not declared in the header on some platforms:
Cygwin 1.7.5.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@item
This function is not declared in the header on some platforms:
Cygwin 1.7.5.
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.7.4, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.7.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
The argz functions do not work on some platforms:
Cygwin.
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, Interix 3.5, BeOS.
@item
The functions @code{crypt}, @code{setkey}, @code{encrypt} are missing on some
platforms:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
The macro @code{_PATH_FSTAB} is missing on some platforms:
AIX 5.1, HP-UX 11.
--- /dev/null
+@node gshadow.h
+@section @file{gshadow.h}
+
+Defines the type @code{struct sgrp} and declares the functions
+@code{setsgent}, @code{endsgent}, @code{getsgent}, @code{getsgnam},
+@code{sgetsgent}, @code{fgetsgent}, @code{putsgent},
+@code{getsgent_r}, @code{getsgnam_r}, @code{sgetsgent_r}, @code{fgetsgent_r}.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, Interix 3.5, BeOS.
@item
The functions cannot deal with GNU .mo files with system-dependent strings
(of major version 1 or of minor version 1) on some non-glibc platforms:
@itemize
@item
This header file is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
@item
The function @code{getmntent_r} is missing on all non-glibc platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin.
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-HP-UX 11, Solaris 11 2010-11, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, mingw, BeOS.
@item
The set of @code{_PATH_*} macros is platform dependent.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
@end itemize
OpenBSD 3.8.
@item
This header file is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@item
The functions @code{getspent_r}, @code{getspnam_r}, @code{sgetspent_r},
@code{fgetspent}, @code{fgetspent_r}, @code{putspent} are missing on some
* Localization:: Handling Gnulib's own message translations.
* VCS Issues:: Integration with Version Control Systems.
* Unit tests:: Bundling the unit tests of the Gnulib modules.
+* Conditional dependencies:: Avoiding unnecessary checks and compilations.
@end menu
in the scope of the same @code{configure.ac}, you cannot use
@samp{--with-tests}. You will have to use a separate @code{configure.ac}
in this case.
+
+
+@node Conditional dependencies
+@section Avoiding unnecessary checks and compilations
+
+@cindex conditional dependencies
+In some cases, a module is needed by another module only on specific
+platforms. But when a module is present, its autoconf checks are always
+executed, and its @code{Makefile.am} additions are always enabled. So
+it can happen that some autoconf checks are executed and some source files
+are compiled, although no other module needs them on this particular
+platform, just @emph{in case} some other module would need them.
+
+The option @samp{--conditional-dependencies} enables an optimization of
+configure checks and @code{Makefile.am} snippets that avoids this. With
+this option, whether a module is considered ``present'' is no longer decided
+when @code{gnulib-tool} is invoked, but later, when @code{configure} is run.
+This applies to modules that were added as dependencies while
+@code{gnulib-tool} was run; modules that were passed on the command line
+explicitly are always ``present''.
+
+For example, the @code{timegm} module needs, on platforms
+where the system's @code{timegm} function is missing or buggy, a replacement
+that is based on a function @code{mktime_internal}. The module
+@code{mktime-internal} that provides this function provides it on all
+platforms. So, by default, the file @file{mktime-internal.c} will be
+compiled on all platforms --- even on glibc and BSD systems which have a
+working @code{timegm} function. When the option
+@samp{--conditional-dependencies} is given, on the other hand, and if
+@code{mktime-internal} was not explicitly required on the command line,
+the file @file{mktime-internal.c} will only be compiled on the platforms
+where the @code{timegm} needs them.
+
+Conditional dependencies are specified in the module description by putting
+the condition on the same line as the dependent module, enclosed in brackets.
+The condition is a boolean shell expression that can assume that the
+@code{configure.ac} snippet from the module description has already been
+executed. In the example above, the dependency from @code{timegm} to
+@code{mktime-internal} is written like this:
+
+@smallexample
+Depends-on:
+...
+mktime-internal [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1]
+...
+@end smallexample
+
+Note: The option @samp{--conditional-dependencies} cannot be used together
+with the option @samp{--with-tests}. It also cannot be used when a package
+uses @code{gnulib-tool} for several subdirectories, with different values
+of @samp{--source-base}, in the scope of a single @code{configure.ac} file.
strtoull [test $ac_cv_func_strtoumax = no]
@end smallexample
+Lines starting with @code{#} are recognized as comments and are ignored.
+
@item configure.ac-early
This field contains @file{configure.ac} stuff (Autoconf macro invocations and
shell statements) that are logically placed early in the @file{configure.ac}
* fstab.h::
* fts.h::
* getopt.h::
+* gshadow.h::
* ieee754.h::
* ifaddrs.h::
* libintl.h::
@include glibc-headers/fstab.texi
@include glibc-headers/fts.texi
@include glibc-headers/getopt.texi
+@include glibc-headers/gshadow.texi
@include glibc-headers/ieee754.texi
@include glibc-headers/ifaddrs.texi
@include glibc-headers/libintl.texi
* Glibc glob.h::
* Glibc gnu/libc-version.h::
* Glibc grp.h::
+* Glibc gshadow.h::
* Glibc ifaddrs.h::
* Glibc libintl.h::
* Glibc link.h::
* Glibc sys/sysmacros.h::
* Glibc sys/time.h::
* Glibc sys/timex.h::
+* Glibc sys/uio.h::
* Glibc sys/ustat.h::
* Glibc sys/vlimit.h::
* Glibc sys/vm86.h::
@include glibc-functions/putgrent.texi
@include glibc-functions/setgroups.texi
+@node Glibc gshadow.h
+@section Glibc @code{<gshadow.h>}
+
+@menu
+* endsgent::
+* fgetsgent::
+* fgetsgent_r::
+* getsgent::
+* getsgent_r::
+* getsgnam::
+* getsgnam_r::
+* putsgent::
+* setsgent::
+* sgetsgent::
+* sgetsgent_r::
+@end menu
+
+@include glibc-functions/endsgent.texi
+@include glibc-functions/fgetsgent.texi
+@include glibc-functions/fgetsgent_r.texi
+@include glibc-functions/getsgent.texi
+@include glibc-functions/getsgent_r.texi
+@include glibc-functions/getsgnam.texi
+@include glibc-functions/getsgnam_r.texi
+@include glibc-functions/putsgent.texi
+@include glibc-functions/setsgent.texi
+@include glibc-functions/sgetsgent.texi
+@include glibc-functions/sgetsgent_r.texi
+
@c @node Glibc iconv.h
@c @section Glibc Extensions to @code{<iconv.h>}
* mallinfo::
* malloc_get_state::
* malloc_set_state::
+* malloc_info::
* malloc_stats::
* malloc_trim::
* malloc_usable_size::
@include glibc-functions/mallinfo.texi
@include glibc-functions/malloc_get_state.texi
@include glibc-functions/malloc_set_state.texi
+@include glibc-functions/malloc_info.texi
@include glibc-functions/malloc_stats.texi
@include glibc-functions/malloc_trim.texi
@include glibc-functions/malloc_usable_size.texi
* printf_size::
* printf_size_info::
* register_printf_function::
+* register_printf_modifier::
+* register_printf_specifier::
+* register_printf_type::
@end menu
@include glibc-functions/parse_printf_format.texi
@include glibc-functions/printf_size.texi
@include glibc-functions/printf_size_info.texi
@include glibc-functions/register_printf_function.texi
+@include glibc-functions/register_printf_modifier.texi
+@include glibc-functions/register_printf_specifier.texi
+@include glibc-functions/register_printf_type.texi
@node Glibc pthread.h
@section Glibc Extensions to @code{<pthread.h>}
@menu
+* pthread_attr_getaffinity_np::
+* pthread_attr_setaffinity_np::
+* pthread_getaffinity_np::
* pthread_getattr_np::
+* pthread_getname_np::
* pthread_kill_other_threads_np::
+* pthread_mutex_consistent_np::
+* pthread_mutexattr_getrobust_np::
+* pthread_mutexattr_setrobust_np::
* pthread_rwlockattr_getkind_np::
* pthread_rwlockattr_setkind_np::
+* pthread_setaffinity_np::
+* pthread_setname_np::
+* pthread_sigqueue::
+* pthread_timedjoin_np::
+* pthread_tryjoin_np::
* pthread_yield::
@end menu
+@include glibc-functions/pthread_attr_getaffinity_np.texi
+@include glibc-functions/pthread_attr_setaffinity_np.texi
+@include glibc-functions/pthread_getaffinity_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_consistent_np.texi
+@include glibc-functions/pthread_mutexattr_getrobust_np.texi
+@include glibc-functions/pthread_mutexattr_setrobust_np.texi
@include glibc-functions/pthread_rwlockattr_getkind_np.texi
@include glibc-functions/pthread_rwlockattr_setkind_np.texi
+@include glibc-functions/pthread_setaffinity_np.texi
+@include glibc-functions/pthread_setname_np.texi
+@include glibc-functions/pthread_sigqueue.texi
+@include glibc-functions/pthread_timedjoin_np.texi
+@include glibc-functions/pthread_tryjoin_np.texi
@include glibc-functions/pthread_yield.texi
@node Glibc pty.h
* qfcvt::
* qfcvt_r::
* qgcvt::
+* qsort_r::
+* quick_exit::
* random_r::
* rpmatch::
* seed48_r::
@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/quick_exit.texi
@include glibc-functions/random_r.texi
@include glibc-functions/rpmatch.texi
@include glibc-functions/seed48_r.texi
@c @node Glibc sys/types.h
@c @section Glibc Extensions to @code{<sys/types.h>}
-@c @node Glibc sys/uio.h
-@c @section Glibc Extensions to @code{<sys/uio.h>}
+@node Glibc sys/uio.h
+@section Glibc Extensions to @code{<sys/uio.h>}
+
+@menu
+* preadv::
+* pwritev::
+@end menu
+
+@include glibc-functions/preadv.texi
+@include glibc-functions/pwritev.texi
@c @node Glibc sys/un.h
@c @section Glibc Extensions to @code{<sys/un.h>}
* setresgid::
* setresuid::
* setusershell::
+* syncfs::
* syscall::
* ttyslot::
* vhangup::
@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
@include glibc-functions/ttyslot.texi
@include glibc-functions/vhangup.texi
* warnings::
* manywarnings::
* Running self-tests under valgrind::
+* stat-size::
@end menu
@node alloca
@include valgrind-tests.texi
+@include stat-size.texi
+
+
@node Regular expressions
@chapter Regular expressions
@c For double-sided printing, uncomment:
@c @setchapternewpage odd
@c This date is automagically updated when you save this file:
-@set lastupdate May 9, 2011
+@set lastupdate August 14, 2011
@c %**end of header
@dircategory GNU organization
Standards (@pxref{Top, , Contents, standards, GNU Coding Standards}).
@cindex @code{bug-standards@@gnu.org} email address
-@cindex Savannah repository for gnustandards
-@cindex gnustandards project repository
+@cindex Savannah repository for @code{gnustandards}
+@cindex @code{gnustandards} project repository
Please send corrections or suggestions for this document to
@email{bug-standards@@gnu.org}. If you make a suggestion, please
include suggested new wording if you can. We prefer a context diff to
maintainer needs the GNU Project's confirmation, but your judgment that
a person is capable of doing the job will carry a lot of weight.
-As your final act as maintainer, it would be helpful to set up the
-package under @code{savannah.gnu.org} if it is not there already
-(@pxref{Old Versions}). This will make it much easier for the new
-maintainer to pick up where you left off and will ensure that the
-source tree is not misplaced if it takes us a while to find a new
-maintainer.
+As your final act as maintainer, it would be helpful to set up or
+update the package under @code{savannah.gnu.org} (@pxref{Old
+Versions}). This will make it much easier for the new maintainer to
+pick up where you left off and will ensure that the source tree is not
+misplaced if it takes us a while to find a new maintainer.
@node Recruiting Developers
It is very important to keep backup files of all source files of GNU.
You can do this using a source control system (such as Bazaar, RCS,
-CVS, Git, Subversion, @dots{}) if you like. The easiest way to use
-RCS or CVS is via the Version Control library in Emacs
+CVS, Git, Subversion, @dots{}) if you like. An easy way to use
+many such systems is via the Version Control library in Emacs
(@pxref{Introduction to VC,, Introduction to Version Control, emacs,
The GNU Emacs Manual}).
some day.
@cindex @code{savannah-hackers@@gnu.org}
-The GNU Project provides a server that GNU software packages can use
+The GNU Project provides a server that GNU packages can use
for source control and other package needs: @code{savannah.gnu.org}.
Savannah is managed by @email{savannah-hackers@@gnu.org}. For more
details on using and contributing to Savannah, see
@url{http://savannah.gnu.org/maintenance}.
-It's not a requirement, but all GNU maintainers are strongly
+It's not an absolute requirement, but all GNU maintainers are strongly
encouraged to take advantage of Savannah, as sharing such a central
-point can serve to foster a sense of community among GNU developers
-and help in keeping up with project management.
+point can serve to foster a sense of community among GNU developers as
+well as help in keeping up with project management. Please don't mark
+Savannah projects for GNU packages as private; that defeats a large
+part of the purpose of using Savannah in the first place.
@cindex @code{savannah-announce@@gnu.org} mailing list
If you do use Savannah, please subscribe to the
@enumerate
@item
-Name of package(s) that you are the maintainer for, and your
-preferred email address.
+Name of package(s) that you are the maintainer for, your
+preferred email address, and your Savannah username.
@item
An ASCII armored copy of your GPG key, as an attachment. (@samp{gpg
@node Free Software and Open Source
@section Free Software and Open Source
-@cindex free software
+@cindex free software movement
@cindex open source
-@cindex movements, Free Software and Open Source
-
-The terms ``free software'' and ``open source'' are the slogans of two
-different movements which differ in their basic philosophy. The Free
-Software Movement is idealistic, and raises issues of freedom, ethics,
-principle and what makes for a good society. The Open Source Movement,
-founded in 1998, studiously avoids such questions. For more explanation,
-see @url{http://www.gnu.org/philosophy/open-source-misses-the-point.html}.
-
-The GNU Project is aligned with the Free Software Movement. This
+@cindex movement, free software
+@cindex development method, open source
+
+The terms ``free software'' and ``open source'', while describing
+almost the same category of software, stand for views based on
+fundamentally different values. The free software movement is
+idealistic, and raises issues of freedom, ethics, principle and what
+makes for a good society. The term open source, initiated in 1998, is
+associated with a philosophy which studiously avoids such questions.
+For a detailed explanation, see
+@url{http://www.gnu.org/philosophy/open-source-misses-the-point.html}.
+
+The GNU Project is aligned with the free software movement. This
doesn't mean that all GNU contributors and maintainers have to agree;
your views on these issues are up to you, and you're entitled to express
them when speaking for yourself.
-However, due to the much greater publicity that the Open Source
-Movement receives, the GNU Project needs to overcome a widespread
-mistaken impression that GNU is @emph{and always was} an activity of
-the Open Source Movement. For this reason, please use the term ``free
+However, due to the much greater publicity that the term ``open source''
+receives, the GNU Project needs to overcome a widespread
+mistaken impression that GNU is @emph{and always was} an ``open
+source'' activity. For this reason, please use the term ``free
software'', not ``open source'', in GNU software releases, GNU
documentation, and announcements and articles that you publish in your
role as the maintainer of a GNU package. A reference to the URL given
above, to explain the difference, is a useful thing to include as
well.
+
@node GNU and Linux
@section GNU and Linux
@cindex Linux
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5.
+MacOS X 10.5, Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5.
+MacOS X 10.5, Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, mingw, BeOS.
+FreeBSD 6.0, Minix 3.1.8, mingw, BeOS.
@item
This function was not correctly implemented in glibc versions before 2.2.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 9, mingw, BeOS.
+Minix 3.1.8, Solaris 9, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
+Minix 3.1.8, AIX 5.1, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
@item
This function returns WEOF for a NUL argument on some platforms:
Cygwin 1.7.2.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 9.
+Minix 3.1.8, HP-UX 11, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
-OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw., Interix 3.5
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib module @code{ceil-ieee}:
@itemize
@item
+This function returns a positive zero for an argument between -1 and 0
+on some platforms:
+AIX 7.1, OSF/1 5.1.
+@item
This function returns a positive zero for a minus zero argument
on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
@end itemize
Portability problems fixed by Gnulib module @code{ceilf-ieee}:
@itemize
@item
+This function returns a positive zero for an argument between -1 and 0
+on some platforms:
+MacOS X 10.5, AIX 7.1, OSF/1 5.1.
+@item
This function returns a positive zero for a minus zero argument
on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib module @code{ceill-ieee}:
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Cygwin 1.5.x, mingw.
+Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@item
The glibc implementation is or was broken.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@item
The glibc implementation is or was broken.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@item
The glibc implementation is or was broken.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 7.1, HP-UX 11, OSF/1 5.1, Solaris 10, mingw.
+Minix 3.1.8, AIX 7.1, HP-UX 11, OSF/1 5.1, Solaris 10, mingw.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@item
If the file name argument is not absolute, the file is searched for. The
search algorithm is system specific.
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@item
The visibility of symbols loaded in dependent shared libraries or present
in the main executable is system dependent.
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
This function does not support the @samp{a} and @samp{A} directives on some
platforms:
glibc-2.3.6.
+@item
+This function does not support precisions larger than 512 or 1024 in integer,
+floating-point and pointer output on some platforms:
+AIX 7.1.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, Cygwin, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9, mingw.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
However, the replacement does not always take into account ACLs. Also,
it is not safe to be used in libraries and is not multithread-safe.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
Linux with glibc < 2.11.
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and
is not multithread-safe. Also, the replacement may fail to change
symlinks if @code{lchown} is unsupported, or fail altogether if
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and
is not multithread-safe. Also, the replacement does not guarantee
that @samp{dirfd(fdopendir(n))==n} (dirfd might fail, or return a
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5,
OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
-6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
+IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
-6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
+IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5,
OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5,
OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
-6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
+IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/ffs.html}
-Gnulib module: ---
+Gnulib module: ffs
Portability problems fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+mingw.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-This function is missing on some platforms:
-mingw.
@end itemize
on input streams that are opened in @code{O_TEXT} mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
+@item
On platforms where @code{off_t} is a 64-bit type, but @code{fseeko} is
not present, stream operations on files larger than 2 GB silently do
the wrong thing. This affects BSD/OS, which is mostly obsolete.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
@end itemize
Portability problems fixed by Gnulib module @code{floorf-ieee}:
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
directory, on some platforms:
HP-UX 11.00, AIX 7.1, Solaris 9, Irix 5.3.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{fopen} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On Windows platforms (excluding Cygwin), this function does usually not
recognize the @file{/dev/null} filename.
@end itemize
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@item
Attempting to write to a read-only stream fails with @code{EOF} but
does not set the error flag for @code{ferror} on some platforms:
-glibc 2.13.
+glibc 2.13, cygwin 1.7.9.
@end itemize
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{freopen} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On Windows platforms (excluding Cygwin), this function does usually not
recognize the @file{/dev/null} filename.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
@item
This function is not declared on some platforms:
MacOS X 10.3.
upon failure.
@item
On platforms where @code{long} is a 32-bit type, @code{fseek} does not work
-correctly with files larger than 2 GB. The fix is to use @code{fseeko}
-instead and to invoke the @code{AC_SYS_LARGEFILE} macro.
+correctly with files larger than 2 GB, even when the @code{AC_SYS_LARGEFILE}
+macro is used. The fix is to use @code{fseeko} instead.
@end itemize
glibc 2.3.6, OSF/1 5.1.
@item
This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{fseeko} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{fseeko} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
On platforms where @code{off_t} is a 64-bit type, but @code{fseeko} is
not present, stream operations on files larger than 2 GB silently do
the wrong thing. This affects BSD/OS, which is mostly obsolete.
Portability problems not fixed by Gnulib:
@itemize
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{stat} may not correctly
+On platforms where @code{off_t} is a 32-bit type, @code{fstat} may not correctly
report the size of files or block devices larger than 2 GB. The fix is to
use the @code{AC_SYS_LARGEFILE} macro.
@item
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{fstatat} may
+not correctly report the size of files or block devices larger than 2
+GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some platforms, @code{fstatat(fd,"file/",buf,flag)} succeeds instead of
failing with @code{ENOTDIR}.
Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{fstatat} may
-not correctly report the size of files or block devices larger than 2
-GB. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
-@item
On Windows platforms (excluding Cygwin), @code{st_ino} is always 0.
@item
On some file systems, @code{st_size} contains bogus information for
@item
This function is missing on some platforms:
MacOS X 10.3, OpenBSD 3.8, mingw.
+@item
+On platforms where @code{f_blocks} in @samp{struct statvfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+glibc/Hurd, HP-UX 11, Solaris.
@end itemize
contains Unix line terminators (LF), on some platforms: mingw.
@item
On platforms where @code{long} is a 32-bit type, @code{ftell} does not work
-correctly with files larger than 2 GB. The fix is to use @code{ftello}
-instead and to invoke the @code{AC_SYS_LARGEFILE} macro.
+correctly with files larger than 2 GB, even when the @code{AC_SYS_LARGEFILE}
+macro is used. The fix is to use @code{ftello} instead.
@end itemize
Solaris 11 2010-11.
@item
This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{ftello} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{ftello} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
This function produces incorrect results immediately after @code{fseek} on some
platforms:
HP-UX 11.
Portability problems not fixed by Gnulib:
@itemize
+@item
+On platforms where @code{off_t} is a 32-bit type, this function is not
+applicable to arbitrary lengths for files larger than 2 GB. The fix is to
+use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw.
+Minix 3.1.8, Solaris 2.4, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, mingw, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
However, the replacement function may end up truncating timestamps to
less resolution than supported by the file system.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
On some other platforms, this call is not allowed.
@item
On some platforms, the prototype for @code{getcwd} uses @code{int}
-instead of @code{size_t} for the size argument:
+instead of @code{size_t} for the size argument when using non-standard
+headers, and the declaration is missing from @code{<unistd.h>}:
mingw.
@item
On some platforms, @code{getcwd (buf, 0)} fails with @code{ERANGE}
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
Gnulib provides a module @code{parse-datetime} that contains a function
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
@item
This function is missing a declaration on some platforms:
BeOS.
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, BeOS.
+Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
@item
This function is missing a declaration on some platforms:
AIX 7.1, BeOS.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, mingw.
+NetBSD 3.0, Minix 3.1.8, mingw.
@item
This function is not declared unless @code{_REENTRANT} is defined,
on some platforms:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
The function @code{getopt_long_only} is missing on some platforms:
MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 5.1, Solaris 9, mingw, Interix 3.5.
+@item
+This function crashes if the option string includes @code{W;} on some
+platforms:
+glibc 2.14.
@end itemize
Portability problems not fixed by Gnulib:
necessarily re-read @env{POSIXLY_CORRECT}. Solaris @code{getopt} does
not support either reset method, but does not maintain state that
needs the extra level of reset.
+@item
+On some platforms, this function does not set the stream error
+indicator on attempts to write to a read-only stream:
+glibc 2.13, Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@item
This function is missing on some platforms:
mingw, BeOS.
+@item
+On platforms where @code{rlim_t} is a 32-bit type, this function does not
+allow to retrieve limits larger than 4 GB, such as for RLIMIT_FSIZE. The
+fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw.
+Minix 3.1.8, Solaris 2.4, mingw.
@item
Many platforms don't fill in all the fields of @code{struct rusage} with
meaningful values.
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@item
This function may list symbolic links to nonexistent files among the results,
on some platforms.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, BeOS,
when GNU libiconv is not installed.
@item
This function was not correctly implemented in glibc versions before 2.2.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, BeOS,
when GNU libiconv is not installed.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, BeOS,
when GNU libiconv is not installed.
@item
For some encodings A and B, this function cannot convert directly from A to B,
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x,
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x,
mingw, Interix 3.5, BeOS.
@item
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3.
+Minix 3.1.8, IRIX 5.3.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
@item
This function is declared but not defined on some platforms:
IRIX 6.5.30.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function is declared in @code{<wchar.h>}, not in @code{<wctype.h>}, on
some platforms:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function returns 0 for all possible arguments on some platforms:
Linux libc5.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, mingw, BeOS.
+FreeBSD 6.0, Minix 3.1.8, mingw, BeOS.
@item
This function was not correctly implemented in glibc versions before 2.2.5.
@end itemize
This function is missing on some platforms; however, the replacement
fails on symlinks if @code{chown} is supported, and fails altogether
with @code{ENOSYS} otherwise:
-MacOS X 10.3, mingw, BeOS.
+MacOS X 10.3, Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
@item
This function has no prototype in @code{<math.h>} on some platforms:
MacOS X.
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
This function fails to reject trailing slashes on non-directories on
some platforms:
FreeBSD 7.2, Solaris 11 2010-11, Cygwin 1.5.x.
+@item
+When the second argument is a dangling symlink, some platforms follow
+that link and create the destination rather than failing:
+IRIX 6.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
This function fails to reject trailing slashes on non-directories on
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. The fix is to use the
+@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.23, OSF/1 5.1, Interix 3.5.
+Minix 3.1.8, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9,
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9,
Cygwin 1.5.x, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0,
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0,
Solaris 9, Cygwin 1.5.x, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.5.x, mingw, BeOS.
+Minix 3.1.8, Cygwin 1.5.x, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5,
Solaris 9, Interix 3.5.
@item
This function is only provided as a macro on some platforms:
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 9,
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 9,
Interix 3.5.
@item
This function is only provided as a macro on some platforms:
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
OSF/1 4.0, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{lseek} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function mistakenly succeeds on pipes on some platforms: mingw, BeOS.
@end itemize
In practice, regular files and block devices support seeking, and ttys, pipes,
and most character devices don't support it.
@item
-On platforms where @code{off_t} is a 32-bit type, @code{lseek} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
When the third argument is invalid, POSIX says that @code{lseek} should set
@code{errno} to @code{EINVAL} and return -1, but in this situation a
@code{SIGSYS} signal is raised on some platforms:
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{lstat} may not
+correctly report the size of files or block devices larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
+@item
For symlinks, when the argument ends in a slash, some platforms don't
dereference the argument:
Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{lstat} may not
-correctly report the size of files or block devices larger than 2 GB. The fix
-is to use the @code{AC_SYS_LARGEFILE} macro.
-@item
On Windows platforms (excluding Cygwin), @code{st_ino} is always 0.
@item
Because of the definition of @code{struct stat}, it is not possible to
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix 3.5.
@item
This function always returns 1, even in multibyte locales, on some platforms:
mingw.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2,
+HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
This function does not work on some platforms:
HP-UX 11, Solaris 11 2010-11.
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
limit that it can create no more than 26 files from a given template. On
OSF/1 4.0f, it can create only 32 files per process.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkstemp} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some older platforms, @code{mkstemp} can create a world or group
writable or readable file, if you haven't set the process umask to
077. This is a security risk.
@itemize
@item
This function is missing on some platforms:
-OSF/1 4.0, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, OSF/1 4.0, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
This function is missing on some platforms:
mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
+@item
To get anonymous memory, on some platforms, you can use the flags
@code{MAP_ANONYMOUS | MAP_PRIVATE} and @code{-1} instead of a file descriptor;
on others you have to use a read-only file descriptor of @file{/dev/zero}.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, HP-UX 11.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
This function does not set @code{errno} on some platforms:
mingw.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
-2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3,
+Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
On NetBSD, @code{msync} takes only two arguments.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OSF/1 4.0, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, OSF/1 4.0, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, AIX 5.1, IRIX 6.5, Solaris 9.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, mingw, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
The constant @code{CODESET} is not supported on some platforms:
glibc 2.0.6, OpenBSD 3.8.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
Portability problems fixed by the Gnulib module open:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
On Windows, this function returns a file handle in @code{O_TEXT} mode by
default; this means that it translates '\n' to CR/LF by default. Use the
@code{O_BINARY} flag if you need reliable binary I/O.
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
Portability problems not fixed by Gnulib:
@itemize
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. Also, on platforms
+where @code{ino_t} is a 32-bit type, this function may report inode numbers
+incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
This function does not support the error values that are specified by POSIX
but not defined by the system, on some platforms:
OpenBSD 4.0, OSF/1 5.1, Cygwin 1.5.x, mingw.
+@item
+This function treats @code{errno} of 0 like failure, although POSIX
+requires that the message declare it as a success, on some platforms:
+FreeBSD 8.2, OpenBSD 4.7, MacOS X 10.5.
+@item
+This function clobbers the @code{strerror} buffer on some platforms:
+Cygwin 1.7.9.
+@item
+This function fails to print a useful a string for out-of-range integers on
+some platforms:
+HP-UX 11, IRIX 6.5, Solaris 8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+POSIX requires that this function set the stream error bit (detected
+by @code{ferror}) on write failure, but not all platforms do this:
+glibc 2.13, cygwin 1.7.9.
+@item
+POSIX requires that this function not alter stream orientation, but
+the gnulib replacement locks in byte orientation and fails on wide
+character streams.
@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
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@item
When this function fails, it causes the stdio buffer contents to be output
twice on some platforms:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@item
When this function fails, it causes the stdio buffer contents to be output
twice on some platforms:
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
This function is missing on some platforms:
HP-UX 10, mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function returns zero instead of positive values when large file support
is enabled on some platforms:
HP-UX 11.11.
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@item
Attempting to write to a read-only stream fails with @code{EOF} but
does not set the error flag for @code{ferror} on some platforms:
-glibc 2.13.
+glibc 2.13, cygwin 1.7.9.
@end itemize
Portability problems fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, Interix 3.5, BeOS.
+When the @var{sigmask} argument is nonnull on platforms that do not
+natively support this function, race conditions are possible when its
+gnulib implementation temporarily modifies the signal mask, and the
+behavior is unspecified in a multi-threaded process.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.9, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1,
+HP-UX 11, OSF/1 5.1, Cygwin 1.7.9, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, HP-UX 11, Cygwin 1.7.9, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, Solaris 2.4, mingw, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@item
On Linux/glibc platforms before the advent of NPTL, signals could only be
sent to one particular thread. In POSIX, signals are sent to the entire
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html}
-Gnulib module: ---
+Gnulib module: pthread_sigmask
Portability problems fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
+@item
+This function is declared in @code{<pthread.h>} instead of @code{<signal.h>}
+on some platforms:
+MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6.
+@item
+This function does nothing and always returns 0 in programs that are not
+linked with @code{-lpthread} on some platforms:
+FreeBSD 6.4, HP-UX 11.31, Solaris 9.
+@item
+When it fails, this functions returns -1 instead of the error number on
+some platforms:
+Cygwin 1.7.5.
+@item
+This function does not immediately raise signals that were pending before
+the call and unblocked by the call on some platforms:
+IRIX 6.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+On platforms that do not natively support this function,
+it has unspecified behavior in a multi-threaded process.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
This function is missing on some platforms:
HP-UX 10, mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when an invalid (negative) offset is passed when
large file support is enabled on some platforms:
HP-UX 11.11.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function may fail with error @code{EINTR}, even in programs that don't
+install any signal handlers, on some platforms:
+MacOS X 10.5.
@end itemize
+
+For handling @code{EINTR}, Gnulib provides a module @samp{safe-read} with a
+function @code{safe_read}.
Portability problems not fixed by Gnulib:
@itemize
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. Also, on platforms
+where @code{ino_t} is a 32-bit type, this function may report inode numbers
+incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. Also, on platforms
+where @code{ino_t} is a 32-bit type, this function may report inode numbers
+incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
Solaris 11 2010-11.
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+On platforms where @code{long int} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. The fix is to use
+the @code{AC_SYS_LARGEFILE} macro (only on MacOS X systems).
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
+Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5,
Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@item
This function is not declared on some platforms:
glibc 2.8, OSF/1 5.1.
Portability problems fixed by Gnulib module @code{round-ieee}:
@itemize
@item
+This function returns a positive zero for an argument between -0.5 and 0
+on some platforms:
+AIX 7.1, OSF/1 5.1.
+@item
This function returns a positive zero for a minus zero argument
on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
@item
This function is not declared on some platforms:
glibc 2.8, OSF/1 5.1.
Portability problems fixed by Gnulib module @code{roundf-ieee}:
@itemize
@item
+This function returns a positive zero for an argument between -0.5 and 0
+on some platforms:
+AIX 7.1, OSF/1 5.1.
+@item
This function returns a positive zero for a minus zero argument
on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
glibc 2.8, OSF/1 5.1.
Portability problems fixed by Gnulib module @code{roundl-ieee}:
@itemize
@item
+This function returns a positive zero for an argument between -0.5 and 0
+on some platforms:
+AIX 7.1.
+@item
This function returns a positive zero for a minus zero argument
on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 9, mingw, BeOS.
+Minix 3.1.8, Solaris 9, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. Also, on platforms
+where @code{ino_t} is a 32-bit type, this function may report inode numbers
+incorrectly. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, IRIX 5.3, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@item
This function is missing on some platforms:
BeOS.
+@item
+On platforms where @code{long int} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. The fix is to use
+the @code{AC_SYS_LARGEFILE} macro (only on MacOS X systems).
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, Cygwin, mingw, BeOS.
+NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5.
+Minix 3.1.8, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-Solaris 2.4, mingw, BeOS.
+Minix 3.1.8, Solaris 2.4, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
+@item
+On platforms where @code{rlim_t} is a 32-bit type, this function does not
+allow to set limits larger than 4 GB, such as for RLIMIT_FSIZE. The fix is
+to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
mingw.
@item
+Support for SA_RESETHAND is missing on some platforms:
+NonStop.
+
+@item
Support for SA_RESTART is missing on some platforms:
-mingw.
+mingw, NonStop.
@item
In spite of having SA_SIGACTION, struct sigaction lacks the
@itemize
@item
This function is missing on some platforms:
-Cygwin, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@item
@code{sigaltstack} doesn't work on HP-UX 11/IA-64 and OpenBSD
3.6/Sparc64.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Cygwin 1.5.x, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, mingw, Interix 3.5, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, Interix 3.5, BeOS.
@end itemize
Note: POSIX recommends using @code{sigaction} with SA_RESTART instead of
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@item
This is only provided as a macro on some platforms:
@itemize
@item
This variable is missing on some platforms:
-MacOS X 10.5, AIX 5.1, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Cygwin 1.5.x, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
@item
Linux implements the meaning of NULL timeout by doing what @code{sigwaitinfo}
does; other platforms may not do the same.
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
On Linux/glibc platforms before the advent of NPTL, signals could only be
sent to one particular thread. In POSIX, signals are sent to the entire
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
This function is missing on some platforms:
IRIX 5.3, OSF/1 4.0, Solaris 2.5.1.
@item
-This function does not return a byte count as specified in C99 on some platforms:
+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, mingw, BeOS.
+@item
+This function does not return a byte count as specified in C99 on some
+platforms:
HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
@item
This function overwrites memory even when a size argument of 1 is passed on some
platforms:
-Linux libc5.
+Linux libc5, BeOS.
@end itemize
Portability problems fixed by Gnulib module @code{snprintf-posix}:
on some platforms:
Solaris 11 2010-11.
@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, mingw, BeOS.
-@item
This function doesn't support the @code{'} flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw.
@item
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
This function does not fully support the @samp{n} directive on some platforms:
HP-UX 11, mingw.
@item
-This function overwrites memory when a size = 1 argument is passed on some
-platforms:
-BeOS.
-@item
This function overwrites memory even when a zero size argument is passed on some
platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{stat} may not correctly
+report the size of files or block devices larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some platforms, @code{stat("link-to-file/",buf)} succeeds instead
of failing with @code{ENOTDIR}.
FreeBSD 7.2, AIX 7.1, Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{stat} may not correctly
-report the size of files or block devices larger than 2 GB. The fix is to
-use the @code{AC_SYS_LARGEFILE} macro.
-@item
Cygwin's @code{stat} function sometimes sets @code{errno} to @code{EACCES} when
@code{ENOENT} would be more appropriate.
@item
@item
This function is missing on some platforms:
MacOS X 10.3, OpenBSD 3.8, mingw.
+@item
+On platforms where @code{f_blocks} in @samp{struct statvfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+glibc/Hurd, HP-UX 11, Solaris.
@end itemize
+
+Gnulib provides a module @code{fsusage} that provides similar information
+as @code{statvfs}.
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2,
+HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
This function has an incompatible return value on some platforms:
AIX 5.1.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
but not defined by the system, on some platforms:
OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x, mingw.
@item
+This function reports failure for @code{strerror(0)} (by setting
+@code{errno} or using a string similar to out-of-range values),
+although POSIX requires this to leave @code{errno} unchanged and
+report success, on some platforms:
+FreeBSD 8.2, OpenBSD 4.7, MacOS X 10.5.
+@item
This function fails to return a string for out-of-range integers on
some platforms:
HP-UX 11, IRIX 6.5, Solaris 8.
-(This is not a POSIX violation, but can still cause bugs because most programs
-call @code{strerror} without setting and testing @code{errno}.)
+(Some return NULL which is a POSIX violation, others return the empty
+string which is valid but not as useful); this can still cause bugs
+because most programs call @code{strerror} without setting and testing
+@code{errno}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw.
+NetBSD 3.0, Minix 3.1.8, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw.
@item
glibc and Cygwin have an incompatible version of this function. The
POSIX compliant code
char *s = strerror_r (err, buf, buflen);
@end smallexample
@item
+This function clobbers the @code{strerror} buffer on some platforms:
+Cygwin 1.7.9.
+@item
This function is sometimes not declared in @code{<string.h>} on some platforms:
glibc 2.8, OSF/1 5.1.
@item
returning the error number, on some platforms:
glibc 2.12 with @code{-D_POSIX_C_SOURCE=200112L}, AIX 6.1, OSF/1 5.1.
@item
+When this function fails, it corrupts @code{errno}, on some platforms:
+Solaris 10.
+@item
This function does not support the error values that are specified by POSIX
but not defined by the system, on some platforms:
OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x.
@item
+This function reports failure for @code{strerror_r(0, buf, len)},
+although POSIX requires this to succeed, on some platforms:
+FreeBSD 8.2.
+@item
+This function produces a different string for @code{0} than
+@code{strerror} on some platforms:
+MacOS X 10.5.
+@item
This function always fails when the third argument is less than 80 on some
platforms:
HP-UX 11.31.
@item
-When the buffer is too small, this function does not fail, but instead
-truncates the result and returns 0 on some platforms:
-OSF/1 5.1.
+When the buffer is too small and the value is in range, this function
+does not fail, but instead truncates the result and returns 0 on some
+platforms:
+AIX 6.1, OSF/1 5.1.
+@item
+When the value is not in range or the buffer is too small, this
+function fails to leave a NUL-terminated string in the buffer on some
+platforms:
+glibc 2.13, FreeBSD 8.2, Solaris 10.
+@item
+When the value is out of range but the buffer is too small, this
+function does not always return the longest possible string on some
+platforms:
+OpenBSD 4.7.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-When the buffer is too small, this function does not fail, but instead
-truncates the result and returns 0 on some platforms:
-AIX 6.1.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Cygwin 1.7.1, mingw, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.7.1, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
@item
This function does not NUL-terminate the result on some platforms:
AIX 5.1.
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
@item
This function does not return a string for out-of-range numbers on
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5.
+OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5.
+OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
Some platforms declare this function in @code{stdio.h} instead of
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 5.1, Solaris 9.
+Minix 3.1.8, AIX 5.1, Solaris 9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
MacOS X 10.3.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 4.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 4.5, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@item
This function is not declared on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-mingw.
+Minix 3.1.8, mingw.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
@code{tdelete} returns @code{NULL} when removing the last element of a tree
on some platforms:
@item
This function is missing on some platforms:
BeOS.
+@item
+On platforms where @code{long int} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. The fix is to use
+the @code{AC_SYS_LARGEFILE} macro (only on MacOS X systems).
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
+This function is missing on some platforms:
+Minix 3.1.8.
+@item
This function is not appropriate for creating temporary files. (It has
security risks.) Better use @code{mkstemp} instead.
@end itemize
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/timer_create.html}
-Gnulib module: ---
+Gnulib module: timer-time
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS, Tandem/NSK.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/timer_delete.html}
-Gnulib module: ---
+Gnulib module: timer-time
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS, Tandem/NSK.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/timer_gettime.html}
-Gnulib module: ---
+Gnulib module: timer-time
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, mingw, Interix 3.5, BeOS, Tandem/NSK.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/timer_settime.html}
-Gnulib module: ---
+Gnulib module: timer-time
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS, Tandem/NSK.
@end itemize
@item
This function often fails for trivial reasons on some platforms:
mingw.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{tmpfile} 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
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@item
This function is missing on some platforms:
mingw.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function is not
+applicable to arbitrary lengths for files larger than 2 GB. The fix is to
+use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Interix 3.5.
@item
This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms:
glibc 2.8.
@itemize
@item
This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms:
glibc 2.8.
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, mingw, BeOS.
+NetBSD 3.0, Minix 3.1.8, mingw, BeOS.
@item
This function is not declared unless @code{_REENTRANT} is defined,
on some platforms:
@itemize
@item
This function is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, Cygwin, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
Some systems mistakenly succeed on @code{unlinkat(fd,"file/",flag)}:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
Interix 3.5, BeOS.
However, the replacement function may end up truncating timestamps to
less resolution than supported by the file system. Furthermore, the
@itemize
@item
This function is missing on some platforms:
-mingw, Interix 3.5, BeOS.
+Minix 3.1.8, mingw, Interix 3.5, BeOS.
@item
The declaration of this function lacks @code{const} in the second argument
on some platforms:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
@end itemize
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-BeOS.
+AIX 7.1, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@item
Attempting to write to a read-only stream fails with @code{EOF} but
does not set the error flag for @code{ferror} on some platforms:
-glibc 2.13.
+glibc 2.13, cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 8, Interix 3.5.
+Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 8, Interix 3.5.
@item
On Windows platforms (excluding Cygwin), this function does not set @code{errno}
upon failure.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@item
Attempting to write to a read-only stream fails with @code{EOF} but
does not set the error flag for @code{ferror} on some platforms:
-glibc 2.13.
+glibc 2.13, cygwin 1.7.9.
@end itemize
This function is missing on some platforms:
IRIX 5.3, OSF/1 4.0, Solaris 2.5.1.
@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, mingw, BeOS.
+@item
This function overwrites memory even when a size argument of 1 is passed on some
platforms:
-Linux libc5.
+Linux libc5, BeOS.
@item
-This function does not return a byte count as specified in C99 on some platforms:
+This function does not return a byte count as specified in C99 on some
+platforms:
HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
@end itemize
on some platforms:
Solaris 11 2010-11.
@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, mingw, BeOS.
-@item
This function doesn't support the @code{'} flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw.
@item
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
This function does not fully support the @samp{n} directive on some platforms:
HP-UX 11, mingw.
@item
-This function overwrites memory when a size = 1 argument is passed on some
-platforms:
-BeOS.
-@item
This function overwrites memory even when a zero size argument is passed on some
platforms:
HP-UX 11, OSF/1 5.1.
@item
This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
-Solaris 10/x86, mingw, BeOS.
+AIX 7.1, Solaris 10/x86, mingw, BeOS.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x,
Interix 3.5, BeOS, Cygwin 1.7.
@item
This function exists, but does not support wide arguments on some
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@item
As of 2005, no system is known on which @code{waitid} with flag @code{WNOWAIT}
works correctly.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms:
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@item
This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
This function returns 0 when the first argument is NULL in some locales on some platforms:
AIX 4.3, OSF/1 5.1, Solaris 11 2010-11.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
+OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on all non-glibc platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2,
+HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
This function may set the source pointer to NULL before NUL terminating the destination string on some platforms:
OSF/1 5.1.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
+OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
1.5.x, Interix 3.5.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
+Minix 3.1.8, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
+Minix 3.1.8, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
-1.5.x, Interix 3.5.
+OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9,
+Cygwin 1.5.x, Interix 3.5.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-OpenBSD 3.8, IRIX 5.3, Solaris 2.5.1, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, BeOS.
@item
This function handles combining characters in UTF-8 locales incorrectly on some
platforms:
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
@item
This function clobbers caller-owned registers on some platforms:
Cygwin 1.7.5.
@itemize
@item
This function is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, Interix 3.5.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, Interix 3.5.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
@item
This function is declared in @code{<wchar.h>}, not in @code{<wctype.h>}, on
some platforms:
@itemize
@item
This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@itemize
@item
This function is missing on some platforms:
-IRIX 5.3, Solaris 2.5.1, mingw, BeOS.
+Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, BeOS.
@item
This function is not declared (without @code{-D_GNU_SOURCE}) on some platforms:
glibc 2.8.
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
@itemize
@item
This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix
3.5, BeOS.
@item
This function exists, but does not support wide arguments on some
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@item
+On some platforms, this function does not set @code{errno} or the
+stream error indicator on attempts to write to a read-only stream:
+Cygwin 1.7.9.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function may fail with error @code{EINTR}, even in programs that don't
+install any signal handlers, on some platforms:
+MacOS X 10.5.
@end itemize
+
+For handling @code{EINTR}, Gnulib provides a module @samp{safe-write} with a
+function @code{safe_write}.
@itemize
@item
This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+This function is missing on some platforms:
+Minix 3.1.8.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, Cygwin, mingw, BeOS.
+MacOS X 10.3, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
The macro @code{EDQUOT} is not defined on some platforms:
NonStop Kernel, mingw.
@item
+The macros @code{ENETRESET}, @code{ECONNABORTED} are not defined on some
+platforms:
+Minix 3.1.8, mingw.
+@item
The macros @code{EWOULDBLOCK}, @code{ETXTBSY}, @code{ELOOP}, @code{ENOTSOCK},
@code{EDESTADDRREQ}, @code{EMSGSIZE}, @code{EPROTOTYPE}, @code{ENOPROTOOPT},
@code{EPROTONOSUPPORT}, @code{EOPNOTSUPP}, @code{EAFNOSUPPORT},
@code{EADDRINUSE}, @code{EADDRNOTAVAIL}, @code{ENETDOWN}, @code{ENETUNREACH},
-@code{ENETRESET}, @code{ECONNABORTED}, @code{ECONNRESET}, @code{ENOBUFS},
-@code{EISCONN}, @code{ENOTCONN}, @code{ETIMEDOUT}, @code{ECONNREFUSED},
-@code{EHOSTUNREACH}, @code{EALREADY}, @code{EINPROGRESS} are not defined on
-some platforms:
+@code{ECONNRESET}, @code{ENOBUFS}, @code{EISCONN}, @code{ENOTCONN},
+@code{ETIMEDOUT}, @code{ECONNREFUSED}, @code{EHOSTUNREACH}, @code{EALREADY},
+@code{EINPROGRESS} are not defined on some platforms:
mingw.
@end itemize
On OpenBSD 4.0, MirBSD 10, and BeOS, they are the same as the values of the
@code{DBL_*} macros, although @samp{long double} is a larger type than
@samp{double}.
+On FreeBSD/x86 6.4, they represent the incorrect 53-bit precision assumptions
+in the compiler, not the real 64-bit precision at runtime.
+On AIX 7.1 with GCC 4.2 and on IRIX 6.5, they don't reflect the
+``double double'' representation of @code{long double} correctly.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, mingw, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS,
+FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS,
when GNU libiconv is not installed.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, BeOS.
+Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
The constant @code{CODESET} is not defined on some platforms:
glibc 2.0.6, OpenBSD 3.8.
Portability problems not fixed by Gnulib:
@itemize
@end itemize
+
+For @code{PATH_MAX}, Gnulib provides a module @code{pathmax} with a header
+file @code{"pathmax.h"}. It defines @code{PATH_MAX} to a constant on
+platforms with a file name length limit.
@itemize
@item
This header file is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
+NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, Interix 3.5,
BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@item
@code{struct sched_param} is not defined on some platforms:
Haiku.
@itemize
@item
This header file is missing on some platforms:
-BeOS.
+Minix 3.1.8, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-mingw, BeOS.
+Minix 3.1.8, mingw, BeOS.
@end itemize
The macro @code{SA_NODEFER} is not defined on some platforms:
Interix 3.5.
@item
+The macros @code{SA_RESETHAND} and @code{SA_RESTART} are not defined
+on some platforms:
+NonStop.
+@item
The type @code{sighandler_t} (a GNU extension) is not defined on most non-glibc
platforms:
MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/basedefs/strings.h.html}
-Gnulib module: ---
+Gnulib module: strings
Portability problems fixed by Gnulib:
@itemize
+@item
+This header file is not self-contained on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, mingw, BeOS.
+MacOS X 10.3, Minix 3.1.8, mingw, BeOS.
@end itemize
@item
This header file is missing on some platforms:
mingw.
+@item
+This header file is not self-contained on some platforms:
+Minix 3.1.8.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-OpenBSD 3.8, Cygwin, mingw, BeOS.
+OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, BeOS.
@end itemize
@itemize
@item
This header file is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
@end itemize
@setfilename standards.info
@settitle GNU Coding Standards
@c This date is automagically updated when you save this file:
-@set lastupdate May 5, 2011
+@set lastupdate August 1, 2011
@c %**end of header
@dircategory GNU organization
that can't handle those characters.
Whenever possible, try to make programs work properly with
sequences of bytes that represent multibyte characters, using encodings
-such as UTF-8 and others. You can use libiconv to deal with a wide
-range of encodings.
+such as UTF-8 and others.
@cindex error messages
Check every system call for an error return, unless you know you wish
@file{COPYING}. If the GNU LGPL is used, it should be in a file called
@file{COPYING.LESSER}.
-Naturally, all the source files must be in the distribution. It is okay
-to include non-source files in the distribution, provided they are
-up-to-date and machine-independent, so that building the distribution
-normally will never modify them. We commonly include non-source files
-produced by Bison, @code{lex}, @TeX{}, and @code{makeinfo}; this helps avoid
+Naturally, all the source files must be in the distribution. It is
+okay to include non-source files in the distribution along with the
+source files they are generated from, provided they are up-to-date
+with the source they are made from, and machine-independent, so that
+normal building of the distribution will never modify them. We
+commonly include non-source files produced by Autoconf, Automake,
+Bison, @code{lex}, @TeX{}, and @code{makeinfo}; this helps avoid
unnecessary dependencies between our distributions, so that users can
install whichever packages they want to install.
--- /dev/null
+@node stat-size
+@section stat-size
+
+The @code{stat-size} module provides a small number of macros
+intended for interpreting the file size information in an instance of
+@code{struct stat}.
+
+@c We deliberately don't document DEV_BSIZE (it looks to James
+@c Youngman as if the ST_NBLOCKSIZE macro should be used instead).
+
+@findex ST_NBLOCKS
+@findex ST_NBLOCKSIZE
+@cindex block size
+On POSIX systems, the @code{st_blocks} member of @code{struct stat}
+contains the number of disk blocks occupied by a file. The
+@code{ST_NBLOCKS} macro is used to estimate this quantity on systems
+which don't actually have @code{st_blocks}. Each of these blocks
+contains @code{ST_NBLOCKSIZE} bytes.
+
+@findex ST_BLKSIZE
+The value of @code{ST_NBLOCKSIZE} is often quite small, small enough
+that performing I/O in chunks that size would be inefficient.
+@code{ST_BLKSIZE} is the I/O block size recommended for I/O to this
+file. This is not guaranteed to give optimum performance, but it
+should be reasonably efficient.
@cindex assertion
@findex verify
-@findex verify_true
+@findex verify_expr
The @samp{verify} module supports compile-time tests, as opposed to
the standard @code{assert} macro which supports only runtime tests.
they require no runtime overhead.
This module provides a header file @file{verify.h} that defines two
-macros: @code{verify (@var{EXPRESSION})} and @code{verify_true
-(@var{EXPRESSION})}. Both accept an integer constant expression
-argument and verify that it is nonzero. If not, a compile-time error
+macros: @code{verify (@var{V})} and @code{verify_expr
+(@var{V}, @var{EXPR})}. Both accept an integer constant expression
+argument @var{V} and verify that it is nonzero. If not, a compile-time error
results.
-@code{verify (@var{EXPRESSION});} is a declaration; it can occur
-outside of functions. In contrast, @code{verify_true
-(@var{EXPRESSION})} is an integer constant expression that always
-evaluates to 1; it can be used in macros that expand to
-expressions.
-
-@var{EXPRESSION} should be an integer constant expression in the sense
+@code{verify (@var{V});} is a declaration; it can occur outside of
+functions. In contrast, @code{verify_expr (@var{V}, @var{EXPR})} is
+an expression that returns the value of @var{EXPR}; it can be used in
+macros that expand to expressions. If @var{EXPR} is an integer
+constant expression, then @code{verify_expr (@var{V}, @var{EXPR})} is
+also an integer constant expression. Although @var{EXPR} and
+@code{verify_expr (@var{V}, @var{EXPR})}@ are guaranteed to have the
+same side effects and value and type (after integer promotion), they
+need not have the same type if @var{EXPR}'s type is an integer that is
+narrower than @code{int} or @code{unsigned int}.
+
+@var{V} should be an integer constant expression in the sense
of the C standard. Its leaf operands should be integer, enumeration,
or character constants; or @code{sizeof} expressions that return
constants; or floating constants that are the immediate operands of
-casts. Outside a @code{sizeof} subexpression, @var{EXPRESSION} should
+casts. Outside a @code{sizeof} subexpression, @var{V} should
not contain any assignments, function calls, comma operators, casts to
non-integer types, or subexpressions whose values are outside the
-representable ranges for their types. If @var{EXPRESSION} is not an
+representable ranges for their types. If @var{V} is not an
integer constant expression, then a compiler might reject a usage like
-@samp{verify (@var{EXPRESSION});} even when @var{EXPRESSION} is
+@samp{verify (@var{V});} even when @var{V} is
nonzero.
Although the standard @code{assert} macro is a runtime test, draft C1X
-specifies a builtin @code{_Static_assert (@var{EXPRESSION},
+specifies a builtin @code{_Static_assert (@var{V},
@var{STRING-LITERAL})}, its @file{assert.h} header has a similar macro
named @code{static_assert}, and draft C++0X has a similar
@code{static_assert} builtin. These draft builtins and macros differ
ordinary member declaration. Second, they require the programmer to
specify a compile-time diagnostic as a string literal.
-Here are some example uses of @code{verify} and @code{verify_true}.
+Here are some example uses of @code{verify} and @code{verify_expr}.
@example
#include <verify.h>
verify (~ (time_t) -1 == 0);
/* Return the maximum value of the integer type T,
- verifying that T is an unsigned integer type. */
-#define MAX_UNSIGNED_VAL_WITH_COMMA(t) \
- (verify_true (0 < (T) -1), (T) -1)
-
-/* Same as MAX_UNSIGNED_VAL_WITH_COMMA,
- but expand to an integer constant expression,
- which cannot contain a comma operator.
- The cast to (T) is outside the conditional expression
+ verifying that T is an unsigned integer type.
+ The cast to (T) is outside the call to verify_expr
so that the result is of type T
even when T is narrower than unsigned int. */
-#define MAX_UNSIGNED_VAL(t) ((T) \
- ((T) (verify_true (0 < (T) -1) ? -1 : 0))
+#define MAX_UNSIGNED_VAL(t) \
+ ((T) verify_expr (0 < (T) -1, -1))
@end example
have code that provides equivalent functionality.
This option can be repeated.
--conditional-dependencies
- Support conditional dependencies (experimental,
- may save configure time and object code, not
- compatible with --with-tests).
+ Support conditional dependencies (may save configure
+ time and object code).
+ --no-conditional-dependencies
+ Don't use conditional dependencies.
--libtool Use libtool rules.
--no-libtool Don't use libtool rules.
'gl_INIT'. Default is 'gl'.
--po-domain=NAME Specify the prefix of the i18n domain. Usually use
the package name. A suffix '-gnulib' is appended.
+ --witness-c-macro=NAME Specify the C macro that is defined when the
+ sources in this directory are compiled or used.
--vc-files Update version control related files.
--no-vc-files Don't update version control related files
(.gitignore and/or .cvsignore).
Exclude unit tests that require root privileges.
--without-unportable-tests
Exclude unit tests that fail on some platforms.
+ --single-configure Generate a single configure file, not a separate
+ configure file for the tests directory.
Options for --import, --add/remove-import, --update,
--create-[mega]testdir, --[mega]test:
# otherwise
# - excl_unportable_tests true if --without-unportable-tests was given, blank
# otherwise
+# - single_configure true if --single-configure was given, false otherwise
# - avoidlist list of modules to avoid, from --avoid
-# - cond_dependencies true if --conditional-dependencies was given, blank
-# otherwise
+# - cond_dependencies true if --conditional-dependencies was given, false if
+# --no-conditional-dependencies was given, blank otherwise
# - lgpl yes or a number if --lgpl was given, blank otherwise
# - makefile_name from --makefile-name
# - libtool true if --libtool was given, false if --no-libtool was
# given, blank otherwise
# - macro_prefix from --macro-prefix
# - po_domain from --po-domain
+# - witness_c_macro from --witness-c-macro
# - vc_files true if --vc-files was given, false if --no-vc-files was
# given, blank otherwise
# - autoconf_minversion minimum supported autoconf version
excl_longrunning_tests=
excl_privileged_tests=
excl_unportable_tests=
+ single_configure=false
avoidlist=
cond_dependencies=
lgpl=
libtool=
macro_prefix=
po_domain=
+ witness_c_macro=
vc_files=
do_changelog=:
doit=:
--without-unportable-tests | --without-unportable-test | --without-unportable-tes | --without-unportable-te | --without-unportable-t | --without-unportable- | --without-unportable | --without-unportabl | --without-unportab | --without-unporta | --without-unport | --without-unpor | --without-unpo | --without-unp | --without-un | --without-u)
excl_unportable_tests=true
shift ;;
+ --single-configure | --single-configur | --single-configu | --single-config | --single-confi | --single-conf | --single-con | --single-con | --single-co | --single-c | --single- | --single | --singl | --sing | --sin | --si)
+ single_configure=true
+ shift ;;
--avoid )
shift
if test $# = 0; then
--conditional-dependencies | --conditional-dependencie | --conditional-dependenci | --conditional-dependenc | --conditional-dependen | --conditional-depende | --conditional-depend | --conditional-depen | --conditional-depe | --conditional-dep | --conditional-de | --conditional-d | --conditional- | --conditional | --conditiona | --condition | --conditio | --conditi | --condit | --condi | --cond | --con)
cond_dependencies=true
shift ;;
+ --no-conditional-dependencies | --no-conditional-dependencie | --no-conditional-dependenci | --no-conditional-dependenc | --no-conditional-dependen | --no-conditional-depende | --no-conditional-depend | --no-conditional-depen | --no-conditional-depe | --no-conditional-dep | --no-conditional-de | --no-conditional-d | --no-conditional- | --no-conditional | --no-conditiona | --no-condition | --no-conditio | --no-conditi | --no-condit | --no-condi | --no-cond | --no-con | --no-co)
+ cond_dependencies=false
+ shift ;;
--lgpl )
lgpl=yes
shift ;;
--po-domain=* )
po_domain=`echo "X$1" | sed -e 's/^X--po-domain=//'`
shift ;;
+ --witness-c-macro )
+ shift
+ if test $# = 0; then
+ func_fatal_error "missing argument for --witness-c-macro"
+ fi
+ witness_c_macro="$1"
+ shift ;;
+ --witness-c-macro=* )
+ witness_c_macro=`echo "X$1" | sed -e 's/^X--witness-c-macro=//'`
+ shift ;;
--vc-files )
vc_files=true
shift ;;
if case "$mode" in import | add-import | remove-import) true;; *) false;; esac; then
if test -n "$excl_cxx_tests" || test -n "$excl_longrunning_tests" \
- || test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests"; then
+ || test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests" \
+ || test "$single_configure" != false; then
echo "gnulib-tool: invalid options for '$mode' mode" 1>&2
echo "Try 'gnulib-tool --help' for more information." 1>&2
func_exit 1
|| test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests" \
|| test -n "$avoidlist" || test -n "$lgpl" || test -n "$makefile_name" \
|| test -n "$macro_prefix" || test -n "$po_domain" \
- || test -n "$vc_files"; then
+ || test -n "$witness_c_macro" || test -n "$vc_files"; then
echo "gnulib-tool: invalid options for 'update' mode" 1>&2
echo "Try 'gnulib-tool --help' for more information." 1>&2
echo "If you really want to modify the gnulib configuration of your project," 1>&2
if test -z "$pobase" && test -n "$po_domain"; then
func_warning "--po-domain has no effect without a --po-base option"
fi
- if test -n "$cond_dependencies" && test -n "$inctests"; then
+ if test "$cond_dependencies" = true && test -n "$inctests"; then
echo "gnulib-tool: option --conditional-dependencies is not supported with --with-tests" 1>&2
func_exit 1
fi
;;
esac
# Then the explicit dependencies listed in the module description.
- if ! $modcache; then
- func_lookup_file "modules/$1"
- sed -n -e "/^Depends-on$sed_extract_prog" < "$lookedup_file"
- else
- func_cache_lookup_module "$1"
- # Output the field's value, including the final newline (if any).
- if $have_associative; then
- if eval 'test -n "${modcache_dependson[$1]+set}"'; then
- eval 'echo "${modcache_dependson[$1]}"'
- fi
+ { if ! $modcache; then
+ func_lookup_file "modules/$1"
+ sed -n -e "/^Depends-on$sed_extract_prog" < "$lookedup_file"
else
- eval "field_set=\"\$${cachevar}_dependson_set\""
- if test -n "$field_set"; then
- eval "field_value=\"\$${cachevar}_dependson\""
- echo "${field_value}"
+ func_cache_lookup_module "$1"
+ # Output the field's value, including the final newline (if any).
+ if $have_associative; then
+ if eval 'test -n "${modcache_dependson[$1]+set}"'; then
+ eval 'echo "${modcache_dependson[$1]}"'
+ fi
+ else
+ eval "field_set=\"\$${cachevar}_dependson_set\""
+ if test -n "$field_set"; then
+ eval "field_value=\"\$${cachevar}_dependson\""
+ echo "${field_value}"
+ fi
fi
fi
- fi
+ } \
+ | sed -e '/^#/d'
}
# func_get_autoconf_early_snippet module
inmodules="$modules"
outmodules=
fmtc_inc_all_tests="$inc_all_direct_tests"
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
for module in $inmodules; do
func_verify_module
if test -n "$module"; then
if test -n "$module"; then
if func_acceptable $module; then
func_append outmodules " $module"
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
if func_get_automake_snippet_conditional $module | grep '^if ' > /dev/null; then
# A module whose Makefile.am snippet contains a reference to an
# automake conditional. If we were to use it conditionally, we
done
if $inc; then
func_append inmodules " $dep"
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
escaped_dep=`echo "$dep" | sed -e "$sed_escape_dependency"`
sed_extract_condition1='/^ *'"$escaped_dep"' *$/{
s/^.*$/true/p
| sed -e 's/^\(.*\)|.*/|\1/' -e 's/^/ /' -e 's/^ |\(.*\)$/ '"${bold_on}"'\1'"${bold_off}"'/'
}
+# func_modules_transitive_closure_separately
+# Determine main module list and tests-related module list separately.
+# The main module list is the transitive closure of the specified modules,
+# ignoring tests modules. Its lib/* sources go into $sourcebase/. If --lgpl
+# is specified, it will consist only of LGPLed source.
+# The tests-related module list is the transitive closure of the specified
+# modules, including tests modules, minus the main module list excluding
+# modules of applicability 'all'. Its lib/* sources (brought in through
+# dependencies of *-tests modules) go into $testsbase/. It may contain GPLed
+# source, even if --lgpl is specified.
+# Input:
+# - local_gnulib_dir from --local-dir
+# - modcache true or false, from --cache-modules/--no-cache-modules
+# - specified_modules list of specified modules
+# - inctests true if tests should be included, blank otherwise
+# - incobsolete true if obsolete modules among dependencies should be
+# included, blank otherwise
+# - inc_cxx_tests true if C++ interoperability tests should be included,
+# blank otherwise
+# - inc_longrunning_tests true if long-runnings tests should be included,
+# blank otherwise
+# - inc_privileged_tests true if tests that require root privileges should be
+# included, blank otherwise
+# - inc_unportable_tests true if tests that fail on some platforms should be
+# included, blank otherwise
+# - inc_all_direct_tests true if all kinds of problematic unit tests among
+# the unit tests of the specified modules should be
+# included, blank otherwise
+# - inc_all_indirect_tests true if all kinds of problematic unit tests among
+# the unit tests of the dependencies should be
+# included, blank otherwise
+# - excl_cxx_tests true if C++ interoperability tests should be excluded,
+# blank otherwise
+# - excl_longrunning_tests true if long-runnings tests should be excluded,
+# blank otherwise
+# - excl_privileged_tests true if tests that require root privileges should be
+# excluded, blank otherwise
+# - excl_unportable_tests true if tests that fail on some platforms should be
+# excluded, blank otherwise
+# - avoidlist list of modules to avoid
+# - cond_dependencies true if conditional dependencies shall be supported,
+# blank otherwise
+# - tmp pathname of a temporary directory
+# Output:
+# - main_modules list of modules, including dependencies
+# - testsrelated_modules list of tests-related modules, including dependencies
+# - conddep_dependers, conddep_condition information about conditionally
+# enabled modules
+func_modules_transitive_closure_separately ()
+{
+ # Determine main module list.
+ saved_inctests="$inctests"
+ inctests=""
+ modules="$specified_modules"
+ func_modules_transitive_closure
+ main_modules="$modules"
+ inctests="$saved_inctests"
+ if test $verbose -ge 1; then
+ echo "Main module list:"
+ echo "$main_modules" | sed -e 's/^/ /'
+ fi
+ # Determine tests-related module list.
+ echo "$final_modules" | LC_ALL=C sort -u > "$tmp"/final-modules
+ testsrelated_modules=`for module in $main_modules; do
+ if test \`func_get_applicability $module\` = main; then
+ echo $module
+ fi
+ done \
+ | LC_ALL=C sort -u | LC_ALL=C join -v 2 - "$tmp"/final-modules`
+ if test $verbose -ge 1; then
+ echo "Tests-related module list:"
+ echo "$testsrelated_modules" | sed -e 's/^/ /'
+ fi
+}
+
+# func_determine_use_libtests
+# Determines whether a $testsbase/libtests.a is needed.
+# Input:
+# - local_gnulib_dir from --local-dir
+# - modcache true or false, from --cache-modules/--no-cache-modules
+# - testsrelated_modules list of tests-related modules, including dependencies
+# Output:
+# - use_libtests true if a $testsbase/libtests.a is needed, false otherwise
+func_determine_use_libtests ()
+{
+ use_libtests=false
+ for module in $testsrelated_modules; do
+ func_verify_nontests_module
+ if test -n "$module"; then
+ all_files=`func_get_filelist $module`
+ # Test whether some file in $all_files lies in lib/.
+ for f in $all_files; do
+ case $f in
+ lib/*)
+ use_libtests=true
+ break 2
+ ;;
+ esac
+ done
+ fi
+ done
+}
+
# func_modules_add_dummy
# Input:
# - local_gnulib_dir from --local-dir
fi
}
+# func_modules_add_dummy_separately
+# Input:
+# - local_gnulib_dir from --local-dir
+# - modcache true or false, from --cache-modules/--no-cache-modules
+# - main_modules list of modules, including dependencies
+# - testsrelated_modules list of tests-related modules, including dependencies
+# - use_libtests true if a $testsbase/libtests.a is needed, false otherwise
+# Output:
+# - main_modules list of modules, including 'dummy' if needed
+# - testsrelated_modules list of tests-related modules, including 'dummy' if
+# needed
+func_modules_add_dummy_separately ()
+{
+ # Add the dummy module to the main module list if needed.
+ modules="$main_modules"
+ func_modules_add_dummy
+ main_modules="$modules"
+
+ # Add the dummy module to the tests-related module list if needed.
+ if $use_libtests; then
+ modules="$testsrelated_modules"
+ func_modules_add_dummy
+ testsrelated_modules="$modules"
+ fi
+}
+
# func_modules_notice
# Input:
# - local_gnulib_dir from --local-dir
files=`for f in $files; do echo $f; done | LC_ALL=C sort -u`
}
+# func_modules_to_filelist_separately
+# Determine the final file lists.
+# They must be computed separately, because files in lib/* go into
+# $sourcebase/ if they are in the main file list but into $testsbase/
+# if they are in the tests-related file list. Furthermore lib/dummy.c
+# can be in both.
+# Input:
+# - local_gnulib_dir from --local-dir
+# - modcache true or false, from --cache-modules/--no-cache-modules
+# - main_modules list of modules, including dependencies
+# - testsrelated_modules list of tests-related modules, including dependencies
+func_modules_to_filelist_separately ()
+{
+ # Determine final main file list.
+ modules="$main_modules"
+ func_modules_to_filelist
+ main_files="$files"
+ # Determine final tests-related file list.
+ modules="$testsrelated_modules"
+ func_modules_to_filelist
+ testsrelated_files=`echo "$files" | sed -e 's,^lib/,tests=lib/,'`
+ # Merge both file lists.
+ sed_remove_empty_lines='/^$/d'
+ files=`{ echo "$main_files"; echo "$testsrelated_files"; } | sed -e "$sed_remove_empty_lines" | LC_ALL=C sort -u`
+ if test $verbose -ge 0; then
+ echo "File list:"
+ sed_prettyprint_files='s,^tests=lib/\(.*\)$,lib/\1 -> tests/\1,'
+ echo "$files" | sed -e "$sed_prettyprint_files" -e 's/^/ /'
+ fi
+}
+
+# func_compute_include_guard_prefix
+# Determine include_guard_prefix.
+# Input:
+# - macro_prefix prefix of gl_LIBOBJS macros to use
+# Output:
+# - include_guard_prefix replacement for ${gl_include_guard_prefix}
+# - sed_replace_include_guard_prefix
+# sed expression for resolving ${gl_include_guard_prefix}
+func_compute_include_guard_prefix ()
+{
+ if test "$macro_prefix" = gl; then
+ include_guard_prefix='GL'
+ else
+ include_guard_prefix='GL_'`echo "$macro_prefix" | LC_ALL=C tr '[a-z]' '[A-Z]'`
+ fi
+ sed_replace_include_guard_prefix='s/\${gl_include_guard_prefix}/'"${include_guard_prefix}"'/g'
+}
+
# func_execute_command command [args...]
# Executes a command.
# Uses also the variables
# - libtool true if libtool will be used, false or blank otherwise
# - macro_prefix prefix of gl_LIBOBJS macros to use
# - po_domain prefix of i18n domain to use (without -gnulib suffix)
+# - witness_c_macro from --witness-c-macro
# - actioncmd (optional) command that will reproduce this invocation
# - for_test true if creating a package for testing, false otherwise
+# - sed_replace_include_guard_prefix
+# sed expression for resolving ${gl_include_guard_prefix}
# - destfile filename relative to destdir of makefile being generated
# Input/Output:
# - makefile_am_edits and makefile_am_edit${edit}_{dir,var,val}
-e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' \
-e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
-e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
- -e "$sed_transform_check_PROGRAMS"
+ -e "$sed_transform_check_PROGRAMS" \
+ -e "$sed_replace_include_guard_prefix"
if test "$module" = 'alloca'; then
echo "${libname}_${libext}_LIBADD += @${perhapsLT}ALLOCA@"
echo "${libname}_${libext}_DEPENDENCIES += @${perhapsLT}ALLOCA@"
if grep '[^ ]' "$tmp"/amsnippet1 "$tmp"/amsnippet2 > /dev/null ; then
echo "## begin gnulib module $module"
echo
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
if func_cond_module_p "$module"; then
func_module_conditional_name "$module"
echo "if $conditional"
fi
fi
cat "$tmp"/amsnippet1
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
if func_cond_module_p "$module"; then
echo "endif"
fi
fi
fi
done
+ if test -n "$witness_c_macro"; then
+ cppflags_part1=" -D$witness_c_macro=1"
+ else
+ cppflags_part1=
+ fi
+ if $for_test; then
+ cppflags_part2=" -DGNULIB_STRICT_CHECKING=1"
+ else
+ cppflags_part2=
+ fi
if test -z "$makefile_name"; then
echo
- if $for_test; then
- echo "AM_CPPFLAGS = -DGNULIB_STRICT_CHECKING=1"
- else
- echo "AM_CPPFLAGS ="
- fi
+ echo "AM_CPPFLAGS =$cppflags_part1$cppflags_part2"
echo "AM_CFLAGS ="
+ else
+ if test -n "$cppflags_part1$cppflags_part2"; then
+ echo
+ echo "AM_CPPFLAGS +=$cppflags_part1$cppflags_part2"
+ fi
fi
echo
if LC_ALL=C grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *+\{0,1\}= *$libname\\.$libext\$" "$tmp"/allsnippets > /dev/null \
# - m4base relative directory containing autoconf macros
# - testsbase relative directory containing unit test code
# - macro_prefix prefix of gl_LIBOBJS macros to use
+# - witness_c_macro from --witness-c-macro
# - for_test true if creating a package for testing, false otherwise
+# - single_configure true if a single configure file should be generated,
+# false for a separate configure file for the tests
# - use_libtests true if a libtests.a should be built, false otherwise
+# - sed_replace_include_guard_prefix
+# sed expression for resolving ${gl_include_guard_prefix}
# - destfile filename relative to destdir of makefile being generated
# Input/Output:
# - makefile_am_edits and makefile_am_edit${edit}_{dir,var,val}
uses_subdirs=
{
for module in $modules; do
- if $for_test; then
+ if $for_test && ! $single_configure; then
func_verify_tests_module
else
func_verify_module
-e 's,lib_\([A-Z][A-Z]*\),libtests_a_\1,g' \
-e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
-e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
- -e "$sed_transform_check_PROGRAMS"
+ -e "$sed_transform_check_PROGRAMS" \
+ -e "$sed_replace_include_guard_prefix"
if $use_libtests && test "$module" = 'alloca'; then
echo "libtests_a_LIBADD += @${perhapsLT}ALLOCA@"
echo "libtests_a_DEPENDENCIES += @${perhapsLT}ALLOCA@"
fi
echo "AUTOMAKE_OPTIONS = 1.5 foreign${subdir_options}"
echo
- if $for_test; then
+ if $for_test && ! $single_configure; then
echo "ACLOCAL_AMFLAGS = -I ${testsbase_inverse}/${m4base}"
echo
fi
if $for_test; then
echo " -DGNULIB_STRICT_CHECKING=1 \\"
fi
+ if test -n "$witness_c_macro"; then
+ echo " -D$witness_c_macro=1 \\"
+ fi
if test -n "${witness_macro}"; then
echo " -D@${witness_macro}@=1 \\"
fi
toplevel="$3"
disable_libtool="$4"
disable_gettext="$5"
- if test -n "$cond_dependencies"; then
+ if test "$cond_dependencies" = true; then
# Emit the autoconf code for the unconditional modules.
for module in $1; do
eval $verifier
# otherwise
# - inc_all_tests true if --with-all-tests was given, blank otherwise
# - avoidlist list of modules to avoid, from --avoid
-# - cond_dependencies true if conditional dependencies shall be supported,
-# blank otherwise
+# - cond_dependencies true if --conditional-dependencies was given, false if
+# --no-conditional-dependencies was given, blank otherwise
# - lgpl yes or a number if library's license shall be LGPL,
# blank otherwise
# - makefile_name from --makefile-name
# - guessed_libtool true if the configure.ac file uses libtool, false otherwise
# - macro_prefix prefix of gl_EARLY, gl_INIT macros to use
# - po_domain prefix of i18n domain to use (without -gnulib suffix)
+# - witness_c_macro from --witness-c-macro
# - vc_files true if --vc-files was given, false if --no-vc-files was
# given, blank otherwise
# - autoconf_minversion minimum supported autoconf version
cached_libname=
cached_lgpl=
cached_makefile_name=
+ cached_cond_dependencies=
cached_libtool=
cached_macro_prefix=
cached_po_domain=
+ cached_witness_c_macro=
cached_vc_files=
cached_files=
if test -f "$destdir"/$m4base/gnulib-cache.m4; then
/gl_MAKEFILE_NAME(/ {
s,^.*gl_MAKEFILE_NAME([[ ]*\([^]"$`\\)]*\).*$,cached_makefile_name="\1",p
}
+ /gl_CONDITIONAL_DEPENDENCIES/ {
+ s,^.*$,cached_cond_dependencies=true,p
+ }
/gl_LIBTOOL/ {
s,^.*$,cached_libtool=true,p
}
/gl_PO_DOMAIN(/ {
s,^.*gl_PO_DOMAIN([[ ]*\([^]"$`\\)]*\).*$,cached_po_domain="\1",p
}
+ /gl_WITNESS_C_MACRO(/ {
+ s,^.*gl_WITNESS_C_MACRO([[ ]*\([^]"$`\\)]*\).*$,cached_witness_c_macro="\1",p
+ }
/gl_VC_FILES(/ {
s,^.*gl_VC_FILES([[ ]*\([^]"$`\\)]*\).*$,cached_vc_files="\1",p
}'
if test -z "$makefile_name"; then
makefile_name="$cached_makefile_name"
fi
+ # Use conditional dependencies if specified either way.
+ if test -z "$cond_dependencies"; then
+ cond_dependencies="$cached_cond_dependencies"
+ fi
# Use libtool if specified either way, or if guessed.
if test -z "$libtool"; then
if test -n "$cached_m4base"; then
if test -z "$po_domain"; then
po_domain="$cached_po_domain"
fi
+ # The witness_c_macro defaults to the cached one.
+ if test -z "$witness_c_macro"; then
+ witness_c_macro="$cached_witness_c_macro"
+ fi
# The vc_files defaults to the cached one.
if test -z "$vc_files"; then
vc_files="$cached_vc_files"
fi
+ # Ensure constraints.
+ if test "$cond_dependencies" = true && test -n "$inctests"; then
+ echo "gnulib-tool: option --conditional-dependencies is not supported with --with-tests" 1>&2
+ func_exit 1
+ fi
fi
# --without-*-tests options are not supported here.
excl_cxx_tests=
final_modules="$modules"
# Determine main module list and tests-related module list separately.
- # The main module list is the transitive closure of the specified modules,
- # ignoring tests modules. Its lib/* sources go into $sourcebase/. If --lgpl
- # is specified, it will consist only of LGPLed source.
- # The tests-related module list is the transitive closure of the specified
- # modules, including tests modules, minus the main module list excluding
- # modules of applicability 'all'. Its lib/* sources (brought in through
- # dependencies of *-tests modules) go into $testsbase/. It may contain GPLed
- # source, even if --lgpl is specified.
- # Determine main module list.
- saved_inctests="$inctests"
- inctests=""
- modules="$specified_modules"
- func_modules_transitive_closure
- main_modules="$modules"
- inctests="$saved_inctests"
- if test $verbose -ge 1; then
- echo "Main module list:"
- echo "$main_modules" | sed -e 's/^/ /'
- fi
- # Determine tests-related module list.
- echo "$final_modules" | LC_ALL=C sort -u > "$tmp"/final-modules
- testsrelated_modules=`for module in $main_modules; do
- if test \`func_get_applicability $module\` = main; then
- echo $module
- fi
- done \
- | LC_ALL=C sort -u | LC_ALL=C join -v 2 - "$tmp"/final-modules`
- if test $verbose -ge 1; then
- echo "Tests-related module list:"
- echo "$testsrelated_modules" | sed -e 's/^/ /'
- fi
-
- # Add the dummy module to the main module list if needed.
- modules="$main_modules"
- func_modules_add_dummy
- main_modules="$modules"
+ func_modules_transitive_closure_separately
# Determine whether a $testsbase/libtests.a is needed.
- use_libtests=false
- for module in $testsrelated_modules; do
- func_verify_nontests_module
- if test -n "$module"; then
- all_files=`func_get_filelist $module`
- # Test whether some file in $all_files lies in lib/.
- for f in $all_files; do
- case $f in
- lib/*)
- use_libtests=true
- break 2
- ;;
- esac
- done
- fi
- done
+ func_determine_use_libtests
- # Add the dummy module to the tests-related module list if needed.
- if $use_libtests; then
- modules="$testsrelated_modules"
- func_modules_add_dummy
- testsrelated_modules="$modules"
- fi
+ # Add the dummy module to the main module list or to the tests-related module
+ # list if needed.
+ func_modules_add_dummy_separately
# If --lgpl, verify that the licenses of modules are compatible.
if test -n "$lgpl"; then
fi
# Determine the final file lists.
- # They must be computed separately, because files in lib/* go into
- # $sourcebase/ if they are in the main file list but into $testsbase/
- # if they are in the tests-related file list. Furthermore lib/dummy.c
- # can be in both.
- # Determine final main file list.
- modules="$main_modules"
- func_modules_to_filelist
- main_files="$files"
- # Determine final tests-related file list.
- modules="$testsrelated_modules"
- func_modules_to_filelist
- testsrelated_files=`echo "$files" | sed -e 's,^lib/,tests=lib/,'`
- # Merge both file lists.
- sed_remove_empty_lines='/^$/d'
- files=`{ echo "$main_files"; echo "$testsrelated_files"; } | sed -e "$sed_remove_empty_lines" | LC_ALL=C sort -u`
- if test $verbose -ge 0; then
- echo "File list:"
- sed_prettyprint_files='s,^tests=lib/\(.*\)$,lib/\1 -> tests/\1,'
- echo "$files" | sed -e "$sed_prettyprint_files" -e 's/^/ /'
- fi
+ func_modules_to_filelist_separately
test -n "$files" \
|| func_fatal_error "refusing to do nothing"
if test -n "$makefile_name"; then
func_append actioncmd " --makefile-name=$makefile_name"
fi
+ if test "$cond_dependencies" = true; then
+ func_append actioncmd " --conditional-dependencies"
+ else
+ func_append actioncmd " --no-conditional-dependencies"
+ fi
if test "$libtool" = true; then
func_append actioncmd " --libtool"
else
if test -n "$po_domain"; then
func_append actioncmd " --po-domain=$po_domain"
fi
+ if test -n "$witness_c_macro"; then
+ func_append actioncmd " --witness-c-macro=$witness_c_macro"
+ fi
if test -n "$vc_files"; then
if test "$vc_files" = true; then
func_append actioncmd " --vc-files"
fi
func_append actioncmd " `echo $specified_modules`"
+ # Determine include_guard_prefix.
+ func_compute_include_guard_prefix
+
# Default the makefile name to Makefile.am.
if test -n "$makefile_name"; then
makefile_am=$makefile_name
fi
fi
echo "gl_MAKEFILE_NAME([$makefile_name])"
+ if test "$cond_dependencies" = true; then
+ echo "gl_CONDITIONAL_DEPENDENCIES"
+ fi
if test "$libtool" = true; then
echo "gl_LIBTOOL"
fi
echo "gl_MACRO_PREFIX([$macro_prefix])"
echo "gl_PO_DOMAIN([$po_domain])"
+ echo "gl_WITNESS_C_DOMAIN([$witness_c_macro])"
if test -n "$vc_files"; then
echo "gl_VC_FILES([$vc_files])"
fi
echo " m4_pattern_allow([^gl_ES\$])dnl a valid locale name"
echo " m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
echo " m4_pattern_allow([^gl_LTLIBOBJS\$])dnl a variable"
- echo " AC_REQUIRE([AC_PROG_RANLIB])"
+ echo " AC_REQUIRE([gl_PROG_AR_RANLIB])"
if test -n "$uses_subdirs"; then
echo " AC_REQUIRE([AM_PROG_CC_C_O])"
fi
echo " gl_m4_base='$m4base'"
func_emit_initmacro_start $macro_prefix
echo " gl_source_base='$sourcebase'"
+ if test -n "$witness_c_macro"; then
+ echo " m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$witness_c_macro])"
+ fi
func_emit_autoconf_snippets "$main_modules" func_verify_module true false true
+ if test -n "$witness_c_macro"; then
+ echo " m4_popdef([gl_MODULE_INDICATOR_CONDITION])"
+ fi
echo " # End of code from modules"
func_emit_initmacro_end $macro_prefix
echo " gltests_libdeps="
# excluded, blank otherwise
# - excl_unportable_tests true if tests that fail on some platforms should be
# excluded, blank otherwise
+# - single_configure true if a single configure file should be generated,
+# false for a separate configure file for the tests
# - avoidlist list of modules to avoid
-# - cond_dependencies true if conditional dependencies shall be supported,
-# blank otherwise
+# - cond_dependencies true if --conditional-dependencies was given, false if
+# --no-conditional-dependencies was given, blank otherwise
# - libtool true if --libtool was given, false if --no-libtool was
# given, blank otherwise
# - symbolic true if files should be symlinked, copied otherwise
testsbase=gltests
macro_prefix=gl
po_domain=
+ witness_c_macro=
vc_files=
# Determine final module list.
if test $verbose -ge 0; then
func_show_module_list
fi
+ final_modules="$modules"
+
+ if $single_configure; then
+ # Determine main module list and tests-related module list separately.
+ func_modules_transitive_closure_separately
+ fi
+
+ if $single_configure; then
+ # Determine whether a $testsbase/libtests.a is needed.
+ func_determine_use_libtests
+ fi
# Add the dummy module if needed.
- func_modules_add_dummy
+ if $single_configure; then
+ func_modules_add_dummy_separately
+ else
+ func_modules_add_dummy
+ fi
# Show banner notice of every module.
- func_modules_notice
+ if $single_configure; then
+ modules="$main_modules"
+ func_modules_notice
+ else
+ func_modules_notice
+ fi
# Determine final file list.
- func_modules_to_filelist
- if test $verbose -ge 0; then
- echo "File list:"
- echo "$files" | sed -e 's/^/ /'
+ if $single_configure; then
+ func_modules_to_filelist_separately
+ else
+ func_modules_to_filelist
+ if test $verbose -ge 0; then
+ echo "File list:"
+ echo "$files" | sed -e 's/^/ /'
+ fi
fi
# Add files for which the copy in gnulib is newer than the one that
# "automake --add-missing --copy" would provide.
s,^lib/,$rewritten$sourcebase/,
s,^m4/,$rewritten$m4base/,
s,^tests/,$rewritten$testsbase/,
+ s,^tests=lib/,$rewritten$testsbase/,
s,^top/,$rewritten,
s,^$rewritten,,"
# constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
exec 5<&0 < "$tmp"/files
while read g f; do
+ case "$f" in
+ tests=lib/*) f=`echo "$f" | sed -e 's,^tests=lib/,lib/,'` ;;
+ esac
func_lookup_file "$f"
if test -n "$lookedup_tmp"; then
cp -p "$lookedup_file" "$testdir/$g"
exec 0<&5 5<&-
}
+ # Determine include_guard_prefix.
+ func_compute_include_guard_prefix
+
# Create Makefile.ams that are for testing.
for_test=true
# Create $sourcebase/Makefile.am.
mkdir -p "$testdir/$sourcebase"
destfile="$sourcebase/Makefile.am"
+ if $single_configure; then
+ modules="$main_modules"
+ fi
func_emit_lib_Makefile_am > "$testdir/$sourcebase/Makefile.am"
any_uses_subdirs="$uses_subdirs"
if test -n "$inctests"; then
test -d "$testdir/$testsbase" || mkdir "$testdir/$testsbase"
- # Viewed from the $testsbase subdirectory, $auxdir is different.
- saved_auxdir="$auxdir"
- auxdir=`echo "$testsbase/" | sed -e 's%[^/][^/]*//*%../%g'`"$auxdir"
- # Create $testsbase/Makefile.am.
- use_libtests=false
- destfile="$testsbase/Makefile.am"
- func_emit_tests_Makefile_am "" > "$testdir/$testsbase/Makefile.am"
- any_uses_subdirs="$any_uses_subdirs$uses_subdirs"
- # Create $testsbase/configure.ac.
- (echo "# Process this file with autoconf to produce a configure script."
- echo "AC_INIT([dummy], [0])"
- echo "AC_CONFIG_AUX_DIR([$auxdir])"
- echo "AM_INIT_AUTOMAKE"
- echo
- echo "AC_CONFIG_HEADERS([config.h])"
- echo
- echo "AC_PROG_CC"
- echo "AC_PROG_INSTALL"
- echo "AC_PROG_MAKE_SET"
- echo "AC_PROG_RANLIB"
- echo
- if test -n "$uses_subdirs"; then
- echo "AM_PROG_CC_C_O"
+ if $single_configure; then
+ # Create $testsbase/Makefile.am.
+ destfile="$testsbase/Makefile.am"
+ modules="$testsrelated_modules"
+ func_emit_tests_Makefile_am "${macro_prefix}tests_WITNESS" > "$testdir/$testsbase/Makefile.am"
+ else
+ # Viewed from the $testsbase subdirectory, $auxdir is different.
+ saved_auxdir="$auxdir"
+ auxdir=`echo "$testsbase/" | sed -e 's%[^/][^/]*//*%../%g'`"$auxdir"
+ # Create $testsbase/Makefile.am.
+ use_libtests=false
+ destfile="$testsbase/Makefile.am"
+ func_emit_tests_Makefile_am "" > "$testdir/$testsbase/Makefile.am"
+ any_uses_subdirs="$any_uses_subdirs$uses_subdirs"
+ # Create $testsbase/configure.ac.
+ (echo "# Process this file with autoconf to produce a configure script."
+ echo "AC_INIT([dummy], [0])"
+ echo "AC_CONFIG_AUX_DIR([$auxdir])"
+ echo "AM_INIT_AUTOMAKE"
echo
- fi
- for module in $modules; do
- func_verify_module
- if test -n "$module"; then
- case $module in
- gnumakefile | maintainer-makefile)
- # These modules are meant to be used only in the top-level directory.
- ;;
- *)
- func_get_autoconf_early_snippet "$module"
- ;;
- esac
+ echo "AC_CONFIG_HEADERS([config.h])"
+ echo
+ echo "AC_PROG_CC"
+ echo "AC_PROG_INSTALL"
+ echo "AC_PROG_MAKE_SET"
+ echo "gl_PROG_AR_RANLIB"
+ echo
+ if test -n "$uses_subdirs"; then
+ echo "AM_PROG_CC_C_O"
+ echo
fi
- done \
- | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
- if test "$libtool" = true; then
- echo "LT_INIT([win32-dll])"
- echo "LT_LANG([C++])"
- echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
- echo "gl_cond_libtool=true"
- else
- echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
- echo "gl_cond_libtool=false"
- echo "gl_libdeps="
- echo "gl_ltlibdeps="
- fi
- # Wrap the set of autoconf snippets into an autoconf macro that is then
- # invoked. This is needed because autoconf does not support AC_REQUIRE
- # at the top level:
- # error: AC_REQUIRE(gt_CSHARPCOMP): cannot be used outside of an AC_DEFUN'd macro
- # but we want the AC_REQUIRE to have its normal meaning (provide one
- # expansion of the required macro before the current point, and only one
- # expansion total).
- echo "AC_DEFUN([gl_INIT], ["
- sed_replace_build_aux='
- :a
- /AC_CONFIG_FILES(.*:build-aux\/.*)/{
- s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
- ba
- }'
- echo "gl_m4_base='../$m4base'"
- func_emit_initmacro_start $macro_prefix
- # We don't have explicit ordering constraints between the various
- # autoconf snippets. It's cleanest to put those of the library before
- # those of the tests.
- echo "gl_source_base='../$sourcebase'"
- func_emit_autoconf_snippets "$modules" func_verify_nontests_module false false false
- echo "gl_source_base='.'"
- func_emit_autoconf_snippets "$modules" func_verify_tests_module false false false
- func_emit_initmacro_end $macro_prefix
- # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
- # created using libtool, because libtool already handles the dependencies.
- if test "$libtool" != true; then
- libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
- echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
- echo " AC_SUBST([${libname_upper}_LIBDEPS])"
- echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
- echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
- fi
- echo "])"
- func_emit_initmacro_done $macro_prefix $sourcebase # FIXME use $sourcebase or $testsbase?
- echo
- echo "gl_INIT"
- echo
- # Usually $testsbase/config.h will be a superset of config.h. Verify this
- # by "merging" config.h into $testsbase/config.h; look out for gcc warnings.
- echo "AH_TOP([#include \"../config.h\"])"
- echo
- echo "AC_CONFIG_FILES([Makefile])"
- echo "AC_OUTPUT"
- ) > "$testdir/$testsbase/configure.ac"
- auxdir="$saved_auxdir"
+ for module in $modules; do
+ func_verify_module
+ if test -n "$module"; then
+ case $module in
+ gnumakefile | maintainer-makefile)
+ # These modules are meant to be used only in the top-level directory.
+ ;;
+ *)
+ func_get_autoconf_early_snippet "$module"
+ ;;
+ esac
+ fi
+ done \
+ | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
+ if test "$libtool" = true; then
+ echo "LT_INIT([win32-dll])"
+ echo "LT_LANG([C++])"
+ echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
+ echo "gl_cond_libtool=true"
+ else
+ echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
+ echo "gl_cond_libtool=false"
+ echo "gl_libdeps="
+ echo "gl_ltlibdeps="
+ fi
+ # Wrap the set of autoconf snippets into an autoconf macro that is then
+ # invoked. This is needed because autoconf does not support AC_REQUIRE
+ # at the top level:
+ # error: AC_REQUIRE(gt_CSHARPCOMP): cannot be used outside of an AC_DEFUN'd macro
+ # but we want the AC_REQUIRE to have its normal meaning (provide one
+ # expansion of the required macro before the current point, and only one
+ # expansion total).
+ echo "AC_DEFUN([gl_INIT], ["
+ sed_replace_build_aux='
+ :a
+ /AC_CONFIG_FILES(.*:build-aux\/.*)/{
+ s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
+ ba
+ }'
+ echo "gl_m4_base='../$m4base'"
+ func_emit_initmacro_start $macro_prefix
+ # We don't have explicit ordering constraints between the various
+ # autoconf snippets. It's cleanest to put those of the library before
+ # those of the tests.
+ echo "gl_source_base='../$sourcebase'"
+ func_emit_autoconf_snippets "$modules" func_verify_nontests_module false false false
+ echo "gl_source_base='.'"
+ func_emit_autoconf_snippets "$modules" func_verify_tests_module false false false
+ func_emit_initmacro_end $macro_prefix
+ # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
+ # created using libtool, because libtool already handles the dependencies.
+ if test "$libtool" != true; then
+ libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
+ echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
+ echo " AC_SUBST([${libname_upper}_LIBDEPS])"
+ echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
+ echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
+ fi
+ echo "])"
+ func_emit_initmacro_done $macro_prefix $sourcebase # FIXME use $sourcebase or $testsbase?
+ echo
+ echo "gl_INIT"
+ echo
+ # Usually $testsbase/config.h will be a superset of config.h. Verify this
+ # by "merging" config.h into $testsbase/config.h; look out for gcc warnings.
+ echo "AH_TOP([#include \"../config.h\"])"
+ echo
+ echo "AC_CONFIG_FILES([Makefile])"
+ echo "AC_OUTPUT"
+ ) > "$testdir/$testsbase/configure.ac"
+ auxdir="$saved_auxdir"
+ subdirs_with_configure_ac="$subdirs_with_configure_ac $testsbase"
+ fi
func_append subdirs " $testsbase"
- subdirs_with_configure_ac="$subdirs_with_configure_ac $testsbase"
fi
# Create Makefile.am.
echo "m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
echo "m4_pattern_allow([^gl_LTLIBOBJS\$])dnl a variable"
echo
- echo "AC_PROG_RANLIB"
+ echo "gl_PROG_AR_RANLIB"
echo
if test -n "$any_uses_subdirs"; then
echo "AM_PROG_CC_C_O"
echo
fi
- for module in $modules; do
- func_verify_nontests_module
+ for module in $final_modules; do
+ if $single_configure; then
+ func_verify_module
+ else
+ func_verify_nontests_module
+ fi
if test -n "$module"; then
func_get_autoconf_early_snippet "$module"
fi
echo "gl_m4_base='$m4base'"
func_emit_initmacro_start $macro_prefix
echo "gl_source_base='$sourcebase'"
- func_emit_autoconf_snippets "$modules" func_verify_nontests_module true false false
+ if $single_configure; then
+ func_emit_autoconf_snippets "$main_modules" func_verify_module true false false
+ else
+ func_emit_autoconf_snippets "$modules" func_verify_nontests_module true false false
+ fi
func_emit_initmacro_end $macro_prefix
+ if $single_configure; then
+ echo " gltests_libdeps="
+ echo " gltests_ltlibdeps="
+ func_emit_initmacro_start ${macro_prefix}tests
+ echo " gl_source_base='$testsbase'"
+ # Define a tests witness macro.
+ echo " ${macro_prefix}tests_WITNESS=IN_GNULIB_TESTS"
+ echo " AC_SUBST([${macro_prefix}tests_WITNESS])"
+ echo " gl_module_indicator_condition=\$${macro_prefix}tests_WITNESS"
+ echo " m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [\$gl_module_indicator_condition])"
+ func_emit_autoconf_snippets "$testsrelated_modules" func_verify_module true false false
+ echo " m4_popdef([gl_MODULE_INDICATOR_CONDITION])"
+ func_emit_initmacro_end ${macro_prefix}tests
+ fi
# _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
# created using libtool, because libtool already handles the dependencies.
if test "$libtool" != true; then
echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
fi
+ if $single_configure; then
+ if $use_libtests; then
+ echo " LIBTESTS_LIBDEPS=\"\$gltests_libdeps\""
+ echo " AC_SUBST([LIBTESTS_LIBDEPS])"
+ fi
+ fi
echo "])"
func_emit_initmacro_done $macro_prefix $sourcebase
+ if $single_configure; then
+ func_emit_initmacro_done ${macro_prefix}tests $testsbase
+ fi
echo
echo "gl_INIT"
echo
func_execute_command ${AUTOHEADER} || func_exit 1
func_execute_command ${AUTOMAKE} --add-missing --copy || func_exit 1
) || func_exit 1
- if test -n "$inctests"; then
+ if test -n "$inctests" && ! $single_configure; then
# Create autogenerated files.
(cd "$testdir/$testsbase" || func_exit 1
# Do not use "${AUTORECONF} --force --install", because it may invoke
# inc_longrunning_tests, inc_privileged_tests,
# inc_unportable_tests, inc_all_tests, avoidlist, sourcebase,
# m4base, pobase, docbase, testsbase, inctests, libname, lgpl,
- # makefile_name, libtool, macro_prefix, po_domain, vc_files
+ # makefile_name, libtool, macro_prefix, po_domain,
+ # witness_c_macro, vc_files
# don't propagate from one directory to another.
(func_import) || func_exit 1
done
# include <acl/libacl.h>
#endif
+/* On HP-UX >= 11.11, additional ACL API is available in <aclv.h>. */
+#if HAVE_ACLV_H
+# include <sys/types.h>
+# include <aclv.h>
+/* HP-UX 11.11 lacks these declarations. */
+extern int acl (char *, int, int, struct acl *);
+extern int aclsort (int, int, struct acl *);
+#endif
+
#include "error.h"
#include "quote.h"
# endif
/* Linux-specific */
+# ifndef HAVE_ACL_EXTENDED_FILE_NOFOLLOW
+# define HAVE_ACL_EXTENDED_FILE_NOFOLLOW false
+# define acl_extended_file_nofollow(name) (-1)
+# endif
+
+/* Linux-specific */
# ifndef HAVE_ACL_FROM_MODE
# define HAVE_ACL_FROM_MODE false
# define acl_from_mode(mode) (NULL)
Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */
extern int acl_nontrivial (int count, struct acl_entry *entries, struct stat *sb);
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+/* Return 1 if the given ACL is non-trivial.
+ Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */
+extern int aclv_nontrivial (int count, struct acl *entries);
+
+# endif
+
# elif HAVE_ACLX_GET && 0 /* AIX */
/* TODO */
static int stack_dir; /* 1 or -1 once known. */
# define STACK_DIR stack_dir
-static void
-find_stack_direction (char **ptr)
+static int
+find_stack_direction (int *addr, int depth)
{
- auto char dummy; /* To get stack address. */
-
- if (*ptr == NULL)
- { /* Initial entry. */
- *ptr = ADDRESS_FUNCTION (dummy);
-
- find_stack_direction (ptr); /* Recurse once. */
- }
- else
- {
- /* Second entry. */
- if (ADDRESS_FUNCTION (dummy) > *ptr)
- stack_dir = 1; /* Stack grew upward. */
- else
- stack_dir = -1; /* Stack grew downward. */
- }
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
# endif /* STACK_DIRECTION == 0 */
# if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
- {
- char *addr = NULL; /* Address of first `dummy', once known. */
- find_stack_direction (&addr);
- }
+ STACK_DIR = find_stack_direction (NULL, (size & 1) + 20);
# endif
/* Reclaim garbage, defined as all alloca'd storage that
/* Call FREE to free memory, like 'free'. */
void (*free) (void *);
- /* If nonnull, call DIE if MALLOC or REALLOC fails. DIE should not
- return. DIE can be used by code that detects memory overflow
- while calculating sizes to be passed to MALLOC or REALLOC. */
- void (*die) (void);
+ /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (...,
+ SIZE) fails. DIE should not return. SIZE should equal SIZE_MAX
+ if size_t overflow was detected while calculating sizes to be
+ passed to MALLOC or REALLOC. */
+ void (*die) (size_t);
};
/* An allocator using the stdlib functions and a null DIE function. */
char const *s = NULL;
putc_unlocked (':', stream);
putc_unlocked (' ', stream);
-#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P)
+#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P && !defined strerror_r)
s = __strerror_r (errnum, buf, sizeof buf);
#elif HAVE_DECL_STRERROR_R
if (__strerror_r (errnum, buf, sizeof buf) == 0)
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_ARPA_INET_H
+#ifndef _@GUARD_PREFIX@_ARPA_INET_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_ARPA_INET_H
-#define _GL_ARPA_INET_H
+#ifndef _@GUARD_PREFIX@_ARPA_INET_H
+#define _@GUARD_PREFIX@_ARPA_INET_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_ARPA_INET_H */
-#endif /* _GL_ARPA_INET_H */
+#endif /* _@GUARD_PREFIX@_ARPA_INET_H */
+#endif /* _@GUARD_PREFIX@_ARPA_INET_H */
* (mailbox/filter_trans.c, as of 2004-11-28). Improved by review
* from Paul Eggert, Bruno Haible, and Stepan Kasal.
*
- * See also RFC 3548 <http://www.ietf.org/rfc/rfc3548.txt>.
+ * See also RFC 4648 <http://www.ietf.org/rfc/rfc4648.txt>.
*
* Be careful with error checking. Here is how you would typically
* use these functions:
{
/* This may allocate a few bytes too many, depending on input,
but it's not worth the extra CPU time to compute the exact size.
- The exact size is 3 * inlen / 4, minus 1 if the input ends
- with "=" and minus another 1 if the input ends with "==".
+ The exact size is 3 * (inlen + (ctx ? ctx->i : 0)) / 4, minus 1 if the
+ input ends with "=" and minus another 1 if the input ends with "==".
Dividing before multiplying avoids the possibility of overflow. */
- size_t needlen = 3 * (inlen / 4) + 2;
+ size_t needlen = 3 * (inlen / 4) + 3;
*out = malloc (needlen);
if (!*out)
appears to have been a stack overflow, or with a core dump
otherwise. This function is async-signal-safe. */
-static void die (int) __attribute__ ((noreturn));
-static void
+static _Noreturn void
die (int signo)
{
char const *message;
/* Handle a segmentation violation that is likely to be a stack
overflow and exit. This function is async-signal-safe. */
-static void overflow_handler (int, stackoverflow_context_t)
- __attribute__ ((noreturn));
-static void
+static _Noreturn void
overflow_handler (int emergency,
stackoverflow_context_t context __attribute__ ((unused)))
{
#elif HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING
-/* Direction of the C runtime stack. This function is
- async-signal-safe. */
-
-# if STACK_DIRECTION
-# define find_stack_direction(ptr) STACK_DIRECTION
-# else
-# if ! SIGINFO_WORKS || HAVE_XSI_STACK_OVERFLOW_HEURISTIC
-static int
-find_stack_direction (char const *addr)
-{
- char dummy;
- return ! addr ? find_stack_direction (&dummy) : addr < &dummy ? 1 : -1;
-}
-# endif
-# endif
-
# if SIGINFO_WORKS
/* Handle a segmentation violation and exit. This function is
async-signal-safe. */
-static void segv_handler (int, siginfo_t *, void *) __attribute__((noreturn));
-static void
+static _Noreturn void
segv_handler (int signo, siginfo_t *info,
void *context __attribute__ ((unused)))
{
if (0 < info->si_code)
{
/* If the faulting address is within the stack, or within one
- page of the stack end, assume that it is a stack
- overflow. */
+ page of the stack, assume that it is a stack overflow. */
ucontext_t const *user_context = context;
char const *stack_base = user_context->uc_stack.ss_sp;
size_t stack_size = user_context->uc_stack.ss_size;
char const *faulting_address = info->si_addr;
- size_t s = faulting_address - stack_base;
size_t page_size = sysconf (_SC_PAGESIZE);
- if (find_stack_direction (NULL) < 0)
- s += page_size;
- if (s < stack_size + page_size)
+ size_t s = faulting_address - stack_base + page_size;
+ if (s < stack_size + 2 * page_size)
signo = 0;
# if DEBUG
#else
path_max = pathconf (name, _PC_PATH_MAX);
if (path_max <= 0)
- path_max = 1024;
+ path_max = 8192;
#endif
if (resolved == NULL)
#include "xalloc.h"
#include "xgetcwd.h"
+/* In this file, we cannot handle file names longer than PATH_MAX.
+ On systems with no file name length limit, use a fallback. */
+#ifndef PATH_MAX
+# define PATH_MAX 8192
+#endif
+
#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
#endif
if (buf == stack_buf)
{
char *b = (char *) alloc->allocate (link_size);
+ buf_size = link_size;
if (! b)
break;
memcpy (b, buf, link_size);
buf_size *= 2;
else if (buf_size < buf_size_max)
buf_size = buf_size_max;
+ else if (buf_size_max < SIZE_MAX)
+ {
+ errno = ENAMETOOLONG;
+ return NULL;
+ }
else
break;
buf = (char *) alloc->allocate (buf_size);
while (buf);
if (alloc->die)
- alloc->die ();
+ alloc->die (buf_size);
errno = ENOMEM;
return NULL;
}
#include <unistd.h>
#include <limits.h>
-#ifndef PATH_MAX
-# ifdef MAXPATHLEN
-# define PATH_MAX MAXPATHLEN
-# endif
-#endif
+#include "pathmax.h"
/* On systems without PATH_MAX, presume that chdir accepts
arbitrarily long directory names. */
#define _(str) gettext (str)
-/* GNU Hurd doesn't have PATH_MAX. */
+/* GNU Hurd doesn't have PATH_MAX. Use a fallback.
+ Temporary directory names are usually not that long. */
#ifndef PATH_MAX
-# ifdef MAXPATHLEN
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 1024
-# endif
+# define PATH_MAX 1024
#endif
#ifndef uintptr_t
are automatically cleaned up (at the latest) when the program exits or
dies from a fatal signal such as SIGINT, SIGTERM, SIGHUP, but not if it
dies from a fatal signal such as SIGQUIT, SIGKILL, or SIGABRT, SIGSEGV,
- SIGBUS, SIGILL, SIGFPE. */
+ SIGBUS, SIGILL, SIGFPE.
+
+ For the cleanup in the normal case, programs that use this module need to
+ call 'cleanup_temp_dir' for each successful return of 'create_temp_dir'.
+ The cleanup in the case of a fatal signal such as SIGINT, SIGTERM, SIGHUP,
+ is done entirely automatically by the functions of this module. */
struct temp_dir
{
For example, POSIX requires that these two commands behave alike:
(sed -ne 1q; cat) < file
- tail -n 1 file
+ tail -n +2 file
Since close_stdin is commonly registered via 'atexit', POSIX
and the C standard both say that it should not call 'exit',
/* There is no need to flush stdin if we can determine quickly that stdin's
input buffer is empty; in this case we know that if stdin is seekable,
- fseeko (stdin, 0, SEEK_CUR) == lseek (0, 0, SEEK_CUR). */
+ (fseeko (stdin, 0, SEEK_CUR), ftello (stdin))
+ == lseek (0, 0, SEEK_CUR). */
if (freadahead (stdin) > 0)
{
/* Only attempt flush if stdin is seekable, as fflush is entitled to
int count;
struct acl_entry entries[NACLENTRIES];
+# if HAVE_ACLV_H
+ int aclv_count;
+ struct acl aclv_entries[NACLVENTRIES];
+# endif
+ int did_chmod;
+ int saved_errno;
int ret;
for (;;)
if (count < 0)
{
- if (ACL_NOT_WELL_SUPPORTED (errno))
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
{
count = 0;
break;
Repeat. */
}
- if (count == 0)
- return qset_acl (dst_name, dest_desc, mode);
-
- ret = (dest_desc != -1
- ? fsetacl (dest_desc, count, entries)
- : setacl (dst_name, count, entries));
- if (ret < 0)
+# if HAVE_ACLV_H
+ for (;;)
{
- int saved_errno = errno;
+ aclv_count = acl ((char *) src_name, ACL_CNT, NACLVENTRIES, aclv_entries);
- if (ACL_NOT_WELL_SUPPORTED (errno))
+ if (aclv_count < 0)
{
- struct stat source_statbuf;
-
- if ((source_desc != -1
- ? fstat (source_desc, &source_statbuf)
- : stat (src_name, &source_statbuf)) == 0)
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
{
- if (!acl_nontrivial (count, entries, &source_statbuf))
- return chmod_or_fchmod (dst_name, dest_desc, mode);
+ count = 0;
+ break;
}
else
- saved_errno = errno;
+ return -2;
}
- chmod_or_fchmod (dst_name, dest_desc, mode);
- errno = saved_errno;
- return -1;
+ if (aclv_count == 0)
+ break;
+
+ if (aclv_count > NACLVENTRIES)
+ /* If NACLVENTRIES cannot be trusted, use dynamic memory allocation. */
+ abort ();
+
+ if (acl ((char *) src_name, ACL_GET, aclv_count, aclv_entries)
+ == aclv_count)
+ break;
+ /* Huh? The number of ACL entries changed since the last call.
+ Repeat. */
}
+# endif
- if (mode & (S_ISUID | S_ISGID | S_ISVTX))
+ if (count == 0)
+# if HAVE_ACLV_H
+ if (aclv_count == 0)
+# endif
+ return qset_acl (dst_name, dest_desc, mode);
+
+ did_chmod = 0; /* set to 1 once the mode bits in 0777 have been set */
+ saved_errno = 0; /* the first non-ignorable error code */
+
+ if (count > 0)
{
- /* We did not call chmod so far, and either the mode and the ACL are
- separate or special bits are to be set which don't fit into ACLs. */
+ ret = (dest_desc != -1
+ ? fsetacl (dest_desc, count, entries)
+ : setacl (dst_name, count, entries));
+ if (ret < 0 && saved_errno == 0)
+ {
+ saved_errno = errno;
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+ {
+ struct stat source_statbuf;
+
+ if ((source_desc != -1
+ ? fstat (source_desc, &source_statbuf)
+ : stat (src_name, &source_statbuf)) == 0)
+ {
+ if (!acl_nontrivial (count, entries, &source_statbuf))
+ saved_errno = 0;
+ }
+ else
+ saved_errno = errno;
+ }
+ }
+ else
+ did_chmod = 1;
+ }
- return chmod_or_fchmod (dst_name, dest_desc, mode);
+# if HAVE_ACLV_H
+ if (aclv_count > 0)
+ {
+ ret = acl ((char *) dst_name, ACL_SET, aclv_count, aclv_entries);
+ if (ret < 0 && saved_errno == 0)
+ {
+ saved_errno = errno;
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+ {
+ if (!aclv_nontrivial (aclv_count, aclv_entries))
+ saved_errno = 0;
+ }
+ }
+ else
+ did_chmod = 1;
+ }
+# endif
+
+ if (did_chmod <= ((mode & (S_ISUID | S_ISGID | S_ISVTX)) ? 1 : 0))
+ {
+ /* We did not call chmod so far, and special bits are to be set which
+ don't fit into ACLs. */
+
+ if (chmod_or_fchmod (dst_name, dest_desc, mode) != 0)
+ {
+ if (saved_errno == 0)
+ saved_errno = errno;
+ }
+ }
+
+ if (saved_errno)
+ {
+ errno = saved_errno;
+ return -1;
}
return 0;
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html>
*/
-#ifndef _GL_CTYPE_H
+#ifndef _@GUARD_PREFIX@_CTYPE_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_CTYPE_H@
-#ifndef _GL_CTYPE_H
-#define _GL_CTYPE_H
+#ifndef _@GUARD_PREFIX@_CTYPE_H
+#define _@GUARD_PREFIX@_CTYPE_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
# endif
#endif
-#endif /* _GL_CTYPE_H */
-#endif /* _GL_CTYPE_H */
+#endif /* _@GUARD_PREFIX@_CTYPE_H */
+#endif /* _@GUARD_PREFIX@_CTYPE_H */
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_DIRENT_H
+#ifndef _@GUARD_PREFIX@_DIRENT_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_DIRENT_H@
-#ifndef _GL_DIRENT_H
-#define _GL_DIRENT_H
+#ifndef _@GUARD_PREFIX@_DIRENT_H
+#define _@GUARD_PREFIX@_DIRENT_H
/* Get ino_t. Needed on some systems, including glibc 2.8. */
#include <sys/types.h>
#endif
-#endif /* _GL_DIRENT_H */
-#endif /* _GL_DIRENT_H */
+#endif /* _@GUARD_PREFIX@_DIRENT_H */
+#endif /* _@GUARD_PREFIX@_DIRENT_H */
--- /dev/null
+/* Convert double to timespec.
+
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* written by Paul Eggert */
+
+/* Convert the double value SEC to a struct timespec. Round toward
+ positive infinity. On overflow, return an extremal value. */
+
+#include <config.h>
+
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+dtotimespec (double sec)
+{
+ enum { BILLION = 1000 * 1000 * 1000 };
+ double min_representable = TYPE_MINIMUM (time_t);
+ double max_representable =
+ ((TYPE_MAXIMUM (time_t) * (double) BILLION + (BILLION - 1))
+ / BILLION);
+ struct timespec r;
+
+ if (! (min_representable < sec))
+ {
+ r.tv_sec = TYPE_MINIMUM (time_t);
+ r.tv_nsec = 0;
+ }
+ else if (! (sec < max_representable))
+ {
+ r.tv_sec = TYPE_MAXIMUM (time_t);
+ r.tv_nsec = BILLION - 1;
+ }
+ else
+ {
+ time_t s = sec;
+ double frac = BILLION * (sec - s);
+ long ns = frac;
+ ns += ns < frac;
+ s += ns / BILLION;
+ ns %= BILLION;
+
+ if (ns < 0)
+ {
+ s--;
+ ns += BILLION;
+ }
+
+ r.tv_sec = s;
+ r.tv_nsec = ns;
+ }
+
+ return r;
+}
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_ERRNO_H@
-#ifndef _GL_ERRNO_H
-#define _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
+#define _@GUARD_PREFIX@_ERRNO_H
/* On native Windows platforms, many macros are not defined. */
# define GNULIB_defined_ENOTSUP 1
# endif
+# ifndef ENETRESET
+# define ENETRESET 2011
+# define GNULIB_defined_ENETRESET 1
+# endif
+
+# ifndef ECONNABORTED
+# define ECONNABORTED 2012
+# define GNULIB_defined_ECONNABORTED 1
+# endif
+
# ifndef ESTALE
# define ESTALE 2009
# define GNULIB_defined_ESTALE 1
# endif
-#endif /* _GL_ERRNO_H */
-#endif /* _GL_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
/* The gnulib override of fcntl is not needed in this file. */
# undef fcntl
-# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+# if !HAVE_DECL_STRERROR_R
# ifndef HAVE_DECL_STRERROR_R
"this configure-time declaration test was not run"
# endif
+# if STRERROR_R_CHAR_P
char *strerror_r ();
+# else
+int strerror_r ();
+# endif
# endif
/* The calling program should define program_name and set it to the
return _IOFBF;
#elif defined __EMX__ /* emx+gcc */
return fp->_flags & (_IOLBF | _IONBF | _IOFBF);
+#elif defined __minix /* Minix */
+ return fp->_flags & (_IOLBF | _IONBF | _IOFBF);
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
# if HAVE___FLBF /* Solaris >= 7 */
if (__flbf (fp))
#else
/* Normal invocation convention. */
-#ifndef _GL_FCNTL_H
+#ifndef _@GUARD_PREFIX@_FCNTL_H
#include <sys/types.h>
/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
-#ifndef _GL_FCNTL_H
-#define _GL_FCNTL_H
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+#define _@GUARD_PREFIX@_FCNTL_H
#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */
# include <unistd.h>
#endif
-#endif /* _GL_FCNTL_H */
-#endif /* _GL_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
#endif
fp->_ungetc_count = 0;
fp->_rcount = - fp->_rcount;
}
-# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
+# elif defined _IOERR /* Minix, AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
/* Nothing to do. */
# else /* other implementations */
fseeko (fp, 0, SEEK_CUR);
--- /dev/null
+/* ffs.c -- find the first set bit in a word.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake. */
+
+#include <strings.h>
+
+#include <limits.h>
+
+int
+ffs (int i)
+{
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ return __builtin_ffs (i);
+#else
+ /* http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightMultLookup
+ gives this deBruijn constant for a branch-less computation, although
+ that table counted trailing zeros rather than bit position. This
+ requires 32-bit int, we fall back to a naive algorithm on the rare
+ platforms where that assumption is not true. */
+ if (CHAR_BIT * sizeof i == 32)
+ {
+ static unsigned int table[] = {
+ 1, 2, 29, 3, 30, 15, 25, 4, 31, 23, 21, 16, 26, 18, 5, 9,
+ 32, 28, 14, 24, 22, 20, 17, 8, 27, 13, 19, 7, 12, 6, 11, 10
+ };
+ unsigned int u = i;
+ unsigned int bit = u & -u;
+ return table[(bit * 0x077cb531U) >> 27] - !i;
+ }
+ else
+ {
+ unsigned int j;
+ for (j = 0; j < CHAR_BIT * sizeof i; j++)
+ if (i & (1U << j))
+ return j + 1;
+ return 0;
+ }
+#endif
+}
--- /dev/null
+#define FUNC ffsl
+#define TYPE long int
+#include "ffsl.h"
--- /dev/null
+/* ffsl.h -- find the first set bit in a word.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake. */
+
+/* This file is meant to be included by ffsl.c and ffsll.c, after
+ they have defined FUNC and TYPE. */
+
+#include <string.h>
+
+#include <limits.h>
+#include <strings.h>
+
+#if !defined FUNC || !defined TYPE
+# error
+#endif
+
+int
+FUNC (TYPE i)
+{
+ int result = 0;
+ unsigned TYPE j = i;
+
+ /* GCC has __builtin_ffs, but it is limited to int. */
+ if (!i)
+ return 0;
+ while (1)
+ {
+ if ((unsigned int) j)
+ return result + ffs ((unsigned int) j);
+ j >>= CHAR_BIT * sizeof (unsigned int);
+ result += CHAR_BIT * sizeof (unsigned int);
+ }
+}
--- /dev/null
+#define FUNC ffsll
+#define TYPE long long int
+#include "ffsl.h"
return 0;
}
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+/* Return 1 if the given ACL is non-trivial.
+ Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */
+int
+aclv_nontrivial (int count, struct acl *entries)
+{
+ int i;
+
+ for (i = 0; i < count; i++)
+ {
+ struct acl *ace = &entries[i];
+
+ /* Note: If ace->a_type = USER_OBJ, ace->a_id is the st_uid from stat().
+ If ace->a_type = GROUP_OBJ, ace->a_id is the st_gid from stat().
+ We don't need to check ace->a_id in these cases. */
+ if (!(ace->a_type == USER_OBJ /* no need to check ace->a_id here */
+ || ace->a_type == GROUP_OBJ /* no need to check ace->a_id here */
+ || ace->a_type == CLASS_OBJ
+ || ace->a_type == OTHER_OBJ))
+ return 1;
+ }
+ return 0;
+}
+
+# endif
+
#elif USE_ACL && (HAVE_ACLX_GET || HAVE_STATACL) /* AIX */
/* Return 1 if the given ACL is non-trivial.
/* Linux, FreeBSD, MacOS X, IRIX, Tru64 */
int ret;
- if (HAVE_ACL_EXTENDED_FILE) /* Linux */
+ if (HAVE_ACL_EXTENDED_FILE || HAVE_ACL_EXTENDED_FILE_NOFOLLOW) /* Linux */
{
+# if HAVE_ACL_EXTENDED_FILE_NOFOLLOW
+ /* acl_extended_file_nofollow() uses lgetxattr() in order to prevent
+ unnecessary mounts, but it returns the same result as we already
+ know that NAME is not a symbolic link at this point (modulo the
+ TOCTTOU race condition). */
+ ret = acl_extended_file_nofollow (name);
+# else
/* On Linux, acl_extended_file is an optimized function: It only
makes two calls to getxattr(), one for ACL_TYPE_ACCESS, one for
ACL_TYPE_DEFAULT. */
ret = acl_extended_file (name);
+# endif
}
else /* FreeBSD, MacOS X, IRIX, Tru64 */
{
# elif HAVE_GETACL /* HP-UX */
- int count;
- struct acl_entry entries[NACLENTRIES];
-
for (;;)
{
+ int count;
+ struct acl_entry entries[NACLENTRIES];
+
count = getacl (name, 0, NULL);
if (count < 0)
- return (errno == ENOSYS || errno == EOPNOTSUPP ? 0 : -1);
+ {
+ /* ENOSYS is seen on newer HP-UX versions.
+ EOPNOTSUPP is typically seen on NFS mounts.
+ ENOTSUP was seen on Quantum StorNext file systems (cvfs). */
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+ break;
+ else
+ return -1;
+ }
if (count == 0)
return 0;
Repeat. */
}
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+
+ for (;;)
+ {
+ int count;
+ struct acl entries[NACLVENTRIES];
+
+ count = acl ((char *) name, ACL_CNT, NACLVENTRIES, entries);
+
+ if (count < 0)
+ {
+ /* EOPNOTSUPP is seen on NFS in HP-UX 11.11, 11.23.
+ EINVAL is seen on NFS in HP-UX 11.31. */
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+ break;
+ else
+ return -1;
+ }
+
+ if (count == 0)
+ return 0;
+
+ if (count > NACLVENTRIES)
+ /* If NACLVENTRIES cannot be trusted, use dynamic memory
+ allocation. */
+ abort ();
+
+ /* If there are more than 4 entries, there cannot be only the
+ four base ACL entries. */
+ if (count > 4)
+ return 1;
+
+ if (acl ((char *) name, ACL_GET, count, entries) == count)
+ return aclv_nontrivial (count, entries);
+ /* Huh? The number of ACL entries changed since the last call.
+ Repeat. */
+ }
+
+# endif
+
# elif HAVE_ACLX_GET && defined ACL_AIX_WIP /* AIX */
acl_type_t type;
extern void record_file (Hash_table *ht, char const *file,
struct stat const *stats)
- __attribute__ ((nonnull (2, 3)));
+#if defined __GNUC__ && ((__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3)
+ __attribute__ ((nonnull (2, 3)))
+#endif
+;
extern bool seen_file (Hash_table const *ht, char const *file,
struct stat const *stats);
--- /dev/null
+/* Auxiliary definitions for <float.h>.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <float.h>
+
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+const union gl_long_double_union gl_LDBL_MAX =
+ { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } };
+#elif defined __i386__
+const union gl_long_double_union gl_LDBL_MAX =
+ { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } };
+#else
+/* This declaration is solely to ensure that after preprocessing
+ this file is never empty. */
+typedef int dummy;
+#endif
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
-#ifndef _GL_FLOAT_H
-#define _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
+#define _@GUARD_PREFIX@_FLOAT_H
/* 'long double' properties. */
+
#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
/* Number of mantissa units, in base FLT_RADIX. */
# undef LDBL_MANT_DIG
# define LDBL_MAX_10_EXP 4932
#endif
-#endif /* _GL_FLOAT_H */
-#endif /* _GL_FLOAT_H */
+/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
+ precision in the compiler but 64 bits of precision at runtime. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>. */
+#if defined __i386__ && defined __FreeBSD__
+/* Number of mantissa units, in base FLT_RADIX. */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 64
+/* Number of decimal digits that is sufficient for representing a number. */
+# undef LDBL_DIG
+# define LDBL_DIG 18
+/* x-1 where x is the smallest representable number > 1. */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP 16384
+/* Minimum positive normalized number. */
+# undef LDBL_MIN
+# define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */
+/* Maximum representable finite number. */
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
+ But the largest literal that GCC allows us to write is
+ 0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }.
+ So, define it like this through a reference to an external variable
+
+ const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 };
+ extern const long double LDBL_MAX;
+
+ Unfortunately, this is not a constant expression. */
+union gl_long_double_union
+ {
+ struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd;
+ long double ld;
+ };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+/* Minimum e such that 10^e is in the range of normalized numbers. */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers. */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
+ wrong. */
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
+ It is not easy to define:
+ #define LDBL_MAX 1.79769313486231580793728971405302307166e308L
+ is too small, whereas
+ #define LDBL_MAX 1.79769313486231580793728971405302307167e308L
+ is too large. Apparently a bug in GCC decimal-to-binary conversion.
+ Also, I can't get values larger than
+ #define LDBL63 ((long double) (1ULL << 63))
+ #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL)
+ which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }.
+ So, define it like this through a reference to an external variable
+
+ const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL };
+ extern const long double LDBL_MAX;
+
+ or through a pointer cast
+
+ #define LDBL_MAX \
+ (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL })
+
+ Unfortunately, this is not a constant expression, and the latter expression
+ does not work well when GCC is optimizing.. */
+union gl_long_double_union
+ {
+ struct { double hi; double lo; } dd;
+ long double ld;
+ };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+#endif
+
+/* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong.
+ On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON
+ are wrong. */
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 106
+# if defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */
+# endif
+#endif
+
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+/* If the user's config.h happens to include <stdio.h>, let it include only
+ the system's <stdio.h> here, so that orig_fopen doesn't recurse to
+ rpl_fopen. */
+#define __need_FILE
#include <config.h>
/* Get the original definition of fopen. It might be defined as a macro. */
-#define __need_FILE
#include <stdio.h>
#undef __need_FILE
fp->_wcount = 0;
fp->_ungetc_count = 0;
return 0;
+# elif defined __minix /* Minix */
+ fp->_ptr = fp->_buf;
+ if (fp->_ptr != NULL)
+ fp->_count = 0;
+ return 0;
# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
fp->_ptr = fp->_base;
if (fp->_ptr != NULL)
return (fp_->_flags & (__SRW | __SRD)) != 0;
#elif defined __EMX__ /* emx+gcc */
return (fp->_flags & (_IORW | _IOREAD)) != 0;
+#elif defined __minix /* Minix */
+ return (fp->_flags & _IOREAD) != 0;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
return (fp->_flag & (_IORW | _IOREAD)) != 0;
#elif defined __QNX__ /* QNX */
/* equivalent to
(fp->_ungetc_count == 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount) */
return (fp->_rcount > 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount);
+#elif defined __minix /* Minix */
+ if ((fp_->_flags & _IOWRITING) != 0)
+ return 0;
+ return fp_->_count;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
if ((fp_->_flag & _IOWRT) != 0)
return 0;
return (fp_->_flags & __SRD) != 0;
# elif defined __EMX__ /* emx+gcc */
return (fp->_flags & _IOREAD) != 0;
+# elif defined __minix /* Minix */
+ return (fp->_flags & _IOREADING) != 0;
# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
# if defined __sun /* Solaris */
return (fp->_flag & _IOREAD) != 0 && (fp->_flag & _IOWRT) == 0;
abort ();
*sizep = fp->_rcount;
return fp->_ptr;
+#elif defined __minix /* Minix */
+ if ((fp_->_flags & _IOWRITING) != 0)
+ return NULL;
+ size = fp_->_count;
+ if (size == 0)
+ return NULL;
+ *sizep = size;
+ return (const char *) fp_->_ptr;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
if ((fp_->_flag & _IOWRT) != 0)
return NULL;
#elif defined __EMX__ /* emx+gcc */
fp->_ptr += increment;
fp->_rcount -= increment;
+#elif defined __minix /* Minix */
+ fp_->_ptr += increment;
+ fp_->_count -= increment;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
fp_->_ptr += increment;
fp_->_cnt -= increment;
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+/* If the user's config.h happens to include <stdio.h>, let it include only
+ the system's <stdio.h> here, so that orig_freopen doesn't recurse to
+ rpl_freopen. */
+#define __need_FILE
#include <config.h>
/* Get the original definition of freopen. It might be defined as a macro. */
-#define __need_FILE
#include <stdio.h>
#undef __need_FILE
&& fp->_rcount == 0
&& fp->_wcount == 0
&& fp->_ungetc_count == 0)
+#elif defined __minix /* Minix */
+ if (fp_->_ptr == fp_->_buf
+ && (fp_->_ptr == NULL || fp_->_count == 0))
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
if (fp_->_ptr == fp_->_base
&& (fp_->_ptr == NULL || fp_->_cnt == 0))
#error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib."
#endif
{
- /* We get here when an fflush() call immediately preceded this one. We
- know there are no buffers.
- POSIX requires us to modify the file descriptor's position.
- But we cannot position beyond end of file here. */
- off_t pos =
- lseek (fileno (fp),
- whence == SEEK_END && offset > 0 ? 0 : offset,
- whence);
+ /* We get here when an fflush() call immediately preceded this one (or
+ if ftell() has created buffers but no I/O has occurred on a
+ newly-opened stream). We know there are no buffers. */
+ off_t pos = lseek (fileno (fp), offset, whence);
if (pos == -1)
{
#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
fp->_flags &= ~_IO_EOF_SEEN;
+ fp->_offset = pos;
#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
# if defined __CYGWIN__
/* fp_->_offset is typed as an integer. */
fp->__offset = pos;
fp->__eof = 0;
#endif
- /* If we were not requested to position beyond end of file, we're
- done. */
- if (!(whence == SEEK_END && offset > 0))
- return 0;
+ return 0;
}
return fseeko (fp, offset, whence);
}
fp_->_flags |= __SERR;
#elif defined __EMX__ /* emx+gcc */
fp->_flags |= _IOERR;
+#elif defined __minix /* Minix */
+ fp->_flags |= _IOERR;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
fp_->_flag |= _IOERR;
#elif defined __UCLIBC__ /* uClibc */
#include <fcntl.h>
#include <string.h>
-#if HAVE_FSTATAT
+#if HAVE_FSTATAT && ! FSTATAT_ST_SIZE_ETC_BROKEN
# undef fstatat
return result;
}
-#else /* !HAVE_FSTATAT */
+#else /* ! (HAVE_FSTATAT && ! FSTATAT_ST_SIZE_ETC_BROKEN) */
+
+# if HAVE_FSTATAT
+# undef fstatat
+# define fstatat rpl_fstatat
+# endif
/* On mingw, the gnulib <sys/stat.h> defines `stat' as a function-like
macro; but using it in AT_FUNC_F2 causes compilation failure
# undef AT_FUNC_POST_FILE_PARAM_DECLS
# undef AT_FUNC_POST_FILE_ARGS
-#endif /* !HAVE_FSTATAT */
+#endif /* ! (HAVE_FSTATAT && ! FSTATAT_ST_SIZE_ETC_BROKEN) */
#include <limits.h>
#include <sys/types.h>
-#if STAT_STATVFS /* POSIX 1003.1-2001 (and later) with XSI */
+#if STAT_STATVFS || STAT_STATVFS64 /* POSIX 1003.1-2001 (and later) with XSI */
# include <sys/statvfs.h>
#else
/* Don't include backward-compatibility files unless they're needed.
? PROPAGATE_ALL_ONES (fsd.f_frsize)
: PROPAGATE_ALL_ONES (fsd.f_bsize));
+#elif defined STAT_STATVFS64 /* AIX */
+
+ struct statvfs64 fsd;
+
+ if (statvfs64 (file, &fsd) < 0)
+ return -1;
+
+ /* f_frsize isn't guaranteed to be supported. */
+ fsp->fsu_blocksize = (fsd.f_frsize
+ ? PROPAGATE_ALL_ONES (fsd.f_frsize)
+ : PROPAGATE_ALL_ONES (fsd.f_bsize));
+
#elif defined STAT_STATFS2_FS_DATA /* Ultrix */
struct fs_data fsd;
#endif
-#if (defined STAT_STATVFS \
+#if (defined STAT_STATVFS || defined STAT_STATVFS64 \
|| (!defined STAT_STATFS2_FS_DATA && !defined STAT_READ_FILSYS))
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.f_blocks);
#include <stdio.h>
#include <errno.h>
-/* Get off_t. */
-#include <unistd.h>
+#include <limits.h>
long
ftell (FILE *fp)
{
/* Use the replacement ftello function with all its workarounds. */
off_t offset = ftello (fp);
- if (offset == (long)offset)
- return (long)offset;
+ if (LONG_MIN <= offset && offset <= LONG_MAX)
+ return /* (long) */ offset;
else
{
errno = EOVERFLOW;
# define FLOAT_MIN LDBL_MIN
# define FLOAT_PREC_BOUND _GL_LDBL_PREC_BOUND
# define FTOASTR ldtoastr
-# define STRTOF strtold
+# if HAVE_C99_STRTOLD
+# define STRTOF strtold
+# endif
#elif LENGTH == 2
# define FLOAT double
# define FLOAT_DIG DBL_DIG
# define FLOAT_MIN DBL_MIN
# define FLOAT_PREC_BOUND _GL_DBL_PREC_BOUND
# define FTOASTR dtoastr
-# define STRTOF strtod
#else
# define LENGTH 1
# define FLOAT float
# define FLOAT_MIN FLT_MIN
# define FLOAT_PREC_BOUND _GL_FLT_PREC_BOUND
# define FTOASTR ftoastr
-# define STRTOF strtof
+# if HAVE_STRTOF
+# define STRTOF strtof
+# endif
#endif
/* On pre-C99 hosts, approximate strtof and strtold with strtod. This
may generate one or two extra digits, but that's better than not
- working at all. Assume that strtof works if strtold does. */
-#if LENGTH != 2 && ! HAVE_C99_STRTOLD
-# undef STRTOF
+ working at all. */
+#ifndef STRTOF
# define STRTOF strtod
#endif
# define D_INO(dp) NOT_AN_INODE_NUMBER
#endif
+/* If possible (see max_entries, below), read no more than this many directory
+ entries at a time. Without this limit (i.e., when using non-NULL
+ fts_compar), processing a directory with 4,000,000 entries requires ~1GiB
+ of memory, and handling 64M entries would require 16GiB of memory. */
+#ifndef FTS_MAX_READDIR_ENTRIES
+# define FTS_MAX_READDIR_ENTRIES 100000
+#endif
+
/* If there are more than this many entries in a directory,
and the conditions mentioned below are satisfied, then sort
the entries on inode number before any further processing. */
#ifndef FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD
# define FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD 10000
#endif
+
enum
{
_FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD = FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD
diropen (FTS const *sp, char const *dir)
{
int open_flags = (O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK
- | (ISSET (FTS_PHYSICAL) ? O_NOFOLLOW : 0));
+ | (ISSET (FTS_PHYSICAL) ? O_NOFOLLOW : 0)
+ | (ISSET (FTS_NOATIME) ? O_NOATIME : 0));
int fd = (ISSET (FTS_CWDFD)
? openat (sp->fts_cwd_fd, dir, open_flags)
early, doing it here saves us the trouble of ensuring
later (where it'd be messier) that "." can in fact
be opened. If not, revert to FTS_NOCHDIR mode. */
- int fd = open (".", O_SEARCH);
+ int fd = open (".",
+ O_SEARCH | (ISSET (FTS_NOATIME) ? O_NOATIME : 0));
if (fd < 0)
{
/* Even if `.' is unreadable, don't revert to FTS_NOCHDIR mode
/* Move to the next node on this level. */
next: tmp = p;
+
+ /* If we have so many directory entries that we're reading them
+ in batches, and we've reached the end of the current batch,
+ read in a new batch. */
+ if (p->fts_link == NULL && p->fts_parent->fts_dirp)
+ {
+ p = tmp->fts_parent;
+ sp->fts_cur = p;
+ sp->fts_path[p->fts_pathlen] = '\0';
+
+ if ((p = fts_build (sp, BREAD)) == NULL)
+ {
+ if (ISSET(FTS_STOP))
+ return NULL;
+ goto cd_dot_dot;
+ }
+
+ free(tmp);
+ goto name;
+ }
+
if ((p = p->fts_link) != NULL) {
sp->fts_cur = p;
free(tmp);
}
return p;
}
+cd_dot_dot:
/* Move up to the parent node. */
p = tmp->fts_parent;
st->st_mode = type;
}
+#define closedir_and_clear(dirp) \
+ do \
+ { \
+ closedir (dirp); \
+ dirp = NULL; \
+ } \
+ while (0)
+
+#define fts_opendir(file, Pdir_fd) \
+ opendirat((! ISSET(FTS_NOCHDIR) && ISSET(FTS_CWDFD) \
+ ? sp->fts_cwd_fd : AT_FDCWD), \
+ file, \
+ (((ISSET(FTS_PHYSICAL) \
+ && ! (ISSET(FTS_COMFOLLOW) \
+ && cur->fts_level == FTS_ROOTLEVEL)) \
+ ? O_NOFOLLOW : 0) \
+ | (ISSET (FTS_NOATIME) ? O_NOATIME : 0)), \
+ Pdir_fd)
+
/*
* This is the tricky part -- do not casually change *anything* in here. The
* idea is to build the linked list of entries that are used by fts_children
internal_function
fts_build (register FTS *sp, int type)
{
- register struct dirent *dp;
register FTSENT *p, *head;
register size_t nitems;
- FTSENT *cur, *tail;
- DIR *dirp;
+ FTSENT *tail;
void *oldaddr;
int saved_errno;
bool descend;
size_t len, maxlen, new_len;
char *cp;
int dir_fd;
+ FTSENT *cur = sp->fts_cur;
+ bool continue_readdir = !!cur->fts_dirp;
- /* Set current node pointer. */
- cur = sp->fts_cur;
-
- /*
- * Open the directory for reading. If this fails, we're done.
- * If being called from fts_read, set the fts_info field.
- */
-#if defined FTS_WHITEOUT && 0
- if (ISSET(FTS_WHITEOUT))
- oflag = DTF_NODUP|DTF_REWIND;
+ /* When cur->fts_dirp is non-NULL, that means we should
+ continue calling readdir on that existing DIR* pointer
+ rather than opening a new one. */
+ if (continue_readdir)
+ {
+ DIR *dp = cur->fts_dirp;
+ dir_fd = dirfd (dp);
+ if (dir_fd < 0)
+ {
+ closedir_and_clear (cur->fts_dirp);
+ if (type == BREAD)
+ {
+ cur->fts_info = FTS_DNR;
+ cur->fts_errno = errno;
+ }
+ return NULL;
+ }
+ }
else
- oflag = DTF_HIDEW|DTF_NODUP|DTF_REWIND;
-#else
-# define __opendir2(file, flag) \
- opendirat((! ISSET(FTS_NOCHDIR) && ISSET(FTS_CWDFD) \
- ? sp->fts_cwd_fd : AT_FDCWD), \
- file, \
- ((ISSET(FTS_PHYSICAL) \
- && ! (ISSET(FTS_COMFOLLOW) \
- && cur->fts_level == FTS_ROOTLEVEL)) \
- ? O_NOFOLLOW : 0), \
- &dir_fd)
-#endif
- if ((dirp = __opendir2(cur->fts_accpath, oflag)) == NULL) {
- if (type == BREAD) {
- cur->fts_info = FTS_DNR;
- cur->fts_errno = errno;
- }
- return (NULL);
- }
- /* Rather than calling fts_stat for each and every entry encountered
- in the readdir loop (below), stat each directory only right after
- opening it. */
- if (cur->fts_info == FTS_NSOK)
- cur->fts_info = fts_stat(sp, cur, false);
- else if (sp->fts_options & FTS_TIGHT_CYCLE_CHECK) {
+ {
+ /* Open the directory for reading. If this fails, we're done.
+ If being called from fts_read, set the fts_info field. */
+ if ((cur->fts_dirp = fts_opendir(cur->fts_accpath, &dir_fd)) == NULL)
+ {
+ if (type == BREAD)
+ {
+ cur->fts_info = FTS_DNR;
+ cur->fts_errno = errno;
+ }
+ return NULL;
+ }
+ /* Rather than calling fts_stat for each and every entry encountered
+ in the readdir loop (below), stat each directory only right after
+ opening it. */
+ if (cur->fts_info == FTS_NSOK)
+ cur->fts_info = fts_stat(sp, cur, false);
+ else if (sp->fts_options & FTS_TIGHT_CYCLE_CHECK)
+ {
/* Now read the stat info again after opening a directory to
- * reveal eventual changes caused by a submount triggered by
- * the traversal. But do it only for utilities which use
- * FTS_TIGHT_CYCLE_CHECK. Therefore, only find and du
- * benefit/suffer from this feature for now.
- */
+ reveal eventual changes caused by a submount triggered by
+ the traversal. But do it only for utilities which use
+ FTS_TIGHT_CYCLE_CHECK. Therefore, only find and du
+ benefit/suffer from this feature for now. */
LEAVE_DIR (sp, cur, "4");
fts_stat (sp, cur, false);
- if (! enter_dir (sp, cur)) {
- __set_errno (ENOMEM);
- return NULL;
- }
- }
+ if (! enter_dir (sp, cur))
+ {
+ __set_errno (ENOMEM);
+ return NULL;
+ }
+ }
+ }
+
+ /* Maximum number of readdir entries to read at one time. This
+ limitation is to avoid reading millions of entries into memory
+ at once. When an fts_compar function is specified, we have no
+ choice: we must read all entries into memory before calling that
+ function. But when no such function is specified, we can read
+ entries in batches that are large enough to help us with inode-
+ sorting, yet not so large that we risk exhausting memory. */
+ size_t max_entries = (sp->fts_compar == NULL
+ ? FTS_MAX_READDIR_ENTRIES : SIZE_MAX);
/*
* Nlinks is the number of possible entries of type directory in the
* needed sorted entries or stat information, they had better be
* checking FTS_NS on the returned nodes.
*/
- if (nlinks || type == BREAD) {
+ if (continue_readdir)
+ {
+ /* When resuming a short readdir run, we already have
+ the required dirp and dir_fd. */
+ descend = true;
+ }
+ else if (nlinks || type == BREAD) {
if (ISSET(FTS_CWDFD))
{
dir_fd = dup (dir_fd);
cur->fts_errno = errno;
cur->fts_flags |= FTS_DONTCHDIR;
descend = false;
- closedir(dirp);
+ closedir_and_clear(cur->fts_dirp);
if (ISSET(FTS_CWDFD) && 0 <= dir_fd)
close (dir_fd);
- dirp = NULL;
+ cur->fts_dirp = NULL;
} else
descend = true;
} else
/* Read the directory, attaching each entry to the `link' pointer. */
doadjust = false;
- for (head = tail = NULL, nitems = 0; dirp && (dp = readdir(dirp));) {
+ head = NULL;
+ tail = NULL;
+ nitems = 0;
+ while (cur->fts_dirp) {
bool is_dir;
-
+ struct dirent *dp = readdir(cur->fts_dirp);
+ if (dp == NULL)
+ break;
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
continue;
mem1: saved_errno = errno;
free(p);
fts_lfree(head);
- closedir(dirp);
+ closedir_and_clear(cur->fts_dirp);
cur->fts_info = FTS_ERR;
SET(FTS_STOP);
__set_errno (saved_errno);
*/
free(p);
fts_lfree(head);
- closedir(dirp);
+ closedir_and_clear(cur->fts_dirp);
cur->fts_info = FTS_ERR;
SET(FTS_STOP);
__set_errno (ENAMETOOLONG);
p->fts_parent = sp->fts_cur;
p->fts_pathlen = new_len;
-#if defined FTS_WHITEOUT && 0
- if (dp->d_type == DT_WHT)
- p->fts_flags |= FTS_ISW;
-#endif
/* Store dirent.d_ino, in case we need to sort
entries before processing them. */
p->fts_statp->st_ino = D_INO (dp);
tail = p;
}
++nitems;
+ if (max_entries <= nitems) {
+ /* When there are too many dir entries, leave
+ fts_dirp open, so that a subsequent fts_read
+ can take up where we leave off. */
+ goto break_without_closedir;
+ }
}
- if (dirp)
- closedir(dirp);
+
+ if (cur->fts_dirp)
+ closedir_and_clear(cur->fts_dirp);
+
+ break_without_closedir:
/*
* If realloc() changed the address of the file name, adjust the
* to an empty directory, we wind up here with no other way back. If
* can't get back, we're done.
*/
- if (descend && (type == BCHILD || !nitems) &&
+ if (!continue_readdir && descend && (type == BCHILD || !nitems) &&
(cur->fts_level == FTS_ROOTLEVEL
? RESTORE_INITIAL_CWD(sp)
: fts_safe_changedir(sp, cur->fts_parent, -1, ".."))) {
int fd = i_ring_pop (&fd_w);
if (0 <= fd)
{
- int parent_fd = openat (cwd_fd, "..", O_SEARCH);
+ int parent_fd = openat (cwd_fd, "..", O_SEARCH | O_NOATIME);
if (parent_fd < 0)
{
// Warn?
if (p->fts_level == FTS_ROOTLEVEL && ISSET(FTS_COMFOLLOW))
follow = true;
-#if defined FTS_WHITEOUT && 0
- /* check for whiteout */
- if (p->fts_flags & FTS_ISW) {
- memset(sbp, '\0', sizeof (*sbp));
- sbp->st_mode = S_IFWHT;
- return (FTS_W);
- }
-#endif
-
/*
* If doing a logical walk, or application requested FTS_FOLLOW, do
* a stat(2). If that fails, check for a non-existent symlink. If
p->fts_fts = sp;
p->fts_path = sp->fts_path;
p->fts_errno = 0;
+ p->fts_dirp = NULL;
p->fts_flags = 0;
p->fts_instr = FTS_NOINSTR;
p->fts_number = 0;
/* Free a linked list of structures. */
while ((p = head)) {
head = head->fts_link;
+ if (p->fts_dirp)
+ closedir (p->fts_dirp);
free(p);
}
}
# include <stddef.h>
# include <sys/types.h>
+# include <dirent.h>
# include <sys/stat.h>
# include "i-ring.h"
dirent.d_type data. */
# define FTS_DEFER_STAT 0x0400
-# define FTS_OPTIONMASK 0x07ff /* valid user option mask */
+# define FTS_NOATIME 0x0800 /* use O_NOATIME during traversal */
+
+# define FTS_OPTIONMASK 0x0fff /* valid user option mask */
# define FTS_NAMEONLY 0x1000 /* (private) child names only */
# define FTS_STOP 0x2000 /* (private) unrecoverable error */
struct _ftsent *fts_cycle; /* cycle node */
struct _ftsent *fts_parent; /* parent directory */
struct _ftsent *fts_link; /* next file in directory */
+ DIR *fts_dirp; /* Dir pointer for any directory
+ containing more entries than we
+ read at one time. */
long fts_number; /* local numeric value */
void *fts_pointer; /* local address value */
char *fts_accpath; /* access file name */
return (fp_->_flags & (__SRW | __SWR)) != 0;
#elif defined __EMX__ /* emx+gcc */
return (fp->_flags & (_IORW | _IOWRT)) != 0;
+#elif defined __minix /* Minix */
+ return (fp->_flags & _IOWRITE) != 0;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
return (fp->_flag & (_IORW | _IOWRT)) != 0;
#elif defined __QNX__ /* QNX */
return (fp_->_flags & __SWR) != 0;
#elif defined __EMX__ /* emx+gcc */
return (fp->_flags & _IOWRT) != 0;
+#elif defined __minix /* Minix */
+ return (fp->_flags & _IOWRITING) != 0;
#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
return (fp->_flag & _IOWRT) != 0;
#elif defined __UCLIBC__ /* uClibc */
# endif
#endif
-#include <limits.h>
-
#ifndef MAX
# define MAX(a, b) ((a) < (b) ? (b) : (a))
#endif
# define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
+#include "pathmax.h"
+
+/* In this file, PATH_MAX only serves as a threshold for choosing among two
+ algorithms. */
#ifndef PATH_MAX
-# ifdef MAXPATHLEN
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 1024
-# endif
+# define PATH_MAX 8192
#endif
#if D_INO_IN_DIRENT
# undef getcwd
dir = getcwd (buf, size);
- if (dir)
+ if (dir || (size && errno == ERANGE))
return dir;
/* Solaris getcwd (NULL, 0) fails with errno == EINVAL, but it has
|| !strchr (optstring, argv[d->optind][1])))))
{
char *nameend;
+ unsigned int namelen;
const struct option *p;
const struct option *pfound = NULL;
+ struct option_list
+ {
+ const struct option *p;
+ struct option_list *next;
+ } *ambig_list = NULL;
int exact = 0;
- int ambig = 0;
int indfound = -1;
int option_index;
for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
/* Do nothing. */ ;
+ namelen = nameend - d->__nextchar;
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+ if (!strncmp (p->name, d->__nextchar, namelen))
{
- if ((unsigned int) (nameend - d->__nextchar)
- == (unsigned int) strlen (p->name))
+ if (namelen == (unsigned int) strlen (p->name))
{
/* Exact match found. */
pfound = p;
|| pfound->has_arg != p->has_arg
|| pfound->flag != p->flag
|| pfound->val != p->val)
- /* Second or later nonexact match found. */
- ambig = 1;
+ {
+ /* Second or later nonexact match found. */
+ struct option_list *newp = malloc (sizeof (*newp));
+ newp->p = p;
+ newp->next = ambig_list;
+ ambig_list = newp;
+ }
}
- if (ambig && !exact)
+ if (ambig_list != NULL && !exact)
{
if (print_errors)
{
+ struct option_list first;
+ first.p = pfound;
+ first.next = ambig_list;
+ ambig_list = &first;
+
#if defined _LIBC && defined USE_IN_LIBIO
- char *buf;
+ char *buf = NULL;
+ size_t buflen = 0;
- if (__asprintf (&buf, _("%s: option '%s' is ambiguous\n"),
- argv[0], argv[d->optind]) >= 0)
+ FILE *fp = open_memstream (&buf, &buflen);
+ if (fp != NULL)
{
- _IO_flockfile (stderr);
+ fprintf (fp,
+ _("%s: option '%s' is ambiguous; possibilities:"),
+ argv[0], argv[d->optind]);
- int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
- ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ do
+ {
+ fprintf (fp, " '--%s'", ambig_list->p->name);
+ ambig_list = ambig_list->next;
+ }
+ while (ambig_list != NULL);
- __fxprintf (NULL, "%s", buf);
+ fputc_unlocked ('\n', fp);
- ((_IO_FILE *) stderr)->_flags2 = old_flags2;
- _IO_funlockfile (stderr);
+ if (__builtin_expect (fclose (fp) != EOF, 1))
+ {
+ _IO_flockfile (stderr);
- free (buf);
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+ __fxprintf (NULL, "%s", buf);
+
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
+ free (buf);
+ }
}
#else
- fprintf (stderr, _("%s: option '%s' is ambiguous\n"),
+ fprintf (stderr,
+ _("%s: option '%s' is ambiguous; possibilities:"),
argv[0], argv[d->optind]);
+ do
+ {
+ fprintf (stderr, " '--%s'", ambig_list->p->name);
+ ambig_list = ambig_list->next;
+ }
+ while (ambig_list != NULL);
+
+ fputc ('\n', stderr);
#endif
}
d->__nextchar += strlen (d->__nextchar);
return '?';
}
+ while (ambig_list != NULL)
+ {
+ struct option_list *pn = ambig_list->next;
+ free (ambig_list);
+ ambig_list = pn;
+ }
+
if (pfound != NULL)
{
option_index = indfound;
int indfound = 0;
int option_index;
+ if (longopts == NULL)
+ goto no_longs;
+
/* This is an option that requires an argument. */
if (*d->__nextchar != '\0')
{
}
return pfound->val;
}
- d->__nextchar = NULL;
- return 'W'; /* Let the application handle it. */
+
+ no_longs:
+ d->__nextchar = NULL;
+ return 'W'; /* Let the application handle it. */
}
if (temp[1] == ':')
{
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_GETOPT_H
+#ifndef _@GUARD_PREFIX@_GETOPT_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# undef _GL_SYSTEM_GETOPT
#endif
-#ifndef _GL_GETOPT_H
+#ifndef _@GUARD_PREFIX@_GETOPT_H
#ifndef __need_getopt
-# define _GL_GETOPT_H 1
+# define _@GUARD_PREFIX@_GETOPT_H 1
#endif
/* Standalone applications should #define __GETOPT_PREFIX to an
/* Make sure we later can get all the definitions and declarations. */
#undef __need_getopt
-#endif /* getopt.h */
-#endif /* getopt.h */
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
/* ========================================================================= */
+#if USE_POSIX_THREADS
+
+#include <pthread.h>
+
+#ifdef PTW32_VERSION
+
+const gl_thread_t gl_null_thread /* = { .p = NULL } */;
+
+#endif
+
+#endif
+
+/* ========================================================================= */
+
#if USE_WIN32_THREADS
#include <process.h>
current = gl_thread_self ();
extern gl_thread_t gl_thread_self (void);
+ Getting a reference to the current thread as a pointer, for debugging:
+ ptr = gl_thread_self_pointer ();
+ extern void * gl_thread_self_pointer (void);
+
Terminating the current thread:
gl_thread_exit (return_value);
- extern void gl_thread_exit (void *return_value) __attribute__ ((noreturn));
+ extern _Noreturn void gl_thread_exit (void *return_value);
Requesting custom code to be executed at fork() time(not supported on all
platforms):
(pthread_in_use () ? pthread_sigmask (HOW, SET, OSET) : 0)
# define glthread_join(THREAD, RETVALP) \
(pthread_in_use () ? pthread_join (THREAD, RETVALP) : 0)
-# define gl_thread_self() \
- (pthread_in_use () ? (void *) pthread_self () : NULL)
+# ifdef PTW32_VERSION
+ /* In pthreads-win32, pthread_t is a struct with a pointer field 'p' and
+ other fields. */
+# define gl_thread_self() \
+ (pthread_in_use () ? pthread_self () : gl_null_thread)
+# define gl_thread_self_pointer() \
+ (pthread_in_use () ? pthread_self ().p : NULL)
+extern const gl_thread_t gl_null_thread;
+# else
+# define gl_thread_self() \
+ (pthread_in_use () ? pthread_self () : (pthread_t) NULL)
+# define gl_thread_self_pointer() \
+ (pthread_in_use () ? (void *) pthread_self () : NULL)
+# endif
# define gl_thread_exit(RETVAL) \
(pthread_in_use () ? pthread_exit (RETVAL) : 0)
(pth_in_use () && !pth_join (THREAD, RETVALP) ? errno : 0)
# define gl_thread_self() \
(pth_in_use () ? (void *) pth_self () : NULL)
+# define gl_thread_self_pointer() \
+ gl_thread_self ()
# define gl_thread_exit(RETVAL) \
(pth_in_use () ? pth_exit (RETVAL) : 0)
# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
(thread_in_use () ? thr_join (THREAD, NULL, RETVALP) : 0)
# define gl_thread_self() \
(thread_in_use () ? (void *) thr_self () : NULL)
+# define gl_thread_self_pointer() \
+ gl_thread_self ()
# define gl_thread_exit(RETVAL) \
(thread_in_use () ? thr_exit (RETVAL) : 0)
# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
glthread_join_func (THREAD, RETVALP)
# define gl_thread_self() \
gl_thread_self_func ()
+# define gl_thread_self_pointer() \
+ gl_thread_self ()
# define gl_thread_exit(RETVAL) \
gl_thread_exit_func (RETVAL)
# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
# define glthread_sigmask(HOW, SET, OSET) 0
# define glthread_join(THREAD, RETVALP) 0
# define gl_thread_self() 0
+# define gl_thread_self_pointer() \
+ ((void *) gl_thread_self ())
# define gl_thread_exit(RETVAL) 0
# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_ICONV_H
+#ifndef _@GUARD_PREFIX@_ICONV_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_ICONV_H@
-#ifndef _GL_ICONV_H
-#define _GL_ICONV_H
+#ifndef _@GUARD_PREFIX@_ICONV_H
+#define _@GUARD_PREFIX@_ICONV_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_ICONV_H */
-#endif /* _GL_ICONV_H */
+#endif /* _@GUARD_PREFIX@_ICONV_H */
+#endif /* _@GUARD_PREFIX@_ICONV_H */
#include <limits.h>
-/* Return a integer value, converted to the same type as the integer
- expression E after integer type promotion. V is the unconverted value.
- E should not have side effects. */
-#define _GL_INT_CONVERT(e, v) ((e) - (e) + (v))
+/* Return an integer value, converted to the same type as the integer
+ expression E after integer type promotion. V is the unconverted value. */
+#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */
-#define _GL_INT_NEGATE_CONVERT(e, v) ((e) - (e) - (v))
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
/* Return 1 if the integer expression E, after integer promotion, has
- a signed type. E should not have side effects. */
+ a signed type. */
#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
/* Return 1 if the expression A <op> B would overflow,
where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
assuming MIN and MAX are the minimum and maximum for the result type.
-
- This macro assumes that A | B is a valid integer if both A and B are,
- which is true of all known practical hosts. If this is a problem
- for you, please let us know how to fix it for your host. */
+ Arguments should be free of side effects. */
#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
op_result_overflow (a, b, \
- _GL_INT_MINIMUM ((a) | (b)), \
- _GL_INT_MAXIMUM ((a) | (b)))
+ _GL_INT_MINIMUM (0 * (b) + (a)), \
+ _GL_INT_MAXIMUM (0 * (b) + (a)))
#endif /* _GL_INTPROPS_H */
#include <float.h>
-int gl_isinff (float x)
+int
+gl_isinff (float x)
{
return x < -FLT_MAX || x > FLT_MAX;
}
-int gl_isinfd (double x)
+int
+gl_isinfd (double x)
{
return x < -DBL_MAX || x > DBL_MAX;
}
-int gl_isinfl (long double x)
+int
+gl_isinfl (long double x)
{
return x < -LDBL_MAX || x > LDBL_MAX;
}
* <http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html>
*/
-#ifndef _GL_LANGINFO_H
+#ifndef _@GUARD_PREFIX@_LANGINFO_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_LANGINFO_H@
#endif
-#ifndef _GL_LANGINFO_H
-#define _GL_LANGINFO_H
+#ifndef _@GUARD_PREFIX@_LANGINFO_H
+#define _@GUARD_PREFIX@_LANGINFO_H
#if !@HAVE_LANGINFO_H@
#endif
-#endif /* _GL_LANGINFO_H */
-#endif /* _GL_LANGINFO_H */
+#endif /* _@GUARD_PREFIX@_LANGINFO_H */
+#endif /* _@GUARD_PREFIX@_LANGINFO_H */
int
rpl_link (char const *file1, char const *file2)
{
+ size_t len1;
+ size_t len2;
+ struct stat st;
+
+ /* Don't allow IRIX to dereference dangling file2 symlink. */
+ if (!lstat (file2, &st))
+ {
+ errno = EEXIST;
+ return -1;
+ }
+
/* Reject trailing slashes on non-directories. */
- size_t len1 = strlen (file1);
- size_t len2 = strlen (file2);
+ len1 = strlen (file1);
+ len2 = strlen (file2);
if ((len1 && file1[len1 - 1] == '/')
|| (len2 && file2[len2 - 1] == '/'))
{
If stat() fails, then link() should fail for the same reason
(although on Solaris 9, link("file/","oops") mistakenly
succeeds); if stat() succeeds, require a directory. */
- struct stat st;
if (stat (file1, &st))
return -1;
if (!S_ISDIR (st.st_mode))
{
/* Fix Cygwin 1.5.x bug where link("a","b/.") creates file "b". */
char *dir = strdup (file2);
- struct stat st;
char *p;
if (!dir)
return -1;
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_LOCALE_H
+#ifndef _@GUARD_PREFIX@_LOCALE_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
-#ifndef _GL_LOCALE_H
-#define _GL_LOCALE_H
+#ifndef _@GUARD_PREFIX@_LOCALE_H
+#define _@GUARD_PREFIX@_LOCALE_H
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
# endif
#endif
-#endif /* _GL_LOCALE_H */
-#endif /* _GL_LOCALE_H */
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
/* written by Jim Meyering */
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to
+ rpl_lstat. */
+#define __need_system_sys_stat_h
#include <config.h>
#if !HAVE_LSTAT
#else /* HAVE_LSTAT */
/* Get the original definition of lstat. It might be defined as a macro. */
-# define __need_system_sys_stat_h
# include <sys/types.h>
# include <sys/stat.h>
# undef __need_system_sys_stat_h
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_MATH_H
+#ifndef _@GUARD_PREFIX@_MATH_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
-#ifndef _GL_MATH_H
-#define _GL_MATH_H
+#ifndef _@GUARD_PREFIX@_MATH_H
+#define _@GUARD_PREFIX@_MATH_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_MATH_H */
-#endif /* _GL_MATH_H */
+#endif /* _@GUARD_PREFIX@_MATH_H */
+#endif /* _@GUARD_PREFIX@_MATH_H */
const time_t limit = 24 * 24 * 60 * 60;
time_t seconds = requested_delay->tv_sec;
struct timespec intermediate;
- intermediate.tv_nsec = 0;
+ intermediate.tv_nsec = requested_delay->tv_nsec;
while (limit < seconds)
{
if (result)
{
if (remaining_delay)
- {
- remaining_delay->tv_sec += seconds;
- remaining_delay->tv_nsec += requested_delay->tv_nsec;
- if (BILLION <= requested_delay->tv_nsec)
- {
- remaining_delay->tv_sec++;
- remaining_delay->tv_nsec -= BILLION;
- }
- }
+ remaining_delay->tv_sec += seconds;
return result;
}
+ intermediate.tv_nsec = 0;
}
intermediate.tv_sec = seconds;
- intermediate.tv_nsec = requested_delay->tv_nsec;
return nanosleep (&intermediate, remaining_delay);
}
}
tv_delay.tv_usec = (ts_delay->tv_nsec + 999) / 1000;
if (tv_delay.tv_usec == 1000000)
{
- time_t t1 = tv_delay.tv_sec + 1;
- if (t1 < tv_delay.tv_sec)
+ if (tv_delay.tv_sec == TYPE_MAXIMUM (time_t))
tv_delay.tv_usec = 1000000 - 1; /* close enough */
else
{
- tv_delay.tv_sec = t1;
+ tv_delay.tv_sec++;
tv_delay.tv_usec = 0;
}
}
It is intended to provide definitions and prototypes needed by an
application. */
-#ifndef _GL_NETDB_H
+#ifndef _@GUARD_PREFIX@_NETDB_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_NETDB_H
-#define _GL_NETDB_H
+#ifndef _@GUARD_PREFIX@_NETDB_H
+#define _@GUARD_PREFIX@_NETDB_H
/* Get <netdb.h> definitions such as 'socklen_t' on IRIX 6.5 and OSF/1 4.0 and
'struct hostent' on MinGW. */
#endif
-#endif /* _GL_NETDB_H */
-#endif /* _GL_NETDB_H */
+#endif /* _@GUARD_PREFIX@_NETDB_H */
+#endif /* _@GUARD_PREFIX@_NETDB_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_NETINET_IN_H
+#ifndef _@GUARD_PREFIX@_NETINET_IN_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_NETINET_IN_H
-#define _GL_NETINET_IN_H
+#ifndef _@GUARD_PREFIX@_NETINET_IN_H
+#define _@GUARD_PREFIX@_NETINET_IN_H
#if !@HAVE_NETINET_IN_H@
#endif
-#endif /* _GL_NETINET_IN_H */
-#endif /* _GL_NETINET_IN_H */
+#endif /* _@GUARD_PREFIX@_NETINET_IN_H */
+#endif /* _@GUARD_PREFIX@_NETINET_IN_H */
# include <libio/iolibio.h>
# endif
-# ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-# define __attribute__(Spec) /* empty */
-# endif
-# endif
-
-static void
-__attribute__ ((noreturn))
+static _Noreturn void
print_and_abort (void)
{
/* Don't change any of these strings. Yes, it would be possible to add
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+ the system's <fcntl.h> here, so that orig_open doesn't recurse to
+ rpl_open. */
+#define __need_system_fcntl_h
#include <config.h>
/* Get the original definition of open. It might be defined as a macro. */
-#define __need_system_fcntl_h
#include <fcntl.h>
-#undef __need_system_fcntl_h
#include <sys/types.h>
+#undef __need_system_fcntl_h
static inline int
orig_open (const char *filename, int flags, mode_t mode)
error (exit_failure, errnum,
_("unable to record current working directory"));
#endif
- /* The `noreturn' attribute cannot be applied to error, since it returns
+ /* _Noreturn cannot be applied to error, since it returns
when its first argument is 0. To help compilers understand that this
function does not return, call abort. Also, the abort is a
safety feature if exit_failure is 0 (which shouldn't happen). */
#include <unistd.h>
#include <stdbool.h>
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-#endif
-
#if !HAVE_OPENAT
int openat_permissive (int fd, char const *file, int flags, mode_t mode,
#endif
-void openat_restore_fail (int) _GL_ATTRIBUTE_NORETURN;
-void openat_save_fail (int) _GL_ATTRIBUTE_NORETURN;
+_Noreturn void openat_restore_fail (int);
+_Noreturn void openat_save_fail (int);
/* Using these function names makes application code
slightly more readable than it would be with
#ifndef _PATHMAX_H
# define _PATHMAX_H
+/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename,
+ including the terminating NUL byte.
+ <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html>
+ PATH_MAX is not defined on systems which have no limit on filename length,
+ such as GNU/Hurd.
+
+ This file does *not* define PATH_MAX always. Programs that use this file
+ can handle the GNU/Hurd case in several ways:
+ - Either with a package-wide handling, or with a per-file handling,
+ - Either through a
+ #ifdef PATH_MAX
+ or through a fallback like
+ #ifndef PATH_MAX
+ # define PATH_MAX 8192
+ #endif
+ or through a fallback like
+ #ifndef PATH_MAX
+ # define PATH_MAX pathconf ("/", _PC_PATH_MAX)
+ #endif
+ */
+
# include <unistd.h>
# include <limits.h>
# define _POSIX_PATH_MAX 256
# endif
-# if !defined PATH_MAX && defined _PC_PATH_MAX && defined HAVE_PATHCONF
-# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \
- : pathconf ("/", _PC_PATH_MAX))
-# endif
-
/* Don't include sys/param.h if it already has been. */
# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
# include <sys/param.h>
# define PATH_MAX MAXPATHLEN
# endif
-# ifndef PATH_MAX
-# define PATH_MAX _POSIX_PATH_MAX
+# ifdef __hpux
+/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename,
+ *not* including the terminating NUL byte, and is set to 1023.
+ Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is
+ not defined at all any more. */
+# undef PATH_MAX
+# define PATH_MAX 1024
# endif
#endif /* _PATHMAX_H */
#include <stdio.h>
#include <errno.h>
+#include <stdlib.h>
#include <string.h>
+#include "strerror-override.h"
+
+/* Use the system functions, not the gnulib overrides in this file. */
+#undef fprintf
+
void
perror (const char *string)
{
- const char *errno_description = strerror (errno);
+ char stackbuf[STACKBUF_LEN];
+ int ret;
+
+ /* Our implementation guarantees that this will be a non-empty
+ string, even if it returns EINVAL; and stackbuf should be sized
+ large enough to avoid ERANGE. */
+ ret = strerror_r (errno, stackbuf, sizeof stackbuf);
+ if (ret == ERANGE)
+ abort ();
if (string != NULL && *string != '\0')
- fprintf (stderr, "%s: %s\n", string, errno_description);
+ fprintf (stderr, "%s: %s\n", string, stackbuf);
else
- fprintf (stderr, "%s\n", errno_description);
+ fprintf (stderr, "%s\n", stackbuf);
}
int
pipe (int fd[2])
{
- return _pipe (fd, 4096, _O_BINARY);
+ /* Mingw changes fd to {-1,-1} on failure, but this violates
+ http://austingroupbugs.net/view.php?id=467 */
+ int tmp[2];
+ int result = _pipe (tmp, 4096, _O_BINARY);
+ if (!result)
+ {
+ fd[0] = tmp[0];
+ fd[1] = tmp[1];
+ }
+ return result;
}
#else
int
pipe2 (int fd[2], int flags)
{
+ /* Mingw _pipe() corrupts fd on failure; also, if we succeed at
+ creating the pipe but later fail at changing fcntl, we want
+ to leave fd unchanged: http://austingroupbugs.net/view.php?id=467 */
+ int tmp[2];
+ tmp[0] = fd[0];
+ tmp[1] = fd[1];
+
#if HAVE_PIPE2
# undef pipe2
/* Try the system call first, if it exists. (We may be running with a glibc
/* Native Woe32 API. */
if (_pipe (fd, 4096, flags & ~O_NONBLOCK) < 0)
- return -1;
+ {
+ fd[0] = tmp[0];
+ fd[1] = tmp[1];
+ return -1;
+ }
/* O_NONBLOCK handling.
On native Windows platforms, O_NONBLOCK is defined by gnulib. Use the
#endif
+#if GNULIB_defined_O_NONBLOCK || \
+ !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
fail:
{
int saved_errno = errno;
close (fd[0]);
close (fd[1]);
+ fd[0] = tmp[0];
+ fd[1] = tmp[1];
errno = saved_errno;
return -1;
}
+#endif
}
if (!hEvent)
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
+restart:
handle_array[0] = hEvent;
nhandles = 1;
FD_ZERO (&rfds);
rc++;
}
+ if (!rc && timeout == INFTIM)
+ {
+ SwitchToThread();
+ goto restart;
+ }
+
return rc;
#endif
}
with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_POLL_H
+#ifndef _@GUARD_PREFIX@_POLL_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_POLL_H@
#endif
-#ifndef _GL_POLL_H
-#define _GL_POLL_H
+#ifndef _@GUARD_PREFIX@_POLL_H
+#define _@GUARD_PREFIX@_POLL_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_POLL_H */
-#endif /* _GL_POLL_H */
+#endif /* _@GUARD_PREFIX@_POLL_H */
+#endif /* _@GUARD_PREFIX@_POLL_H */
--- /dev/null
+/* pselect - synchronous I/O multiplexing
+
+ Copyright 2011 Free Software Foundation, Inc.
+
+ This file is part of gnulib.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* written by Paul Eggert */
+
+#include <config.h>
+
+#include <sys/select.h>
+
+#include <errno.h>
+#include <signal.h>
+
+/* Examine the size-NFDS file descriptor sets in RFDS, WFDS, and XFDS
+ to see whether some of their descriptors are ready for reading,
+ ready for writing, or have exceptions pending. Wait for at most
+ TIMEOUT seconds, and use signal mask SIGMASK while waiting. A null
+ pointer parameter stands for no descriptors, an infinite timeout,
+ or an unaffected signal mask. */
+
+int
+pselect (int nfds, fd_set *restrict rfds,
+ fd_set *restrict wfds, fd_set *restrict xfds,
+ struct timespec const *restrict timeout,
+ sigset_t const *restrict sigmask)
+{
+ int select_result;
+ sigset_t origmask;
+ struct timeval tv, *tvp;
+
+ if (timeout)
+ {
+ if (! (0 <= timeout->tv_nsec && timeout->tv_nsec < 1000000000))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ tv.tv_sec = timeout->tv_sec;
+ tv.tv_usec = (timeout->tv_nsec + 999) / 1000;
+ tvp = &tv;
+ }
+ else
+ tvp = NULL;
+
+ /* Signal mask munging should be atomic, but this is the best we can
+ do in this emulation. */
+ if (sigmask)
+ pthread_sigmask (SIG_SETMASK, sigmask, &origmask);
+
+ select_result = select (nfds, rfds, wfds, xfds, tvp);
+
+ if (sigmask)
+ {
+ int select_errno = errno;
+ pthread_sigmask (SIG_SETMASK, &origmask, NULL);
+ errno = select_errno;
+ }
+
+ return select_result;
+}
/* Written by Paul Eggert and Glen Lenker. */
-#ifndef _GL_PTHREAD_H_
+#ifndef _@GUARD_PREFIX@_PTHREAD_H_
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_PTHREAD_H@
#endif
-#ifndef _GL_PTHREAD_H_
-#define _GL_PTHREAD_H_
+#ifndef _@GUARD_PREFIX@_PTHREAD_H_
+#define _@GUARD_PREFIX@_PTHREAD_H_
#include <errno.h>
#include <stdlib.h>
#endif
-#endif /* _GL_PTHREAD_H_ */
-#endif /* _GL_PTHREAD_H_ */
+#endif /* _@GUARD_PREFIX@_PTHREAD_H_ */
+#endif /* _@GUARD_PREFIX@_PTHREAD_H_ */
--- /dev/null
+/* POSIX compatible signal blocking for threads.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <signal.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#if PTHREAD_SIGMASK_UNBLOCK_BUG
+# include <unistd.h>
+#endif
+
+int
+pthread_sigmask (int how, const sigset_t *new_mask, sigset_t *old_mask)
+#undef pthread_sigmask
+{
+#if HAVE_PTHREAD_SIGMASK
+ int ret = pthread_sigmask (how, new_mask, old_mask);
+# if PTHREAD_SIGMASK_INEFFECTIVE
+ if (ret == 0)
+ {
+ /* Detect whether pthread_sigmask is currently ineffective.
+ Don't cache the information: libpthread.so could be dynamically
+ loaded after the program started and after pthread_sigmask was
+ called for the first time. */
+ if (pthread_sigmask (1729, NULL, NULL) == 0)
+ {
+ /* pthread_sigmask is currently ineffective. The program is not
+ linked to -lpthread. So use sigprocmask instead. */
+ return (sigprocmask (how, new_mask, old_mask) < 0 ? errno : 0);
+ }
+ }
+# endif
+# if PTHREAD_SIGMASK_FAILS_WITH_ERRNO
+ if (ret == -1)
+ return errno;
+# endif
+# if PTHREAD_SIGMASK_UNBLOCK_BUG
+ if (ret == 0
+ && new_mask != NULL
+ && (how == SIG_UNBLOCK || how == SIG_SETMASK))
+ {
+ /* Give the OS the opportunity to raise signals that were pending before
+ the pthread_sigmask call and have now been unblocked. */
+ usleep (1);
+ }
+# endif
+ return ret;
+#else
+ int ret = sigprocmask (how, new_mask, old_mask);
+ return (ret < 0 ? errno : 0);
+#endif
+}
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_PTY_H
+#ifndef _@GUARD_PREFIX@_PTY_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_PTY_H@
#endif
-#ifndef _GL_PTY_H
-#define _GL_PTY_H
+#ifndef _@GUARD_PREFIX@_PTY_H
+#define _@GUARD_PREFIX@_PTY_H
/* Some platforms declare this in a different header than glibc. */
#if @HAVE_UTIL_H@
#endif
-#endif /* _GL_PTY_H */
-#endif /* _GL_PTY_H */
+#endif /* _@GUARD_PREFIX@_PTY_H */
+#endif /* _@GUARD_PREFIX@_PTY_H */
GNU regex allows. Include it before <regex.h>, which correctly
#undefs RE_DUP_MAX and sets it to the right value. */
#include <limits.h>
+#include <strings.h>
#include <regex.h>
#include "regex_internal.h"
typedef struct re_dfa_t re_dfa_t;
#ifndef _LIBC
-# if defined __i386__ && !defined __EMX__
-# define internal_function __attribute ((regparm (3), stdcall))
-# else
-# define internal_function
-# endif
+# define internal_function
#endif
static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
-> relocatable
-> setenv
-> malloca
- -> strerror
-> c-ctype
Macros that need to be set while compiling this file:
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+ following situations:
+ - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+ types Ctrl-Z) on some platforms: MacOS X.
+ - The process receives a signal for which a signal handler was installed
+ with sigaction() with an sa_flags field that does not contain
+ SA_RESTART.
+ - The process receives a signal for which a signal handler was installed
+ with signal() and for which no call to siginterrupt(sig,0) was done,
+ on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+ This module provides a wrapper around read() that handles EINTR. */
+
#include <stddef.h>
#ifdef __cplusplus
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+ following situations:
+ - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+ types Ctrl-Z) on some platforms: MacOS X.
+ - The process receives a signal for which a signal handler was installed
+ with sigaction() with an sa_flags field that does not contain
+ SA_RESTART.
+ - The process receives a signal for which a signal handler was installed
+ with signal() and for which no call to siginterrupt(sig,0) was done,
+ on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+ This module provides a wrapper around write() that handles EINTR. */
+
#include <stddef.h>
#define SAFE_WRITE_ERROR ((size_t) -1)
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_SCHED_H
+#ifndef _@GUARD_PREFIX@_SCHED_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SCHED_H@
#endif
-#ifndef _GL_SCHED_H
-#define _GL_SCHED_H
+#ifndef _@GUARD_PREFIX@_SCHED_H
+#define _@GUARD_PREFIX@_SCHED_H
#if !@HAVE_STRUCT_SCHED_PARAM@
# define SCHED_OTHER 0
#endif
-#endif /* _GL_SCHED_H */
-#endif /* _GL_SCHED_H */
+#endif /* _@GUARD_PREFIX@_SCHED_H */
+#endif /* _@GUARD_PREFIX@_SCHED_H */
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_SELINUX_SELINUX_H
-# define _GL_SELINUX_SELINUX_H
+#ifndef _@GUARD_PREFIX@_SELINUX_SELINUX_H
+# define _@GUARD_PREFIX@_SELINUX_SELINUX_H
# if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# endif
# endif
-#endif /* _GL_SELINUX_SELINUX_H */
+#endif /* _@GUARD_PREFIX@_SELINUX_SELINUX_H */
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_SEARCH_H
+#ifndef _@GUARD_PREFIX@_SEARCH_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SEARCH_H@
#endif
-#ifndef _GL_SEARCH_H
-#define _GL_SEARCH_H
+#ifndef _@GUARD_PREFIX@_SEARCH_H
+#define _@GUARD_PREFIX@_SEARCH_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_SEARCH_H */
-#endif /* _GL_SEARCH_H */
+#endif /* _@GUARD_PREFIX@_SEARCH_H */
+#endif /* _@GUARD_PREFIX@_SEARCH_H */
# elif HAVE_GETACL /* HP-UX */
struct stat statbuf;
- struct acl_entry entries[3];
int ret;
if (desc != -1)
if (ret < 0)
return -1;
- entries[0].uid = statbuf.st_uid;
- entries[0].gid = ACL_NSGROUP;
- entries[0].mode = (mode >> 6) & 7;
- entries[1].uid = ACL_NSUSER;
- entries[1].gid = statbuf.st_gid;
- entries[1].mode = (mode >> 3) & 7;
- entries[2].uid = ACL_NSUSER;
- entries[2].gid = ACL_NSGROUP;
- entries[2].mode = mode & 7;
+ {
+ struct acl_entry entries[3];
+
+ entries[0].uid = statbuf.st_uid;
+ entries[0].gid = ACL_NSGROUP;
+ entries[0].mode = (mode >> 6) & 7;
+ entries[1].uid = ACL_NSUSER;
+ entries[1].gid = statbuf.st_gid;
+ entries[1].mode = (mode >> 3) & 7;
+ entries[2].uid = ACL_NSUSER;
+ entries[2].gid = ACL_NSGROUP;
+ entries[2].mode = mode & 7;
- if (desc != -1)
- ret = fsetacl (desc, sizeof (entries) / sizeof (struct acl_entry), entries);
- else
- ret = setacl (name, sizeof (entries) / sizeof (struct acl_entry), entries);
+ if (desc != -1)
+ ret = fsetacl (desc, sizeof (entries) / sizeof (struct acl_entry), entries);
+ else
+ ret = setacl (name, sizeof (entries) / sizeof (struct acl_entry), entries);
+ }
if (ret < 0)
{
- if (errno == ENOSYS || errno == EOPNOTSUPP)
- return chmod_or_fchmod (name, desc, mode);
- return -1;
+ if (!(errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
+ return -1;
+
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+ {
+ struct acl entries[4];
+
+ entries[0].a_type = USER_OBJ;
+ entries[0].a_id = 0; /* irrelevant */
+ entries[0].a_perm = (mode >> 6) & 7;
+ entries[1].a_type = GROUP_OBJ;
+ entries[1].a_id = 0; /* irrelevant */
+ entries[1].a_perm = (mode >> 3) & 7;
+ entries[2].a_type = CLASS_OBJ;
+ entries[2].a_id = 0;
+ entries[2].a_perm = (mode >> 3) & 7;
+ entries[3].a_type = OTHER_OBJ;
+ entries[3].a_id = 0;
+ entries[3].a_perm = mode & 7;
+
+ ret = aclsort (sizeof (entries) / sizeof (struct acl), 1, entries);
+ if (ret > 0)
+ abort ();
+ if (ret < 0)
+ {
+ if (0)
+ return chmod_or_fchmod (name, desc, mode);
+ return -1;
+ }
+
+ ret = acl ((char *) name, ACL_SET,
+ sizeof (entries) / sizeof (struct acl), entries);
+ if (ret < 0)
+ {
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+ return chmod_or_fchmod (name, desc, mode);
+ return -1;
+ }
+ }
+# else
+ return chmod_or_fchmod (name, desc, mode);
+# endif
}
if (mode & (S_ISUID | S_ISGID | S_ISVTX))
#endif
@PRAGMA_COLUMNS@
-#if defined __need_sig_atomic_t || defined __need_sigset_t
-/* Special invocation convention inside glibc header files. */
+#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T)
+/* Special invocation convention:
+ - Inside glibc header files.
+ - On glibc systems we have a sequence of nested includes
+ <signal.h> -> <ucontext.h> -> <signal.h>.
+ In this situation, the functions are not yet declared, therefore we cannot
+ provide the C++ aliases.
+ - On glibc systems with GCC 4.3 we have a sequence of nested includes
+ <csignal> -> </usr/include/signal.h> -> <sys/ucontext.h> -> <signal.h>.
+ In this situation, some of the functions are not yet declared, therefore
+ we cannot provide the C++ aliases. */
# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
#else
/* Normal invocation convention. */
-#ifndef _GL_SIGNAL_H
+#ifndef _@GUARD_PREFIX@_SIGNAL_H
+
+#define _GL_ALREADY_INCLUDING_SIGNAL_H
+
+/* Define pid_t, uid_t.
+ Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.
+ On Solaris 10, <signal.h> includes <sys/types.h>, which eventually includes
+ us; so include <sys/types.h> now, before the second inclusion guard. */
+#include <sys/types.h>
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_SIGNAL_H@
-#ifndef _GL_SIGNAL_H
-#define _GL_SIGNAL_H
+#undef _GL_ALREADY_INCLUDING_SIGNAL_H
+
+#ifndef _@GUARD_PREFIX@_SIGNAL_H
+#define _@GUARD_PREFIX@_SIGNAL_H
+
+/* MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6 declare
+ pthread_sigmask in <pthread.h>, not in <signal.h>.
+ But avoid namespace pollution on glibc systems.*/
+#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
+ && ((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ || defined __sun) \
+ && ! defined __GLIBC__
+# include <pthread.h>
+#endif
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
-/* Define pid_t, uid_t.
- Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
-#include <sys/types.h>
-
/* On AIX, sig_atomic_t already includes volatile. C99 requires that
'volatile sig_atomic_t' ignore the extra modifier, but C89 did not.
Hence, redefine this to a non-volatile type as needed. */
#endif
+#if @GNULIB_PTHREAD_SIGMASK@
+# if @REPLACE_PTHREAD_SIGMASK@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pthread_sigmask
+# define pthread_sigmask rpl_pthread_sigmask
+# endif
+_GL_FUNCDECL_RPL (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+_GL_CXXALIAS_RPL (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# else
+# if !@HAVE_PTHREAD_SIGMASK@
+_GL_FUNCDECL_SYS (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# endif
+_GL_CXXALIAS_SYS (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# endif
+_GL_CXXALIASWARN (pthread_sigmask);
+#elif defined GNULIB_POSIXCHECK
+# undef pthread_sigmask
+# if HAVE_RAW_DECL_PTHREAD_SIGMASK
+_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - "
+ "use gnulib module pthread_sigmask for portability");
+# endif
+#endif
+
+
#if @GNULIB_SIGPROCMASK@
# if !@HAVE_POSIX_SIGNALBLOCKING@
#endif
-#endif /* _GL_SIGNAL_H */
-#endif /* _GL_SIGNAL_H */
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
#endif
#ifndef _SIGPIPE_DIE_H
#define _SIGPIPE_DIE_H
-
#ifdef __cplusplus
extern "C" {
#endif
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
-
/* Emit an error message indicating a SIGPIPE signal, and terminate the
process with an error code. */
-extern void sigpipe_die (void) _GL_ATTRIBUTE_NORETURN;
+extern _Noreturn void sigpipe_die (void);
/* Install a SIGPIPE handler that invokes PREPARE_DIE and then emits an
error message and exits. PREPARE_DIE may be NULL, meaning a no-op. */
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef _GL_SPAWN_H
+#ifndef _@GUARD_PREFIX@_SPAWN_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SPAWN_H@
#endif
-#ifndef _GL_SPAWN_H
-#define _GL_SPAWN_H
+#ifndef _@GUARD_PREFIX@_SPAWN_H
+#define _@GUARD_PREFIX@_SPAWN_H
/* Get definitions of 'struct sched_param' and 'sigset_t'.
But avoid namespace pollution on glibc systems. */
#endif
-#endif /* _GL_SPAWN_H */
-#endif /* _GL_SPAWN_H */
+#endif /* _@GUARD_PREFIX@_SPAWN_H */
+#endif /* _@GUARD_PREFIX@_SPAWN_H */
--- /dev/null
+/* macros useful in interpreting size-related values in struct stat.
+ Copyright (C) 1989, 1991-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+/*
+ Macros defined by this file (s is an rvalue of type struct stat):
+
+ DEV_BSIZE: The device blocksize. But use ST_NBLOCKSIZE instead.
+ ST_BLKSIZE(s): Preferred (in the sense of best performance) I/O blocksize
+ for the file, in bytes.
+ ST_NBLOCKS(s): Number of blocks in the file, including indirect blocks.
+ ST_NBLOCKSIZE: Size of blocks used when calculating ST_NBLOCKS.
+ */
+#ifndef STAT_SIZE_H
+#define STAT_SIZE_H
+
+/* sys/param.h may define DEV_BSIZE */
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
+
+/* Much of the remainder of this file is not indented consistently
+ with the above, in order to make it easier to see that the text
+ is almost identical to part of the system.h header in coreutils.
+*/
+/* Get or fake the disk device blocksize.
+ Usually defined by sys/param.h (if at all). */
+#if !defined DEV_BSIZE && defined BSIZE
+# define DEV_BSIZE BSIZE
+#endif
+#if !defined DEV_BSIZE && defined BBSIZE /* SGI sys/param.h */
+# define DEV_BSIZE BBSIZE
+#endif
+#ifndef DEV_BSIZE
+# define DEV_BSIZE 4096
+#endif
+
+
+
+/* Extract or fake data from a `struct stat'.
+ ST_BLKSIZE: Preferred I/O blocksize for the file, in bytes.
+ ST_NBLOCKS: Number of blocks in the file, including indirect blocks.
+ ST_NBLOCKSIZE: Size of blocks used when calculating ST_NBLOCKS. */
+#ifndef HAVE_STRUCT_STAT_ST_BLOCKS
+# define ST_BLKSIZE(statbuf) DEV_BSIZE
+ /* coreutils' fileblocks.c also uses BSIZE. */
+# if defined _POSIX_SOURCE || !defined BSIZE
+# define ST_NBLOCKS(statbuf) \
+ ((statbuf).st_size / ST_NBLOCKSIZE + ((statbuf).st_size % ST_NBLOCKSIZE != 0))
+# else
+ /* This definition calls st_blocks, which is in the fileblocks module. */
+# define ST_NBLOCKS(statbuf) \
+ (S_ISREG ((statbuf).st_mode) || S_ISDIR ((statbuf).st_mode) ? \
+ st_blocks ((statbuf).st_size) : 0)
+# endif
+#else
+/* Some systems, like Sequents, return st_blksize of 0 on pipes.
+ Also, when running `rsh hpux11-system cat any-file', cat would
+ determine that the output stream had an st_blksize of 2147421096.
+ Conversely st_blksize can be 2 GiB (or maybe even larger) with XFS
+ on 64-bit hosts. Somewhat arbitrarily, limit the `optimal' block
+ size to SIZE_MAX / 8 + 1. (Dividing SIZE_MAX by only 4 wouldn't
+ suffice, since "cat" sometimes multiplies the result by 4.) If
+ anyone knows of a system for which this limit is too small, please
+ report it as a bug in this code. */
+# define ST_BLKSIZE(statbuf) ((0 < (statbuf).st_blksize \
+ && (statbuf).st_blksize <= ((size_t)-1) / 8 + 1) \
+ ? (statbuf).st_blksize : DEV_BSIZE)
+# if defined hpux || defined __hpux__ || defined __hpux
+ /* HP-UX counts st_blocks in 1024-byte units.
+ This loses when mixing HP-UX and BSD file systems with NFS. */
+# define ST_NBLOCKSIZE 1024
+# else /* !hpux */
+# if defined _AIX && defined _I386
+ /* AIX PS/2 counts st_blocks in 4K units. */
+# define ST_NBLOCKSIZE (4 * 1024)
+# else
+# if defined _CRAY
+# define ST_NBLOCKS(statbuf) \
+ (S_ISREG ((statbuf).st_mode) || S_ISDIR ((statbuf).st_mode) \
+ ? (statbuf).st_blocks * ST_BLKSIZE (statbuf) / ST_NBLOCKSIZE : 0)
+# endif
+# endif
+# endif
+#endif
+
+#ifndef ST_NBLOCKS
+# define ST_NBLOCKS(statbuf) ((statbuf).st_blocks)
+#endif
+
+#ifndef ST_NBLOCKSIZE
+# ifdef S_BLKSIZE
+# define ST_NBLOCKSIZE S_BLKSIZE
+# else
+# define ST_NBLOCKSIZE 512
+# endif
+#endif
+
+#endif /* STAT_SIZE_H */
}
/* Return *ST's birth time, if available; otherwise return a value
- with negative tv_nsec. */
+ with tv_sec and tv_nsec both equal to -1. */
static inline struct timespec
get_stat_birthtime (struct stat const *st)
{
t.tv_sec = st->st_ctime;
t.tv_nsec = 0;
#else
- /* Birth time is not supported. Set tv_sec to avoid undefined behavior. */
+ /* Birth time is not supported. */
t.tv_sec = -1;
t.tv_nsec = -1;
/* Avoid a "parameter unused" warning. */
using zero. Attempt to work around this problem. Alas, this can
report failure even for valid time stamps. Also, NetBSD
sometimes returns junk in the birth time fields; work around this
- bug if it is detected. There's no need to detect negative
- tv_nsec junk as negative tv_nsec already indicates an error. */
- if (t.tv_sec == 0 || 1000000000 <= t.tv_nsec)
- t.tv_nsec = -1;
+ bug if it is detected. */
+ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
+ {
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ }
#endif
return t;
/* written by Eric Blake */
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_stat doesn't recurse to
+ rpl_stat. */
+#define __need_system_sys_stat_h
#include <config.h>
/* Get the original definition of stat. It might be defined as a macro. */
-#define __need_system_sys_stat_h
#include <sys/types.h>
#include <sys/stat.h>
#undef __need_system_sys_stat_h
#include <stdbool.h>
#include <string.h>
#include "dosname.h"
+#include "verify.h"
/* Store information about NAME into ST. Work around bugs with
trailing slashes. Mingw has other bugs (such as st_ino always
}
#endif /* REPLACE_FUNC_STAT_FILE */
#if REPLACE_FUNC_STAT_DIR
+ /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also
+ have a constant PATH_MAX. */
+# ifndef PATH_MAX
+# error "Please port this replacement to your platform"
+# endif
+
if (result == -1 && errno == ENOENT)
{
/* Due to mingw's oddities, there are some directories (like
char fixed_name[PATH_MAX + 1] = {0};
size_t len = strlen (name);
bool check_dir = false;
+ verify (PATH_MAX <= 4096);
if (PATH_MAX <= len)
errno = ENAMETOOLONG;
else if (len)
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_STDARG_H
+#ifndef _@GUARD_PREFIX@_STDARG_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STDARG_H@
-#ifndef _GL_STDARG_H
-#define _GL_STDARG_H
+#ifndef _@GUARD_PREFIX@_STDARG_H
+#define _@GUARD_PREFIX@_STDARG_H
#ifndef va_copy
# define va_copy(a,b) ((a) = (b))
#endif
-#endif /* _GL_STDARG_H */
-#endif /* _GL_STDARG_H */
+#endif /* _@GUARD_PREFIX@_STDARG_H */
+#endif /* _@GUARD_PREFIX@_STDARG_H */
remember if special invocation has ever been used to obtain wint_t,
in which case we need to clean up NULL yet again. */
-# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T)
+# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
# ifdef __need_wint_t
-# undef _GL_STDDEF_H
+# undef _@GUARD_PREFIX@_STDDEF_H
# define _GL_STDDEF_WINT_T
# endif
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
#else
/* Normal invocation convention. */
-# ifndef _GL_STDDEF_H
+# ifndef _@GUARD_PREFIX@_STDDEF_H
/* The include_next requires a split double-inclusion guard. */
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
-# ifndef _GL_STDDEF_H
-# define _GL_STDDEF_H
+# ifndef _@GUARD_PREFIX@_STDDEF_H
+# define _@GUARD_PREFIX@_STDDEF_H
/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */
#if @REPLACE_NULL@
# define wchar_t int
#endif
-# endif /* _GL_STDDEF_H */
-# endif /* _GL_STDDEF_H */
+# endif /* _@GUARD_PREFIX@_STDDEF_H */
+# endif /* _@GUARD_PREFIX@_STDDEF_H */
#endif /* __need_XXX */
* <http://www.opengroup.org/susv3xbd/stdint.h.html>
*/
-#ifndef _GL_STDINT_H
+#ifndef _@GUARD_PREFIX@_STDINT_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* Other systems may have an incomplete or buggy <stdint.h>.
Include it before <inttypes.h>, since any "#include <stdint.h>"
in <inttypes.h> would reinclude us, skipping our contents because
- _GL_STDINT_H is defined.
+ _@GUARD_PREFIX@_STDINT_H is defined.
The include_next requires a split double-inclusion guard. */
# @INCLUDE_NEXT@ @NEXT_STDINT_H@
#endif
-#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-#define _GL_STDINT_H
+#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _@GUARD_PREFIX@_STDINT_H
/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
/* Note: These types are compiler dependent. It may be unwise to use them in
public header files. */
-#undef intmax_t
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+/* If the system defines INTMAX_MAX, assume that intmax_t works, and
+ similarly for UINTMAX_MAX and uintmax_t. This avoids problems with
+ assuming one type where another is used by the system. */
+
+#ifndef INTMAX_MAX
+# undef INTMAX_C
+# undef intmax_t
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
typedef long long int gl_intmax_t;
-# define intmax_t gl_intmax_t
-#elif defined GL_INT64_T
-# define intmax_t int64_t
-#else
+# define intmax_t gl_intmax_t
+# elif defined GL_INT64_T
+# define intmax_t int64_t
+# else
typedef long int gl_intmax_t;
-# define intmax_t gl_intmax_t
+# define intmax_t gl_intmax_t
+# endif
#endif
-#undef uintmax_t
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#ifndef UINTMAX_MAX
+# undef UINTMAX_C
+# undef uintmax_t
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
typedef unsigned long long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
-#elif defined GL_UINT64_T
-# define uintmax_t uint64_t
-#else
+# define uintmax_t gl_uintmax_t
+# elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+# else
typedef unsigned long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
+# define uintmax_t gl_uintmax_t
+# endif
#endif
/* Verify that intmax_t and uintmax_t have the same size. Too much code
/* 7.18.2.5. Limits of greatest-width integer types */
-#undef INTMAX_MIN
-#undef INTMAX_MAX
-#ifdef INT64_MAX
-# define INTMAX_MIN INT64_MIN
-# define INTMAX_MAX INT64_MAX
-#else
-# define INTMAX_MIN INT32_MIN
-# define INTMAX_MAX INT32_MAX
+#ifndef INTMAX_MAX
+# undef INTMAX_MIN
+# ifdef INT64_MAX
+# define INTMAX_MIN INT64_MIN
+# define INTMAX_MAX INT64_MAX
+# else
+# define INTMAX_MIN INT32_MIN
+# define INTMAX_MAX INT32_MAX
+# endif
#endif
-#undef UINTMAX_MAX
-#ifdef UINT64_MAX
-# define UINTMAX_MAX UINT64_MAX
-#else
-# define UINTMAX_MAX UINT32_MAX
+#ifndef UINTMAX_MAX
+# ifdef UINT64_MAX
+# define UINTMAX_MAX UINT64_MAX
+# else
+# define UINTMAX_MAX UINT32_MAX
+# endif
#endif
/* 7.18.3. Limits of other integer types */
/* 7.18.4.2. Macros for greatest-width integer constants */
-#undef INTMAX_C
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-# define INTMAX_C(x) x##LL
-#elif defined GL_INT64_T
-# define INTMAX_C(x) INT64_C(x)
-#else
-# define INTMAX_C(x) x##L
+#ifndef INTMAX_C
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x) x##LL
+# elif defined GL_INT64_T
+# define INTMAX_C(x) INT64_C(x)
+# else
+# define INTMAX_C(x) x##L
+# endif
#endif
-#undef UINTMAX_C
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-# define UINTMAX_C(x) x##ULL
-#elif defined GL_UINT64_T
-# define UINTMAX_C(x) UINT64_C(x)
-#else
-# define UINTMAX_C(x) x##UL
+#ifndef UINTMAX_C
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x) x##ULL
+# elif defined GL_UINT64_T
+# define UINTMAX_C(x) UINT64_C(x)
+# else
+# define UINTMAX_C(x) x##UL
+# endif
#endif
#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-#endif /* _GL_STDINT_H */
-#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
+#endif /* _@GUARD_PREFIX@_STDINT_H */
+#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
#else
/* Normal invocation convention. */
-#ifndef _GL_STDIO_H
+#ifndef _@GUARD_PREFIX@_STDIO_H
#define _GL_ALREADY_INCLUDING_STDIO_H
#undef _GL_ALREADY_INCLUDING_STDIO_H
-#ifndef _GL_STDIO_H
-#define _GL_STDIO_H
+#ifndef _@GUARD_PREFIX@_STDIO_H
+#define _@GUARD_PREFIX@_STDIO_H
/* Get va_list. Needed on many systems, including glibc 2.8. */
#include <stdarg.h>
_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
# endif
_GL_CXXALIASWARN (fseeko);
-# if (@REPLACE_FSEEKO@ || !@HAVE_FSEEKO@) && !@GNULIB_FSEEK@
- /* Provide an fseek function that is consistent with fseeko. */
- /* In order to avoid that fseek gets defined as a macro here, the
- developer can request the 'fseek' module. */
-# if !GNULIB_defined_fseek_function
-# undef fseek
-# define fseek rpl_fseek
-static inline int _GL_ARG_NONNULL ((1))
-rpl_fseek (FILE *fp, long offset, int whence)
-{
-# if @REPLACE_FSEEKO@
- return rpl_fseeko (fp, offset, whence);
-# else
- return fseeko (fp, offset, whence);
-# endif
-}
-# define GNULIB_defined_fseek_function 1
-# endif
-# endif
#elif defined GNULIB_POSIXCHECK
# define _GL_FSEEK_WARN /* Category 1, above. */
# undef fseek
_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
# endif
_GL_CXXALIASWARN (ftello);
-# if (@REPLACE_FTELLO@ || !@HAVE_FTELLO@) && !@GNULIB_FTELL@
- /* Provide an ftell function that is consistent with ftello. */
- /* In order to avoid that ftell gets defined as a macro here, the
- developer can request the 'ftell' module. */
-# if !GNULIB_defined_ftell_function
-# undef ftell
-# define ftell rpl_ftell
-static inline long _GL_ARG_NONNULL ((1))
-rpl_ftell (FILE *f)
-{
-# if @REPLACE_FTELLO@
- return rpl_ftello (f);
-# else
- return ftello (f);
-# endif
-}
-# define GNULIB_defined_ftell_function 1
-# endif
-# endif
#elif defined GNULIB_POSIXCHECK
# define _GL_FTELL_WARN /* Category 1, above. */
# undef ftell
#endif
-#endif /* _GL_STDIO_H */
-#endif /* _GL_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
#endif
#else
/* Normal invocation convention. */
-#ifndef _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
-#ifndef _GL_STDLIB_H
-#define _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
+#define _@GUARD_PREFIX@_STDLIB_H
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
# include <unistd.h>
#endif
-#if 3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#else
-# define _GL_ATTRIBUTE_NORETURN
-#endif
+/* The definition of _Noreturn is copied here. */
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* Terminate the current process with the given return code, without running
the 'atexit' handlers. */
# if !@HAVE__EXIT@
-_GL_FUNCDECL_SYS (_Exit, void, (int status) _GL_ATTRIBUTE_NORETURN);
+_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
# endif
_GL_CXXALIAS_SYS (_Exit, void, (int status));
_GL_CXXALIASWARN (_Exit);
#endif
-#endif /* _GL_STDLIB_H */
-#endif /* _GL_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
#endif
--- /dev/null
+/* strerror-override.c --- POSIX compatible system error routine
+
+ Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010. */
+
+#include <config.h>
+
+#include "strerror-override.h"
+
+#include <errno.h>
+
+#if GNULIB_defined_ESOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+# include <winsock2.h>
+# endif
+#endif
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+ describing the error. Otherwise return NULL. */
+const char *
+strerror_override (int errnum)
+{
+ /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */
+ switch (errnum)
+ {
+#if REPLACE_STRERROR_0
+ case 0:
+ return "Success";
+#endif
+
+#if GNULIB_defined_ETXTBSY
+ case ETXTBSY:
+ return "Text file busy";
+#endif
+
+#if GNULIB_defined_ESOCK /* native Windows platforms */
+ /* EWOULDBLOCK is the same as EAGAIN. */
+ case EINPROGRESS:
+ return "Operation now in progress";
+ case EALREADY:
+ return "Operation already in progress";
+ case ENOTSOCK:
+ return "Socket operation on non-socket";
+ case EDESTADDRREQ:
+ return "Destination address required";
+ case EMSGSIZE:
+ return "Message too long";
+ case EPROTOTYPE:
+ return "Protocol wrong type for socket";
+ case ENOPROTOOPT:
+ return "Protocol not available";
+ case EPROTONOSUPPORT:
+ return "Protocol not supported";
+ case ESOCKTNOSUPPORT:
+ return "Socket type not supported";
+ case EOPNOTSUPP:
+ return "Operation not supported";
+ case EPFNOSUPPORT:
+ return "Protocol family not supported";
+ case EAFNOSUPPORT:
+ return "Address family not supported by protocol";
+ case EADDRINUSE:
+ return "Address already in use";
+ case EADDRNOTAVAIL:
+ return "Cannot assign requested address";
+ case ENETDOWN:
+ return "Network is down";
+ case ENETUNREACH:
+ return "Network is unreachable";
+ case ENETRESET:
+ return "Network dropped connection on reset";
+ case ECONNABORTED:
+ return "Software caused connection abort";
+ case ECONNRESET:
+ return "Connection reset by peer";
+ case ENOBUFS:
+ return "No buffer space available";
+ case EISCONN:
+ return "Transport endpoint is already connected";
+ case ENOTCONN:
+ return "Transport endpoint is not connected";
+ case ESHUTDOWN:
+ return "Cannot send after transport endpoint shutdown";
+ case ETOOMANYREFS:
+ return "Too many references: cannot splice";
+ case ETIMEDOUT:
+ return "Connection timed out";
+ case ECONNREFUSED:
+ return "Connection refused";
+ case ELOOP:
+ return "Too many levels of symbolic links";
+ case EHOSTDOWN:
+ return "Host is down";
+ case EHOSTUNREACH:
+ return "No route to host";
+ case EPROCLIM:
+ return "Too many processes";
+ case EUSERS:
+ return "Too many users";
+ case EDQUOT:
+ return "Disk quota exceeded";
+ case ESTALE:
+ return "Stale NFS file handle";
+ case EREMOTE:
+ return "Object is remote";
+# if HAVE_WINSOCK2_H
+ /* WSA_INVALID_HANDLE maps to EBADF */
+ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+ /* WSA_INVALID_PARAMETER maps to EINVAL */
+ case WSA_OPERATION_ABORTED:
+ return "Overlapped operation aborted";
+ case WSA_IO_INCOMPLETE:
+ return "Overlapped I/O event object not in signaled state";
+ case WSA_IO_PENDING:
+ return "Overlapped operations will complete later";
+ /* WSAEINTR maps to EINTR */
+ /* WSAEBADF maps to EBADF */
+ /* WSAEACCES maps to EACCES */
+ /* WSAEFAULT maps to EFAULT */
+ /* WSAEINVAL maps to EINVAL */
+ /* WSAEMFILE maps to EMFILE */
+ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+ /* WSAEINPROGRESS is EINPROGRESS */
+ /* WSAEALREADY is EALREADY */
+ /* WSAENOTSOCK is ENOTSOCK */
+ /* WSAEDESTADDRREQ is EDESTADDRREQ */
+ /* WSAEMSGSIZE is EMSGSIZE */
+ /* WSAEPROTOTYPE is EPROTOTYPE */
+ /* WSAENOPROTOOPT is ENOPROTOOPT */
+ /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
+ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+ /* WSAEOPNOTSUPP is EOPNOTSUPP */
+ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+ /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
+ /* WSAEADDRINUSE is EADDRINUSE */
+ /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
+ /* WSAENETDOWN is ENETDOWN */
+ /* WSAENETUNREACH is ENETUNREACH */
+ /* WSAENETRESET is ENETRESET */
+ /* WSAECONNABORTED is ECONNABORTED */
+ /* WSAECONNRESET is ECONNRESET */
+ /* WSAENOBUFS is ENOBUFS */
+ /* WSAEISCONN is EISCONN */
+ /* WSAENOTCONN is ENOTCONN */
+ /* WSAESHUTDOWN is ESHUTDOWN */
+ /* WSAETOOMANYREFS is ETOOMANYREFS */
+ /* WSAETIMEDOUT is ETIMEDOUT */
+ /* WSAECONNREFUSED is ECONNREFUSED */
+ /* WSAELOOP is ELOOP */
+ /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+ /* WSAEHOSTDOWN is EHOSTDOWN */
+ /* WSAEHOSTUNREACH is EHOSTUNREACH */
+ /* WSAENOTEMPTY maps to ENOTEMPTY */
+ /* WSAEPROCLIM is EPROCLIM */
+ /* WSAEUSERS is EUSERS */
+ /* WSAEDQUOT is EDQUOT */
+ /* WSAESTALE is ESTALE */
+ /* WSAEREMOTE is EREMOTE */
+ case WSASYSNOTREADY:
+ return "Network subsystem is unavailable";
+ case WSAVERNOTSUPPORTED:
+ return "Winsock.dll version out of range";
+ case WSANOTINITIALISED:
+ return "Successful WSAStartup not yet performed";
+ case WSAEDISCON:
+ return "Graceful shutdown in progress";
+ case WSAENOMORE: case WSA_E_NO_MORE:
+ return "No more results";
+ case WSAECANCELLED: case WSA_E_CANCELLED:
+ return "Call was canceled";
+ case WSAEINVALIDPROCTABLE:
+ return "Procedure call table is invalid";
+ case WSAEINVALIDPROVIDER:
+ return "Service provider is invalid";
+ case WSAEPROVIDERFAILEDINIT:
+ return "Service provider failed to initialize";
+ case WSASYSCALLFAILURE:
+ return "System call failure";
+ case WSASERVICE_NOT_FOUND:
+ return "Service not found";
+ case WSATYPE_NOT_FOUND:
+ return "Class type not found";
+ case WSAEREFUSED:
+ return "Database query was refused";
+ case WSAHOST_NOT_FOUND:
+ return "Host not found";
+ case WSATRY_AGAIN:
+ return "Nonauthoritative host not found";
+ case WSANO_RECOVERY:
+ return "Nonrecoverable error";
+ case WSANO_DATA:
+ return "Valid name, no data record of requested type";
+ /* WSA_QOS_* omitted */
+# endif
+#endif
+
+#if GNULIB_defined_ENOMSG
+ case ENOMSG:
+ return "No message of desired type";
+#endif
+
+#if GNULIB_defined_EIDRM
+ case EIDRM:
+ return "Identifier removed";
+#endif
+
+#if GNULIB_defined_ENOLINK
+ case ENOLINK:
+ return "Link has been severed";
+#endif
+
+#if GNULIB_defined_EPROTO
+ case EPROTO:
+ return "Protocol error";
+#endif
+
+#if GNULIB_defined_EMULTIHOP
+ case EMULTIHOP:
+ return "Multihop attempted";
+#endif
+
+#if GNULIB_defined_EBADMSG
+ case EBADMSG:
+ return "Bad message";
+#endif
+
+#if GNULIB_defined_EOVERFLOW
+ case EOVERFLOW:
+ return "Value too large for defined data type";
+#endif
+
+#if GNULIB_defined_ENOTSUP
+ case ENOTSUP:
+ return "Not supported";
+#endif
+
+#if GNULIB_defined_ENETRESET
+ case ENETRESET:
+ return "Network dropped connection on reset";
+#endif
+
+#if GNULIB_defined_ECONNABORTED
+ case ECONNABORTED:
+ return "Software caused connection abort";
+#endif
+
+#if GNULIB_defined_ESTALE
+ case ESTALE:
+ return "Stale NFS file handle";
+#endif
+
+#if GNULIB_defined_EDQUOT
+ case EDQUOT:
+ return "Disk quota exceeded";
+#endif
+
+#if GNULIB_defined_ECANCELED
+ case ECANCELED:
+ return "Operation canceled";
+#endif
+
+ default:
+ return NULL;
+ }
+}
--- /dev/null
+/* strerror-override.h --- POSIX compatible system error routine
+
+ Copyright (C) 2010-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _GL_STRERROR_OVERRIDE_H
+# define _GL_STRERROR_OVERRIDE_H
+
+# include <errno.h>
+# include <stddef.h>
+
+/* Reasonable buffer size that should never trigger ERANGE; if this
+ proves too small, we intentionally abort(), to remind us to fix
+ this value. */
+# define STACKBUF_LEN 256
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+ describing the error. Otherwise return NULL. */
+# if REPLACE_STRERROR_0 \
+ || GNULIB_defined_ETXTBSY \
+ || GNULIB_defined_ESOCK \
+ || GNULIB_defined_ENOMSG \
+ || GNULIB_defined_EIDRM \
+ || GNULIB_defined_ENOLINK \
+ || GNULIB_defined_EPROTO \
+ || GNULIB_defined_EMULTIHOP \
+ || GNULIB_defined_EBADMSG \
+ || GNULIB_defined_EOVERFLOW \
+ || GNULIB_defined_ENOTSUP \
+ || GNULIB_defined_ENETRESET \
+ || GNULIB_defined_ECONNABORTED \
+ || GNULIB_defined_ESTALE \
+ || GNULIB_defined_EDQUOT \
+ || GNULIB_defined_ECANCELED
+extern const char *strerror_override (int errnum);
+# else
+# define strerror_override(ignored) NULL
+# endif
+
+#endif /* _GL_STRERROR_OVERRIDE_H */
#include <config.h>
+/* Specification. */
#include <string.h>
-#if REPLACE_STRERROR
-
-# include <errno.h>
-# include <stdio.h>
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
-# if HAVE_WINSOCK2_H
-# include <winsock2.h>
-# endif
-# endif
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
-# include "intprops.h"
+#include "intprops.h"
+#include "strerror-override.h"
+#include "verify.h"
/* Use the system functions, not the gnulib overrides in this file. */
-# undef sprintf
-
-# undef strerror
-# if ! HAVE_DECL_STRERROR
-# define strerror(n) NULL
-# endif
+#undef sprintf
char *
-rpl_strerror (int n)
+strerror (int n)
+#undef strerror
{
- char const *msg = NULL;
- /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */
- switch (n)
- {
-# if GNULIB_defined_ETXTBSY
- case ETXTBSY:
- msg = "Text file busy";
- break;
-# endif
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
- /* EWOULDBLOCK is the same as EAGAIN. */
- case EINPROGRESS:
- msg = "Operation now in progress";
- break;
- case EALREADY:
- msg = "Operation already in progress";
- break;
- case ENOTSOCK:
- msg = "Socket operation on non-socket";
- break;
- case EDESTADDRREQ:
- msg = "Destination address required";
- break;
- case EMSGSIZE:
- msg = "Message too long";
- break;
- case EPROTOTYPE:
- msg = "Protocol wrong type for socket";
- break;
- case ENOPROTOOPT:
- msg = "Protocol not available";
- break;
- case EPROTONOSUPPORT:
- msg = "Protocol not supported";
- break;
- case ESOCKTNOSUPPORT:
- msg = "Socket type not supported";
- break;
- case EOPNOTSUPP:
- msg = "Operation not supported";
- break;
- case EPFNOSUPPORT:
- msg = "Protocol family not supported";
- break;
- case EAFNOSUPPORT:
- msg = "Address family not supported by protocol";
- break;
- case EADDRINUSE:
- msg = "Address already in use";
- break;
- case EADDRNOTAVAIL:
- msg = "Cannot assign requested address";
- break;
- case ENETDOWN:
- msg = "Network is down";
- break;
- case ENETUNREACH:
- msg = "Network is unreachable";
- break;
- case ENETRESET:
- msg = "Network dropped connection on reset";
- break;
- case ECONNABORTED:
- msg = "Software caused connection abort";
- break;
- case ECONNRESET:
- msg = "Connection reset by peer";
- break;
- case ENOBUFS:
- msg = "No buffer space available";
- break;
- case EISCONN:
- msg = "Transport endpoint is already connected";
- break;
- case ENOTCONN:
- msg = "Transport endpoint is not connected";
- break;
- case ESHUTDOWN:
- msg = "Cannot send after transport endpoint shutdown";
- break;
- case ETOOMANYREFS:
- msg = "Too many references: cannot splice";
- break;
- case ETIMEDOUT:
- msg = "Connection timed out";
- break;
- case ECONNREFUSED:
- msg = "Connection refused";
- break;
- case ELOOP:
- msg = "Too many levels of symbolic links";
- break;
- case EHOSTDOWN:
- msg = "Host is down";
- break;
- case EHOSTUNREACH:
- msg = "No route to host";
- break;
- case EPROCLIM:
- msg = "Too many processes";
- break;
- case EUSERS:
- msg = "Too many users";
- break;
- case EDQUOT:
- msg = "Disk quota exceeded";
- break;
- case ESTALE:
- msg = "Stale NFS file handle";
- break;
- case EREMOTE:
- msg = "Object is remote";
- break;
-# if HAVE_WINSOCK2_H
- /* WSA_INVALID_HANDLE maps to EBADF */
- /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
- /* WSA_INVALID_PARAMETER maps to EINVAL */
- case WSA_OPERATION_ABORTED:
- msg = "Overlapped operation aborted";
- break;
- case WSA_IO_INCOMPLETE:
- msg = "Overlapped I/O event object not in signaled state";
- break;
- case WSA_IO_PENDING:
- msg = "Overlapped operations will complete later";
- break;
- /* WSAEINTR maps to EINTR */
- /* WSAEBADF maps to EBADF */
- /* WSAEACCES maps to EACCES */
- /* WSAEFAULT maps to EFAULT */
- /* WSAEINVAL maps to EINVAL */
- /* WSAEMFILE maps to EMFILE */
- /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
- /* WSAEINPROGRESS is EINPROGRESS */
- /* WSAEALREADY is EALREADY */
- /* WSAENOTSOCK is ENOTSOCK */
- /* WSAEDESTADDRREQ is EDESTADDRREQ */
- /* WSAEMSGSIZE is EMSGSIZE */
- /* WSAEPROTOTYPE is EPROTOTYPE */
- /* WSAENOPROTOOPT is ENOPROTOOPT */
- /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
- /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
- /* WSAEOPNOTSUPP is EOPNOTSUPP */
- /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
- /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
- /* WSAEADDRINUSE is EADDRINUSE */
- /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
- /* WSAENETDOWN is ENETDOWN */
- /* WSAENETUNREACH is ENETUNREACH */
- /* WSAENETRESET is ENETRESET */
- /* WSAECONNABORTED is ECONNABORTED */
- /* WSAECONNRESET is ECONNRESET */
- /* WSAENOBUFS is ENOBUFS */
- /* WSAEISCONN is EISCONN */
- /* WSAENOTCONN is ENOTCONN */
- /* WSAESHUTDOWN is ESHUTDOWN */
- /* WSAETOOMANYREFS is ETOOMANYREFS */
- /* WSAETIMEDOUT is ETIMEDOUT */
- /* WSAECONNREFUSED is ECONNREFUSED */
- /* WSAELOOP is ELOOP */
- /* WSAENAMETOOLONG maps to ENAMETOOLONG */
- /* WSAEHOSTDOWN is EHOSTDOWN */
- /* WSAEHOSTUNREACH is EHOSTUNREACH */
- /* WSAENOTEMPTY maps to ENOTEMPTY */
- /* WSAEPROCLIM is EPROCLIM */
- /* WSAEUSERS is EUSERS */
- /* WSAEDQUOT is EDQUOT */
- /* WSAESTALE is ESTALE */
- /* WSAEREMOTE is EREMOTE */
- case WSASYSNOTREADY:
- msg = "Network subsystem is unavailable";
- break;
- case WSAVERNOTSUPPORTED:
- msg = "Winsock.dll version out of range";
- break;
- case WSANOTINITIALISED:
- msg = "Successful WSAStartup not yet performed";
- break;
- case WSAEDISCON:
- msg = "Graceful shutdown in progress";
- break;
- case WSAENOMORE: case WSA_E_NO_MORE:
- msg = "No more results";
- break;
- case WSAECANCELLED: case WSA_E_CANCELLED:
- msg = "Call was canceled";
- break;
- case WSAEINVALIDPROCTABLE:
- msg = "Procedure call table is invalid";
- break;
- case WSAEINVALIDPROVIDER:
- msg = "Service provider is invalid";
- break;
- case WSAEPROVIDERFAILEDINIT:
- msg = "Service provider failed to initialize";
- break;
- case WSASYSCALLFAILURE:
- msg = "System call failure";
- break;
- case WSASERVICE_NOT_FOUND:
- msg = "Service not found";
- break;
- case WSATYPE_NOT_FOUND:
- msg = "Class type not found";
- break;
- case WSAEREFUSED:
- msg = "Database query was refused";
- break;
- case WSAHOST_NOT_FOUND:
- msg = "Host not found";
- break;
- case WSATRY_AGAIN:
- msg = "Nonauthoritative host not found";
- break;
- case WSANO_RECOVERY:
- msg = "Nonrecoverable error";
- break;
- case WSANO_DATA:
- msg = "Valid name, no data record of requested type";
- break;
- /* WSA_QOS_* omitted */
-# endif
-# endif
-
-# if GNULIB_defined_ENOMSG
- case ENOMSG:
- msg = "No message of desired type";
- break;
-# endif
-
-# if GNULIB_defined_EIDRM
- case EIDRM:
- msg = "Identifier removed";
- break;
-# endif
-
-# if GNULIB_defined_ENOLINK
- case ENOLINK:
- msg = "Link has been severed";
- break;
-# endif
-
-# if GNULIB_defined_EPROTO
- case EPROTO:
- msg = "Protocol error";
- break;
-# endif
-
-# if GNULIB_defined_EMULTIHOP
- case EMULTIHOP:
- msg = "Multihop attempted";
- break;
-# endif
-
-# if GNULIB_defined_EBADMSG
- case EBADMSG:
- msg = "Bad message";
- break;
-# endif
-
-# if GNULIB_defined_EOVERFLOW
- case EOVERFLOW:
- msg = "Value too large for defined data type";
- break;
-# endif
-
-# if GNULIB_defined_ENOTSUP
- case ENOTSUP:
- msg = "Not supported";
- break;
-# endif
-
-# if GNULIB_defined_ESTALE
- case ESTALE:
- msg = "Stale NFS file handle";
- break;
-# endif
-
-# if GNULIB_defined_EDQUOT
- case EDQUOT:
- msg = "Disk quota exceeded";
- break;
-# endif
-
-# if GNULIB_defined_ECANCELED
- case ECANCELED:
- msg = "Operation canceled";
- break;
-# endif
- }
+ static char buf[STACKBUF_LEN];
+ size_t len;
+ /* Cast away const, due to the historical signature of strerror;
+ callers should not be modifying the string. */
+ const char *msg = strerror_override (n);
if (msg)
return (char *) msg;
- {
- char *result = strerror (n);
+ msg = strerror (n);
- if (result == NULL || result[0] == '\0')
- {
- static char const fmt[] = "Unknown error (%d)";
- static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)];
- sprintf (msg_buf, fmt, n);
- return msg_buf;
- }
+ /* Our strerror_r implementation might use the system's strerror
+ buffer, so all other clients of strerror have to see the error
+ copied into a buffer that we manage. This is not thread-safe,
+ even if the system strerror is, but portable programs shouldn't
+ be using strerror if they care about thread-safety. */
+ if (!msg || !*msg)
+ {
+ static char const fmt[] = "Unknown error %d";
+ verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+ sprintf (buf, fmt, n);
+ errno = EINVAL;
+ return buf;
+ }
- return result;
- }
-}
+ /* Fix STACKBUF_LEN if this ever aborts. */
+ len = strlen (msg);
+ if (sizeof buf <= len)
+ abort ();
-#endif
+ return memcpy (buf, msg, len + 1);
+}
#include <config.h>
+/* Enable declaration of sys_nerr and sys_errlist in <errno.h> on NetBSD. */
+#define _NETBSD_SOURCE 1
+
/* Specification. */
#include <string.h>
#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "strerror-override.h"
+
+#if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */
+
+# define USE_XPG_STRERROR_R 1
-#if HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__) && !EXTEND_STRERROR_R
+#elif HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__)
/* The system's strerror_r function is OK, except that its third argument
is 'int', not 'size_t', or its return type is wrong. */
# include <limits.h>
-int
-strerror_r (int errnum, char *buf, size_t buflen)
-# undef strerror_r
+# define USE_SYSTEM_STRERROR_R 1
+
+#else /* (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) */
+
+/* Use the system's strerror(). Exclude glibc and cygwin because the
+ system strerror_r has the wrong return type, and cygwin 1.7.9
+ strerror_r clobbers strerror. */
+# undef strerror
+
+# define USE_SYSTEM_STRERROR 1
+
+# if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__
+
+/* No locking needed. */
+
+/* Get catgets internationalization functions. */
+# if HAVE_CATGETS
+# include <nl_types.h>
+# endif
+
+/* Get sys_nerr, sys_errlist on HP-UX (otherwise only declared in C++ mode).
+ Get sys_nerr, sys_errlist on IRIX (otherwise only declared with _SGIAPI). */
+# if defined __hpux || defined __sgi
+extern int sys_nerr;
+extern char *sys_errlist[];
+# endif
+
+/* Get sys_nerr on Solaris. */
+# if defined __sun && !defined _LP64
+extern int sys_nerr;
+# endif
+
+# else
+
+# include "glthread/lock.h"
+
+/* This lock protects the buffer returned by strerror(). We assume that
+ no other uses of strerror() exist in the program. */
+gl_lock_define_initialized(static, strerror_lock)
+
+# endif
+
+#endif
+
+/* Copy as much of MSG into BUF as possible, without corrupting errno.
+ Return 0 if MSG fit in BUFLEN, otherwise return ERANGE. */
+static int
+safe_copy (char *buf, size_t buflen, const char *msg)
{
+ size_t len = strlen (msg);
int ret;
- if (buflen > INT_MAX)
- buflen = INT_MAX;
+ if (len < buflen)
+ {
+ /* Although POSIX allows memcpy() to corrupt errno, we don't
+ know of any implementation where this is a real problem. */
+ memcpy (buf, msg, len + 1);
+ ret = 0;
+ }
+ else
+ {
+ memcpy (buf, msg, buflen - 1);
+ buf[buflen - 1] = '\0';
+ ret = ERANGE;
+ }
+ return ret;
+}
-# ifdef __hpux
- /* On HP-UX 11.31, strerror_r always fails when buflen < 80. */
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+#undef strerror_r
+{
+ /* Filter this out now, so that rest of this replacement knows that
+ there is room for a non-empty message and trailing NUL. */
+ if (buflen <= 1)
+ {
+ if (buflen)
+ *buf = '\0';
+ return ERANGE;
+ }
+ *buf = '\0';
+
+ /* Check for gnulib overrides. */
{
- char stackbuf[80];
+ char const *msg = strerror_override (errnum);
- if (buflen < sizeof (stackbuf))
- {
- ret = strerror_r (errnum, stackbuf, sizeof (stackbuf));
- if (ret == 0)
- {
- size_t len = strlen (stackbuf);
-
- if (len < buflen)
- memcpy (buf, stackbuf, len + 1);
- else
- ret = ERANGE;
- }
- }
- else
- ret = strerror_r (errnum, buf, buflen);
+ if (msg)
+ return safe_copy (buf, buflen, msg);
}
-# elif defined __CYGWIN__
- /* Cygwin only provides the glibc interface, is thread-safe, and
- always succeeds (although it may truncate). */
- strerror_r (errnum, buf, buflen);
- ret = 0;
-# else
- ret = strerror_r (errnum, buf, buflen);
-# endif
-# ifdef _AIX
- /* On AIX 6.1, strerror_r returns -1 and sets errno to EINVAL
- if buflen <= 1. */
- if (ret < 0 && errno == EINVAL && buflen <= 1)
+ {
+ int ret;
+ int saved_errno = errno;
+
+#if USE_XPG_STRERROR_R
+
{
- /* Retry with a larger buffer. */
- char largerbuf[10];
- ret = strerror_r (errnum, largerbuf, sizeof (largerbuf));
- if (ret < 0 && errno == EINVAL)
- {
- /* errnum was out of range. */
- return EINVAL;
- }
- else
+ extern int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+
+ ret = __xpg_strerror_r (errnum, buf, buflen);
+ if (ret < 0)
+ ret = errno;
+ if (!*buf)
{
- /* buf was too small. */
- return ERANGE;
+ /* glibc 2.13 would not touch buf on err, so we have to fall
+ back to GNU strerror_r which always returns a thread-safe
+ untruncated string to (partially) copy into our buf. */
+ safe_copy (buf, buflen, strerror_r (errnum, buf, buflen));
}
}
-# endif
- /* Some old implementations may return (-1, EINVAL) instead of EINVAL. */
- return (ret < 0 ? errno : ret);
-}
+#elif USE_SYSTEM_STRERROR_R
-#elif (__GLIBC__ >= 2 || defined __UCLIBC__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4 */ && !EXTEND_STRERROR_R
+ if (buflen > INT_MAX)
+ buflen = INT_MAX;
-int
-strerror_r (int errnum, char *buf, size_t buflen)
-{
- extern int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+# ifdef __hpux
+ /* On HP-UX 11.31, strerror_r always fails when buflen < 80; it
+ also fails to change buf on EINVAL. */
+ {
+ char stackbuf[80];
- int ret = __xpg_strerror_r (errnum, buf, buflen);
- return (ret < 0 ? errno : ret);
-}
+ if (buflen < sizeof stackbuf)
+ {
+ ret = strerror_r (errnum, stackbuf, sizeof stackbuf);
+ if (ret == 0)
+ ret = safe_copy (buf, buflen, stackbuf);
+ }
+ else
+ ret = strerror_r (errnum, buf, buflen);
+ }
+# else
+ ret = strerror_r (errnum, buf, buflen);
-#else /* (__GLIBC__ >= 2 || defined __UCLIBC__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) || EXTEND_STRERROR_R */
+ /* Some old implementations may return (-1, EINVAL) instead of EINVAL. */
+ if (ret < 0)
+ ret = errno;
+# endif
-# include "glthread/lock.h"
+# ifdef _AIX
+ /* AIX returns 0 rather than ERANGE when truncating strings; try
+ again until we are sure we got the entire string. */
+ if (!ret && strlen (buf) == buflen - 1)
+ {
+ char stackbuf[STACKBUF_LEN];
+ size_t len;
+ strerror_r (errnum, stackbuf, sizeof stackbuf);
+ len = strlen (stackbuf);
+ /* STACKBUF_LEN should have been large enough. */
+ if (len + 1 == sizeof stackbuf)
+ abort ();
+ if (buflen <= len)
+ ret = ERANGE;
+ }
+# else
+ /* Solaris 10 does not populate buf on ERANGE. OpenBSD 4.7
+ truncates early on ERANGE rather than return a partial integer.
+ We prefer the maximal string. We set buf[0] earlier, and we
+ know of no implementation that modifies buf to be an
+ unterminated string, so this strlen should be portable in
+ practice (rather than pulling in a safer strnlen). */
+ if (ret == ERANGE && strlen (buf) < buflen - 1)
+ {
+ char stackbuf[STACKBUF_LEN];
-/* Use strerror(), with locking. */
+ /* STACKBUF_LEN should have been large enough. */
+ if (strerror_r (errnum, stackbuf, sizeof stackbuf) == ERANGE)
+ abort ();
+ safe_copy (buf, buflen, stackbuf);
+ }
+# endif
-/* This lock protects the buffer returned by strerror(). We assume that
- no other uses of strerror() exist in the program. */
-gl_lock_define_initialized(static, strerror_lock)
+#else /* USE_SYSTEM_STRERROR */
-int
-strerror_r (int errnum, char *buf, size_t buflen)
-{
- gl_lock_lock (strerror_lock);
+ /* Try to do what strerror (errnum) does, but without clobbering the
+ buffer used by strerror(). */
- {
- char *errmsg = strerror (errnum);
- size_t len = strlen (errmsg);
- int ret;
+# if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Win32, Cygwin */
- if (len < buflen)
+ /* NetBSD: sys_nerr, sys_errlist are declared through _NETBSD_SOURCE
+ and <errno.h> above.
+ HP-UX: sys_nerr, sys_errlist are declared explicitly above.
+ native Win32: sys_nerr, sys_errlist are declared in <stdlib.h>.
+ Cygwin: sys_nerr, sys_errlist are declared in <errno.h>. */
+ if (errnum >= 0 && errnum < sys_nerr)
{
- memcpy (buf, errmsg, len + 1);
- ret = 0;
+# if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux)
+# if defined __NetBSD__
+ nl_catd catd = catopen ("libc", NL_CAT_LOCALE);
+ const char *errmsg =
+ (catd != (nl_catd)-1
+ ? catgets (catd, 1, errnum, sys_errlist[errnum])
+ : sys_errlist[errnum]);
+# endif
+# if defined __hpux
+ nl_catd catd = catopen ("perror", NL_CAT_LOCALE);
+ const char *errmsg =
+ (catd != (nl_catd)-1
+ ? catgets (catd, 1, 1 + errnum, sys_errlist[errnum])
+ : sys_errlist[errnum]);
+# endif
+# else
+ const char *errmsg = sys_errlist[errnum];
+# endif
+ if (errmsg == NULL || *errmsg == '\0')
+ ret = EINVAL;
+ else
+ ret = safe_copy (buf, buflen, errmsg);
+# if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux)
+ if (catd != (nl_catd)-1)
+ catclose (catd);
+# endif
}
else
- ret = ERANGE;
+ ret = EINVAL;
+
+# elif defined __sgi || (defined __sun && !defined _LP64) /* IRIX, Solaris <= 9 32-bit */
+
+ /* For a valid error number, the system's strerror() function returns
+ a pointer to a not copied string, not to a buffer. */
+ if (errnum >= 0 && errnum < sys_nerr)
+ {
+ char *errmsg = strerror (errnum);
+
+ if (errmsg == NULL || *errmsg == '\0')
+ ret = EINVAL;
+ else
+ ret = safe_copy (buf, buflen, errmsg);
+ }
+ else
+ ret = EINVAL;
+
+# else
+
+ gl_lock_lock (strerror_lock);
+
+ {
+ char *errmsg = strerror (errnum);
+
+ /* For invalid error numbers, strerror() on
+ - IRIX 6.5 returns NULL,
+ - HP-UX 11 returns an empty string. */
+ if (errmsg == NULL || *errmsg == '\0')
+ ret = EINVAL;
+ else
+ ret = safe_copy (buf, buflen, errmsg);
+ }
gl_lock_unlock (strerror_lock);
+# endif
+
+#endif
+
+ if (ret == EINVAL && !*buf)
+ snprintf (buf, buflen, "Unknown error %d", errnum);
+
+ errno = saved_errno;
return ret;
}
}
-
-#endif
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STRING_H@
-#ifndef _GL_STRING_H
-#define _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
+#define _@GUARD_PREFIX@_STRING_H
/* NetBSD 5.0 mis-defines NULL. */
#include <stddef.h>
/* The definition of _GL_WARN_ON_USE is copied here. */
+/* Find the index of the least-significant set bit. */
+#if @GNULIB_FFSL@
+# if !@HAVE_FFSL@
+_GL_FUNCDECL_SYS (ffsl, int, (long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsl, int, (long int i));
+_GL_CXXALIASWARN (ffsl);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsl
+# if HAVE_RAW_DECL_FFSL
+_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module");
+# endif
+#endif
+
+
+/* Find the index of the least-significant set bit. */
+#if @GNULIB_FFSLL@
+# if !@HAVE_FFSLL@
+_GL_FUNCDECL_SYS (ffsll, int, (long long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsll, int, (long long int i));
+_GL_CXXALIASWARN (ffsll);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsll
+# if HAVE_RAW_DECL_FFSLL
+_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module");
+# endif
+#endif
+
+
/* Return the first instance of C within N bytes of S, or NULL. */
#if @GNULIB_MEMCHR@
# if @REPLACE_MEMCHR@
#endif
-#endif /* _GL_STRING_H */
-#endif /* _GL_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_STRINGS_H
+#ifndef _@GUARD_PREFIX@_STRINGS_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
@PRAGMA_COLUMNS@
+/* Minix 3.1.8 has a bug: <sys/types.h> must be included before <strings.h>.
+ But avoid namespace pollution on glibc systems. */
+#if defined __minix && !defined __GLIBC__
+# include <sys/types.h>
+#endif
+
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STRINGS_H@
-#ifndef _GL_STRINGS_H
-#define _GL_STRINGS_H
+#ifndef _@GUARD_PREFIX@_STRINGS_H
+#define _@GUARD_PREFIX@_STRINGS_H
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
+
/* The definition of _GL_ARG_NONNULL is copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
#endif
+ /* Find the index of the least-significant set bit. */
+#if @GNULIB_FFS@
+# if !@HAVE_FFS@
+_GL_FUNCDECL_SYS (ffs, int, (int i));
+# endif
+_GL_CXXALIAS_SYS (ffs, int, (int i));
+_GL_CXXALIASWARN (ffs);
+#elif defined GNULIB_POSIXCHECK
+# undef ffs
+# if HAVE_RAW_DECL_FFS
+_GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
+# endif
+#endif
+
/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
greater than zero if S1 is lexicographically less than, equal to or greater
than S2.
}
#endif
-#endif /* _GL_STRING_H */
-#endif /* _GL_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
/* Written by Richard W.M. Jones. */
-#ifndef _GL_SYS_FILE_H
+#ifndef _@GUARD_PREFIX@_SYS_FILE_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SYS_FILE_H@
#endif
-#ifndef _GL_SYS_FILE_H
-#define _GL_SYS_FILE_H
+#ifndef _@GUARD_PREFIX@_SYS_FILE_H
+#define _@GUARD_PREFIX@_SYS_FILE_H
#ifndef LOCK_SH
/* Operations for the 'flock' call (same as Linux kernel constants). */
#endif
-#endif /* _GL_SYS_FILE_H */
-#endif /* _GL_SYS_FILE_H */
+#endif /* _@GUARD_PREFIX@_SYS_FILE_H */
+#endif /* _@GUARD_PREFIX@_SYS_FILE_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_SYS_IOCTL_H
+#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@
#endif
-#ifndef _GL_SYS_IOCTL_H
-#define _GL_SYS_IOCTL_H
+#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
+#define _@GUARD_PREFIX@_SYS_IOCTL_H
/* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>,
but not in <sys/ioctl.h>.
#endif
-#endif /* _GL_SYS_IOCTL_H */
-#endif /* _GL_SYS_IOCTL_H */
+#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */
+#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */
#else
-#ifndef _GL_SYS_SELECT_H
-
-#if @HAVE_SYS_SELECT_H@
+#ifndef _@GUARD_PREFIX@_SYS_SELECT_H
/* On many platforms, <sys/select.h> assumes prior inclusion of
- <sys/types.h>. */
-# include <sys/types.h>
+ <sys/types.h>. Also, mingw defines sigset_t there, instead of
+ in <signal.h> where it belongs. */
+#include <sys/types.h>
+
+/* Get definition of 'sigset_t'.
+ But avoid namespace pollution on glibc systems. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <signal.h>
+#endif
+
+#if @HAVE_SYS_SELECT_H@
/* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
of 'struct timeval', and no definition of this type.
#endif
-#ifndef _GL_SYS_SELECT_H
-#define _GL_SYS_SELECT_H
+#ifndef _@GUARD_PREFIX@_SYS_SELECT_H
+#define _@GUARD_PREFIX@_SYS_SELECT_H
#if !@HAVE_SYS_SELECT_H@
/* A platform that lacks <sys/select.h>. */
# include <string.h>
# endif
/* On native Windows platforms:
- Get the 'fd_set' type. Also, gnulib's <sys/socket.h> redefines select
- so as to hide the declaration from <winsock2.h>. */
-# include <sys/socket.h>
+ Get the 'fd_set' type. */
+# if @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
+# define _GL_INCLUDING_WINSOCK2_H
+# include <winsock2.h>
+# undef _GL_INCLUDING_WINSOCK2_H
+# endif
#endif
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
/* The definition of _GL_WARN_ON_USE is copied here. */
+/* Fix some definitions from <winsock2.h>. */
+
+#if @HAVE_WINSOCK2_H@
+
+# if !GNULIB_defined_rpl_fd_isset
+
+/* Re-define FD_ISSET to avoid a WSA call while we are not using
+ network sockets. */
+static inline int
+rpl_fd_isset (SOCKET fd, fd_set * set)
+{
+ u_int i;
+ if (set == NULL)
+ return 0;
+
+ for (i = 0; i < set->fd_count; i++)
+ if (set->fd_array[i] == fd)
+ return 1;
+
+ return 0;
+}
+
+# define GNULIB_defined_rpl_fd_isset 1
+# endif
+
+# undef FD_ISSET
+# define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
+
+#endif
+
+/* Hide some function declarations from <winsock2.h>. */
+
+#if @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef close
+# define close close_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (close,
+ "close() used without including <unistd.h>");
+# endif
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef gethostname
+# define gethostname gethostname_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (gethostname,
+ "gethostname() used without including <unistd.h>");
+# endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef socket
+# define socket socket_used_without_including_sys_socket_h
+# undef connect
+# define connect connect_used_without_including_sys_socket_h
+# undef accept
+# define accept accept_used_without_including_sys_socket_h
+# undef bind
+# define bind bind_used_without_including_sys_socket_h
+# undef getpeername
+# define getpeername getpeername_used_without_including_sys_socket_h
+# undef getsockname
+# define getsockname getsockname_used_without_including_sys_socket_h
+# undef getsockopt
+# define getsockopt getsockopt_used_without_including_sys_socket_h
+# undef listen
+# define listen listen_used_without_including_sys_socket_h
+# undef recv
+# define recv recv_used_without_including_sys_socket_h
+# undef send
+# define send send_used_without_including_sys_socket_h
+# undef recvfrom
+# define recvfrom recvfrom_used_without_including_sys_socket_h
+# undef sendto
+# define sendto sendto_used_without_including_sys_socket_h
+# undef setsockopt
+# define setsockopt setsockopt_used_without_including_sys_socket_h
+# undef shutdown
+# define shutdown shutdown_used_without_including_sys_socket_h
+# else
+ _GL_WARN_ON_USE (socket,
+ "socket() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (connect,
+ "connect() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (accept,
+ "accept() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (bind,
+ "bind() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getpeername,
+ "getpeername() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockname,
+ "getsockname() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockopt,
+ "getsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (listen,
+ "listen() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recv,
+ "recv() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (send,
+ "send() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recvfrom,
+ "recvfrom() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (sendto,
+ "sendto() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (setsockopt,
+ "setsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (shutdown,
+ "shutdown() used without including <sys/socket.h>");
+# endif
+# endif
+#endif
+
+
+#if @GNULIB_PSELECT@
+# if @REPLACE_PSELECT@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pselect
+# define pselect rpl_pselect
+# endif
+_GL_FUNCDECL_RPL (pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, const sigset_t *restrict));
+_GL_CXXALIAS_RPL (pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, const sigset_t *restrict));
+# else
+# if !@HAVE_PSELECT@
+_GL_FUNCDECL_SYS (pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, const sigset_t *restrict));
+# endif
+_GL_CXXALIAS_SYS (pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, const sigset_t *restrict));
+# endif
+_GL_CXXALIASWARN (pselect);
+#elif defined GNULIB_POSIXCHECK
+# undef pselect
+# if HAVE_RAW_DECL_PSELECT
+_GL_WARN_ON_USE (pselect, "pselect is not portable - "
+ "use gnulib module pselect for portability");
+# endif
+#endif
+
#if @GNULIB_SELECT@
-# if @HAVE_WINSOCK2_H@ || @REPLACE_SELECT@
+# if @REPLACE_SELECT@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef select
# define select rpl_select
#endif
-#endif /* _GL_SYS_SELECT_H */
-#endif /* _GL_SYS_SELECT_H */
+#endif /* _@GUARD_PREFIX@_SYS_SELECT_H */
+#endif /* _@GUARD_PREFIX@_SYS_SELECT_H */
#endif /* OSF/1 */
#else
/* Normal invocation convention. */
-#ifndef _GL_SYS_SOCKET_H
+#ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
#if @HAVE_SYS_SOCKET_H@
#endif
-#ifndef _GL_SYS_SOCKET_H
-#define _GL_SYS_SOCKET_H
+#ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
+#define _@GUARD_PREFIX@_SYS_SOCKET_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
+/* Fix some definitions from <winsock2.h>. */
+
#if @HAVE_WINSOCK2_H@
# if !GNULIB_defined_rpl_fd_isset
#endif
-/* Wrap everything else to use libc file descriptors for sockets. */
+/* Hide some function declarations from <winsock2.h>. */
-#if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef close
-# define close close_used_without_including_unistd_h
-# else
- _GL_WARN_ON_USE (close,
- "close() used without including <unistd.h>");
+#if @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef close
+# define close close_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (close,
+ "close() used without including <unistd.h>");
+# endif
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef gethostname
+# define gethostname gethostname_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (gethostname,
+ "gethostname() used without including <unistd.h>");
+# endif
# endif
-#endif
-
-#if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef gethostname
-# define gethostname gethostname_used_without_including_unistd_h
-# else
- _GL_WARN_ON_USE (gethostname,
- "gethostname() used without including <unistd.h>");
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef select
+# define select select_used_without_including_sys_select_h
+# else
+ _GL_WARN_ON_USE (select,
+ "select() used without including <sys/select.h>");
+# endif
# endif
#endif
+/* Wrap everything else to use libc file descriptors for sockets. */
+
#if @GNULIB_SOCKET@
# if @HAVE_WINSOCK2_H@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# endif
#endif
-#if @HAVE_WINSOCK2_H@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef select
-# define select select_used_without_including_sys_select_h
-# else
- _GL_WARN_ON_USE (select,
- "select() used without including <sys/select.h>");
-# endif
-#endif
-
#if @GNULIB_ACCEPT4@
/* Accept a connection on a socket, with specific opening flags.
The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
# endif
#endif
-#endif /* _GL_SYS_SOCKET_H */
-#endif /* _GL_SYS_SOCKET_H */
+#endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
+#endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
#endif
#else
/* Normal invocation convention. */
-#ifndef _GL_SYS_STAT_H
+#ifndef _@GUARD_PREFIX@_SYS_STAT_H
/* Get nlink_t. */
#include <sys/types.h>
/* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
-#ifndef _GL_SYS_STAT_H
-#define _GL_SYS_STAT_H
+#ifndef _@GUARD_PREFIX@_SYS_STAT_H
+#define _@GUARD_PREFIX@_SYS_STAT_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_SYS_STAT_H */
-#endif /* _GL_SYS_STAT_H */
+#endif /* _@GUARD_PREFIX@_SYS_STAT_H */
+#endif /* _@GUARD_PREFIX@_SYS_STAT_H */
#endif
#endif
@PRAGMA_COLUMNS@
-#if defined _GL_SYS_TIME_H
+#if defined _@GUARD_PREFIX@_SYS_TIME_H
/* Simply delegate to the system's header, without adding anything. */
# if @HAVE_SYS_TIME_H@
#else
-# define _GL_SYS_TIME_H
+# define _@GUARD_PREFIX@_SYS_TIME_H
# if @HAVE_SYS_TIME_H@
# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
# endif
# endif
-#endif /* _GL_SYS_TIME_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
/* This file is supposed to be used on platforms where <sys/times.h>
is missing. */
-#ifndef _GL_SYS_TIMES_H
+#ifndef _@GUARD_PREFIX@_SYS_TIMES_H
# if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SYS_TIMES_H@
# endif
-# define _GL_SYS_TIMES_H
+# define _@GUARD_PREFIX@_SYS_TIMES_H
/* Get clock_t.
But avoid namespace pollution on glibc systems. */
}
# endif
-#endif /* _GL_SYS_TIMES_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIMES_H */
# endif
@PRAGMA_COLUMNS@
-#ifndef _GL_SYS_UIO_H
+#ifndef _@GUARD_PREFIX@_SYS_UIO_H
#if @HAVE_SYS_UIO_H@
#endif
-#ifndef _GL_SYS_UIO_H
-#define _GL_SYS_UIO_H
+#ifndef _@GUARD_PREFIX@_SYS_UIO_H
+#define _@GUARD_PREFIX@_SYS_UIO_H
#if !@HAVE_SYS_UIO_H@
/* A platform that lacks <sys/uio.h>. */
#endif
-#endif /* _GL_SYS_UIO_H */
-#endif /* _GL_SYS_UIO_H */
+#endif /* _@GUARD_PREFIX@_SYS_UIO_H */
+#endif /* _@GUARD_PREFIX@_SYS_UIO_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_SYS_UTSNAME_H
+#ifndef _@GUARD_PREFIX@_SYS_UTSNAME_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
@PRAGMA_COLUMNS@
#if @HAVE_SYS_UTSNAME_H@
+
+/* Minix 3.1.8 has a bug: <stddef.h> must be included before <sys/utsname.h>.
+ But avoid namespace pollution on glibc systems. */
+# if defined __minix && !defined __GLIBC__
+# include <stddef.h>
+# endif
+
# @INCLUDE_NEXT@ @NEXT_SYS_UTSNAME_H@
+
#endif
-#define _GL_SYS_UTSNAME_H
+#define _@GUARD_PREFIX@_SYS_UTSNAME_H
/* The definition of _GL_ARG_NONNULL is copied here. */
#endif
-#endif /* _GL_SYS_UTSNAME_H */
+#endif /* _@GUARD_PREFIX@_SYS_UTSNAME_H */
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_SYS_WAIT_H
+#ifndef _@GUARD_PREFIX@_SYS_WAIT_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_SYS_WAIT_H@
#endif
-#ifndef _GL_SYS_WAIT_H
-#define _GL_SYS_WAIT_H
+#ifndef _@GUARD_PREFIX@_SYS_WAIT_H
+#define _@GUARD_PREFIX@_SYS_WAIT_H
/* Get pid_t. */
#include <sys/types.h>
#endif
-#endif /* _GL_SYS_WAIT_H */
-#endif /* _GL_SYS_WAIT_H */
+#endif /* _@GUARD_PREFIX@_SYS_WAIT_H */
+#endif /* _@GUARD_PREFIX@_SYS_WAIT_H */
/* Written by Simon Josefsson based on sysexits(3) man page */
-#ifndef _GL_SYSEXITS_H
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
-#ifndef _GL_SYSEXITS_H
-#define _GL_SYSEXITS_H
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
+#define _@GUARD_PREFIX@_SYSEXITS_H
#if !@HAVE_SYSEXITS_H@
#endif
-#endif /* _GL_SYSEXITS_H */
-#endif /* _GL_SYSEXITS_H */
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _GL_TERMIOS_H
+#ifndef _@GUARD_PREFIX@_TERMIOS_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_TERMIOS_H@
#endif
-#ifndef _GL_TERMIOS_H
-#define _GL_TERMIOS_H
+#ifndef _@GUARD_PREFIX@_TERMIOS_H
+#define _@GUARD_PREFIX@_TERMIOS_H
#if @GNULIB_TCGETSID@
/* Get pid_t. */
#endif
-#endif /* _GL_TERMIOS_H */
-#endif /* _GL_TERMIOS_H */
+#endif /* _@GUARD_PREFIX@_TERMIOS_H */
+#endif /* _@GUARD_PREFIX@_TERMIOS_H */
without adding our own declarations. */
#if (defined __need_time_t || defined __need_clock_t \
|| defined __need_timespec \
- || defined _GL_TIME_H)
+ || defined _@GUARD_PREFIX@_TIME_H)
# @INCLUDE_NEXT@ @NEXT_TIME_H@
#else
-# define _GL_TIME_H
+# define _@GUARD_PREFIX@_TIME_H
# @INCLUDE_NEXT@ @NEXT_TIME_H@
--- /dev/null
+/* Add two struct timespec values.
+
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+/* Return the sum of two timespec values A and B. On overflow, return
+ an extremal value. This assumes 0 <= tv_nsec <= 999999999. */
+
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_add (struct timespec a, struct timespec b)
+{
+ struct timespec r;
+ time_t rs = a.tv_sec;
+ time_t bs = b.tv_sec;
+ int ns = a.tv_nsec + b.tv_nsec;
+ int nsd = ns - 1000000000;
+ int rns = ns;
+
+ if (0 <= nsd)
+ {
+ rns = nsd;
+ if (rs == TYPE_MAXIMUM (time_t))
+ {
+ if (0 <= bs)
+ goto high_overflow;
+ bs++;
+ }
+ else
+ rs++;
+ }
+
+ if (INT_ADD_OVERFLOW (rs, bs))
+ {
+ if (rs < 0)
+ {
+ rs = TYPE_MINIMUM (time_t);
+ rns = 0;
+ }
+ else
+ {
+ high_overflow:
+ rs = TYPE_MAXIMUM (time_t);
+ rns = 999999999;
+ }
+ }
+ else
+ rs += bs;
+
+ r.tv_sec = rs;
+ r.tv_nsec = rns;
+ return r;
+}
--- /dev/null
+/* Subtract two struct timespec values.
+
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+/* Return the difference between two timespec values A and B. On
+ overflow, return an extremal value. This assumes 0 <= tv_nsec <=
+ 999999999. */
+
+#include <config.h>
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_sub (struct timespec a, struct timespec b)
+{
+ struct timespec r;
+ time_t rs = a.tv_sec;
+ time_t bs = b.tv_sec;
+ int ns = a.tv_nsec - b.tv_nsec;
+ int rns = ns;
+
+ if (ns < 0)
+ {
+ rns = ns + 1000000000;
+ if (rs == TYPE_MINIMUM (time_t))
+ {
+ if (bs <= 0)
+ goto low_overflow;
+ bs--;
+ }
+ else
+ rs--;
+ }
+
+ if (INT_SUBTRACT_OVERFLOW (rs, bs))
+ {
+ if (rs < 0)
+ {
+ low_overflow:
+ rs = TYPE_MINIMUM (time_t);
+ rns = 0;
+ }
+ else
+ {
+ rs = TYPE_MAXIMUM (time_t);
+ rns = 999999999;
+ }
+ }
+ else
+ rs -= bs;
+
+ r.tv_sec = rs;
+ r.tv_nsec = rns;
+ return r;
+}
: (int) (a.tv_nsec - b.tv_nsec));
}
+/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
+ nonnegative. */
+static inline int
+timespec_sign (struct timespec a)
+{
+ return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
+}
+
+struct timespec timespec_add (struct timespec, struct timespec);
+struct timespec timespec_sub (struct timespec, struct timespec);
+struct timespec dtotimespec (double);
+
+/* Return an approximation to A, of type 'double'. */
+static inline double
+timespectod (struct timespec a)
+{
+ return a.tv_sec + a.tv_nsec / 1e9;
+}
+
void gettime (struct timespec *);
int settime (struct timespec const *);
#include <stdio.h>
#ifndef P_tmpdir
-# define P_tmpdir "/tmp"
+# ifdef _P_tmpdir /* native Windows */
+# define P_tmpdir _P_tmpdir
+# else
+# define P_tmpdir "/tmp"
+# endif
#endif
#include <sys/stat.h>
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN /* avoid including junk */
+# include <windows.h>
+#endif
+
+#include "pathmax.h"
+
#if _LIBC
# define struct_stat64 struct stat64
#else
}
if (dir == NULL)
{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ char dirbuf[PATH_MAX];
+ DWORD retval;
+
+ /* Find Windows temporary file directory.
+ We try this before P_tmpdir because Windows defines P_tmpdir to "\\"
+ and will therefore try to put all temporary files in the root
+ directory (unless $TMPDIR is set). */
+ retval = GetTempPath (PATH_MAX, dirbuf);
+ if (retval > 0 && retval < PATH_MAX && direxists (dirbuf))
+ dir = dirbuf;
+ else
+#endif
if (direxists (P_tmpdir))
dir = P_tmpdir;
else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp"))
#include "tempname.h"
#include "tmpdir.h"
+/* PATH_MAX is guaranteed to be defined, because this replacement is only
+ used on native Windows. */
+
/* On Windows, opening a file with _O_TEMPORARY has the effect of passing
the FILE_FLAG_DELETE_ON_CLOSE flag to CreateFile(), which has the effect
of deleting the file when it is closed - even when the program crashes.
for (; mbi_avail (i); mbi_advance (i))
{
if (state == 0 && mb_isspace (mbi_cur (i)))
- {
- state = 0;
- continue;
- }
+ continue;
if (state == 0 && !mb_isspace (mbi_cur (i)))
{
}
if (state == 1 && !mb_isspace (mbi_cur (i)))
- {
- state = 1;
- continue;
- }
+ continue;
if (state == 1 && mb_isspace (mbi_cur (i)))
{
}
else if (state == 2 && mb_isspace (mbi_cur (i)))
{
- state = 2;
+ /* empty */
}
else
{
char *p;
/* Trim leading whitespaces. */
- if (how != TRIM_TRAILING) {
- for (p = d; *p && isspace ((unsigned char) *p); p++)
- ;
+ if (how != TRIM_TRAILING)
+ {
+ for (p = d; *p && isspace ((unsigned char) *p); p++)
+ ;
- memmove (d, p, strlen (p) + 1);
- }
+ memmove (d, p, strlen (p) + 1);
+ }
/* Trim trailing whitespaces. */
- if (how != TRIM_LEADING) {
- for (p = d + strlen (d) - 1; p >= d && isspace ((unsigned char) *p); p--)
- *p = '\0';
- }
+ if (how != TRIM_LEADING)
+ {
+ for (p = d + strlen (d) - 1;
+ p >= d && isspace ((unsigned char) *p); p--)
+ *p = '\0';
+ }
}
return d;
# define _GL_WINSOCK2_H_WITNESS
/* Normal invocation. */
-#elif !defined _GL_UNISTD_H
+#elif !defined _@GUARD_PREFIX@_UNISTD_H
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_UNISTD_H@
# undef _GL_INCLUDING_WINSOCK2_H
#endif
-#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
-#define _GL_UNISTD_H
+#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
+#define _@GUARD_PREFIX@_UNISTD_H
/* NetBSD 5.0 mis-defines NULL. Also get size_t. */
#include <stddef.h>
/* mingw declares getcwd in <io.h>, not in <unistd.h>. */
#if ((@GNULIB_GETCWD@ || defined GNULIB_POSIXCHECK) \
&& ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
-# include <io.h>
+# include <io.h> /* mingw32, mingw64 */
+# include <direct.h> /* mingw64 */
#endif
/* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
/* The definition of _GL_WARN_ON_USE is copied here. */
-#if @GNULIB_GETHOSTNAME@
-/* Get all possible declarations of gethostname(). */
-# if @UNISTD_H_HAVE_WINSOCK2_H@
-# if !defined _GL_SYS_SOCKET_H
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef socket
-# define socket socket_used_without_including_sys_socket_h
-# undef connect
-# define connect connect_used_without_including_sys_socket_h
-# undef accept
-# define accept accept_used_without_including_sys_socket_h
-# undef bind
-# define bind bind_used_without_including_sys_socket_h
-# undef getpeername
-# define getpeername getpeername_used_without_including_sys_socket_h
-# undef getsockname
-# define getsockname getsockname_used_without_including_sys_socket_h
-# undef getsockopt
-# define getsockopt getsockopt_used_without_including_sys_socket_h
-# undef listen
-# define listen listen_used_without_including_sys_socket_h
-# undef recv
-# define recv recv_used_without_including_sys_socket_h
-# undef send
-# define send send_used_without_including_sys_socket_h
-# undef recvfrom
-# define recvfrom recvfrom_used_without_including_sys_socket_h
-# undef sendto
-# define sendto sendto_used_without_including_sys_socket_h
-# undef setsockopt
-# define setsockopt setsockopt_used_without_including_sys_socket_h
-# undef shutdown
-# define shutdown shutdown_used_without_including_sys_socket_h
-# else
- _GL_WARN_ON_USE (socket,
- "socket() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (connect,
- "connect() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (accept,
- "accept() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (bind,
- "bind() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (getpeername,
- "getpeername() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (getsockname,
- "getsockname() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (getsockopt,
- "getsockopt() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (listen,
- "listen() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (recv,
- "recv() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (send,
- "send() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (recvfrom,
- "recvfrom() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (sendto,
- "sendto() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (setsockopt,
- "setsockopt() used without including <sys/socket.h>");
- _GL_WARN_ON_USE (shutdown,
- "shutdown() used without including <sys/socket.h>");
-# endif
+/* Hide some function declarations from <winsock2.h>. */
+
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef socket
+# define socket socket_used_without_including_sys_socket_h
+# undef connect
+# define connect connect_used_without_including_sys_socket_h
+# undef accept
+# define accept accept_used_without_including_sys_socket_h
+# undef bind
+# define bind bind_used_without_including_sys_socket_h
+# undef getpeername
+# define getpeername getpeername_used_without_including_sys_socket_h
+# undef getsockname
+# define getsockname getsockname_used_without_including_sys_socket_h
+# undef getsockopt
+# define getsockopt getsockopt_used_without_including_sys_socket_h
+# undef listen
+# define listen listen_used_without_including_sys_socket_h
+# undef recv
+# define recv recv_used_without_including_sys_socket_h
+# undef send
+# define send send_used_without_including_sys_socket_h
+# undef recvfrom
+# define recvfrom recvfrom_used_without_including_sys_socket_h
+# undef sendto
+# define sendto sendto_used_without_including_sys_socket_h
+# undef setsockopt
+# define setsockopt setsockopt_used_without_including_sys_socket_h
+# undef shutdown
+# define shutdown shutdown_used_without_including_sys_socket_h
+# else
+ _GL_WARN_ON_USE (socket,
+ "socket() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (connect,
+ "connect() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (accept,
+ "accept() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (bind,
+ "bind() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getpeername,
+ "getpeername() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockname,
+ "getsockname() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockopt,
+ "getsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (listen,
+ "listen() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recv,
+ "recv() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (send,
+ "send() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recvfrom,
+ "recvfrom() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (sendto,
+ "sendto() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (setsockopt,
+ "setsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (shutdown,
+ "shutdown() used without including <sys/socket.h>");
# endif
-# if !defined _GL_SYS_SELECT_H
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef select
-# define select select_used_without_including_sys_select_h
-# else
- _GL_WARN_ON_USE (select,
- "select() used without including <sys/select.h>");
-# endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef select
+# define select select_used_without_including_sys_select_h
+# else
+ _GL_WARN_ON_USE (select,
+ "select() used without including <sys/select.h>");
# endif
# endif
#endif
specification <http://www.opengroup.org/susv3xsh/pread.html>. */
# if @REPLACE_PREAD@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pread
# define pread rpl_pread
# endif
_GL_FUNCDECL_RPL (pread, ssize_t,
<http://www.opengroup.org/susv3xsh/pwrite.html>. */
# if @REPLACE_PWRITE@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pwrite
# define pwrite rpl_pwrite
# endif
_GL_FUNCDECL_RPL (pwrite, ssize_t,
#endif
-#endif /* _GL_UNISTD_H */
-#endif /* _GL_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
-/* Work around unlinkat bugs on Solaris 9.
+/* Work around unlinkat bugs on Solaris 9 and Hurd.
Copyright (C) 2009-2011 Free Software Foundation, Inc.
#include <string.h>
#include <sys/stat.h>
+#include <stdlib.h>
+
#include "dosname.h"
#include "openat.h"
# undef unlinkat
/* unlinkat without AT_REMOVEDIR does not honor trailing / on Solaris
- 9. Solve it in a similar manner to unlink. */
+ 9. Solve it in a similar manner to unlink. Hurd has the same
+ issue. */
int
rpl_unlinkat (int fd, char const *name, int flag)
(!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC)))
# ifdef __cplusplus
+# if !GNULIB_defined_struct__gl_verify_type
template <int w>
struct _gl_verify_type {
unsigned int _gl_verify_error_if_negative: w;
};
+# define GNULIB_defined_struct__gl_verify_type 1
+# endif
# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
_gl_verify_type<(R) ? 1 : -1>
# elif defined _GL_HAVE__STATIC_ASSERT
# endif
# endif
-# ifdef _GL_VERIFY_H
+/* @assert.h omit start@ */
/* Each of these macros verifies that its argument R is nonzero. To
be portable, R should be an integer constant expression. Unlike
contexts, e.g., the top level. */
/* Verify requirement R at compile-time, as an integer constant expression.
- Return 1. */
+ Return 1. This is equivalent to verify_expr (R, 1).
+
+ verify_true is obsolescent; please use verify_expr instead. */
+
+# define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
-# define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
+/* Verify requirement R at compile-time. Return the value of the
+ expression E. */
+
+# define verify_expr(R, E) \
+ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
/* Verify requirement R at compile-time, as a declaration without a
trailing ';'. */
-# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
-# endif
+/* @assert.h omit end@ */
#endif
#else
/* Normal invocation convention. */
-#ifndef _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
#define _GL_ALREADY_INCLUDING_WCHAR_H
#undef _GL_ALREADY_INCLUDING_WCHAR_H
-#ifndef _GL_WCHAR_H
-#define _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
+#define _@GUARD_PREFIX@_WCHAR_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
#endif
-#endif /* _GL_WCHAR_H */
-#endif /* _GL_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
#endif
* wctrans_t, and wctype_t are not yet implemented.
*/
-#ifndef _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
#endif
-#ifndef _GL_WCTYPE_H
-#define _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
+#define _@GUARD_PREFIX@_WCTYPE_H
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
# define iswspace rpl_iswspace
# define iswupper rpl_iswupper
# define iswxdigit rpl_iswxdigit
+# endif
+# endif
+# if @REPLACE_TOWLOWER@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towlower rpl_towlower
# define towupper rpl_towupper
# endif
}
static inline wint_t
-# if @REPLACE_ISWCNTRL@
+# if @REPLACE_TOWLOWER@
rpl_towlower
# else
towlower
}
static inline wint_t
-# if @REPLACE_ISWCNTRL@
+# if @REPLACE_TOWLOWER@
rpl_towupper
# else
towupper
# endif
#endif
-#if @REPLACE_ISWCNTRL@ || defined __MINGW32__
+#if @REPLACE_TOWLOWER@ || defined __MINGW32__
_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
#else
#endif
-#endif /* _GL_WCTYPE_H */
-#endif /* _GL_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
{
error (exit_failure, 0, "%s", _("memory exhausted"));
- /* The `noreturn' cannot be given to error, since it may return if
+ /* _Noreturn cannot be given to error, since it may return if
its first argument is 0. To help compilers understand the
xalloc_die does not return, call abort. Also, the abort is a
safety feature if exit_failure is 0 (which shouldn't happen). */
# endif
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
-
# if __GNUC__ >= 3
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
# else
or by using gnulib's xalloc-die module. This is the
function to call when one wants the program to die because of a
memory allocation failure. */
-extern void xalloc_die (void) _GL_ATTRIBUTE_NORETURN;
+extern _Noreturn void xalloc_die (void);
void *xmalloc (size_t s)
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
{
/* The approximate size to use for initial small allocation
requests, when the invoking code specifies an old size of
- zero. 64 bytes is the largest "small" request for the
- GNU C library malloc. */
- enum { DEFAULT_MXFAST = 64 };
+ zero. This is the largest "small" request for the GNU C
+ library malloc. */
+ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
n = DEFAULT_MXFAST / s;
n += !n;
extern "C" {
# endif
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
-
/* This function is always triggered when memory is exhausted.
It must be defined by the application, either explicitly
or by using gnulib's xalloc-die module. This is the
function to call when one wants the program to die because of a
memory allocation failure. */
-extern void xalloc_die (void) _GL_ATTRIBUTE_NORETURN;
+extern _Noreturn void xalloc_die (void);
char *xmemdup0 (void const *p, size_t s);
#include "xnanosleep.h"
-#include <limits.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <assert.h>
+#include <timespec.h>
+
#include <errno.h>
-#include <sys/types.h>
#include <time.h>
-#include "intprops.h"
-
-#ifndef TIME_T_MAX
-# define TIME_T_MAX TYPE_MAXIMUM (time_t)
-#endif
-
/* Sleep until the time (call it WAKE_UP_TIME) specified as
SECONDS seconds after the time this function is called.
SECONDS must be non-negative. If SECONDS is so large that
int
xnanosleep (double seconds)
{
- enum { BILLION = 1000000000 };
-
- /* For overflow checking, use naive comparison if possible, widening
- to long double if double is not wide enough. Otherwise, use <=,
- not <, to avoid problems when TIME_T_MAX is less than SECONDS but
- compares equal to SECONDS after loss of precision when coercing
- from time_t to long double. This mishandles near-maximal values
- in some rare (perhaps theoretical) cases but that is better than
- undefined behavior. */
- bool overflow = ((time_t) ((double) TIME_T_MAX / 2) == TIME_T_MAX / 2
- ? TIME_T_MAX < seconds
- : (time_t) ((long double) TIME_T_MAX / 2) == TIME_T_MAX / 2
- ? TIME_T_MAX < (long double) seconds
- : TIME_T_MAX <= (long double) seconds);
-
- struct timespec ts_sleep;
-
- assert (0 <= seconds);
-
- /* Separate whole seconds from nanoseconds. */
- if (! overflow)
- {
- time_t floor_seconds = seconds;
- double ns = BILLION * (seconds - floor_seconds);
- ts_sleep.tv_sec = floor_seconds;
-
- /* Round up to the next whole number, if necessary, so that we
- always sleep for at least the requested amount of time. Assuming
- the default rounding mode, we don't have to worry about the
- rounding error when computing 'ns' above, since the error won't
- cause 'ns' to drop below an integer boundary. */
- ts_sleep.tv_nsec = ns;
- ts_sleep.tv_nsec += (ts_sleep.tv_nsec < ns);
-
- /* Normalize the interval length. nanosleep requires this. */
- if (BILLION <= ts_sleep.tv_nsec)
- {
- if (ts_sleep.tv_sec == TIME_T_MAX)
- overflow = true;
- else
- {
- ts_sleep.tv_sec++;
- ts_sleep.tv_nsec -= BILLION;
- }
- }
- }
+ struct timespec ts_sleep = dtotimespec (seconds);
for (;;)
{
- if (overflow)
- {
- ts_sleep.tv_sec = TIME_T_MAX;
- ts_sleep.tv_nsec = BILLION - 1;
- }
-
/* Linux-2.6.8.1's nanosleep returns -1, but doesn't set errno
when resumed after being suspended. Earlier versions would
set errno to EINTR. nanosleep from linux-2.6.10, as well as
_DECLARE_XSTRTOL (xstrtoull, unsigned long long int)
#endif
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-#endif
-
/* Report an error for an invalid integer in an option argument.
ERR is the error code returned by one of the xstrto* functions.
After reporting an error, exit with a failure status. */
-void xstrtol_fatal (enum strtol_error,
- int, char, struct option const *,
- char const *) _GL_ATTRIBUTE_NORETURN;
+void _Noreturn xstrtol_fatal (enum strtol_error,
+ int, char, struct option const *,
+ char const *);
#endif /* not XSTRTOL_H_ */
-# _Exit.m4 serial 1
+# _Exit.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([_Exit])
if test $ac_cv_func__Exit = no; then
HAVE__EXIT=0
- AC_LIBOBJ([_Exit])
- gl_PREREQ__EXIT
fi
])
-# absolute-header.m4 serial 12
+# absolute-header.m4 serial 13
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_ABSOLUTE_HEADER],
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_PREPROC_REQUIRE()dnl
+dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
m4_foreach_w([gl_HEADER_NAME], [$1],
[AS_VAR_PUSHDEF([gl_absolute_header],
[gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl
# acl.m4 - check for access control list (ACL) primitives
-# serial 12
+# serial 13
# Copyright (C) 2002, 2004-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
AC_CHECK_FUNCS(
[acl_get_file acl_get_fd acl_set_file acl_set_fd \
acl_free acl_from_mode acl_from_text \
- acl_delete_def_file acl_extended_file \
+ acl_delete_def_file acl_extended_file acl_extended_file_nofollow \
acl_delete_fd_np acl_delete_file_np \
acl_copy_ext_native acl_create_entry_np \
acl_to_short_text acl_free_text])
if test $ac_cv_func_getacl = yes; then
use_acl=1
fi
+ dnl Test for HP-UX 11.11 API.
+ AC_CHECK_HEADERS([aclv.h], [], [], [#include <sys/types.h>])
fi
dnl Test for AIX API (AIX 5.3 or newer).
-# acosl.m4 serial 3
+# acosl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_ACOSL=0
HAVE_ACOSL=0
- AC_LIBOBJ([acosl])
+ dnl Find libraries needed to link lib/acosl.c.
AC_REQUIRE([gl_FUNC_ASINL])
AC_REQUIRE([gl_FUNC_SQRTL])
dnl Append $ASINL_LIBM to ACOSL_LIBM, avoiding gratuitous duplicates.
-# alloca.m4 serial 11
+# alloca.m4 serial 13
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
# Prerequisites of lib/alloca.c.
# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
AC_DEFUN([gl_PREREQ_ALLOCA], [:])
+
+# This works around a bug in autoconf <= 2.68.
+# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
+
+m4_version_prereq([2.69], [] ,[
+
+# This is taken from the following Autoconf patch:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
+
+# _AC_LIBOBJ_ALLOCA
+# -----------------
+# Set up the LIBOBJ replacement of `alloca'. Well, not exactly
+# AC_LIBOBJ since we actually set the output variable `ALLOCA'.
+# Nevertheless, for Automake, AC_LIBSOURCES it.
+m4_define([_AC_LIBOBJ_ALLOCA],
+[# The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+AC_LIBSOURCES(alloca.c)
+AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl
+AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using `alloca.c'.])
+
+AC_CACHE_CHECK(whether `alloca.c' needs Cray hooks, ac_cv_os_cray,
+[AC_EGREP_CPP(webecray,
+[#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
+if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ AC_CHECK_FUNC($ac_func,
+ [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
+ [Define to one of `_getb67', `GETB67',
+ `getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for
+ `alloca.c' support on those systems.])
+ break])
+ done
+fi
+
+AC_CACHE_CHECK([stack direction for C alloca],
+ [ac_cv_c_stack_direction],
+[AC_RUN_IFELSE([AC_LANG_SOURCE(
+[AC_INCLUDES_DEFAULT
+int
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+ return find_stack_direction (0, argc + !argv + 20) < 0;
+}])],
+ [ac_cv_c_stack_direction=1],
+ [ac_cv_c_stack_direction=-1],
+ [ac_cv_c_stack_direction=0])])
+AH_VERBATIM([STACK_DIRECTION],
+[/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+@%:@undef STACK_DIRECTION])dnl
+AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
+])# _AC_LIBOBJ_ALLOCA
+])
-# alphasort.m4 serial 1
+# alphasort.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([alphasort])
if test $ac_cv_func_alphasort = no; then
HAVE_ALPHASORT=0
- AC_LIBOBJ([alphasort])
- gl_PREREQ_ALPHASORT
fi
])
+++ /dev/null
-# arcfour.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_ARCFOUR],
-[
- AC_LIBOBJ([arcfour])
-])
-# arctwo.m4 serial 2
+# arctwo.m4 serial 4
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+# Prerequisites of lib/arctwo.c.
AC_DEFUN([gl_ARCTWO],
[
- AC_LIBOBJ([arctwo])
- # Prerequisites of lib/arctwo.c.
AC_REQUIRE([AC_C_INLINE])
+ :
])
+++ /dev/null
-#serial 3
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_ARGMATCH],
-[
- AC_LIBOBJ([argmatch])
-])
-# argp.m4 serial 11
+# argp.m4 serial 12
dnl Copyright (C) 2003-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_C_INLINE])
AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt
- dnl always.
- gl_REPLACE_GETOPT
- dnl Note: gl_REPLACE_GETOPT does AC_LIBOBJ([getopt]), AC_LIBOBJ([getopt1]).
AC_CHECK_DECL([program_invocation_name],
[AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_NAME], [1],
AC_CHECK_FUNCS_ONCE([flockfile funlockfile])
AC_CHECK_HEADERS_ONCE([features.h linewrap.h])
])
+
+dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt
+dnl always.
+AC_DEFUN([gl_REPLACE_GETOPT_ALWAYS], [])
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 9 argz.m4
+# serial 10 argz.m4
AC_DEFUN([gl_FUNC_ARGZ],
[gl_PREREQ_ARGZ
#endif])
ARGZ_H=
-AC_CHECK_FUNC([argz_replace], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
+AC_CHECK_FUNC([argz_replace], [], [ARGZ_H=argz.h])
dnl if have system argz functions, allow forced use of
dnl libltdl-supplied implementation (and default to do so
AS_IF([test "$lt_cv_sys_argz_works" = yes],
[AC_DEFINE([HAVE_WORKING_ARGZ], [1],
[This value is set to 1 to indicate that the system argz facility works])],
- [ARGZ_H=argz.h
- AC_LIBOBJ([argz])])])
+ [ARGZ_H=argz.h])])
AC_SUBST([ARGZ_H])
AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"])
-# asinl.m4 serial 3
+# asinl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_ASINL=0
HAVE_ASINL=0
- AC_LIBOBJ([asinl])
+ dnl Find libraries needed to link lib/asinl.c.
AC_REQUIRE([gl_FUNC_SQRTL])
dnl Append $SQRTL_LIBM to ASINL_LIBM, avoiding gratuitous duplicates.
case " $ASINL_LIBM " in
-# atanl.m4 serial 3
+# atanl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_ATANL=0
HAVE_ATANL=0
- AC_LIBOBJ([atanl])
+ dnl Find libraries needed to link lib/atanl.c.
AC_REQUIRE([gl_FUNC_ISNANL])
dnl Append $ISNANL_LIBM to ATANL_LIBM, avoiding gratuitous duplicates.
case " $ATANL_LIBM " in
-# atexit.m4 serial 3
+# atexit.m4 serial 4
dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_ATEXIT],
[
- AC_REPLACE_FUNCS([atexit])
- if test $ac_cv_func_atexit = no; then
- gl_PREREQ_ATEXIT
- fi
+ AC_CHECK_FUNCS([atexit])
])
# Prerequisites of lib/atexit.c.
-# atoll.m4 serial 1
+# atoll.m4 serial 2
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([atoll])
if test $ac_cv_func_atoll = no; then
HAVE_ATOLL=0
- AC_LIBOBJ([atoll])
- gl_PREREQ_ATOLL
fi
fi
])
-# backupfile.m4 serial 13
+# backupfile.m4 serial 14
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/backupfile.c.
AC_DEFUN([gl_BACKUPFILE],
[
- AC_LIBOBJ([backupfile])
-
- dnl Prerequisites of lib/backupfile.c.
AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
AC_CHECK_FUNCS_ONCE([pathconf])
-# btowc.m4 serial 9
+# btowc.m4 serial 10
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
*) REPLACE_BTOWC=1 ;;
esac
fi
- if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
- AC_LIBOBJ([btowc])
- gl_PREREQ_BTOWC
- fi
])
# Prerequisites of lib/btowc.c.
# Written by Paul Eggert.
-# serial 12
+# serial 13
AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC],
- [# for STACK_DIRECTION
- AC_REQUIRE([AC_FUNC_ALLOCA])
+ [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CHECK_FUNCS_ONCE([setrlimit])
AC_CHECK_HEADERS_ONCE([ucontext.h])
-# c-strtod.m4 serial 12
+# c-strtod.m4 serial 14
# Copyright (C) 2004-2006, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
fi
])
+dnl Prerequisites of lib/c-strtod.c.
AC_DEFUN([gl_C_STRTOD],
[
- AC_LIBOBJ([c-strtod])
-
- dnl Prerequisites of lib/c-strtod.c.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS([strtod_l])
:
])
+dnl Prerequisites of lib/c-strtold.c.
AC_DEFUN([gl_C_STRTOLD],
[
- AC_LIBOBJ([c-strtold])
-
- dnl Prerequisites of lib/c-strtold.c.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_C99_STRTOLD])
AC_CHECK_FUNCS([strtold_l])
-# calloc.m4 serial 12
+# calloc.m4 serial 13
# Copyright (C) 2004-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
[Define to 1 if your system has a GNU libc compatible `calloc'
function, and to 0 otherwise.])],
[AC_DEFINE([HAVE_CALLOC_GNU], [0])
- gl_REPLACE_CALLOC
+ REPLACE_CALLOC=1
])
])# gl_FUNC_CALLOC_GNU
AC_DEFINE([HAVE_CALLOC_POSIX], [1],
[Define if the 'calloc' function is POSIX compliant.])
else
- gl_REPLACE_CALLOC
+ REPLACE_CALLOC=1
fi
])
-
-AC_DEFUN([gl_REPLACE_CALLOC],
-[
- AC_LIBOBJ([calloc])
- REPLACE_CALLOC=1
-])
-# canon-host.m4 serial 9
+# canon-host.m4 serial 10
dnl Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gl_CANON_HOST],
-[
- AC_LIBOBJ([canon-host])
- gl_PREREQ_CANON_HOST
-])
-
AC_DEFUN([gl_PREREQ_CANON_HOST], [
:
])
-# canonicalize.m4 serial 21
+# canonicalize.m4 serial 23
dnl Copyright (C) 2003-2007, 2009-2011 Free Software Foundation, Inc.
# not provide or fix realpath.
AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE],
[
- AC_LIBOBJ([canonicalize])
-
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
if test $ac_cv_func_canonicalize_file_name = no; then
HAVE_CANONICALIZE_FILE_NAME=0
- AC_LIBOBJ([canonicalize-lgpl])
if test $ac_cv_func_realpath = no; then
HAVE_REALPATH=0
elif test "$gl_cv_func_realpath_works" != yes; then
REPLACE_REALPATH=1
fi
elif test "$gl_cv_func_realpath_works" != yes; then
- AC_LIBOBJ([canonicalize-lgpl])
- REPLACE_REALPATH=1
REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
fi
])
-# ceil.m4 serial 5
+# ceil.m4 serial 8
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_DOUBLE_MINUS_ZERO_CODE[
]gl_DOUBLE_SIGNBIT_CODE[
-int main()
+static double dummy (double f) { return 0; }
+int main (int argc, char *argv[])
{
+ double (*my_ceil) (double) = argc ? ceil : dummy;
+ int result = 0;
/* Test whether ceil (-0.0) is -0.0. */
- if (signbitd (minus_zerod) && !signbitd (ceil (minus_zerod)))
- return 1;
- return 0;
+ if (signbitd (minus_zerod) && !signbitd (my_ceil (minus_zerod)))
+ result |= 1;
+ /* Test whether ceil (-0.3) is -0.0. */
+ if (signbitd (-0.3) && !signbitd (my_ceil (-0.3)))
+ result |= 2;
+ return result;
}
]])],
[gl_cv_func_ceil_ieee=yes],
fi
])
if test $REPLACE_CEIL = 1; then
- AC_LIBOBJ([ceil])
+ dnl No libraries are needed to link lib/ceil.c.
CEIL_LIBM=
fi
AC_SUBST([CEIL_LIBM])
-# ceilf.m4 serial 8
+# ceilf.m4 serial 11
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_FLOAT_MINUS_ZERO_CODE[
]gl_FLOAT_SIGNBIT_CODE[
-int main()
+static float dummy (float f) { return 0; }
+int main (int argc, char *argv[])
{
+ float (*my_ceilf) (float) = argc ? ceilf : dummy;
+ int result = 0;
/* Test whether ceilf (-0.0f) is -0.0f. */
- if (signbitf (minus_zerof) && !signbitf (ceilf (minus_zerof)))
- return 1;
- return 0;
+ if (signbitf (minus_zerof) && !signbitf (my_ceilf (minus_zerof)))
+ result |= 1;
+ /* Test whether ceilf (-0.3f) is -0.0f. */
+ if (signbitf (-0.3f) && !signbitf (my_ceilf (-0.3f)))
+ result |= 2;
+ return result;
}
]])],
[gl_cv_func_ceilf_ieee=yes],
HAVE_DECL_CEILF=0
fi
if test $HAVE_DECL_CEILF = 0 || test $REPLACE_CEILF = 1; then
- AC_LIBOBJ([ceilf])
+ dnl No libraries are needed to link lib/ceilf.c.
CEILF_LIBM=
fi
AC_SUBST([CEILF_LIBM])
-# ceill.m4 serial 8
+# ceill.m4 serial 10
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_LONG_DOUBLE_MINUS_ZERO_CODE[
]gl_LONG_DOUBLE_SIGNBIT_CODE[
-int main()
+static long double dummy (long double f) { return 0; }
+int main (int argc, char *argv[])
{
+ long double (*my_ceill) (long double) = argc ? ceill : dummy;
/* Test whether ceill (-0.3L) is -0.0L. */
- if (signbitl (minus_zerol) && !signbitl (ceill (-0.3L)))
+ if (signbitl (minus_zerol) && !signbitl (my_ceill (-0.3L)))
return 1;
return 0;
}
HAVE_DECL_CEILL=0
fi
if test $HAVE_DECL_CEILL = 0 || test $REPLACE_CEILL = 1; then
- AC_LIBOBJ([ceill])
+ dnl No libraries are needed to link lib/ceill.c.
CEILL_LIBM=
fi
AC_SUBST([CEILL_LIBM])
-#serial 11
+#serial 12
# Use Gnulib's robust chdir function.
# It can handle arbitrarily long directory names, which means
#endif],
gl_cv_have_arbitrary_file_name_length_limit=yes,
gl_cv_have_arbitrary_file_name_length_limit=no)])
-
- if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
- AC_LIBOBJ([chdir-long])
- gl_PREREQ_CHDIR_LONG
- fi
])
AC_DEFUN([gl_PREREQ_CHDIR_LONG],
-#serial 4
+#serial 5
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_CHDIR_SAFER],
[
- AC_LIBOBJ([chdir-safer])
AC_CHECK_FUNCS_ONCE([readlink])
])
+++ /dev/null
-#serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_CHECK_VERSION],
-[
- AC_LIBOBJ([check-version])
-])
-# serial 24
+# serial 25
# Determine whether we need the chown wrapper.
dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2011 Free Software
dnl mingw lacks chown altogether.
if test $ac_cv_func_chown = no; then
HAVE_CHOWN=0
- AC_LIBOBJ([chown])
else
dnl Some old systems treated chown like lchown.
if test $gl_cv_func_chown_follows_symlink = no; then
REPLACE_CHOWN=1
- AC_LIBOBJ([chown])
fi
dnl Some old systems tried to use uid/gid -1 literally.
AC_DEFINE([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE], [1],
[Define if chown is not POSIX compliant regarding IDs of -1.])
REPLACE_CHOWN=1
- AC_LIBOBJ([chown])
fi
dnl Solaris 9 ignores trailing slash.
AC_DEFINE([CHOWN_TRAILING_SLASH_BUG], [1],
[Define to 1 if chown mishandles trailing slash.])
REPLACE_CHOWN=1
- AC_LIBOBJ([chown])
fi
dnl OpenBSD fails to update ctime if ownership does not change.
AC_DEFINE([CHOWN_CHANGE_TIME_BUG], [1], [Define to 1 if chown fails
to change ctime when at least one argument was not -1.])
REPLACE_CHOWN=1
- AC_LIBOBJ([chown])
- fi
-
- if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
- AC_LIBOBJ([fchown-stub])
fi
fi
])
+++ /dev/null
-#serial 6
-dnl Copyright (C) 2004-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_CLOEXEC],
-[
- AC_LIBOBJ([cloexec])
-])
-#serial 3
+#serial 4
dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/close-stream.c.
AC_DEFUN([gl_CLOSE_STREAM],
[
- AC_LIBOBJ([close-stream])
-
- dnl Prerequisites of lib/close-stream.c.
:
])
-# close.m4 serial 5
+# close.m4 serial 7
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_CLOSE],
[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [
gl_PREREQ_SYS_H_WINSOCK2
if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
dnl Even if the 'socket' module is not used here, another part of the
dnl application may use it and pass file descriptors that refer to
dnl sockets to the close() function. So enable the support for sockets.
- gl_REPLACE_CLOSE
+ REPLACE_CLOSE=1
+ fi
+ ])
+ dnl Replace close() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_CLOSE = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
fi
])
-])
-
-AC_DEFUN([gl_REPLACE_CLOSE],
-[
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- REPLACE_CLOSE=1
- AC_LIBOBJ([close])
- gl_REPLACE_FCLOSE
])
-# closein.m4 serial 1
+# closein.m4 serial 2
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/closein.c.
AC_DEFUN([gl_CLOSEIN],
[
- AC_LIBOBJ([closein])
-
- dnl Prerequisites of lib/closein.c.
:
])
-# closeout.m4 serial 5
+# closeout.m4 serial 6
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/closeout.c.
AC_DEFUN([gl_CLOSEOUT],
[
- AC_LIBOBJ([closeout])
-
- dnl Prerequisites of lib/closeout.c.
:
])
-# cosl.m4 serial 3
+# cosl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_COSL=0
HAVE_COSL=0
- AC_LIBOBJ([cosl])
- AC_LIBOBJ([sincosl])
- AC_LIBOBJ([trigl])
+ dnl Find libraries needed to link lib/cosl.c, lib/sincosl.c, lib/trigl.c.
AC_REQUIRE([gl_FUNC_ISNANL])
AC_REQUIRE([gl_FUNC_FLOOR])
AC_REQUIRE([gl_FUNC_FLOORL])
+++ /dev/null
-# crc.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_CRC],
-[
- AC_LIBOBJ([crc])
-])
-#serial 5
+#serial 6
dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_CYCLE_CHECK],
[
AC_REQUIRE([AC_C_INLINE])
- AC_LIBOBJ([cycle-check])
])
+++ /dev/null
-# des.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_DES],
-[
- AC_LIBOBJ([des])
-])
-#serial 1
+#serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_DIRENT_SAFER],
[
AC_CHECK_FUNCS_ONCE([fdopendir])
- AC_LIBOBJ([opendir-safer])
])
-# serial 20 -*- Autoconf -*-
+# serial 21 -*- Autoconf -*-
dnl Find out how to get the file descriptor associated with an open DIR*.
gl_cv_func_dirfd_macro=no)])
# Use the replacement only if we have no function or macro with that name.
- if test $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro = no,no; then
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
if test $ac_cv_have_decl_dirfd = yes; then
# If the system declares dirfd already, let's declare rpl_dirfd instead.
REPLACE_DIRFD=1
fi
- AC_LIBOBJ([dirfd])
- AC_CACHE_CHECK(
- [how to get the file descriptor associated with an open DIR*],
- gl_cv_sys_dir_fd_member_name,
- [
- dirfd_save_CFLAGS=$CFLAGS
- for ac_expr in d_fd dd_fd; do
+ fi
+])
- CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <sys/types.h>
- #include <dirent.h>]],
- [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])],
- [dir_fd_found=yes]
- )
- CFLAGS=$dirfd_save_CFLAGS
- test "$dir_fd_found" = yes && break
- done
- test "$dir_fd_found" = yes || ac_expr=no_such_member
+dnl Prerequisites of lib/dirfd.c.
+AC_DEFUN([gl_PREREQ_DIRFD],
+[
+ AC_CACHE_CHECK([how to get the file descriptor associated with an open DIR*],
+ [gl_cv_sys_dir_fd_member_name],
+ [
+ dirfd_save_CFLAGS=$CFLAGS
+ for ac_expr in d_fd dd_fd; do
- gl_cv_sys_dir_fd_member_name=$ac_expr
- ]
- )
- if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
- AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME],
- $gl_cv_sys_dir_fd_member_name,
- [the name of the file descriptor member of DIR])
- fi
- AH_VERBATIM(DIR_TO_FD,
- [#ifdef DIR_FD_MEMBER_NAME
+ CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <sys/types.h>
+ #include <dirent.h>]],
+ [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])],
+ [dir_fd_found=yes]
+ )
+ CFLAGS=$dirfd_save_CFLAGS
+ test "$dir_fd_found" = yes && break
+ done
+ test "$dir_fd_found" = yes || ac_expr=no_such_member
+
+ gl_cv_sys_dir_fd_member_name=$ac_expr
+ ]
+ )
+ if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
+ AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME],
+ [$gl_cv_sys_dir_fd_member_name],
+ [the name of the file descriptor member of DIR])
+ fi
+ AH_VERBATIM([DIR_TO_FD],
+ [#ifdef DIR_FD_MEMBER_NAME
# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
#else
# define DIR_TO_FD(Dir_p) -1
#endif
])
- fi
])
-#serial 9 -*- autoconf -*-
+#serial 10 -*- autoconf -*-
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_DIRNAME],
[
AC_REQUIRE([gl_DIRNAME_LGPL])
- AC_LIBOBJ([basename])
- AC_LIBOBJ([dirname])
])
AC_DEFUN([gl_DIRNAME_LGPL],
[
- AC_LIBOBJ([basename-lgpl])
- AC_LIBOBJ([dirname-lgpl])
- AC_LIBOBJ([stripslash])
-
dnl Prerequisites of lib/dirname.h.
AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
-#serial 12
+#serial 14
dnl Copyright (C) 2002, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([dup2])
if test $ac_cv_func_dup2 = no; then
HAVE_DUP2=0
- AC_LIBOBJ([dup2])
fi
], [
AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.])
])
- AC_CHECK_FUNCS_ONCE([fcntl])
if test $HAVE_DUP2 = 1; then
AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
[AC_RUN_IFELSE([
#include <fcntl.h>
#include <errno.h>]],
[int result = 0;
-#if HAVE_FCNTL
+#ifdef FD_CLOEXEC
if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
result |= 1;
-#endif HAVE_FCNTL
+#endif
if (dup2 (1, 1) == 0)
result |= 2;
-#if HAVE_FCNTL
+#ifdef FD_CLOEXEC
if (fcntl (1, F_GETFD) != FD_CLOEXEC)
result |= 4;
#endif
esac])
])
if test "$gl_cv_func_dup2_works" = no; then
- gl_REPLACE_DUP2
+ REPLACE_DUP2=1
fi
fi
-])
-
-AC_DEFUN([gl_REPLACE_DUP2],
-[
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- AC_CHECK_FUNCS_ONCE([dup2])
- if test $ac_cv_func_dup2 = yes; then
- REPLACE_DUP2=1
- fi
- AC_LIBOBJ([dup2])
+ dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP2=1
+ fi
+ ])
])
-# dup3.m4 serial 2
+# dup3.m4 serial 3
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test $ac_cv_func_dup3 != yes; then
HAVE_DUP3=0
fi
+
+dnl Not needed yet, because dup3 is unconditionally replaced.
+dnl dnl Replace dup3() for supporting the gnulib-defined fchdir() function,
+dnl dnl to keep fchdir's bookkeeping up-to-date.
+dnl m4_ifdef([gl_FUNC_FCHDIR], [
+dnl gl_TEST_FCHDIR
+dnl if test $HAVE_FCHDIR = 0; then
+dnl REPLACE_DUP3=1
+dnl fi
+dnl ])
])
-# duplocale.m4 serial 6
+# duplocale.m4 serial 7
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DUPLOCALE=0
fi
- if test $REPLACE_DUPLOCALE = 1; then
- AC_LIBOBJ([duplocale])
- gl_PREREQ_DUPLOCALE
- fi
])
# Prerequisites of lib/duplocale.c.
-# errno_h.m4 serial 9
+# errno_h.m4 serial 10
dnl Copyright (C) 2004, 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#if !defined ENOTSUP
booboo
#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
#if !defined ESTALE
booboo
#endif
-#serial 13
+#serial 14
# Copyright (C) 1996-1998, 2001-2004, 2009-2011 Free Software Foundation, Inc.
#
AC_DEFUN([gl_ERROR],
[
- AC_FUNC_ERROR_AT_LINE
- dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
- gl_PREREQ_ERROR
-])
-
-# Redefine AC_FUNC_ERROR_AT_LINE, because it is no longer maintained in
-# Autoconf.
-AC_DEFUN([AC_FUNC_ERROR_AT_LINE],
-[
- AC_LIBSOURCES([error.h, error.c])dnl
+ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+ dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[error_at_line (0, 0, "", 0, "an error occurred");]])],
[ac_cv_lib_error_at_line=yes],
[ac_cv_lib_error_at_line=no])])
- if test $ac_cv_lib_error_at_line = no; then
- AC_LIBOBJ([error])
- fi
])
# Prerequisites of lib/error.c.
-# euidaccess.m4 serial 12
+# euidaccess.m4 serial 13
dnl Copyright (C) 2002-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Persuade glibc <unistd.h> to declare euidaccess().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_REPLACE_FUNCS([euidaccess])
+ AC_CHECK_FUNCS([euidaccess])
if test $ac_cv_func_euidaccess = no; then
HAVE_EUIDACCESS=0
- gl_PREREQ_EUIDACCESS
fi
])
+++ /dev/null
-# exclude.m4 serial 7
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
-dnl Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_EXCLUDE],
-[
- AC_LIBOBJ([exclude])
-])
-# expl.m4 serial 2
+# expl.m4 serial 3
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_EXPL=0
HAVE_EXPL=0
- AC_LIBOBJ([expl])
+ dnl Find libraries needed to link lib/expl.c.
AC_REQUIRE([gl_FUNC_FLOORL])
EXPL_LIBM="$FLOORL_LIBM"
fi
-# serial 9 -*- Autoconf -*-
+# serial 10 -*- Autoconf -*-
# Enable extensions on systems that normally disable them.
# Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
+/* Enable general extensions on MacOS X. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
test $ac_cv_safe_to_define___extensions__ = yes &&
AC_DEFINE([__EXTENSIONS__])
AC_DEFINE([_ALL_SOURCE])
+ AC_DEFINE([_DARWIN_C_SOURCE])
AC_DEFINE([_GNU_SOURCE])
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
AC_DEFINE([_TANDEM_SOURCE])
-# fchdir.m4 serial 16
+# fchdir.m4 serial 17
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
HAVE_DECL_FCHDIR=0
fi
- AC_CHECK_FUNCS_ONCE([fchdir])
- if test $ac_cv_func_fchdir = no; then
- HAVE_FCHDIR=0
+ AC_REQUIRE([gl_TEST_FCHDIR])
+ if test $HAVE_FCHDIR = 0; then
AC_LIBOBJ([fchdir])
gl_PREREQ_FCHDIR
AC_DEFINE([REPLACE_FCHDIR], [1],
REPLACE_OPENDIR=1
REPLACE_CLOSEDIR=1
REPLACE_DUP=1
- gl_REPLACE_OPEN
- gl_REPLACE_CLOSE
- gl_REPLACE_DUP2
- dnl dup3 is already unconditionally replaced
- gl_REPLACE_FCNTL
AC_CACHE_CHECK([whether open can visit directories],
[gl_cv_func_open_directory_works],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <fcntl.h>
fi
])
+# Determine whether to use the overrides in lib/fchdir.c.
+AC_DEFUN([gl_TEST_FCHDIR],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([fchdir])
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+])
+
# Prerequisites of lib/fchdir.c.
AC_DEFUN([gl_PREREQ_FCHDIR], [:])
-# fclose.m4 serial 4
+# fclose.m4 serial 5
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FCLOSE],
[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+
gl_FUNC_FFLUSH_STDIN
if test $gl_cv_func_fflush_stdin = no; then
- gl_REPLACE_FCLOSE
+ REPLACE_FCLOSE=1
fi
-])
-AC_DEFUN([gl_REPLACE_FCLOSE],
-[
- AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- REPLACE_FCLOSE=1
- AC_LIBOBJ([fclose])
+ AC_REQUIRE([gl_FUNC_CLOSE])
+ if test $REPLACE_CLOSE = 1; then
+ REPLACE_FCLOSE=1
+ fi
])
-#serial 7
+#serial 9
dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FCNTL_SAFER],
[
- AC_LIBOBJ([open-safer])
- AC_LIBOBJ([creat-safer])
- # Prerequisites of lib/open-safer.c.
+ dnl Prerequisites of lib/open-safer.c.
AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
])
AC_DEFUN([gl_OPENAT_SAFER],
[
AC_REQUIRE([gl_FCNTL_SAFER])
- AC_LIBOBJ([openat-safer])
])
-# fcntl.m4 serial 4
+# fcntl.m4 serial 5
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl No witness macro needed for this bug.
fi
fi
+ dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ gl_REPLACE_FCNTL
+ fi
+ ])
])
AC_DEFUN([gl_REPLACE_FCNTL],
else
REPLACE_FCNTL=1
fi
- AC_LIBOBJ([fcntl])
])
-# serial 6
+# serial 8
# See if we need to provide fdopendir.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
]])
AC_CHECK_FUNCS_ONCE([fdopendir])
if test $ac_cv_func_fdopendir = no; then
- AC_LIBOBJ([openat-proc])
- AC_LIBOBJ([fdopendir])
HAVE_FDOPENDIR=0
else
AC_CACHE_CHECK([whether fdopendir works],
#include <fcntl.h>
#include <unistd.h>
#if !HAVE_DECL_FDOPENDIR
-extern DIR *fdopendir (int);
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
#endif
]], [int result = 0;
int fd = open ("conftest.c", O_RDONLY);
[gl_cv_func_fdopendir_works="guessing no"])])
if test "$gl_cv_func_fdopendir_works" != yes; then
REPLACE_FDOPENDIR=1
- AC_LIBOBJ([fdopendir])
fi
fi
])
-# fflush.m4 serial 11
+# fflush.m4 serial 12
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
AC_DEFUN([gl_FUNC_FFLUSH],
[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
gl_FUNC_FFLUSH_STDIN
if test $gl_cv_func_fflush_stdin = no; then
- gl_REPLACE_FFLUSH
+ REPLACE_FFLUSH=1
fi
])
])
])
-AC_DEFUN([gl_REPLACE_FFLUSH],
-[
- AC_LIBOBJ([fflush])
- AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- REPLACE_FFLUSH=1
- gl_PREREQ_FFLUSH
-])
-
# Prerequisites of lib/fflush.c.
AC_DEFUN([gl_PREREQ_FFLUSH],
[
--- /dev/null
+# ffs.m4 serial 2
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FFS],
+[
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([ffs])
+ if test $ac_cv_func_ffs = no; then
+ HAVE_FFS=0
+ fi
+])
--- /dev/null
+# ffsl.m4 serial 1
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FFSL],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+
+ dnl Persuade glibc <string.h> to declare ffsl().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS_ONCE([ffsl])
+ if test $ac_cv_func_ffsl = no; then
+ HAVE_FFSL=0
+ fi
+])
--- /dev/null
+# ffsll.m4 serial 1
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FFSLL],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+
+ dnl Persuade glibc <string.h> to declare ffsll().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS_ONCE([ffsll])
+ if test $ac_cv_func_ffsll = no; then
+ HAVE_FFSLL=0
+ fi
+])
+++ /dev/null
-# file-type.m4 serial 6
-dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FILE_TYPE],
-[
- AC_LIBOBJ([file-type])
-])
-# fileblocks.m4 serial 5
+# fileblocks.m4 serial 6
dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FILEBLOCKS],
[
- AC_STRUCT_ST_BLOCKS
+ m4_pushdef([AC_LIBOBJ], [:])
dnl Note: AC_STRUCT_ST_BLOCKS does AC_LIBOBJ([fileblocks]).
- if test $ac_cv_member_struct_stat_st_blocks = no; then
- gl_PREREQ_FILEBLOCKS
- fi
+ AC_STRUCT_ST_BLOCKS
+ m4_popdef([AC_LIBOBJ])
+ dnl The stat-size module depends on this one and also assumes that
+ dnl HAVE_STRUCT_STAT_ST_BLOCKS is correctly defined. So if you
+ dnl remove the call above, please make sure that this does not
+ dnl introduce a bug into lib/stat-size.h.
])
# Prerequisites of lib/fileblocks.c.
-# filemode.m4 serial 7
+# filemode.m4 serial 8
dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FILEMODE],
[
AC_REQUIRE([AC_STRUCT_ST_DM_MODE])
- AC_LIBOBJ([filemode])
AC_CHECK_DECLS_ONCE([strmode])
])
-# filenamecat.m4 serial 10
+# filenamecat.m4 serial 11
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FILE_NAME_CONCAT],
[
AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
- AC_LIBOBJ([filenamecat])
])
AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
[
- AC_LIBOBJ([filenamecat-lgpl])
-
dnl Prerequisites of lib/filenamecat-lgpl.c.
AC_CHECK_FUNCS_ONCE([mempcpy])
])
-# float_h.m4 serial 6
+# float_h.m4 serial 7
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
case "$host_os" in
- beos* | openbsd* | mirbsd*)
+ aix* | beos* | openbsd* | mirbsd* | irix*)
FLOAT_H=float.h
- gl_NEXT_HEADERS([float.h])
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+changequote(,)dnl
+ i[34567]86 )
+changequote([,])dnl
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ AC_EGREP_CPP([yes],
+ [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif],
+ [],
+ [FLOAT_H=float.h])
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
;;
esac
+ if test -n "$FLOAT_H"; then
+ gl_NEXT_HEADERS([float.h])
+ fi
AC_SUBST([FLOAT_H])
AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
])
-# flock.m4 serial 2
+# flock.m4 serial 3
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([flock])
if test $ac_cv_func_flock = no; then
HAVE_FLOCK=0
- AC_LIBOBJ([flock])
- gl_PREREQ_FLOCK
fi
])
-# floor.m4 serial 5
+# floor.m4 serial 7
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_DOUBLE_MINUS_ZERO_CODE[
]gl_DOUBLE_SIGNBIT_CODE[
-int main()
+static double dummy (double f) { return 0; }
+int main (int argc, char *argv[])
{
+ double (*my_floor) (double) = argc ? floor : dummy;
/* Test whether floor (-0.0) is -0.0. */
- if (signbitd (minus_zerod) && !signbitd (floor (minus_zerod)))
+ if (signbitd (minus_zerod) && !signbitd (my_floor (minus_zerod)))
return 1;
return 0;
}
fi
])
if test $REPLACE_FLOOR = 1; then
- AC_LIBOBJ([floor])
+ dnl No libraries are needed to link lib/floor.c.
FLOOR_LIBM=
fi
AC_SUBST([FLOOR_LIBM])
-# floorf.m4 serial 8
+# floorf.m4 serial 10
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_FLOAT_MINUS_ZERO_CODE[
]gl_FLOAT_SIGNBIT_CODE[
-int main()
+static float dummy (float f) { return 0; }
+int main (int argc, char *argv[])
{
+ float (*my_floorf) (float) = argc ? floorf : dummy;
/* Test whether floorf (-0.0f) is -0.0f. */
- if (signbitf (minus_zerof) && !signbitf (floorf (minus_zerof)))
+ if (signbitf (minus_zerof) && !signbitf (my_floorf (minus_zerof)))
return 1;
return 0;
}
HAVE_DECL_FLOORF=0
fi
if test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1; then
- AC_LIBOBJ([floorf])
+ dnl No libraries are needed to link lib/floorf.c.
FLOORF_LIBM=
fi
AC_SUBST([FLOORF_LIBM])
-# floorl.m4 serial 7
+# floorl.m4 serial 8
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
HAVE_DECL_FLOORL=0
fi
if test $HAVE_DECL_FLOORL = 0 || test $REPLACE_FLOORL = 1; then
- AC_LIBOBJ([floorl])
+ dnl No libraries are needed to link lib/floorl.c.
FLOORL_LIBM=
fi
AC_SUBST([FLOORL_LIBM])
-# Check for fnmatch - serial 6.
+# Check for fnmatch - serial 7.
# Copyright (C) 2000-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
rm -f "$gl_source_base/fnmatch.h"
else
FNMATCH_H=fnmatch.h
- AC_LIBOBJ([fnmatch])
- dnl We must choose a different name for our function, since on ELF systems
- dnl a broken fnmatch() in libc.so would override our fnmatch() if it is
- dnl compiled into a shared library.
- AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch],
- [Define to a replacement function name for fnmatch().])
- dnl Prerequisites of lib/fnmatch.c.
- AC_REQUIRE([AC_TYPE_MBSTATE_T])
- AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
- AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
- AC_CHECK_HEADERS_ONCE([wctype.h])
fi
AC_SUBST([FNMATCH_H])
AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
AC_REQUIRE([gl_FUNC_FNMATCH_POSIX])
])
+
+AC_DEFUN([gl_PREREQ_FNMATCH],
+[
+ dnl We must choose a different name for our function, since on ELF systems
+ dnl a broken fnmatch() in libc.so would override our fnmatch() if it is
+ dnl compiled into a shared library.
+ AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch],
+ [Define to a replacement function name for fnmatch().])
+ dnl Prerequisites of lib/fnmatch.c.
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>])
+ AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy])
+ AC_CHECK_HEADERS_ONCE([wctype.h])
+])
-# fopen.m4 serial 7
+# fopen.m4 serial 8
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_FOPEN=1
;;
esac
- if test $REPLACE_FOPEN = 1; then
- AC_LIBOBJ([fopen])
- gl_PREREQ_FOPEN
- fi
])
# Prerequisites of lib/fopen.c.
-# serial 15
+# serial 17
# Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# endif
'
AC_CHECK_DECLS([__fpending], , , $fp_headers)
- if test $ac_cv_func___fpending = no; then
- AC_CACHE_CHECK(
+])
+
+AC_DEFUN([gl_PREREQ_FPENDING],
+[
+ AC_CACHE_CHECK(
[how to determine the number of pending output bytes on a stream],
- ac_cv_sys_pending_output_n_bytes,
- [
- for ac_expr in \
- \
- '# glibc2' \
- 'fp->_IO_write_ptr - fp->_IO_write_base' \
- \
- '# traditional Unix' \
- 'fp->_ptr - fp->_base' \
- \
- '# BSD' \
- 'fp->_p - fp->_bf._base' \
- \
- '# SCO, Unixware' \
- '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \
- \
- '# QNX' \
- '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
- \
- '# old glibc?' \
- 'fp->__bufp - fp->__buffer' \
- \
- '# old glibc iostream?' \
- 'fp->_pptr - fp->_pbase' \
- \
- '# emx+gcc' \
- 'fp->_ptr - fp->_buffer' \
- \
- '# VMS' \
- '(*fp)->_ptr - (*fp)->_base' \
- \
- '# e.g., DGUX R4.11; the info is not available' \
- 1 \
- ; do
+ ac_cv_sys_pending_output_n_bytes,
+ [
+ for ac_expr in \
+ \
+ '# glibc2' \
+ 'fp->_IO_write_ptr - fp->_IO_write_base' \
+ \
+ '# traditional Unix' \
+ 'fp->_ptr - fp->_base' \
+ \
+ '# BSD' \
+ 'fp->_p - fp->_bf._base' \
+ \
+ '# SCO, Unixware' \
+ '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \
+ \
+ '# QNX' \
+ '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
+ \
+ '# old glibc?' \
+ 'fp->__bufp - fp->__buffer' \
+ \
+ '# old glibc iostream?' \
+ 'fp->_pptr - fp->_pbase' \
+ \
+ '# emx+gcc' \
+ 'fp->_ptr - fp->_buffer' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# VMS' \
+ '(*fp)->_ptr - (*fp)->_base' \
+ \
+ '# e.g., DGUX R4.11; the info is not available' \
+ 1 \
+ ; do
- # Skip each embedded comment.
- case "$ac_expr" in '#'*) continue;; esac
+ # Skip each embedded comment.
+ case "$ac_expr" in '#'*) continue;; esac
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
- [[FILE *fp = stdin; (void) ($ac_expr);]])],
- [fp_done=yes]
- )
- test "$fp_done" = yes && break
- done
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
+ [[FILE *fp = stdin; (void) ($ac_expr);]])],
+ [fp_done=yes]
+ )
+ test "$fp_done" = yes && break
+ done
- ac_cv_sys_pending_output_n_bytes=$ac_expr
- ]
- )
- AC_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
- $ac_cv_sys_pending_output_n_bytes,
- [the number of pending output bytes on stream `fp'])
- AC_LIBOBJ([fpending])
- fi
+ ac_cv_sys_pending_output_n_bytes=$ac_expr
+ ]
+ )
+ AC_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
+ $ac_cv_sys_pending_output_n_bytes,
+ [the number of pending output bytes on stream `fp'])
])
+++ /dev/null
-#serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FPRINTFTIME],
-[
- AC_LIBOBJ([fprintftime])
-])
-# fpurge.m4 serial 6
+# fpurge.m4 serial 7
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([__fpurge])
AC_CHECK_DECLS([fpurge], , , [[#include <stdio.h>]])
if test "x$ac_cv_func_fpurge" = xyes; then
+ HAVE_FPURGE=1
# Detect BSD bug. Only cygwin 1.7 is known to be immune.
AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
[gl_cv_func_fpurge_works='guessing no'])])
if test "x$gl_cv_func_fpurge_works" != xyes; then
REPLACE_FPURGE=1
- AC_LIBOBJ([fpurge])
fi
else
- AC_LIBOBJ([fpurge])
+ HAVE_FPURGE=0
fi
if test "x$ac_cv_have_decl_fpurge" = xno; then
HAVE_DECL_FPURGE=0
-# freadable.m4 serial 1
+# freadable.m4 serial 2
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FREADABLE],
[
AC_CHECK_FUNCS_ONCE([__freadable])
- if test $ac_cv_func___freadable = no; then
- AC_LIBOBJ([freadable])
- fi
])
[gl_cv_func_free=no])])
if test $gl_cv_func_free = no; then
- AC_LIBOBJ([free])
AC_DEFINE([free], [rpl_free],
[Define to rpl_free if the replacement function should be used.])
fi
-# freopen.m4 serial 2
+# freopen.m4 serial 3
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
case "$host_os" in
mingw* | pw*)
REPLACE_FREOPEN=1
- AC_LIBOBJ([freopen])
- gl_PREREQ_FREOPEN
;;
esac
])
-# frexp.m4 serial 10
+# frexp.m4 serial 11
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test $gl_func_frexp = yes; then
AC_DEFINE([HAVE_FREXP], [1],
[Define if the frexp() function is available and works.])
- else
- AC_LIBOBJ([frexp])
fi
AC_SUBST([FREXP_LIBM])
])
if test $gl_func_frexp_no_libm = yes; then
AC_DEFINE([HAVE_FREXP_IN_LIBC], [1],
[Define if the frexp() function is available in libc.])
- else
- AC_LIBOBJ([frexp])
fi
])
dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on
dnl NetBSD 3.0), on infinite numbers (this fails e.g. on IRIX 6.5 and mingw),
-dnl and on negative zero (this fails e.g. on NetBSD 4.99).
+dnl and on negative zero (this fails e.g. on NetBSD 4.99 and mingw).
AC_DEFUN([gl_FUNC_FREXP_WORKS],
[
AC_REQUIRE([AC_PROG_CC])
-# frexpl.m4 serial 13
+# frexpl.m4 serial 16
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[Define if the frexpl() function is available.])
fi
fi
- if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
- AC_LIBOBJ([frexpl])
- fi
AC_SUBST([FREXPL_LIBM])
])
[Define if the frexpl() function is available in libc.])
fi
fi
- if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
- AC_LIBOBJ([frexpl])
- fi
])
dnl Test whether frexpl() can be used without linking with libm.
# undef LDBL_MIN_EXP
# define LDBL_MIN_EXP (-16381)
#endif
-extern long double frexpl (long double, int *);
+#if defined __i386__ && defined __FreeBSD__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+#endif
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# if defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# endif
+#endif
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double frexpl (long double, int *);
int main()
{
int result = 0;
-# fseek.m4 serial 2
+# fseek.m4 serial 4
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_FSEEKO])
dnl When fseeko needs fixes, fseek needs them too.
- dnl gl_FUNC_FSEEKO takes care of calling gl_REPLACE_FSEEK
-])
-
-AC_DEFUN([gl_REPLACE_FSEEK],
-[
- AC_LIBOBJ([fseek])
- AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- REPLACE_FSEEK=1
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
])
-# fseeko.m4 serial 12
+# fseeko.m4 serial 15
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FSEEKO],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- AC_REQUIRE([gl_HAVE_FSEEKO])
AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
-
- AC_CHECK_DECLS_ONCE([fseeko])
- if test $ac_cv_have_decl_fseeko = no; then
- HAVE_DECL_FSEEKO=0
- fi
-
- if test $gl_cv_func_fseeko = no; then
- HAVE_FSEEKO=0
- gl_REPLACE_FSEEKO
- else
- if test $gl_cv_var_stdin_large_offset = no; then
- gl_REPLACE_FSEEKO
- fi
- fi
- m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
- gl_FUNC_FFLUSH_STDIN
- if test $gl_cv_func_fflush_stdin = no; then
- gl_REPLACE_FSEEKO
- fi
- ])
-])
-
-dnl Tests whether fseeko is available.
-dnl Result is gl_cv_func_fseeko.
-AC_DEFUN([gl_HAVE_FSEEKO],
-[
AC_REQUIRE([AC_PROG_CC])
dnl Persuade glibc <stdio.h> to declare fseeko().
]], [fseeko (stdin, 0, 0);])],
[gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no])
])
-])
-AC_DEFUN([gl_REPLACE_FSEEKO],
-[
- AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- AC_REQUIRE([gl_HAVE_FSEEKO])
- if test $gl_cv_func_fseeko = yes; then
- REPLACE_FSEEKO=1
+ AC_CHECK_DECLS_ONCE([fseeko])
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+ m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+ gl_FUNC_FFLUSH_STDIN
+ if test $gl_cv_func_fflush_stdin = no; then
+ REPLACE_FSEEKO=1
+ fi
+ ])
fi
- AC_LIBOBJ([fseeko])
- dnl If we are also using the fseek module, then fseek needs replacing, too.
- m4_ifdef([gl_REPLACE_FSEEK], [gl_REPLACE_FSEEK])
])
dnl Code shared by fseeko and ftello. Determine if large files are supported,
-# serial 27
+# serial 29
# Obtaining file system usage information.
# Copyright (C) 1997-1998, 2000-2001, 2003-2011 Free Software Foundation, Inc.
#include <sys/param.h>
#endif]])
gl_FILE_SYSTEM_USAGE([gl_cv_fs_space=yes], [gl_cv_fs_space=no])
- if test $gl_cv_fs_space = yes; then
- AC_LIBOBJ([fsusage])
- gl_PREREQ_FSUSAGE_EXTRA
- fi
])
# Try to determine how a program can obtain file system usage information.
AC_DEFUN([gl_FILE_SYSTEM_USAGE],
[
+dnl Enable large-file support. This has the effect of changing the size
+dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on
+dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size
+dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on
+dnl MacOS X >= 10.5 (32-bit mode).
+AC_REQUIRE([AC_SYS_LARGEFILE])
AC_MSG_NOTICE([checking how to get file system space usage])
ac_fsusage_space=no
# systems. That system is reported to work fine with STAT_STATFS4 which
# is what it gets when this test fails.
if test $ac_fsusage_space = no; then
- # glibc/{Hurd,kFreeBSD}, MacOS X >= 10.4, FreeBSD >= 5.0, NetBSD >= 3.0,
+ # glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
# OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS.
AC_CACHE_CHECK([for statvfs function (SVR4)], [fu_cv_sys_stat_statvfs],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
"Do not use Tru64's statvfs implementation"
#endif
-#include <sys/statvfs.h>]],
- [[struct statvfs fsd; statvfs (0, &fsd);]])],
+#include <sys/statvfs.h>
+
+struct statvfs fsd;
+
+#if defined __APPLE__ && defined __MACH__
+#include <limits.h>
+/* On MacOS X >= 10.5, f_blocks in 'struct statvfs' is a 32-bit quantity;
+ that commonly limits file systems to 4 TiB. Whereas f_blocks in
+ 'struct statfs' is a 64-bit type, thanks to the large-file support
+ that was enabled above. In this case, don't use statvfs(); use statfs()
+ instead. */
+int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1];
+#endif
+]],
+ [[statvfs (0, &fsd);]])],
[fu_cv_sys_stat_statvfs=yes],
[fu_cv_sys_stat_statvfs=no])])
if test $fu_cv_sys_stat_statvfs = yes; then
ac_fsusage_space=yes
- AC_DEFINE([STAT_STATVFS], [1],
- [ Define if there is a function named statvfs. (SVR4)])
+ # AIX >= 5.2 has statvfs64 that has a wider f_blocks field than statvfs.
+ # glibc, HP-UX, IRIX, Solaris have statvfs64 as well, but on these systems
+ # statvfs with large-file support is already equivalent to statvfs64.
+ AC_CACHE_CHECK([whether to use statvfs64],
+ [fu_cv_sys_stat_statvfs64],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <sys/statvfs.h>
+ struct statvfs64 fsd;
+ int check_f_blocks_larger_in_statvfs64
+ [sizeof (((struct statvfs64 *) 0)->f_blocks)
+ > sizeof (((struct statvfs *) 0)->f_blocks)
+ ? 1 : -1];
+ ]],
+ [[statvfs64 (0, &fsd);]])],
+ [fu_cv_sys_stat_statvfs64=yes],
+ [fu_cv_sys_stat_statvfs64=no])
+ ])
+ if test $fu_cv_sys_stat_statvfs64 = yes; then
+ AC_DEFINE([STAT_STATVFS64], [1],
+ [ Define if statvfs64 should be preferred over statvfs.])
+ else
+ AC_DEFINE([STAT_STATVFS], [1],
+ [ Define if there is a function named statvfs. (SVR4)])
+ fi
fi
fi
fi
if test $ac_fsusage_space = no; then
- # glibc/Linux, MacOS X < 10.4, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4.
- # (glibc/{Hurd,kFreeBSD}, MacOS X >= 10.4, FreeBSD >= 5.0, NetBSD >= 3.0,
+ # glibc/Linux, MacOS X, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4.
+ # (glibc/{Hurd,kFreeBSD}, FreeBSD >= 5.0, NetBSD >= 3.0,
# OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.)
# (On IRIX you need to include <sys/statfs.h>, not only <sys/mount.h> and
# <sys/vfs.h>.)
-# fsync.m4 serial 1
+# fsync.m4 serial 2
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([fsync])
if test $ac_cv_func_fsync = no; then
HAVE_FSYNC=0
- AC_LIBOBJ([fsync])
- gl_PREREQ_FSYNC
fi
])
-# ftell.m4 serial 1
+# ftell.m4 serial 3
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_FTELLO])
dnl When ftello needs fixes, ftell needs them too.
- if test $REPLACE_FTELLO != 0; then
- AC_LIBOBJ([ftell])
+ if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
REPLACE_FTELL=1
fi
])
-# ftello.m4 serial 9
+# ftello.m4 serial 10
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
esac
fi
fi
- if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
- gl_REPLACE_FTELLO
- fi
-])
-
-AC_DEFUN([gl_REPLACE_FTELLO],
-[
- AC_LIBOBJ([ftello])
])
-# serial 15
+# serial 16
# See if we need to emulate a missing ftruncate function using fcntl or chsize.
AC_CHECK_FUNCS_ONCE([ftruncate])
if test $ac_cv_func_ftruncate = no; then
HAVE_FTRUNCATE=0
- AC_LIBOBJ([ftruncate])
- gl_PREREQ_FTRUNCATE
case "$host_os" in
mingw*)
# Yes, we know mingw lacks ftruncate.
-#serial 18
+#serial 19
dnl Copyright (C) 2005-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FTS_CORE],
[
- dnl Use this version of fts unconditionally, since the GNU libc and
- dnl NetBSD versions have bugs and/or unnecessary limitations.
- AC_LIBOBJ([fts])
-
dnl Prerequisites of lib/fts.c.
AC_REQUIRE([AC_C_INLINE])
gl_FUNC_OPENAT
-# serial 5
+# serial 6
# See if we need to provide futimens replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([futimens])
if test $ac_cv_func_futimens = no; then
HAVE_FUTIMENS=0
- AC_LIBOBJ([futimens])
else
AC_CACHE_CHECK([whether futimens works],
[gl_cv_func_futimens_works],
rm -f conftest.file])
if test "$gl_cv_func_futimens_works" != yes; then
REPLACE_FUTIMENS=1
- AC_LIBOBJ([futimens])
fi
fi
])
-# fwritable.m4 serial 1
+# fwritable.m4 serial 2
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FWRITABLE],
[
AC_CHECK_FUNCS_ONCE([__fwritable])
- if test $ac_cv_func___fwritable = no; then
- AC_LIBOBJ([fwritable])
- fi
])
-# fwriting.m4 serial 1
+# fwriting.m4 serial 2
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_FWRITING],
[
AC_CHECK_FUNCS_ONCE([__fwriting])
- if test $ac_cv_func___fwriting = no; then
- AC_LIBOBJ([fwriting])
- fi
])
-# gc-arcfour.m4 serial 2
+# gc-arcfour.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GC_ARCFOUR],
[
AC_REQUIRE([gl_GC])
- if test "$ac_cv_libgcrypt" != yes; then
- gl_ARCFOUR
- fi
])
-# gc-des.m4 serial 2
+# gc-des.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GC_DES],
[
AC_REQUIRE([gl_GC])
- if test "$ac_cv_libgcrypt" != yes; then
- gl_DES
- fi
])
-# gc-hmac-md5.m4 serial 2
+# gc-hmac-md5.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_GC])
if test "$ac_cv_libgcrypt" != yes; then
gl_MD5
- gl_HMAC_MD5
gl_MEMXOR
fi
])
-# gc-hmac-sha1.m4 serial 2
+# gc-hmac-sha1.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_GC])
if test "$ac_cv_libgcrypt" != yes; then
gl_SHA1
- gl_HMAC_SHA1
gl_MEMXOR
fi
])
+++ /dev/null
-# gc-pbkdf2-sha1.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_GC_PBKDF2_SHA1],
-[
- AC_LIBOBJ([gc-pbkdf2-sha1])
-])
-# gc-rijndael.m4 serial 2
+# gc-rijndael.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GC_RIJNDAEL],
[
AC_REQUIRE([gl_GC])
- if test "$ac_cv_libgcrypt" != yes; then
- gl_RIJNDAEL
- fi
])
-# gc-sha1.m4 serial 2
+# gc-sha1.m4 serial 3
dnl Copyright (C) 2005, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GC_SHA1],
[
AC_REQUIRE([gl_GC])
- if test "$ac_cv_libgcrypt" != yes; then
- gl_SHA1
- fi
])
-# gc.m4 serial 7
+# gc.m4 serial 8
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test "$libgcrypt" != no; then
AC_LIB_HAVE_LINKFLAGS([gcrypt], [gpg-error], [#include <gcrypt.h>])
fi
- if test "$ac_cv_libgcrypt" = yes; then
- AC_LIBOBJ([gc-libgcrypt])
- else
- AC_LIBOBJ([gc-gnulib])
- fi
])
-# getaddrinfo.m4 serial 25
+# getaddrinfo.m4 serial 28
dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi])
LIBS="$gai_saved_LIBS $GETADDRINFO_LIB"
+ HAVE_GETADDRINFO=1
AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
GETADDRINFO_LIB="-lws2_32"
LIBS="$gai_saved_LIBS $GETADDRINFO_LIB"
else
- AC_LIBOBJ([getaddrinfo])
+ HAVE_GETADDRINFO=0
fi
fi
# We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
# inline function declared in ws2tcpip.h, so we need to get that
# header included somehow.
- AC_CHECK_DECLS([gai_strerror, gai_strerrorA], [], [break], [[
+ AC_CHECK_DECLS([gai_strerror], [], [], [[
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+#include <stddef.h>
+]])
+ if test $ac_cv_have_decl_gai_strerror = yes; then
+ AC_CHECK_DECLS([gai_strerrorA], [], [], [[
#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <stddef.h>
]])
- if test $ac_cv_have_decl_gai_strerror = no; then
- AC_LIBOBJ([gai_strerror])
- else
dnl check for correct signature
AC_CACHE_CHECK([for gai_strerror with POSIX signature],
[gl_cv_func_gai_strerror_posix_signature], [
#include <ws2tcpip.h>
#endif
#include <stddef.h>
-extern const char *gai_strerror(int);]])],
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *gai_strerror(int);]])],
[gl_cv_func_gai_strerror_posix_signature=yes],
[gl_cv_func_gai_strerror_posix_signature=no])])
if test $gl_cv_func_gai_strerror_posix_signature = no; then
REPLACE_GAI_STRERROR=1
- AC_LIBOBJ([gai_strerror])
fi
fi
# with or without modifications, as long as this notice is preserved.
# Written by Paul Eggert.
-# serial 6
+# serial 8
AC_DEFUN([gl_FUNC_GETCWD_NULL],
[
return 0;
}
#endif
- /* If size is non-zero, allocation must fail if size is too small */
- if (getcwd (NULL, 1))
- return 5;
]])],
[gl_cv_func_getcwd_null=yes],
[gl_cv_func_getcwd_null=no],
]])])
])
+AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE],
+[
+ AC_CACHE_CHECK([for getcwd with POSIX signature],
+ [gl_cv_func_getcwd_posix_signature],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+ ]])
+ ],
+ [gl_cv_func_getcwd_posix_signature=yes],
+ [gl_cv_func_getcwd_posix_signature=no])
+ ])
+])
dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes
dnl that either the system getcwd is robust, or that calling code is okay
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
- case $gl_cv_func_getcwd_null in
- *yes) ;;
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
*)
- dnl Minimal replacement
+ dnl Minimal replacement lib/getcwd-lgpl.c.
REPLACE_GETCWD=1
- AC_LIBOBJ([getcwd-lgpl])
;;
esac
])
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
gl_abort_bug=no
gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]);;
esac
- case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in
- *yes,yes,no) ;;
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature$gl_cv_func_getcwd_path_max,$gl_abort_bug in
+ *yes,yes,yes,no) ;;
*)
- dnl Full replacement, overrides LGPL replacement.
- REPLACE_GETCWD=1
- AC_LIBOBJ([getcwd])
- gl_PREREQ_GETCWD;;
+ dnl Full replacement lib/getcwd.c, overrides LGPL replacement.
+ REPLACE_GETCWD=1;;
esac
])
-# getdelim.m4 serial 8
+# getdelim.m4 serial 9
dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl
AC_CHECK_FUNCS_ONCE([getdelim])
if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
dnl Found it in some library. Verify that it works.
AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim],
[echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
[gl_cv_func_working_getdelim=yes],
[gl_cv_func_working_getdelim=no])]
)])
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
else
- gl_cv_func_working_getdelim=no
+ HAVE_GETDELIM=0
fi
if test $ac_cv_have_decl_getdelim = no; then
HAVE_DECL_GETDELIM=0
fi
-
- if test $gl_cv_func_working_getdelim = no; then
- if test $ac_cv_func_getdelim = yes; then
- REPLACE_GETDELIM=1
- fi
- AC_LIBOBJ([getdelim])
- gl_PREREQ_GETDELIM
- fi
])
# Prerequisites of lib/getdelim.c.
-# getdomainname.m4 serial 6
+# getdomainname.m4 serial 8
dnl Copyright (C) 2002-2003, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stddef.h>
- extern int getdomainname (char *, size_t);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int getdomainname (char *, size_t);
]],
[[getdomainname(NULL, 0);]])],
[gl_cv_func_getdomainname_in_libnsl=yes])
#include <netdb.h>
#endif
#include <unistd.h>
- extern int getdomainname (char *, int);]],
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int getdomainname (char *, int);
+ ]],
[[]])],
[gl_cv_decl_getdomainname_argtype2='int'],
[gl_cv_decl_getdomainname_argtype2='size_t'])
|| test "$gl_cv_func_getdomainname_in_libnsl" = yes; then
REPLACE_GETDOMAINNAME=1
fi
-
- if test $HAVE_DECL_GETDOMAINNAME = 0 || test $REPLACE_GETDOMAINNAME = 1; then
- AC_LIBOBJ([getdomainname])
- gl_PREREQ_GETDOMAINNAME
- fi
])
# Prerequisites of lib/getdomainname.c.
-# getdtablesize.m4 serial 1
+# getdtablesize.m4 serial 2
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([getdtablesize])
if test $ac_cv_func_getdtablesize != yes; then
HAVE_GETDTABLESIZE=0
- AC_LIBOBJ([getdtablesize])
fi
])
-# serial 15
+# serial 16
dnl From Jim Meyering.
dnl A wrapper around AC_FUNC_GETGROUPS.
AC_REQUIRE([AC_TYPE_GETGROUPS])
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
if test "$ac_cv_func_getgroups" != yes; then
- AC_LIBOBJ([getgroups])
HAVE_GETGROUPS=0
elif test "$ac_cv_func_getgroups_works.$ac_cv_type_getgroups" != yes.gid_t
then
- AC_LIBOBJ([getgroups])
REPLACE_GETGROUPS=1
AC_DEFINE([GETGROUPS_ZERO_BUG], [1], [Define this to 1 if
getgroups(0,NULL) does not return the number of groups.])
[gl_cv_func_getgroups_works=no],
[gl_cv_func_getgroups_works="guessing no"])])
if test "$gl_cv_func_getgroups_works" != yes; then
- AC_LIBOBJ([getgroups])
REPLACE_GETGROUPS=1
fi
fi
-# gethostname.m4 serial 11
+# gethostname.m4 serial 12
dnl Copyright (C) 2002, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_SUBST([GETHOSTNAME_LIB])
if test "$ac_cv_func_gethostname" = no; then
- AC_LIBOBJ([gethostname])
HAVE_GETHOSTNAME=0
- gl_PREREQ_GETHOSTNAME
fi
dnl Also provide HOST_NAME_MAX when <limits.h> lacks it.
-# gethrxtime.m4 serial 9
+# gethrxtime.m4 serial 10
dnl Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_XTIME])
AC_CHECK_DECLS([gethrtime], [], [], [#include <time.h>])
LIB_GETHRXTIME=
- case $ac_cv_have_decl_gethrtime,$gl_cv_arithmetic_hrtime_t in
- yes,yes) ;;
- *)
- AC_LIBOBJ([gethrxtime])
- gl_PREREQ_GETHRXTIME;;
- esac
+ if test $ac_cv_have_decl_gethrtime = no \
+ || test $gl_cv_arithmetic_hrtime_t = no; then
+ dnl Find libraries needed to link lib/gethrxtime.c.
+ AC_REQUIRE([gl_CLOCK_TIME])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([nanouptime])
+ if test $ac_cv_func_nanouptime != yes; then
+ AC_CACHE_CHECK([whether CLOCK_MONOTONIC or CLOCK_REALTIME is defined],
+ [gl_cv_have_clock_gettime_macro],
+ [AC_EGREP_CPP([have_clock_gettime_macro],
+ [
+# include <time.h>
+# if defined CLOCK_MONOTONIC || defined CLOCK_REALTIME
+ have_clock_gettime_macro
+# endif
+ ],
+ [gl_cv_have_clock_gettime_macro=yes],
+ [gl_cv_have_clock_gettime_macro=no])])
+ if test $gl_cv_have_clock_gettime_macro = yes; then
+ LIB_GETHRXTIME=$LIB_CLOCK_GETTIME
+ fi
+ fi
+ fi
AC_SUBST([LIB_GETHRXTIME])
])
# Prerequisites of lib/gethrxtime.c.
AC_DEFUN([gl_PREREQ_GETHRXTIME],
[
- AC_REQUIRE([gl_CLOCK_TIME])
- AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- AC_CHECK_FUNCS_ONCE([microuptime nanouptime])
-
- if test $ac_cv_func_nanouptime != yes; then
- AC_CACHE_CHECK([whether CLOCK_MONOTONIC or CLOCK_REALTIME is defined],
- gl_cv_have_clock_gettime_macro,
- [AC_EGREP_CPP([have_clock_gettime_macro],
- [
-# include <time.h>
-# if defined CLOCK_MONOTONIC || defined CLOCK_REALTIME
- have_clock_gettime_macro
-# endif
- ],
- gl_cv_have_clock_gettime_macro=yes,
- gl_cv_have_clock_gettime_macro=no)])
- if test $gl_cv_have_clock_gettime_macro = yes; then
- LIB_GETHRXTIME=$LIB_CLOCK_GETTIME
- fi
- fi
+ AC_CHECK_FUNCS_ONCE([microuptime])
+ :
])
-# getline.m4 serial 23
+# getline.m4 serial 25
dnl Copyright (C) 1998-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl getline function among $LIBS, it may exist in libinet and the
dnl executable may be linked with -linet.
REPLACE_GETLINE=1
- AC_LIBOBJ([getline])
-
- gl_PREREQ_GETLINE
fi
])
# Prerequisites of lib/getline.c.
AC_DEFUN([gl_PREREQ_GETLINE],
[
- gl_FUNC_GETDELIM
+ :
])
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-#serial 3
+#serial 4
# Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
# New applications should use gl_GETLOADAVG instead.
# getloadvg is present in libc on glibc >= 2.2, MacOS X, FreeBSD >= 2.0,
# NetBSD >= 0.9, OpenBSD >= 2.0, Solaris >= 7.
+HAVE_GETLOADAVG=1
AC_CHECK_FUNC([getloadavg], [],
- [gl_have_func=no
+ [gl_func_getloadavg_done=no
# Some systems with -lutil have (and need) -lkvm as well, some do not.
# On Solaris, -lkvm requires nlist from -lelf, so check that first
# to get the right answer into the cache.
# For kstat on solaris, we need to test for libelf and libkvm to force the
# definition of SVR4 below.
- if test $gl_have_func = no; then
+ if test $gl_func_getloadavg_done = no; then
AC_CHECK_LIB([elf], [elf_begin], [LIBS="-lelf $LIBS"])
AC_CHECK_LIB([kvm], [kvm_open], [LIBS="-lkvm $LIBS"])
# Check for the 4.4BSD definition of getloadavg.
AC_CHECK_LIB([util], [getloadavg],
- [LIBS="-lutil $LIBS" gl_have_func=yes])
+ [LIBS="-lutil $LIBS" gl_func_getloadavg_done=yes])
fi
- if test $gl_have_func = no; then
+ if test $gl_func_getloadavg_done = no; then
# There is a commonly available library for RS/6000 AIX.
# Since it is not a standard part of AIX, it might be installed locally.
gl_getloadavg_LIBS=$LIBS
LIBS="-L/usr/local/lib $LIBS"
AC_CHECK_LIB([getloadavg], [getloadavg],
- [LIBS="-lgetloadavg $LIBS" gl_have_func=yes],
+ [LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes],
[LIBS=$gl_getloadavg_LIBS])
fi
# Set up the replacement function if necessary.
- if test $gl_have_func = no; then
- AC_LIBOBJ([getloadavg])
- gl_PREREQ_GETLOADAVG
+ if test $gl_func_getloadavg_done = no; then
+ HAVE_GETLOADAVG=0
+
+ # Solaris has libkstat which does not require root.
+ AC_CHECK_LIB([kstat], [kstat_open])
+ test $ac_cv_lib_kstat_kstat_open = yes && gl_func_getloadavg_done=yes
+
+ # AIX has libperfstat which does not require root
+ if test $gl_func_getloadavg_done = no; then
+ AC_CHECK_LIB([perfstat], [perfstat_cpu_total])
+ test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_func_getloadavg_done=yes
+ fi
+
+ if test $gl_func_getloadavg_done = no; then
+ AC_CHECK_HEADER([sys/dg_sys_info.h],
+ [gl_func_getloadavg_done=yes
+ AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.])
+ AC_CHECK_LIB([dgc], [dg_sys_info])])
+ fi
fi])
if test "x$gl_save_LIBS" = x; then
[
# Figure out what our getloadavg.c needs.
-# Solaris has libkstat which does not require root.
-AC_CHECK_LIB([kstat], [kstat_open])
-test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes
-
# On HPUX9, an unprivileged user can get load averages this way.
-if test $gl_have_func = no; then
- AC_CHECK_FUNCS([pstat_getdynamic], [gl_have_func=yes])
-fi
-
-# AIX has libperfstat which does not require root
-if test $gl_have_func = no; then
- AC_CHECK_LIB([perfstat], [perfstat_cpu_total])
- test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes
-fi
-
-if test $gl_have_func = no; then
- AC_CHECK_HEADER([sys/dg_sys_info.h],
- [gl_have_func=yes
- AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.])
- AC_CHECK_LIB([dgc], [dg_sys_info])])
+if test $gl_func_getloadavg_done = no; then
+ AC_CHECK_FUNCS([pstat_getdynamic], [gl_func_getloadavg_done=yes])
fi
# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
# uses stabs), but it is still SVR4. We cannot check for <elf.h> because
# Irix 4.0.5F has the header but not the library.
-if test $gl_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes \
+if test $gl_func_getloadavg_done = no && test "$ac_cv_lib_elf_elf_begin" = yes \
&& test "$ac_cv_lib_kvm_kvm_open" = yes; then
- gl_have_func=yes
+ gl_func_getloadavg_done=yes
AC_DEFINE([SVR4], [1], [Define to 1 on System V Release 4.])
fi
-if test $gl_have_func = no; then
+if test $gl_func_getloadavg_done = no; then
AC_CHECK_HEADER([inq_stats/cpustats.h],
- [gl_have_func=yes
+ [gl_func_getloadavg_done=yes
AC_DEFINE([UMAX], [1], [Define to 1 for Encore UMAX.])
AC_DEFINE([UMAX4_3], [1],
[Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h>
instead of <sys/cpustats.h>.])])
fi
-if test $gl_have_func = no; then
+if test $gl_func_getloadavg_done = no; then
AC_CHECK_HEADER([sys/cpustats.h],
- [gl_have_func=yes; AC_DEFINE([UMAX])])
+ [gl_func_getloadavg_done=yes; AC_DEFINE([UMAX])])
fi
-if test $gl_have_func = no; then
+if test $gl_func_getloadavg_done = no; then
AC_CHECK_HEADERS([mach/mach.h])
fi
-# getlogin.m4 serial 2
+# getlogin.m4 serial 3
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_CHECK_FUNCS_ONCE([getlogin])
if test $ac_cv_func_getlogin = no; then
- AC_LIBOBJ([getlogin])
HAVE_GETLOGIN=0
fi
])
-#serial 9
+#serial 11
# Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
#
#include <stddef.h>
#include <unistd.h>
#if !HAVE_DECL_GETLOGIN_R
-extern int getlogin_r (char *, size_t);
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int getlogin_r (char *, size_t);
#endif
int
main (void)
*) REPLACE_GETLOGIN_R=1 ;;
esac
fi
- if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then
- AC_LIBOBJ([getlogin_r])
- gl_PREREQ_GETLOGIN_R
- fi
])
AC_DEFUN([gl_PREREQ_GETLOGIN_R],
-# getndelim2.m4 serial 7
+# getndelim2.m4 serial 8
dnl Copyright (C) 2003, 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GETNDELIM2],
[
- AC_LIBOBJ([getndelim2])
gl_PREREQ_GETNDELIM2
AC_CHECK_FUNCS_ONCE([flockfile])
AC_CHECK_FUNCS_ONCE([funlockfile])
-# getopt.m4 serial 34
+# getopt.m4 serial 38
dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX])
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- gl_GETOPT_IFELSE([
- gl_REPLACE_GETOPT
- ],
- [])
+ dnl Other modules can request the gnulib implementation of the getopt
+ dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS.
+ dnl argp.m4 does this.
+ m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [
+ gl_GETOPT_IFELSE([], [])
+ REPLACE_GETOPT=1
+ ], [
+ REPLACE_GETOPT=0
+ gl_GETOPT_IFELSE([
+ REPLACE_GETOPT=1
+ ],
+ [])
+ ])
+ if test $REPLACE_GETOPT = 1; then
+ dnl Arrange for getopt.h to be created.
+ gl_GETOPT_SUBSTITUTE_HEADER
+ dnl Arrange for unistd.h to include getopt.h.
+ GNULIB_UNISTD_H_GETOPT=1
+ fi
])
# Request a POSIX compliant getopt function with GNU extensions (such as
AC_REQUIRE([gl_FUNC_GETOPT_POSIX])
])
-# Request the gnulib implementation of the getopt functions unconditionally.
-# argp.m4 uses this.
-AC_DEFUN([gl_REPLACE_GETOPT],
-[
- dnl Arrange for getopt.h to be created.
- gl_GETOPT_SUBSTITUTE_HEADER
- dnl Arrange for unistd.h to include getopt.h.
- GNULIB_UNISTD_H_GETOPT=1
- dnl Arrange to compile the getopt implementation.
- AC_LIBOBJ([getopt])
- AC_LIBOBJ([getopt1])
- gl_PREREQ_GETOPT
-])
-
# emacs' configure.in uses this.
AC_DEFUN([gl_GETOPT_IFELSE],
[
AC_CACHE_CHECK([whether getopt is POSIX compatible],
[gl_cv_func_getopt_posix],
[
- dnl BSD getopt_long uses an incompatible method to reset
- dnl option processing. Existence of the variable, in and of
+ dnl BSD getopt_long uses an incompatible method to reset option
+ dnl processing. Existence of the optreset variable, in and of
dnl itself, is not a reason to replace getopt, but knowledge
dnl of the variable is needed to determine how to reset and
dnl whether a reset reparses the environment. Solaris
dnl supports neither optreset nor optind=0, but keeps no state
dnl that needs a reset beyond setting optind=1; detect Solaris
dnl by getopt_clip.
- AC_COMPILE_IFELSE(
+ AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <unistd.h>]],
[[int *p = &optreset; return optreset;]])],
main ()
{
{
- int argc = 0;
- char *argv[10];
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
int c;
- argv[argc++] = "program";
- argv[argc++] = "-a";
- argv[argc++] = "foo";
- argv[argc++] = "bar";
- argv[argc] = NULL;
optind = OPTIND_MIN;
opterr = 0;
- c = getopt (argc, argv, "ab");
+ c = getopt (4, argv, "ab");
if (!(c == 'a'))
return 1;
- c = getopt (argc, argv, "ab");
+ c = getopt (4, argv, "ab");
if (!(c == -1))
return 2;
if (!(optind == 2))
}
/* Some internal state exists at this point. */
{
- int argc = 0;
- char *argv[10];
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
int c;
- argv[argc++] = "program";
- argv[argc++] = "donald";
- argv[argc++] = "-p";
- argv[argc++] = "billy";
- argv[argc++] = "duck";
- argv[argc++] = "-a";
- argv[argc++] = "bar";
- argv[argc] = NULL;
optind = OPTIND_MIN;
opterr = 0;
- c = getopt (argc, argv, "+abp:q:");
+ c = getopt (7, argv, "+abp:q:");
if (!(c == -1))
return 4;
if (!(strcmp (argv[0], "program") == 0))
}
/* Detect MacOS 10.5, AIX 7.1 bug. */
{
- char *argv[3] = { "program", "-ab", NULL };
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
optind = OPTIND_MIN;
opterr = 0;
if (getopt (2, argv, "ab:") != 'a')
[AC_LANG_PROGRAM([[#include <getopt.h>
#include <stddef.h>
#include <string.h>
+ ]GL_NOCRASH[
]], [[
int result = 0;
+
+ nocrash_init();
+
/* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
OSF/1 5.1, Solaris 10. */
{
- char *myargv[3];
- myargv[0] = "conftest";
- myargv[1] = "-+";
- myargv[2] = 0;
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
opterr = 0;
- if (getopt (2, myargv, "+a") != '?')
+ if (getopt (2, argv, "+a") != '?')
result |= 1;
}
/* This code succeeds on glibc 2.8, mingw,
and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */
{
- char *argv[] = { "program", "-p", "foo", "bar", NULL };
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
optind = 1;
if (getopt (4, argv, "p::") != 'p')
}
/* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
{
- char *argv[] = { "program", "foo", "-p", NULL };
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
optind = 0;
if (getopt (3, argv, "-p") != 1)
result |= 16;
}
/* This code fails on glibc 2.11. */
{
- char *argv[] = { "program", "-b", "-a", NULL };
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
optind = opterr = 0;
if (getopt (3, argv, "+:a:b") != 'b')
result |= 64;
else if (getopt (3, argv, "+:a:b") != ':')
result |= 64;
}
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
return result;
]])],
[gl_cv_func_getopt_gnu=yes],
-# getpagesize.m4 serial 8
+# getpagesize.m4 serial 9
dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
case "$host_os" in
mingw*)
REPLACE_GETPAGESIZE=1
- AC_LIBOBJ([getpagesize])
;;
esac
dnl Also check whether it's declared.
-# getpass.m4 serial 12
+# getpass.m4 serial 13
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl Persuade Solaris <unistd.h> and <stdlib.h> to declare getpass().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- AC_REPLACE_FUNCS([getpass])
+ AC_CHECK_FUNCS([getpass])
AC_CHECK_DECLS_ONCE([getpass])
- if test $ac_cv_func_getpass = no; then
- gl_PREREQ_GETPASS
+ if test $ac_cv_func_getpass = yes; then
+ HAVE_GETPASS=1
+ else
+ HAVE_GETPASS=0
fi
])
AC_CHECK_DECLS_ONCE([getpass])
dnl TODO: Detect when GNU getpass() is already found in glibc.
- AC_LIBOBJ([getpass])
- gl_PREREQ_GETPASS
- dnl We must choose a different name for our function, since on ELF systems
- dnl an unusable getpass() in libc.so would override our getpass() if it is
- dnl compiled into a shared library.
- AC_DEFINE([getpass], [gnu_getpass],
- [Define to a replacement function name for getpass().])
+ REPLACE_GETPASS=1
+
+ if test $REPLACE_GETPASS = 1; then
+ dnl We must choose a different name for our function, since on ELF systems
+ dnl an unusable getpass() in libc.so would override our getpass() if it is
+ dnl compiled into a shared library.
+ AC_DEFINE([getpass], [gnu_getpass],
+ [Define to a replacement function name for getpass().])
+ fi
])
# Prerequisites of lib/getpass.c.
-# getsubopt.m4 serial 4
+# getsubopt.m4 serial 5
dnl Copyright (C) 2004, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([getsubopt])
if test $ac_cv_func_getsubopt = no; then
HAVE_GETSUBOPT=0
- AC_LIBOBJ([getsubopt])
- gl_PREREQ_GETSUBOPT
fi
])
-# gettime.m4 serial 7
+# gettime.m4 serial 8
dnl Copyright (C) 2002, 2004-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_GETTIME],
[
- AC_LIBOBJ([gettime])
-
dnl Prerequisites of lib/gettime.c.
AC_REQUIRE([gl_CLOCK_TIME])
AC_REQUIRE([gl_TIMESPEC])
-# serial 15
+# serial 17
# Copyright (C) 2001-2003, 2005, 2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
gl_gettimeofday_timezone=void
if test $ac_cv_func_gettimeofday != yes; then
HAVE_GETTIMEOFDAY=0
- AC_LIBOBJ([gettimeofday])
- gl_PREREQ_GETTIMEOFDAY
else
gl_FUNC_GETTIMEOFDAY_CLOBBER
AC_CACHE_CHECK([for gettimeofday with POSIX signature],
gl_gettimeofday_timezone='struct timezone'
elif test $gl_cv_func_gettimeofday_posix_signature != yes; then
REPLACE_GETTIMEOFDAY=1
- AC_LIBOBJ([gettimeofday])
- gl_PREREQ_GETTIMEOFDAY
fi
+ m4_ifdef([gl_FUNC_TZSET_CLOBBER], [
+ gl_FUNC_TZSET_CLOBBER
+ if test $gl_cv_func_tzset_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+ AC_DEFINE([tzset], [rpl_tzset],
+ [Define to rpl_tzset if the wrapper function should be used.])
+ AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1],
+ [Define if tzset clobbers localtime's static buffer.])
+ fi
+ ])
fi
AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone],
[Define this to 'void' or 'struct timezone' to match the system's
])
AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
- AC_LIBOBJ([gettimeofday])
- gl_PREREQ_GETTIMEOFDAY
AC_DEFINE([gmtime], [rpl_gmtime],
[Define to rpl_gmtime if the replacement function should be used.])
AC_DEFINE([localtime], [rpl_localtime],
-# getugroups.m4 serial 8
+# getugroups.m4 serial 9
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_GETUGROUPS],
[
- AC_LIBOBJ([getugroups])
AC_CHECK_HEADERS_ONCE([grp.h])
])
-# getusershell.m4 serial 6
+# getusershell.m4 serial 7
dnl Copyright (C) 2002-2003, 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Check whether the getusershell function exists.
AC_CHECK_FUNCS_ONCE([getusershell])
if test $ac_cv_func_getusershell = yes; then
+ HAVE_GETUSERSHELL=1
dnl Check whether getusershell is declared.
AC_CHECK_DECLS([getusershell])
if test $ac_cv_have_decl_getusershell = no; then
HAVE_DECL_GETUSERSHELL=0
fi
else
- AC_LIBOBJ([getusershell])
+ HAVE_GETUSERSHELL=0
dnl Assume that on platforms which declare it, the function exists.
HAVE_DECL_GETUSERSHELL=0
fi
-# glob.m4 serial 13
+# glob.m4 serial 14
dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
rm -f conf$$-globtest
- if test -n "$GLOB_H"; then
- AC_LIBOBJ([glob])
- gl_PREREQ_GLOB
- fi
AC_SUBST([GLOB_H])
AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"])
])
-# gnulib-common.m4 serial 24
+# gnulib-common.m4 serial 29
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_COMMON_BODY])
])
AC_DEFUN([gl_COMMON_BODY], [
+ AH_VERBATIM([_Noreturn],
+[/* The _Noreturn keyword of draft C1X. */
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+])
AH_VERBATIM([isoc99_inline],
[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
is a misnomer outside of parameter lists. */
#define _UNUSED_PARAMETER_ _GL_UNUSED
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
])
dnl Preparation for running test programs:
dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
# expands to a C preprocessor expression that evaluates to 1 or 0, depending
# whether a gnulib module that has been requested shall be considered present
# or not.
-AC_DEFUN([gl_MODULE_INDICATOR_CONDITION], [1])
+m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
# gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
# sets the shell variable that indicates the presence of the given module to
# a C preprocessor expression that will evaluate to 1.
AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
[
- GNULIB_[]m4_translit([[$1]],
- [abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=gl_MODULE_INDICATOR_CONDITION
+ gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+ [GNULIB_[]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+ [gl_MODULE_INDICATOR_CONDITION])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
+# modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
+# The shell variable's value is a C preprocessor expression that evaluates
+# to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
+[
+ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
+ [
+ dnl Simplify the expression VALUE || 1 to 1.
+ $1=1
+ ],
+ [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
+ [gl_MODULE_INDICATOR_CONDITION])])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
+# modifies the shell variable to include the given condition. The shell
+# variable's value is a C preprocessor expression that evaluates to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
+[
+ dnl Simplify the expression 1 || CONDITION to 1.
+ if test "$[]$1" != 1; then
+ dnl Simplify the expression 0 || CONDITION to CONDITION.
+ if test "$[]$1" = 0; then
+ $1=$2
+ else
+ $1="($[]$1 || $2)"
+ fi
+ fi
])
# gl_MODULE_INDICATOR([modulename])
[m4_define([AS_VAR_IF],
[AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])])
+# gl_PROG_AR_RANLIB
+# Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
+AC_DEFUN([gl_PROG_AR_RANLIB],
+[
+ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
+ dnl as "cc", and GCC as "gcc". They have different object file formats and
+ dnl library formats. In particular, the GNU binutils programs ar, ranlib
+ dnl produce libraries that work only with gcc, not with cc.
+ AC_REQUIRE([AC_PROG_CC])
+ AC_EGREP_CPP([Amsterdam],
+ [
+#ifdef __ACK__
+Amsterdam
+#endif
+ ],
+ [AR='cc -c.a'
+ ARFLAGS='-o'
+ RANLIB=':'
+ ],
+ [dnl Use the Automake-documented default values for AR and ARFLAGS.
+ AR='ar'
+ ARFLAGS='cru'
+ dnl Use the ranlib program if it is available.
+ AC_PROG_RANLIB
+ ])
+ AC_SUBST([AR])
+ AC_SUBST([ARFLAGS])
+])
+
# AC_PROG_MKDIR_P
# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
# for interoperability with automake-1.9.6 from autoconf-2.62.
-# grantpt.m4 serial 1
+# grantpt.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([grantpt])
if test $ac_cv_func_grantpt = no; then
HAVE_GRANTPT=0
- AC_LIBOBJ([grantpt])
- gl_PREREQ_GRANTPT
fi
])
-# serial 13
+# serial 14
# Copyright (C) 1999-2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNC([group_member], , [
HAVE_GROUP_MEMBER=0
])
- if test $HAVE_GROUP_MEMBER = 0; then
- AC_LIBOBJ([group-member])
- gl_PREREQ_GROUP_MEMBER
- fi
])
# Prerequisites of lib/group-member.c.
-# hard-locale.m4 serial 7
+# hard-locale.m4 serial 8
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl No prerequisites of lib/hard-locale.c.
AC_DEFUN([gl_HARD_LOCALE],
[
- AC_LIBOBJ([hard-locale])
+ :
])
+++ /dev/null
-# hash.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
-dnl Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_HASH],
-[
- AC_LIBOBJ([hash])
-
- dnl Prerequisites of lib/hash.c.
- AC_REQUIRE([AM_STDBOOL_H])
-])
+++ /dev/null
-# hmac-md5.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_HMAC_MD5],
-[
- AC_LIBOBJ([hmac-md5])
-])
+++ /dev/null
-# hmac-sha1.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_HMAC_SHA1],
-[
- AC_LIBOBJ([hmac-sha1])
-])
-#serial 10
+#serial 11
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/human.c.
AC_DEFUN([gl_HUMAN],
[
- AC_LIBOBJ([human])
-
- dnl Prerequisites of lib/human.c.
:
])
-# serial 1
+# serial 2
dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_I_RING],
[
- AC_LIBOBJ([i-ring])
+ :
])
--- /dev/null
+# iconv_open-utf.m4 serial 1
+dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# A placeholder to ensure that this m4 file gets included by aclocal.
+AC_DEFUN([gl_FUNC_ICONV_OPEN_UTF], [])
+
+AC_DEFUN([gl_FUNC_ICONV_OPEN_UTF_SUPPORT],
+[
+ dnl This macro relies on am_cv_func_iconv and gl_func_iconv_gnu from
+ dnl gl_FUNC_ICONV_OPEN, but is called from within gl_FUNC_ICONV_OPEN.
+ dnl *Not* AC_REQUIRE([gl_FUNC_ICONV_OPEN]).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_CACHE_CHECK([whether iconv supports conversion between UTF-8 and UTF-{16,32}{BE,LE}],
+ [gl_cv_func_iconv_supports_utf],
+ [
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <iconv.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test conversion from UTF-8 to UTF-16BE with no errors. */
+ {
+ static const char input[] =
+ "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
+ static const char expected[] =
+ "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
+ iconv_t cd;
+ cd = iconv_open ("UTF-16BE", "UTF-8");
+ if (cd == (iconv_t)(-1))
+ result |= 1;
+ else
+ {
+ char buf[100];
+ const char *inptr;
+ size_t inbytesleft;
+ char *outptr;
+ size_t outbytesleft;
+ size_t res;
+ inptr = input;
+ inbytesleft = sizeof (input) - 1;
+ outptr = buf;
+ outbytesleft = sizeof (buf);
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (!(res == 0 && inbytesleft == 0))
+ result |= 1;
+ else if (!(outptr == buf + (sizeof (expected) - 1)))
+ result |= 1;
+ else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+ result |= 1;
+ else if (!(iconv_close (cd) == 0))
+ result |= 1;
+ }
+ }
+ /* Test conversion from UTF-8 to UTF-16LE with no errors. */
+ {
+ static const char input[] =
+ "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
+ static const char expected[] =
+ "J\000a\000p\000a\000n\000e\000s\000e\000 \000(\000\345\145\054\147\236\212)\000 \000[\000\065\330\015\335\065\330\036\335\065\330\055\335]\000";
+ iconv_t cd;
+ cd = iconv_open ("UTF-16LE", "UTF-8");
+ if (cd == (iconv_t)(-1))
+ result |= 2;
+ else
+ {
+ char buf[100];
+ const char *inptr;
+ size_t inbytesleft;
+ char *outptr;
+ size_t outbytesleft;
+ size_t res;
+ inptr = input;
+ inbytesleft = sizeof (input) - 1;
+ outptr = buf;
+ outbytesleft = sizeof (buf);
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (!(res == 0 && inbytesleft == 0))
+ result |= 2;
+ else if (!(outptr == buf + (sizeof (expected) - 1)))
+ result |= 2;
+ else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+ result |= 2;
+ else if (!(iconv_close (cd) == 0))
+ result |= 2;
+ }
+ }
+ /* Test conversion from UTF-8 to UTF-32BE with no errors. */
+ {
+ static const char input[] =
+ "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
+ static const char expected[] =
+ "\000\000\000J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\145\345\000\000\147\054\000\000\212\236\000\000\000)\000\000\000 \000\000\000[\000\001\325\015\000\001\325\036\000\001\325\055\000\000\000]";
+ iconv_t cd;
+ cd = iconv_open ("UTF-32BE", "UTF-8");
+ if (cd == (iconv_t)(-1))
+ result |= 4;
+ else
+ {
+ char buf[100];
+ const char *inptr;
+ size_t inbytesleft;
+ char *outptr;
+ size_t outbytesleft;
+ size_t res;
+ inptr = input;
+ inbytesleft = sizeof (input) - 1;
+ outptr = buf;
+ outbytesleft = sizeof (buf);
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (!(res == 0 && inbytesleft == 0))
+ result |= 4;
+ else if (!(outptr == buf + (sizeof (expected) - 1)))
+ result |= 4;
+ else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+ result |= 4;
+ else if (!(iconv_close (cd) == 0))
+ result |= 4;
+ }
+ }
+ /* Test conversion from UTF-8 to UTF-32LE with no errors. */
+ {
+ static const char input[] =
+ "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
+ static const char expected[] =
+ "J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\000\345\145\000\000\054\147\000\000\236\212\000\000)\000\000\000 \000\000\000[\000\000\000\015\325\001\000\036\325\001\000\055\325\001\000]\000\000\000";
+ iconv_t cd;
+ cd = iconv_open ("UTF-32LE", "UTF-8");
+ if (cd == (iconv_t)(-1))
+ result |= 8;
+ else
+ {
+ char buf[100];
+ const char *inptr;
+ size_t inbytesleft;
+ char *outptr;
+ size_t outbytesleft;
+ size_t res;
+ inptr = input;
+ inbytesleft = sizeof (input) - 1;
+ outptr = buf;
+ outbytesleft = sizeof (buf);
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (!(res == 0 && inbytesleft == 0))
+ result |= 8;
+ else if (!(outptr == buf + (sizeof (expected) - 1)))
+ result |= 8;
+ else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+ result |= 8;
+ else if (!(iconv_close (cd) == 0))
+ result |= 8;
+ }
+ }
+ /* Test conversion from UTF-16BE to UTF-8 with no errors.
+ This test fails on NetBSD 3.0. */
+ {
+ static const char input[] =
+ "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
+ static const char expected[] =
+ "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
+ iconv_t cd;
+ cd = iconv_open ("UTF-8", "UTF-16BE");
+ if (cd == (iconv_t)(-1))
+ result |= 16;
+ else
+ {
+ char buf[100];
+ const char *inptr;
+ size_t inbytesleft;
+ char *outptr;
+ size_t outbytesleft;
+ size_t res;
+ inptr = input;
+ inbytesleft = sizeof (input) - 1;
+ outptr = buf;
+ outbytesleft = sizeof (buf);
+ res = iconv (cd,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (!(res == 0 && inbytesleft == 0))
+ result |= 16;
+ else if (!(outptr == buf + (sizeof (expected) - 1)))
+ result |= 16;
+ else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+ result |= 16;
+ else if (!(iconv_close (cd) == 0))
+ result |= 16;
+ }
+ }
+ return result;
+}]])],
+ [gl_cv_func_iconv_supports_utf=yes],
+ [gl_cv_func_iconv_supports_utf=no],
+ [
+ dnl We know that GNU libiconv, GNU libc, and Solaris >= 9 do.
+ dnl OSF/1 5.1 has these encodings, but inserts a BOM in the "to"
+ dnl direction.
+ gl_cv_func_iconv_supports_utf=no
+ if test $gl_func_iconv_gnu = yes; then
+ gl_cv_func_iconv_supports_utf=yes
+ else
+changequote(,)dnl
+ case "$host_os" in
+ solaris2.9 | solaris2.1[0-9]) gl_cv_func_iconv_supports_utf=yes ;;
+ esac
+changequote([,])dnl
+ fi
+ ])
+ LIBS="$save_LIBS"
+ ])
+ fi
+])
-# iconv_open.m4 serial 12
+# iconv_open.m4 serial 14
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
gl_REPLACE_ICONV_OPEN
fi
fi
+ m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [
+ gl_FUNC_ICONV_OPEN_UTF_SUPPORT
+ if test $gl_cv_func_iconv_supports_utf = no; then
+ REPLACE_ICONV_UTF=1
+ AC_DEFINE([REPLACE_ICONV_UTF], [1],
+ [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.])
+ REPLACE_ICONV=1
+ gl_REPLACE_ICONV_OPEN
+ fi
+ ])
fi
])
[
gl_REPLACE_ICONV_H
REPLACE_ICONV_OPEN=1
- AC_LIBOBJ([iconv_open])
-])
-
-AC_DEFUN([gl_FUNC_ICONV_OPEN_UTF],
-[
- AC_REQUIRE([gl_FUNC_ICONV_OPEN])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_REQUIRE([gl_ICONV_H_DEFAULTS])
- if test "$am_cv_func_iconv" = yes; then
- AC_CACHE_CHECK([whether iconv supports conversion between UTF-8 and UTF-{16,32}{BE,LE}],
- [gl_cv_func_iconv_supports_utf],
- [
- save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <iconv.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-int main ()
-{
- int result = 0;
- /* Test conversion from UTF-8 to UTF-16BE with no errors. */
- {
- static const char input[] =
- "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
- static const char expected[] =
- "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
- iconv_t cd;
- cd = iconv_open ("UTF-16BE", "UTF-8");
- if (cd == (iconv_t)(-1))
- result |= 1;
- else
- {
- char buf[100];
- const char *inptr;
- size_t inbytesleft;
- char *outptr;
- size_t outbytesleft;
- size_t res;
- inptr = input;
- inbytesleft = sizeof (input) - 1;
- outptr = buf;
- outbytesleft = sizeof (buf);
- res = iconv (cd,
- (ICONV_CONST char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (!(res == 0 && inbytesleft == 0))
- result |= 1;
- else if (!(outptr == buf + (sizeof (expected) - 1)))
- result |= 1;
- else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
- result |= 1;
- else if (!(iconv_close (cd) == 0))
- result |= 1;
- }
- }
- /* Test conversion from UTF-8 to UTF-16LE with no errors. */
- {
- static const char input[] =
- "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
- static const char expected[] =
- "J\000a\000p\000a\000n\000e\000s\000e\000 \000(\000\345\145\054\147\236\212)\000 \000[\000\065\330\015\335\065\330\036\335\065\330\055\335]\000";
- iconv_t cd;
- cd = iconv_open ("UTF-16LE", "UTF-8");
- if (cd == (iconv_t)(-1))
- result |= 2;
- else
- {
- char buf[100];
- const char *inptr;
- size_t inbytesleft;
- char *outptr;
- size_t outbytesleft;
- size_t res;
- inptr = input;
- inbytesleft = sizeof (input) - 1;
- outptr = buf;
- outbytesleft = sizeof (buf);
- res = iconv (cd,
- (ICONV_CONST char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (!(res == 0 && inbytesleft == 0))
- result |= 2;
- else if (!(outptr == buf + (sizeof (expected) - 1)))
- result |= 2;
- else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
- result |= 2;
- else if (!(iconv_close (cd) == 0))
- result |= 2;
- }
- }
- /* Test conversion from UTF-8 to UTF-32BE with no errors. */
- {
- static const char input[] =
- "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
- static const char expected[] =
- "\000\000\000J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\145\345\000\000\147\054\000\000\212\236\000\000\000)\000\000\000 \000\000\000[\000\001\325\015\000\001\325\036\000\001\325\055\000\000\000]";
- iconv_t cd;
- cd = iconv_open ("UTF-32BE", "UTF-8");
- if (cd == (iconv_t)(-1))
- result |= 4;
- else
- {
- char buf[100];
- const char *inptr;
- size_t inbytesleft;
- char *outptr;
- size_t outbytesleft;
- size_t res;
- inptr = input;
- inbytesleft = sizeof (input) - 1;
- outptr = buf;
- outbytesleft = sizeof (buf);
- res = iconv (cd,
- (ICONV_CONST char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (!(res == 0 && inbytesleft == 0))
- result |= 4;
- else if (!(outptr == buf + (sizeof (expected) - 1)))
- result |= 4;
- else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
- result |= 4;
- else if (!(iconv_close (cd) == 0))
- result |= 4;
- }
- }
- /* Test conversion from UTF-8 to UTF-32LE with no errors. */
- {
- static const char input[] =
- "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
- static const char expected[] =
- "J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\000\345\145\000\000\054\147\000\000\236\212\000\000)\000\000\000 \000\000\000[\000\000\000\015\325\001\000\036\325\001\000\055\325\001\000]\000\000\000";
- iconv_t cd;
- cd = iconv_open ("UTF-32LE", "UTF-8");
- if (cd == (iconv_t)(-1))
- result |= 8;
- else
- {
- char buf[100];
- const char *inptr;
- size_t inbytesleft;
- char *outptr;
- size_t outbytesleft;
- size_t res;
- inptr = input;
- inbytesleft = sizeof (input) - 1;
- outptr = buf;
- outbytesleft = sizeof (buf);
- res = iconv (cd,
- (ICONV_CONST char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (!(res == 0 && inbytesleft == 0))
- result |= 8;
- else if (!(outptr == buf + (sizeof (expected) - 1)))
- result |= 8;
- else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
- result |= 8;
- else if (!(iconv_close (cd) == 0))
- result |= 8;
- }
- }
- /* Test conversion from UTF-16BE to UTF-8 with no errors.
- This test fails on NetBSD 3.0. */
- {
- static const char input[] =
- "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
- static const char expected[] =
- "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
- iconv_t cd;
- cd = iconv_open ("UTF-8", "UTF-16BE");
- if (cd == (iconv_t)(-1))
- result |= 16;
- else
- {
- char buf[100];
- const char *inptr;
- size_t inbytesleft;
- char *outptr;
- size_t outbytesleft;
- size_t res;
- inptr = input;
- inbytesleft = sizeof (input) - 1;
- outptr = buf;
- outbytesleft = sizeof (buf);
- res = iconv (cd,
- (ICONV_CONST char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (!(res == 0 && inbytesleft == 0))
- result |= 16;
- else if (!(outptr == buf + (sizeof (expected) - 1)))
- result |= 16;
- else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
- result |= 16;
- else if (!(iconv_close (cd) == 0))
- result |= 16;
- }
- }
- return result;
-}]])],
- [gl_cv_func_iconv_supports_utf=yes],
- [gl_cv_func_iconv_supports_utf=no],
- [
- dnl We know that GNU libiconv, GNU libc, and Solaris >= 9 do.
- dnl OSF/1 5.1 has these encodings, but inserts a BOM in the "to"
- dnl direction.
- gl_cv_func_iconv_supports_utf=no
- if test $gl_func_iconv_gnu = yes; then
- gl_cv_func_iconv_supports_utf=yes
- else
-changequote(,)dnl
- case "$host_os" in
- solaris2.9 | solaris2.1[0-9]) gl_cv_func_iconv_supports_utf=yes ;;
- esac
-changequote([,])dnl
- fi
- ])
- LIBS="$save_LIBS"
- ])
- if test $gl_cv_func_iconv_supports_utf = no; then
- REPLACE_ICONV_UTF=1
- AC_DEFINE([REPLACE_ICONV_UTF], [1],
- [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.])
- REPLACE_ICONV=1
- gl_REPLACE_ICONV_OPEN
- AC_LIBOBJ([iconv])
- AC_LIBOBJ([iconv_close])
- fi
- fi
])
-# idcache.m4 serial 6
+# idcache.m4 serial 7
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_IDCACHE],
[
- AC_LIBOBJ([idcache])
+ :
])
-# imaxabs.m4 serial 2
+# imaxabs.m4 serial 3
dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_DECLS_ONCE([imaxabs])
if test "$ac_cv_have_decl_imaxabs" != yes; then
HAVE_DECL_IMAXABS=0
- AC_LIBOBJ([imaxabs])
- gl_PREREQ_IMAXABS
fi
])
-# imaxdiv.m4 serial 2
+# imaxdiv.m4 serial 3
dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_DECLS_ONCE([imaxdiv])
if test "$ac_cv_have_decl_imaxdiv" != yes; then
HAVE_DECL_IMAXDIV=0
- AC_LIBOBJ([imaxdiv])
- gl_PREREQ_IMAXDIV
fi
])
-# include_next.m4 serial 18
+# include_next.m4 serial 20
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[AC_CHECK_HEADERS_ONCE([$1])
])
+dnl FIXME: gl_next_header and gl_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
m4_foreach_w([gl_HEADER_NAME], [$1],
[AS_VAR_PUSHDEF([gl_next_header],
[gl_cv_next_]m4_defn([gl_HEADER_NAME]))
if test $gl_cv_have_include_next = yes; then
- AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+ AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
else
AC_CACHE_CHECK(
[absolute name of <]m4_defn([gl_HEADER_NAME])[>],
dnl eval is necessary to expand gl_absname_cpp.
dnl Ultrix and Pyramid sh refuse to redirect output of eval,
dnl so use subshell.
- AS_VAR_SET([gl_next_header],
+ AS_VAR_SET(gl_next_header,
['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
}'`'"'])
m4_if([$2], [check],
[else
- AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+ AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
fi
])
])
fi
AC_SUBST(
AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
- [AS_VAR_GET([gl_next_header])])
+ [AS_VAR_GET(gl_next_header)])
if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
gl_next_as_first_directive='<'gl_HEADER_NAME'>'
else
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
- gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
+ gl_next_as_first_directive=AS_VAR_GET(gl_next_header)
fi
AC_SUBST(
AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
-# inet_ntop.m4 serial 14
+# inet_ntop.m4 serial 15
dnl Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Most platforms that provide inet_ntop define it in libc.
dnl Solaris 8..10 provide inet_ntop in libnsl instead.
+ HAVE_INET_NTOP=1
gl_save_LIBS=$LIBS
AC_SEARCH_LIBS([inet_ntop], [nsl], [],
- [AC_REPLACE_FUNCS([inet_ntop])])
+ [AC_CHECK_FUNCS([inet_ntop])
+ if test $ac_cv_func_inet_ntop = no; then
+ HAVE_INET_NTOP=0
+ fi
+ ])
LIBS=$gl_save_LIBS
+
INET_NTOP_LIB=
if test "$ac_cv_search_inet_ntop" != "no" &&
test "$ac_cv_search_inet_ntop" != "none required"; then
fi
AC_SUBST([INET_NTOP_LIB])
- gl_PREREQ_INET_NTOP
-])
-
-# Prerequisites of lib/inet_ntop.c.
-AC_DEFUN([gl_PREREQ_INET_NTOP], [
AC_CHECK_HEADERS_ONCE([netdb.h])
AC_CHECK_DECLS([inet_ntop],,,
[#include <arpa/inet.h>
])
if test $ac_cv_have_decl_inet_ntop = no; then
HAVE_DECL_INET_NTOP=0
+ AC_REQUIRE([AC_C_RESTRICT])
fi
+])
+
+# Prerequisites of lib/inet_ntop.c.
+AC_DEFUN([gl_PREREQ_INET_NTOP], [
AC_REQUIRE([gl_SOCKET_FAMILIES])
- AC_REQUIRE([AC_C_RESTRICT])
])
-# inet_pton.m4 serial 12
+# inet_pton.m4 serial 13
dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Most platforms that provide inet_pton define it in libc.
dnl Solaris 8..10 provide inet_pton in libnsl instead.
+ HAVE_INET_PTON=1
gl_save_LIBS=$LIBS
AC_SEARCH_LIBS([inet_pton], [nsl], [],
- [AC_REPLACE_FUNCS([inet_pton])])
+ [AC_CHECK_FUNCS([inet_pton])
+ if test $ac_cv_func_inet_pton = no; then
+ HAVE_INET_PTON=0
+ fi
+ ])
LIBS=$gl_save_LIBS
+
INET_PTON_LIB=
if test "$ac_cv_search_inet_pton" != "no" &&
test "$ac_cv_search_inet_pton" != "none required"; then
fi
AC_SUBST([INET_PTON_LIB])
- gl_PREREQ_INET_PTON
-])
-
-# Prerequisites of lib/inet_pton.c.
-AC_DEFUN([gl_PREREQ_INET_PTON], [
AC_CHECK_HEADERS_ONCE([netdb.h])
AC_CHECK_DECLS([inet_pton],,,
[#include <arpa/inet.h>
])
if test $ac_cv_have_decl_inet_pton = no; then
HAVE_DECL_INET_PTON=0
+ AC_REQUIRE([AC_C_RESTRICT])
fi
+])
+
+# Prerequisites of lib/inet_pton.c.
+AC_DEFUN([gl_PREREQ_INET_PTON], [
AC_REQUIRE([gl_SOCKET_FAMILIES])
- AC_REQUIRE([AC_C_RESTRICT])
])
-# ioctl.m4 serial 2
+# ioctl.m4 serial 4
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+ HAVE_IOCTL=1
if test "$ac_cv_header_winsock2_h" = yes; then
dnl Even if the 'socket' module is not used here, another part of the
dnl application may use it and pass file descriptors that refer to
dnl sockets to the ioctl() function. So enable the support for sockets.
- AC_LIBOBJ([ioctl])
+ HAVE_IOCTL=0
else
AC_CHECK_FUNCS([ioctl])
dnl On glibc systems, the second parameter is 'unsigned long int request',
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <sys/ioctl.h>]],
- [[extern int ioctl (int, int, ...);]])
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int ioctl (int, int, ...);
+ ]])
],
[gl_cv_func_ioctl_posix_signature=yes],
[gl_cv_func_ioctl_posix_signature=no])
])
if test $gl_cv_func_ioctl_posix_signature != yes; then
REPLACE_IOCTL=1
- AC_LIBOBJ([ioctl])
fi
fi
])
AC_DEFUN([gl_ISAPIPE],
[
# OpenVMS has isapipe already, so check for it.
- AC_REPLACE_FUNCS([isapipe])
- if test $ac_cv_func_isapipe = no; then
- gl_PREREQ_ISAPIPE
+ AC_CHECK_FUNCS([isapipe])
+ if test $ac_cv_func_isapipe = yes; then
+ HAVE_ISAPIPE=1
+ else
+ HAVE_ISAPIPE=0
fi
])
-# isblank.m4 serial 2
+# isblank.m4 serial 3
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([isblank])
if test $ac_cv_func_isblank = no; then
HAVE_ISBLANK=0
- AC_LIBOBJ([isblank])
fi
])
-# isfinite.m4 serial 8
+# isfinite.m4 serial 10
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_DECLS([isfinite], , , [#include <math.h>])
if test "$ac_cv_have_decl_isfinite" = yes; then
- gl_CHECK_MATH_LIB([ISFINITE_LIBM], [x = isfinite (x);])
+ gl_CHECK_MATH_LIB([ISFINITE_LIBM],
+ [x = isfinite (x) + isfinite ((float) x);])
if test "$ISFINITE_LIBM" != missing; then
dnl Test whether isfinite() on 'long double' works.
gl_ISFINITEL_WORKS
if test "$ac_cv_have_decl_isfinite" != yes ||
test "$ISFINITE_LIBM" = missing; then
REPLACE_ISFINITE=1
- AC_LIBOBJ([isfinite])
+ dnl No libraries are needed to link lib/isfinite.c.
ISFINITE_LIBM=
fi
AC_SUBST([ISFINITE_LIBM])
-# isinf.m4 serial 3
+# isinf.m4 serial 5
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_DECLS([isinf], , , [#include <math.h>])
if test "$ac_cv_have_decl_isinf" = yes; then
- gl_CHECK_MATH_LIB([ISINF_LIBM], [x = isinf (x);])
+ gl_CHECK_MATH_LIB([ISINF_LIBM], [x = isinf (x) + isinf ((float) x);])
if test "$ISINF_LIBM" != missing; then
dnl Test whether isinf() on 'long double' works.
gl_ISINFL_WORKS
if test "$ac_cv_have_decl_isinf" != yes ||
test "$ISINF_LIBM" = missing; then
REPLACE_ISINF=1
- AC_LIBOBJ([isinf])
+ dnl No libraries are needed to link lib/isinf.c.
ISINF_LIBM=
fi
AC_SUBST([ISINF_LIBM])
-# isnan.m4 serial 3
+# isnan.m4 serial 5
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
esac
else
AC_MSG_RESULT([no])
+ dnl REPLACE_ISNAN=1 also makes sure the rpl_isnan[fdl] functions get built.
REPLACE_ISNAN=1
- # Make sure the rpl_isnan[fdl] functions get built.
- gl_BUILD_ISNANF
- gl_BUILD_ISNAND
- gl_BUILD_ISNANL
ISNAN_LIBM=
fi
AC_SUBST([ISNAN_LIBM])
-# isnand.m4 serial 8
+# isnand.m4 serial 10
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
gl_func_isnand=no
HAVE_ISNAND=0
- gl_BUILD_ISNAND
fi
AC_SUBST([ISNAND_LIBM])
])
AC_DEFUN([gl_FUNC_ISNAND_NO_LIBM],
[
gl_HAVE_ISNAND_NO_LIBM
+ gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm
if test $gl_cv_func_isnand_no_libm = yes; then
AC_DEFINE([HAVE_ISNAND_IN_LIBC], [1],
[Define if the isnan(double) function is available in libc.])
- else
- gl_BUILD_ISNAND
fi
])
-dnl Pull in replacement isnand definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNAND],
+dnl Prerequisites of replacement isnand definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNAND],
[
- AC_LIBOBJ([isnand])
gl_DOUBLE_EXPONENT_LOCATION
])
-# isnanf.m4 serial 12
+# isnanf.m4 serial 14
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
if test $gl_func_isnanf != yes; then
HAVE_ISNANF=0
- gl_BUILD_ISNANF
fi
AC_SUBST([ISNANF_LIBM])
])
*) false;;
esac
}; then
+ gl_func_isnanf_no_libm=yes
AC_DEFINE([HAVE_ISNANF_IN_LIBC], [1],
[Define if the isnan(float) function is available in libc.])
else
- gl_BUILD_ISNANF
+ gl_func_isnanf_no_libm=no
fi
])
-dnl Pull in replacement isnanf definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNANF],
+dnl Prerequisites of replacement isnanf definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNANF],
[
- AC_LIBOBJ([isnanf])
gl_FLOAT_EXPONENT_LOCATION
])
-# isnanl.m4 serial 14
+# isnanl.m4 serial 16
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
if test $gl_func_isnanl != yes; then
HAVE_ISNANL=0
- gl_BUILD_ISNANL
fi
AC_SUBST([ISNANL_LIBM])
])
if test $gl_func_isnanl_no_libm = yes; then
AC_DEFINE([HAVE_ISNANL_IN_LIBC], [1],
[Define if the isnan(long double) function is available in libc.])
- else
- gl_BUILD_ISNANL
fi
])
-dnl Pull in replacement isnanl definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNANL],
+dnl Prerequisites of replacement isnanl definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNANL],
[
- AC_LIBOBJ([isnanl])
gl_LONG_DOUBLE_EXPONENT_LOCATION
])
-# iswblank.m4 serial 2
+# iswblank.m4 serial 4
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Persuade glibc <wctype.h> to declare iswblank().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([iswblank])
- AC_CHECK_DECLS_ONCE([iswblank])
+ AC_CHECK_DECLS([iswblank], , , [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+ before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+]])
if test $ac_cv_func_iswblank = no; then
HAVE_ISWBLANK=0
if test $ac_cv_have_decl_iswblank = yes; then
else
if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
dnl Redefine only iswblank.
- AC_LIBOBJ([iswblank])
+ :
fi
fi
-# iswctype.m4 serial 1
+# iswctype.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
AC_REQUIRE([gl_WCTYPE_H])
- if test $HAVE_WCTYPE_T = 0; then
- AC_LIBOBJ([iswctype])
- fi
])
--- /dev/null
+# Enable large files on systems where this is not the default.
+
+# Copyright 1992-1996, 1998-2011 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# The following implementation works around a problem in autoconf <= 2.68;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5.
+m4_version_prereq([2.69], [] ,[
+
+# _AC_SYS_LARGEFILE_TEST_INCLUDES
+# -------------------------------
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+[@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1]];[]dnl
+])
+
+
+# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+# CACHE-VAR,
+# DESCRIPTION,
+# PROLOGUE, [FUNCTION-BODY])
+# --------------------------------------------------------
+m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+[while :; do
+ m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+ [AC_LANG_PROGRAM([$5], [$6])],
+ [$3=no; break])
+ m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+ [AC_LANG_PROGRAM([@%:@define $1 $2
+$5], [$6])],
+ [$3=$2; break])
+ $3=unknown
+ break
+done])
+case $$3 in #(
+ no | unknown) ;;
+ *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+esac
+rm -rf conftest*[]dnl
+])# _AC_SYS_LARGEFILE_MACRO_VALUE
+
+
+# AC_SYS_LARGEFILE
+# ----------------
+# By default, many hosts won't let programs access large files;
+# one must use special compiler options to get large-file access to work.
+# For more details about this brain damage please see:
+# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html
+AC_DEFUN([AC_SYS_LARGEFILE],
+[AC_ARG_ENABLE(largefile,
+ [ --disable-largefile omit support for large files])
+if test "$enable_largefile" != no; then
+
+ AC_CACHE_CHECK([for special C compiler options needed for large files],
+ ac_cv_sys_largefile_CC,
+ [ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+ AC_COMPILE_IFELSE([], [break])
+ CC="$CC -n32"
+ AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi])
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+ ac_cv_sys_file_offset_bits,
+ [Number of bits in a file offset, on hosts where this is settable.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+ ac_cv_sys_large_files,
+ [Define for large files, on AIX-style hosts.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ fi
+
+ AH_VERBATIM([_DARWIN_USE_64_BIT_INODE],
+[/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif])
+fi
+])# AC_SYS_LARGEFILE
+
+])# m4_version_prereq 2.69
-# serial 15
+# serial 16
# Determine whether we need the lchown wrapper.
dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2011 Free Software Foundation,
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_CHOWN])
AC_CHECK_FUNCS_ONCE([lchmod])
- AC_REPLACE_FUNCS([lchown])
+ AC_CHECK_FUNCS([lchown])
if test $ac_cv_func_lchown = no; then
HAVE_LCHOWN=0
elif test "$gl_cv_func_chown_slash_works" != yes \
|| test "$gl_cv_func_chown_ctime_works" != yes; then
dnl Trailing slash and ctime bugs in chown also occur in lchown.
- AC_LIBOBJ([lchown])
REPLACE_LCHOWN=1
fi
])
-# ldexpl.m4 serial 10
+# ldexpl.m4 serial 12
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
fi
if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then
- AC_LIBOBJ([ldexpl])
+ dnl Find libraries needed to link lib/ldexpl.c.
LDEXPL_LIBM="$ISNANL_LIBM"
fi
AC_SUBST([LDEXPL_LIBM])
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <math.h>
-extern long double ldexpl (long double, int);
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double ldexpl (long double, int);
int main()
{
int result = 0;
-# link.m4 serial 5
+# link.m4 serial 7
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([link])
if test $ac_cv_func_link = no; then
HAVE_LINK=0
- AC_LIBOBJ([link])
else
- AC_CACHE_CHECK([whether link handles trailing slash correctly],
+ AC_CACHE_CHECK([whether link obeys POSIX],
[gl_cv_func_link_works],
[touch conftest.a
# Assume that if we have lstat, we can also check symlinks.
#if HAVE_LSTAT
if (!link ("conftest.lnk/", "conftest.b"))
result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
#endif
return result;
]])],
rm -f conftest.a conftest.b conftest.lnk])
if test "$gl_cv_func_link_works" != yes; then
REPLACE_LINK=1
- AC_LIBOBJ([link])
fi
fi
])
-# serial 4
+# serial 6
# See if we need to provide linkat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_DEFUN([gl_FUNC_LINKAT],
[
AC_REQUIRE([gl_FUNC_OPENAT])
- AC_REQUIRE([gl_FUNC_LINK])
AC_REQUIRE([gl_FUNC_LINK_FOLLOWS_SYMLINK])
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_HEADERS_ONCE([sys/param.h])
if test $ac_cv_func_linkat = no; then
HAVE_LINKAT=0
- AC_LIBOBJ([linkat])
- AC_LIBOBJ([at-func2])
else
AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works],
[gl_cv_func_linkat_follow],
if test "$gl_cv_func_linkat_follow" != yes \
|| test $gl_linkat_slash_bug = 1; then
REPLACE_LINKAT=1
- AC_LIBOBJ([linkat])
AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug],
[Define to 1 if linkat fails to recognize a trailing slash.])
fi
-# locale-zh.m4 serial 8
+# locale-zh.m4 serial 9
dnl Copyright (C) 2003, 2005-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
gt_cv_locale_zh_CN=none
fi
;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
*)
# Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
# otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-# logb.m4 serial 2
+# logb.m4 serial 3
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
- extern double logb (double x);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ double logb (double x);
double x;]],
[[x = logb(x);]])],
[LOGB_LIBM=])
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
- extern double logb (double x);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ double logb (double x);
double x;]],
[[x = logb(x);]])],
[LOGB_LIBM="-lm"])
-# logl.m4 serial 3
+# logl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_LOGL=0
HAVE_LOGL=0
- AC_LIBOBJ([logl])
+ dnl Find libraries needed to link lib/logl.c.
AC_REQUIRE([gl_FUNC_FREXPL])
AC_REQUIRE([gl_FUNC_ISNANL])
AC_REQUIRE([gl_FUNC_FLOORL])
+++ /dev/null
-# long-options.m4 serial 5
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
-dnl Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_LONG_OPTIONS],
-[
- AC_LIBOBJ([long-options])
-
- dnl Prerequisites of lib/long-options.c.
-])
-# serial 28
+# serial 29
# How to list mounted file systems.
# Copyright (C) 1998-2004, 2006, 2009-2011 Free Software Foundation, Inc.
#if HAVE_SYS_STATVFS_H
# include <sys/statvfs.h>
#endif
-extern int getmntinfo (struct statfs **, int);
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int getmntinfo (struct statfs **, int);
]], [])],
[fu_cv_sys_mounted_getmntinfo2=no],
[fu_cv_sys_mounted_getmntinfo2=yes])
-# lseek.m4 serial 6
+# lseek.m4 serial 7
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no])
fi])
if test $gl_cv_func_lseek_pipe = no; then
- gl_REPLACE_LSEEK
+ REPLACE_LSEEK=1
+ AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
+ [Define to 1 if lseek does not detect pipes.])
fi
])
-
-AC_DEFUN([gl_REPLACE_LSEEK],
-[
- AC_LIBOBJ([lseek])
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- REPLACE_LSEEK=1
- AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
- [Define to 1 if lseek does not detect pipes.])
-])
-# serial 21
+# serial 23
# Copyright (C) 1997-2001, 2003-2011 Free Software Foundation, Inc.
#
dnl "#define lstat stat", and lstat.c is a no-op.
AC_CHECK_FUNCS_ONCE([lstat])
if test $ac_cv_func_lstat = yes; then
- AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
- if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then
- dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ([lstat]).
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
REPLACE_LSTAT=1
fi
- # Prerequisites of lib/lstat.c.
- AC_REQUIRE([AC_C_INLINE])
else
HAVE_LSTAT=0
fi
])
-# Redefine AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, because it is no longer
-# maintained in Autoconf.
-AC_DEFUN([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+# Prerequisites of lib/lstat.c.
+AC_DEFUN([gl_PREREQ_LSTAT],
[
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+
+AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+[
+ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
+ dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
- [ac_cv_func_lstat_dereferences_slashed_symlink],
+ [gl_cv_func_lstat_dereferences_slashed_symlink],
[rm -f conftest.sym conftest.file
echo >conftest.file
if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
have to compile and use the lstat wrapper. */
return lstat ("conftest.sym/", &sbuf) == 0;
]])],
- [ac_cv_func_lstat_dereferences_slashed_symlink=yes],
- [ac_cv_func_lstat_dereferences_slashed_symlink=no],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=no],
[# When cross-compiling, be pessimistic so we will end up using the
# replacement version of lstat that checks for trailing slashes and
# calls lstat a second time when necessary.
- ac_cv_func_lstat_dereferences_slashed_symlink=no
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
])
else
# If the 'ln -s' command failed, then we probably don't even
# have an lstat function.
- ac_cv_func_lstat_dereferences_slashed_symlink=no
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
fi
rm -f conftest.sym conftest.file
])
- test $ac_cv_func_lstat_dereferences_slashed_symlink = yes &&
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
[Define to 1 if `lstat' dereferences a symlink specified
with a trailing slash.])
- if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then
- AC_LIBOBJ([lstat])
- fi
])
-# malloc.m4 serial 12
+# malloc.m4 serial 13
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[Define to 1 if your system has a GNU libc compatible 'malloc'
function, and to 0 otherwise.])],
[AC_DEFINE([HAVE_MALLOC_GNU], [0])
- gl_REPLACE_MALLOC
+ REPLACE_MALLOC=1
])
])
AC_DEFINE([HAVE_MALLOC_POSIX], [1],
[Define if the 'malloc' function is POSIX compliant.])
else
- gl_REPLACE_MALLOC
+ REPLACE_MALLOC=1
fi
])
[gl_cv_func_malloc_posix=no])
])
])
-
-AC_DEFUN([gl_REPLACE_MALLOC],
-[
- AC_LIBOBJ([malloc])
- REPLACE_MALLOC=1
-])
-# mbrlen.m4 serial 6
+# mbrlen.m4 serial 8
dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mbrlen])
if test $ac_cv_func_mbrlen = no; then
HAVE_MBRLEN=0
+ AC_CHECK_DECLS([mbrlen],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_mbrlen = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbrlen() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBRLEN=1
+ fi
else
dnl Most bugs affecting the system's mbrtowc function also affect the
dnl mbrlen function. So override mbrlen whenever mbrtowc is overridden.
REPLACE_MBRLEN=1
fi
fi
- if test $HAVE_MBRLEN = 0 || test $REPLACE_MBRLEN = 1; then
- AC_LIBOBJ([mbrlen])
- gl_PREREQ_MBRLEN
- fi
])
dnl Test whether mbrlen puts the state into non-initial state when parsing an
-# mbrtowc.m4 serial 23
+# mbrtowc.m4 serial 25
dnl Copyright (C) 2001-2002, 2004-2005, 2008-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_CHECK_FUNCS_ONCE([mbrtowc])
if test $ac_cv_func_mbrtowc = no; then
HAVE_MBRTOWC=0
+ AC_CHECK_DECLS([mbrtowc],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBRTOWC=1
+ fi
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_MBRTOWC=1
esac
fi
fi
- if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
- AC_LIBOBJ([mbrtowc])
- gl_PREREQ_MBRTOWC
- fi
])
dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that
-# mbsinit.m4 serial 6
+# mbsinit.m4 serial 8
dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mbsinit])
if test $ac_cv_func_mbsinit = no; then
HAVE_MBSINIT=0
+ AC_CHECK_DECLS([mbsinit],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSINIT=1
+ fi
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_MBSINIT=1
esac
fi
fi
- if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
- AC_LIBOBJ([mbsinit])
- gl_PREREQ_MBSINIT
- fi
])
# Prerequisites of lib/mbsinit.c.
-# mbsnrtowcs.m4 serial 3
+# mbsnrtowcs.m4 serial 4
dnl Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_MBSNRTOWCS=1
fi
fi
- if test $HAVE_MBSNRTOWCS = 0 || test $REPLACE_MBSNRTOWCS = 1; then
- AC_LIBOBJ([mbsnrtowcs])
- AC_LIBOBJ([mbsrtowcs-state])
- gl_PREREQ_MBSNRTOWCS
- fi
])
# Prerequisites of lib/mbsnrtowcs.c.
-# mbsrtowcs.m4 serial 11
+# mbsrtowcs.m4 serial 13
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mbsrtowcs])
if test $ac_cv_func_mbsrtowcs = no; then
HAVE_MBSRTOWCS=0
+ AC_CHECK_DECLS([mbsrtowcs],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsrtowcs() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSRTOWCS=1
+ fi
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_MBSRTOWCS=1
esac
fi
fi
- if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
- AC_LIBOBJ([mbsrtowcs])
- AC_LIBOBJ([mbsrtowcs-state])
- gl_PREREQ_MBSRTOWCS
- fi
])
dnl Test whether mbsrtowcs works.
-# mbtowc.m4 serial 1
+# mbtowc.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if false; then
REPLACE_MBTOWC=1
fi
- if test $REPLACE_MBTOWC = 1; then
- AC_LIBOBJ([mbtowc])
- gl_PREREQ_MBTOWC
- fi
])
# Prerequisites of lib/mbtowc.c.
+++ /dev/null
-# md2.m4 serial 2
-dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_MD2],
-[
- AC_LIBOBJ([md2])
-])
-# md4.m4 serial 4
+# md4.m4 serial 6
dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/md4.c.
AC_DEFUN([gl_MD4],
[
- AC_LIBOBJ([md4])
-
- dnl Prerequisites of lib/md4.c.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_INLINE])
+ :
])
-# md5.m4 serial 11
+# md5.m4 serial 12
dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_MD5],
[
- AC_LIBOBJ([md5])
-
dnl Prerequisites of lib/md5.c.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_INLINE])
-#serial 5
+#serial 6
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_MEMCASECMP],
[
- AC_LIBOBJ([memcasecmp])
+ :
])
-# memchr.m4 serial 11
+# memchr.m4 serial 12
dnl Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_MEMCHR=1
fi
fi
- if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
- AC_LIBOBJ([memchr])
- gl_PREREQ_MEMCHR
- fi
])
# Prerequisites of lib/memchr.c.
-# memcmp.m4 serial 15
+# memcmp.m4 serial 16
dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_MEMCMP],
[
- if test $cross_compiling != no; then
- # AC_FUNC_MEMCMP as of 2.62 defaults to 'no' when cross compiling.
- # We default to yes if memcmp appears to exist, which works
- # better for MinGW.
- AC_CACHE_CHECK([whether cross-compiling target has memcmp],
- [ac_cv_func_memcmp_working],
- [AC_LINK_IFELSE([
- AC_LANG_PROGRAM([[#include <string.h>
- ]], [[int ret = memcmp ("foo", "bar", 0);]])],
- [ac_cv_func_memcmp_working=yes],
- [ac_cv_func_memcmp_working=no])])
- fi
- AC_FUNC_MEMCMP
- dnl Note: AC_FUNC_MEMCMP does AC_LIBOBJ([memcmp]).
- if test $ac_cv_func_memcmp_working = no; then
- AC_DEFINE([memcmp], [rpl_memcmp],
- [Define to rpl_memcmp if the replacement function should be used.])
- gl_PREREQ_MEMCMP
- fi
-])
-
-# Redefine AC_FUNC_MEMCMP, because it is no longer maintained in Autoconf.
-AC_DEFUN([AC_FUNC_MEMCMP],
-[
- AC_CACHE_CHECK([for working memcmp], [ac_cv_func_memcmp_working],
+ dnl We don't use AC_FUNC_MEMCMP any more, because it is no longer maintained
+ dnl in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CACHE_CHECK([for working memcmp], [gl_cv_func_memcmp_working],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[AC_INCLUDES_DEFAULT],
return 0;
}
]])],
- [ac_cv_func_memcmp_working=yes],
- [ac_cv_func_memcmp_working=no],
- [ac_cv_func_memcmp_working=no])])
- test $ac_cv_func_memcmp_working = no &&
- AC_LIBOBJ([memcmp])
+ [gl_cv_func_memcmp_working=yes],
+ [gl_cv_func_memcmp_working=no],
+ [dnl When cross-compiling, guess memcmp works when it exists.
+ dnl This is useful for mingw.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>]],
+ [[int ret = memcmp ("foo", "bar", 0);]])],
+ [gl_cv_func_memcmp_working="guessing yes"],
+ [gl_cv_func_memcmp_working="guessing no"])
+ ])
+ ])
+ case "$gl_cv_func_memcmp_working" in
+ *yes) gl_func_memcmp=yes ;;
+ *) gl_func_memcmp=no ;;
+ esac
+ if test $gl_func_memcmp = no; then
+ AC_DEFINE([memcmp], [rpl_memcmp],
+ [Define to rpl_memcmp if the replacement function should be used.])
+ fi
])
# Prerequisites of lib/memcmp.c.
-# memcoll.m4 serial 8
+# memcoll.m4 serial 9
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_MEMCOLL],
[
AC_REQUIRE([AC_C_INLINE])
- AC_LIBOBJ([memcoll])
])
-# memcpy.m4 serial 3
+# memcpy.m4 serial 4
dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_MEMCPY],
[
- AC_REPLACE_FUNCS([memcpy])
- if test $ac_cv_func_memcpy = no; then
- gl_PREREQ_MEMCPY
- fi
+ AC_CHECK_FUNCS([memcpy])
])
# Prerequisites of lib/memcpy.c.
-# memmem.m4 serial 22
+# memmem.m4 serial 23
dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([memmem])
+ AC_CHECK_FUNCS([memmem])
+ if test $ac_cv_func_memmem = yes; then
+ HAVE_MEMMEM=1
+ else
+ HAVE_MEMMEM=0
+ fi
AC_CHECK_DECLS_ONCE([memmem])
if test $ac_cv_have_decl_memmem = no; then
HAVE_DECL_MEMMEM=0
])
if test "$gl_cv_func_memmem_works_always" != yes; then
REPLACE_MEMMEM=1
- AC_LIBOBJ([memmem])
fi
fi
gl_PREREQ_MEMMEM
])
if test "$gl_cv_func_memmem_works_fast" != yes; then
REPLACE_MEMMEM=1
- AC_LIBOBJ([memmem])
fi
fi
]) # gl_FUNC_MEMMEM
-# memmove.m4 serial 3
+# memmove.m4 serial 4
dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_MEMMOVE],
[
- AC_REPLACE_FUNCS([memmove])
- if test $ac_cv_func_memmove = no; then
- gl_PREREQ_MEMMOVE
- fi
+ AC_CHECK_FUNCS([memmove])
])
# Prerequisites of lib/memmove.c.
-# mempcpy.m4 serial 10
+# mempcpy.m4 serial 11
dnl Copyright (C) 2003-2004, 2006-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([mempcpy])
+ AC_CHECK_FUNCS([mempcpy])
if test $ac_cv_func_mempcpy = no; then
HAVE_MEMPCPY=0
- gl_PREREQ_MEMPCPY
fi
])
-# memrchr.m4 serial 9
+# memrchr.m4 serial 10
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
HAVE_DECL_MEMRCHR=0
fi
- AC_REPLACE_FUNCS([memrchr])
- if test $ac_cv_func_memrchr = no; then
- gl_PREREQ_MEMRCHR
- fi
+ AC_CHECK_FUNCS([memrchr])
])
# Prerequisites of lib/memrchr.c.
-# memset.m4 serial 3
+# memset.m4 serial 4
dnl Copyright (C) 2002, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_MEMSET],
[
- AC_REPLACE_FUNCS([memset])
- if test $ac_cv_func_memset = no; then
- gl_PREREQ_MEMSET
- fi
+ AC_CHECK_FUNCS([memset])
])
# Prerequisites of lib/memset.c.
-# memxor.m4 serial 3
+# memxor.m4 serial 4
dnl Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_MEMXOR],
[
- AC_LIBOBJ([memxor])
AC_REQUIRE([AC_C_RESTRICT])
])
-#serial 4
+#serial 5
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_MGETGROUPS],
[
AC_CHECK_FUNCS_ONCE([getgrouplist])
- AC_LIBOBJ([mgetgroups])
])
AC_DEFUN([gl_MKANCESDIRS],
[
- AC_LIBOBJ([mkancesdirs])
+ :
])
-# mkdir-p.m4 serial 13
+# mkdir-p.m4 serial 15
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_MKDIR_PARENTS],
[
- AC_LIBOBJ([dirchownmod])
- AC_LIBOBJ([mkdir-p])
-
dnl Prerequisites of lib/dirchownmod.c.
- AC_REQUIRE([gl_FUNC_LCHMOD])
- AC_REQUIRE([gl_FUNC_LCHOWN])
AC_CHECK_FUNCS_ONCE([fchmod])
])
-# serial 9
+# serial 10
# Copyright (C) 2001, 2003-2004, 2006, 2008-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
)
if test "$gl_cv_func_mkdir_trailing_slash_works" != yes; then
REPLACE_MKDIR=1
- AC_LIBOBJ([mkdir])
fi
AC_CACHE_CHECK([whether mkdir handles trailing dot],
)
if test "$gl_cv_func_mkdir_trailing_dot_works" != yes; then
REPLACE_MKDIR=1
- AC_LIBOBJ([mkdir])
AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly
creates a directory given with a trailing dot component.])
fi
-# mkdtemp.m4 serial 6
+# mkdtemp.m4 serial 8
dnl Copyright (C) 2001-2003, 2006-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gt_FUNC_MKDTEMP],
+AC_DEFUN([gl_FUNC_MKDTEMP],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_REPLACE_FUNCS([mkdtemp])
+ AC_CHECK_FUNCS([mkdtemp])
if test $ac_cv_func_mkdtemp = no; then
HAVE_MKDTEMP=0
- gl_PREREQ_MKDTEMP
fi
])
-# serial 2
+# serial 3
# See if we need to provide mkfifo replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([mkfifo])
if test $ac_cv_func_mkfifo = no; then
HAVE_MKFIFO=0
- AC_LIBOBJ([mkfifo])
else
dnl Check for Solaris 9 and FreeBSD bug with trailing slash.
AC_CHECK_FUNCS_ONCE([lstat])
AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
does not reject trailing slash])
REPLACE_MKFIFO=1
- AC_LIBOBJ([mkfifo])
fi
fi
])
-# serial 2
+# serial 3
# See if we need to provide mkfifoat/mknodat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
# No known system has mkfifoat but not mknodat
HAVE_MKFIFOAT=0
HAVE_MKNODAT=0
- AC_LIBOBJ([mkfifoat])
- AC_LIBOBJ([mknodat])
fi
])
-# serial 3
+# serial 4
# See if we need to provide mknod replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([mknod])
if test $ac_cv_func_mknod = no; then
HAVE_MKNOD=0
- AC_LIBOBJ([mknod])
else
dnl Detect BSD bug, where mknod requires root privileges to create fifo.
AC_CACHE_CHECK([whether mknod can create fifo without root privileges],
dnl Systems that mishandle trailing slash on mkfifo also goof on mknod.
if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
REPLACE_MKNOD=1
- AC_LIBOBJ([mknod])
fi
fi
])
-# mkostemp.m4 serial 1
+# mkostemp.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mkostemp])
if test $ac_cv_func_mkostemp != yes; then
HAVE_MKOSTEMP=0
- AC_LIBOBJ([mkostemp])
- gl_PREREQ_MKOSTEMP
fi
])
-# mkostemps.m4 serial 1
+# mkostemps.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mkostemps])
if test $ac_cv_func_mkostemps != yes; then
HAVE_MKOSTEMPS=0
- AC_LIBOBJ([mkostemps])
fi
])
-#serial 20
+#serial 22
# Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
AC_DEFUN([gl_FUNC_MKSTEMP],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_REQUIRE([AC_SYS_LARGEFILE])
AC_CHECK_FUNCS_ONCE([mkstemp])
if test $ac_cv_func_mkstemp = yes; then
])
if test "$gl_cv_func_working_mkstemp" != yes; then
REPLACE_MKSTEMP=1
- AC_LIBOBJ([mkstemp])
- gl_PREREQ_MKSTEMP
fi
else
HAVE_MKSTEMP=0
- AC_LIBOBJ([mkstemp])
- gl_PREREQ_MKSTEMP
fi
])
-# mkstemps.m4 serial 1
+# mkstemps.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([mkstemps])
if test $ac_cv_func_mkstemps != yes; then
HAVE_MKSTEMPS=0
- AC_LIBOBJ([mkstemps])
fi
])
-# serial 19
+# serial 21
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl From Jim Meyering.
-# Redefine AC_FUNC_MKTIME, because it is no longer maintained in Autoconf.
-# AC_FUNC_MKTIME
-# --------------
-AC_DEFUN([AC_FUNC_MKTIME],
-[AC_CHECK_HEADERS_ONCE([unistd.h])
-AC_CHECK_FUNCS_ONCE([alarm])
-AC_REQUIRE([gl_MULTIARCH])
-if test $APPLE_UNIVERSAL_BUILD = 1; then
- # A universal build on Apple MacOS X platforms.
- # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
- # But we need a configuration result that is valid in both modes.
- ac_cv_func_working_mktime=no
-fi
-AC_CACHE_CHECK([for working mktime], [ac_cv_func_working_mktime],
-[AC_RUN_IFELSE([AC_LANG_SOURCE(
+AC_DEFUN([gl_FUNC_MKTIME],
+[
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+
+ dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
+ dnl in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([alarm])
+ AC_REQUIRE([gl_MULTIARCH])
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
[[/* Test program from Paul Eggert and Tony Leneis. */
#include <limits.h>
#include <stdlib.h>
result |= 64;
return result;
}]])],
- [ac_cv_func_working_mktime=yes],
- [ac_cv_func_working_mktime=no],
- [ac_cv_func_working_mktime=no])])
-if test $ac_cv_func_working_mktime = no; then
- AC_LIBOBJ([mktime])
-fi
-])# AC_FUNC_MKTIME
+ [gl_cv_func_working_mktime=yes],
+ [gl_cv_func_working_mktime=no],
+ [gl_cv_func_working_mktime=no])
+ ])
-AC_DEFUN([gl_FUNC_MKTIME],
-[
- AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
- AC_FUNC_MKTIME
- dnl Note: AC_FUNC_MKTIME does AC_LIBOBJ([mktime]).
- if test $ac_cv_func_working_mktime = no; then
+ if test $gl_cv_func_working_mktime = no; then
REPLACE_MKTIME=1
- gl_PREREQ_MKTIME
else
REPLACE_MKTIME=0
fi
])
+AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
+ AC_REQUIRE([gl_FUNC_MKTIME])
+ if test $REPLACE_MKTIME = 0; then
+ dnl BeOS has __mktime_internal in libc, but other platforms don't.
+ AC_CHECK_FUNC([__mktime_internal],
+ [AC_DEFINE([mktime_internal], [__mktime_internal],
+ [Define to the real name of the mktime_internal function.])
+ ],
+ [dnl mktime works but it doesn't export __mktime_internal,
+ dnl so we need to substitute our own mktime implementation.
+ REPLACE_MKTIME=1
+ ])
+ fi
+])
+
# Prerequisites of lib/mktime.c.
AC_DEFUN([gl_PREREQ_MKTIME],
[
gl_have_mmap_anonymous=no
if test $gl_have_mmap = yes; then
AC_MSG_CHECKING([for MAP_ANONYMOUS])
- AC_EGREP_CPP([I cant identify this map.], [
+ AC_EGREP_CPP([I cant identify this map], [
#include <sys/mman.h>
#ifdef MAP_ANONYMOUS
- I cant identify this map.
+ I cant identify this map
#endif
],
[gl_have_mmap_anonymous=yes])
if test $gl_have_mmap_anonymous != yes; then
- AC_EGREP_CPP([I cant identify this map.], [
+ AC_EGREP_CPP([I cant identify this map], [
#include <sys/mman.h>
#ifdef MAP_ANON
- I cant identify this map.
+ I cant identify this map
#endif
],
[AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON],
-# modechange.m4 serial 6
+# modechange.m4 serial 7
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_MODECHANGE],
[
- AC_LIBOBJ([modechange])
+ :
])
-# serial 10
+# serial 11
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
gl_LIST_MOUNTED_FILE_SYSTEMS([gl_cv_list_mounted_fs=yes],
[gl_cv_list_mounted_fs=no])
- if test $gl_cv_list_mounted_fs = yes; then
- AC_LIBOBJ([mountlist])
- gl_PREREQ_MOUNTLIST_EXTRA
- fi
])
# Prerequisites of lib/mountlist.c not done by gl_LIST_MOUNTED_FILE_SYSTEMS.
AC_DEFUN([gl_MPSORT],
[
AC_REQUIRE([AC_C_RESTRICT])
- AC_LIBOBJ([mpsort])
])
-# serial 33
+# serial 34
dnl From Jim Meyering.
dnl Check for the nanosleep function.
HAVE_NANOSLEEP=0
fi
LIBS=$nanosleep_save_libs
- if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
- AC_LIBOBJ([nanosleep])
- gl_PREREQ_NANOSLEEP
- fi
])
# Prerequisites of lib/nanosleep.c.
-# nl_langinfo.m4 serial 4
+# nl_langinfo.m4 serial 5
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_NL_LANGINFO=1
AC_DEFINE([REPLACE_NL_LANGINFO], [1],
[Define if nl_langinfo exists but is overridden by gnulib.])
- AC_LIBOBJ([nl_langinfo])
fi
else
HAVE_NL_LANGINFO=0
- AC_LIBOBJ([nl_langinfo])
fi
])
-# obstack-printf.m4 serial 3
+# obstack-printf.m4 serial 4
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_REPLACE_OBSTACK_PRINTF],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
- AC_LIBOBJ([obstack_printf])
if test $ac_cv_func_obstack_printf = yes; then
REPLACE_OBSTACK_PRINTF=1
fi
-# open.m4 serial 12
+# open.m4 serial 13
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
mingw* | pw*)
- gl_REPLACE_OPEN
+ REPLACE_OPEN=1
;;
*)
dnl open("foo/") should not create a file when the file name has a
*no)
AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
[Define to 1 if open() fails to recognize a trailing slash.])
- gl_REPLACE_OPEN
+ REPLACE_OPEN=1
;;
esac
;;
esac
+ dnl Replace open() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_OPEN = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+ ])
dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
m4_ifdef([gl_NONBLOCKING_IO], [
if test $REPLACE_OPEN = 0; then
gl_NONBLOCKING_IO
if test $gl_cv_have_open_O_NONBLOCK != yes; then
- gl_REPLACE_OPEN
+ REPLACE_OPEN=1
fi
fi
])
])
-AC_DEFUN([gl_REPLACE_OPEN],
-[
- AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
- REPLACE_OPEN=1
- AC_LIBOBJ([open])
- gl_PREREQ_OPEN
-])
-
# Prerequisites of lib/open.c.
AC_DEFUN([gl_PREREQ_OPEN],
[
-# serial 31
+# serial 34
# See if we need to use our replacement for Solaris' openat et al functions.
dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
GNULIB_FCHOWNAT=1
GNULIB_UNLINKAT=1
- AC_LIBOBJ([openat-proc])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- AC_CHECK_FUNCS_ONCE([lchmod])
- AC_REPLACE_FUNCS([fchmodat fstatat mkdirat openat unlinkat])
- AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_CHECK_FUNCS_ONCE([fchmodat lchmod mkdirat openat unlinkat])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
AC_REQUIRE([gl_FUNC_UNLINK])
- case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
yes+yes)
# GNU/Hurd has unlinkat, but it has the same bug as unlink.
if test $REPLACE_UNLINK = 1; then
- AC_LIBOBJ([unlinkat])
REPLACE_UNLINKAT=1
fi ;;
yes+*)
# Solaris 9 has *at functions, but uniformly mishandles trailing
# slash in all of them.
- AC_LIBOBJ([openat])
REPLACE_OPENAT=1
- AC_LIBOBJ([fstatat])
- REPLACE_FSTATAT=1
- AC_LIBOBJ([unlinkat])
REPLACE_UNLINKAT=1
;;
*)
HAVE_OPENAT=0
HAVE_UNLINKAT=0 # No known system with unlinkat but not openat
- HAVE_FSTATAT=0 # No known system with fstatat but not openat
gl_PREREQ_OPENAT;;
esac
if test $ac_cv_func_fchmodat != yes; then
HAVE_MKDIRAT=0
fi
gl_FUNC_FCHOWNAT
+ gl_FUNC_FSTATAT
])
# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
REPLACE_FCHOWNAT=1
fi],
[HAVE_FCHOWNAT=0])
- if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
- AC_LIBOBJ([fchownat])
+])
+
+# If we have the fstatat function, and it has the bug (in AIX 7.1)
+# that it does not fill in st_size correctly, use the replacement function.
+AC_DEFUN([gl_FUNC_FSTATAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_CHECK_FUNCS_ONCE([fstatat openat])
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ AC_CACHE_CHECK([whether fstatat fills in st_size etc.],
+ [gl_cv_func_fstatat_st_size_etc],
+ [gl_cv_func_fstatat_st_size_etc=no
+ echo xxx >conftest.file
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #include <fcntl.h>
+ #include <sys/stat.h>
+
+ int
+ main (void)
+ {
+ struct stat a;
+ struct stat b;
+ if (fstatat (AT_FDCWD, "conftest.file", &a,
+ AT_SYMLINK_NOFOLLOW)
+ != 0)
+ return 1;
+ if (lstat ("conftest.file", &b) != 0)
+ return 2;
+ if (a.st_size != b.st_size) return 3;
+ if (a.st_dev != b.st_dev) return 4;
+ if (a.st_ino != b.st_ino) return 5;
+ if (a.st_mode != b.st_mode) return 6;
+ if (a.st_nlink != b.st_nlink) return 7;
+ if (a.st_uid != b.st_uid) return 8;
+ if (a.st_gid != b.st_gid) return 9;
+ /* Don't check time members, to avoid caching issues. */
+ return 0;
+ }
+ ]])],
+ [gl_cv_func_fstatat_st_size_etc=yes])])
+
+ case $gl_cv_func_fstatat_st_size_etc+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ if test $gl_cv_func_fstatat_st_size_etc != yes; then
+ AC_DEFINE([FSTATAT_ST_SIZE_ETC_BROKEN], [1],
+ [Define to 1 if fstatat does not fill in st_size etc.,
+ as in AIX 7.1.])
+ fi
+ ;;
+ esac
fi
])
-#serial 5
+#serial 6
dnl Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS.
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_LIBOBJ([pagealign_alloc])
gl_PREREQ_PAGEALIGN_ALLOC
])
-# pathmax.m4 serial 8
+# pathmax.m4 serial 9
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_PATHMAX],
[
dnl Prerequisites of lib/pathmax.h.
- AC_CHECK_FUNCS_ONCE([pathconf])
AC_CHECK_HEADERS_ONCE([sys/param.h])
])
-# perror.m4 serial 1
+# perror.m4 serial 3
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
AC_REQUIRE([gl_HEADER_ERRNO_H])
- if test -n "$ERRNO_H"; then
+ AC_REQUIRE([gl_FUNC_STRERROR_R])
+ AC_REQUIRE([gl_FUNC_STRERROR_0])
+ dnl We intentionally do not check for the broader REPLACE_STRERROR_R,
+ dnl since on glibc systems, strerror_r is replaced only for signature
+ dnl issues, and perror is just fine. Rather, we only want to
+ dnl replace perror if strerror_r was replaced for a content fix.
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
dnl The system's perror() cannot know about the new errno values we add
- dnl to <errno.h>. Replace it.
+ dnl to <errno.h>, or any fix for strerror(0). Replace it.
REPLACE_PERROR=1
- AC_LIBOBJ([perror])
fi
+ case ${gl_cv_func_strerror_r_works-unset} in
+ unset|*yes)
+ AC_CACHE_CHECK([whether perror matches strerror],
+ [gl_cv_func_perror_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <errno.h>
+ #include <stdio.h>
+ ]],
+ [[char *str = strerror (-1);
+ if (!getenv("CONFTEST_OUTPUT")) return 0;
+ if (!str) str = "";
+ puts (str);
+ errno = -1;
+ perror ("");
+ ]])],
+ [CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2
+ if cmp conftest.txt1 conftest.txt2 >/dev/null; then
+ gl_cv_func_perror_works=yes
+ else
+ gl_cv_func_perror_works=no
+ fi
+ rm -rf conftest.txt1 conftest.txt2],
+ [gl_cv_func_perror_works=no],
+ [dnl Guess no when cross-compiling.
+ gl_cv_func_perror_works="guessing no"])])
+ if test "$gl_cv_func_perror_works" != yes; then
+ REPLACE_PERROR=1
+ fi ;;
+ *) dnl The system's perror() probably inherits the bugs in the
+ dnl system's strerror_r(). Replace it.
+ REPLACE_PERROR=1 ;;
+ esac
])
-# physmem.m4 serial 10
+# physmem.m4 serial 11
dnl Copyright (C) 2002-2003, 2005-2006, 2008-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_PHYSMEM],
[
- AC_LIBOBJ([physmem])
-
# Prerequisites of lib/physmem.c.
AC_CHECK_HEADERS([sys/pstat.h sys/sysmp.h sys/sysinfo.h \
machine/hal_sysinfo.h sys/table.h sys/param.h sys/systemcfg.h],,,
-# pipe.m4 serial 1
+# pipe.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([pipe])
if test $ac_cv_func_pipe != yes; then
HAVE_PIPE=0
- AC_LIBOBJ([pipe])
fi
])
-# po.m4 serial 17 (gettext-0.18)
+# po.m4 serial 17a
dnl Copyright (C) 1995-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
POMAKEFILEDEPS="POTFILES.in"
# ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
# on $ac_dir but don't depend on user-specified configuration
fi
# A sed script that extracts the value of VARIABLE from a Makefile.
+ tab=`printf '\t'`
sed_x_variable='
# Test if the hold space is empty.
x
x
ta
# Yes it was empty. Look if we have the expected variable definition.
-/^[ ]*VARIABLE[ ]*=/{
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
# Seen the first line of the variable definition.
- s/^[ ]*VARIABLE[ ]*=//
+ s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
ba
}
bd
fi
sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ tab=`printf '\t'`
if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang.msg: $lang.po
- @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
- \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
- @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
- \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
-# poll.m4 serial 13
+# poll.m4 serial 14
dnl Copyright (c) 2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
fi
if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then
- AC_LIBOBJ([poll])
- gl_PREREQ_POLL
+ :
else
AC_DEFINE([HAVE_POLL], [1],
[Define to 1 if you have the 'poll' function and it works.])
-# popen.m4 serial 3
+# popen.m4 serial 4
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
if test "$gl_cv_func_popen_works" = no; then
REPLACE_POPEN=1
- AC_LIBOBJ([popen])
- gl_PREREQ_POPEN
fi
])
-# posix_spawn.m4 serial 8
+# posix_spawn.m4 serial 9
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
])
-AC_DEFUN([gl_POSIX_SPAWN_INTERNAL],
+# Prerequisites of lib/spawni.c.
+AC_DEFUN([gl_PREREQ_POSIX_SPAWN_INTERNAL],
[
- AC_LIBOBJ([spawni])
- dnl Prerequisites of lib/spawni.c.
AC_CHECK_HEADERS([paths.h])
AC_CHECK_FUNCS([confstr sched_setparam sched_setscheduler setegid seteuid vfork])
])
-# posixtm.m4 serial 7
+# posixtm.m4 serial 8
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_POSIXTM],
[
- AC_LIBOBJ([posixtm])
-
dnl No prerequisites of lib/posixtm.c.
+ :
])
-# posixver.m4 serial 10
+# posixver.m4 serial 11
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_POSIXVER],
[
- AC_LIBOBJ([posixver])
-
AC_REQUIRE([gl_DEFAULT_POSIX2_VERSION])
])
-# pread.m4 serial 4
+# pread.m4 serial 5
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_PREAD=0
fi
- if test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1; then
- AC_LIBOBJ([pread])
- fi
])
-# printf.m4 serial 42
+# printf.m4 serial 43
dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl floating-point or pointer output. On Solaris 10/x86, precisions larger
dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC,
dnl precisions larger than 510 in floating-point output yield wrong results.
-dnl On BeOS, precisions larger than 1044 crash the program.
+dnl On AIX 7.1, precisions larger than 998 in floating-point output yield
+dnl wrong results. On BeOS, precisions larger than 1044 crash the program.
dnl Result is gl_cv_func_printf_precision.
AC_DEFUN([gl_PRINTF_PRECISION],
if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
|| buf[0] != '1')
result |= 4;
+ if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+ || buf[0] != '1')
+ result |= 4;
return result;
}]])],
[gl_cv_func_printf_precision=yes],
dnl Solaris 10 . . # # # . . # . . . # # . . . . . . .
dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . .
dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # #
-dnl AIX 5.2, 7.1 . . # # # . . . . . . # . . . . . . . .
+dnl AIX 7.1 . . # # # . . . . . . # # . . . . . . .
+dnl AIX 5.2 . . # # # . . . . . . # . . . . . . . .
dnl AIX 4.3.2, 5.1 # . # # # # . . . . . # . . . . # . . .
dnl HP-UX 11.31 . . . . # . . . . . . # . . . . # # . .
dnl HP-UX 11.{00,11,23} # . . . # # . . . . . # . . . . # # . #
dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
-dnl mingw # # # # # # . . # # . # # ? . # # # . .
+dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
+dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
+dnl mingw-w64 2011 # # # # # # . . # # . # # ? . # # # . .
--- /dev/null
+# pselect.m4
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_PSELECT],
+[
+ AC_REQUIRE([gl_HEADER_SYS_SELECT])
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_CHECK_FUNCS_ONCE([pselect])
+
+ if test $ac_cv_func_pselect = yes; then
+ AC_CACHE_CHECK([whether signature of pselect conforms to POSIX],
+ gl_cv_sig_pselect,
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/select.h>
+ ]],
+ [[int (*p) (int, fd_set *, fd_set *, fd_set *restrict,
+ struct timespec const *restrict,
+ sigset_t const *restrict) = pselect;
+ return !p;]])],
+ [gl_cv_sig_pselect=yes],
+ [gl_cv_sig_pselect=no])])
+ fi
+
+ if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then
+ REPLACE_PSELECT=1
+ fi
+])
--- /dev/null
+# pthread_sigmask.m4 serial 12
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
+[
+ AC_CHECK_FUNCS_ONCE([pthread_sigmask])
+ LIB_PTHREAD_SIGMASK=
+
+ dnl Test whether the gnulib module 'threadlib' is in use.
+ dnl Some packages like Emacs use --avoid=threadlib.
+ dnl Write the symbol in such a way that it does not cause 'aclocal' to pick
+ dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/.
+ m4_ifdef([gl_][THREADLIB], [
+ AC_REQUIRE([gl_][THREADLIB])
+
+ if test "$gl_threads_api" = posix; then
+ if test $ac_cv_func_pthread_sigmask = yes; then
+ dnl pthread_sigmask is available without -lpthread.
+ :
+ else
+ if test -n "$LIBMULTITHREAD"; then
+ AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD],
+ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD],
+ [gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ #include <signal.h>
+ ]],
+ [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]])
+ ],
+ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes],
+ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no])
+ LIBS="$gl_save_LIBS"
+ ])
+ if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then
+ dnl pthread_sigmask is available with -lpthread.
+ LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD"
+ else
+ dnl pthread_sigmask is not available at all.
+ HAVE_PTHREAD_SIGMASK=0
+ fi
+ else
+ dnl pthread_sigmask is not available at all.
+ HAVE_PTHREAD_SIGMASK=0
+ fi
+ fi
+ else
+ dnl pthread_sigmask may exist but does not interoperate with the chosen
+ dnl multithreading facility.
+ dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask,
+ dnl but it is equivalent to sigprocmask, so we choose to emulate
+ dnl pthread_sigmask with sigprocmask also in this case. This yields fewer
+ dnl link dependencies.
+ if test $ac_cv_func_pthread_sigmask = yes; then
+ REPLACE_PTHREAD_SIGMASK=1
+ else
+ HAVE_PTHREAD_SIGMASK=0
+ fi
+ fi
+ ], [
+ dnl The module 'threadlib' is not in use, due to --avoid=threadlib being
+ dnl specified.
+ dnl The package either has prepared CPPFLAGS and LIBS for use of POSIX:2008
+ dnl threads, or wants to build single-threaded programs.
+ if test $ac_cv_func_pthread_sigmask = yes; then
+ dnl pthread_sigmask exists and does not require extra libraries.
+ dnl Assume that it is declared.
+ :
+ else
+ dnl pthread_sigmask either does not exist or needs extra libraries.
+ HAVE_PTHREAD_SIGMASK=0
+ dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask,
+ dnl so as to not accidentally override the system's pthread_sigmask
+ dnl symbol from libpthread. This is necessary on IRIX 6.5.
+ REPLACE_PTHREAD_SIGMASK=1
+ fi
+ ])
+
+ AC_SUBST([LIB_PTHREAD_SIGMASK])
+ dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when
+ dnl "$gl_threads_api" = posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD are the
+ dnl same: either both empty or both "-lpthread".
+
+ dnl Now test for some bugs in the system function.
+ if test $HAVE_PTHREAD_SIGMASK = 1; then
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl On FreeBSD 6.4, HP-UX 11.31, Solaris 9, in programs that are not linked
+ dnl with -lpthread, the pthread_sigmask() function always returns 0 and has
+ dnl no effect.
+ if test -z "$LIB_PTHREAD_SIGMASK"; then
+ AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread],
+ [gl_cv_func_pthread_sigmask_in_libc_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <pthread.h>
+#include <signal.h>
+#include <stddef.h>
+int main ()
+{
+ sigset_t set;
+ sigemptyset (&set);
+ return pthread_sigmask (1729, &set, NULL) != 0;
+}]])],
+ [gl_cv_func_pthread_sigmask_in_libc_works=no],
+ [gl_cv_func_pthread_sigmask_in_libc_works=yes],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ freebsd* | hpux* | solaris | solaris2.[2-9]*)
+ gl_cv_func_pthread_sigmask_in_libc_works="guessing no";;
+ *)
+ gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+ case "$gl_cv_func_pthread_sigmask_in_libc_works" in
+ *no)
+ REPLACE_PTHREAD_SIGMASK=1
+ AC_DEFINE([PTHREAD_SIGMASK_INEFFECTIVE], [1],
+ [Define to 1 if pthread_sigmask() may returns 0 and have no effect.])
+ ;;
+ esac
+ fi
+
+ dnl On Cygwin 1.7.5, the pthread_sigmask() has a wrong return value
+ dnl convention: Upon failure, it returns -1 and sets errno.
+ AC_CACHE_CHECK([whether pthread_sigmask returns error numbers],
+ [gl_cv_func_pthread_sigmask_return_works],
+ [
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIB_PTHREAD_SIGMASK"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <pthread.h>
+#include <signal.h>
+#include <stddef.h>
+int main ()
+{
+ sigset_t set;
+ sigemptyset (&set);
+ if (pthread_sigmask (1729, &set, NULL) == -1)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_pthread_sigmask_return_works=yes],
+ [gl_cv_func_pthread_sigmask_return_works=no],
+ [case "$host_os" in
+ cygwin*)
+ gl_cv_func_pthread_sigmask_return_works="guessing no";;
+ *)
+ gl_cv_func_pthread_sigmask_return_works="guessing yes";;
+ esac
+ ])
+ LIBS="$gl_save_LIBS"
+ ])
+ case "$gl_cv_func_pthread_sigmask_return_works" in
+ *no)
+ REPLACE_PTHREAD_SIGMASK=1
+ AC_DEFINE([PTHREAD_SIGMASK_FAILS_WITH_ERRNO], [1],
+ [Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno.])
+ ;;
+ esac
+
+ dnl On IRIX 6.5, in a single-threaded program, pending signals are not
+ dnl immediately delivered when they are unblocked through pthread_sigmask,
+ dnl only a little while later.
+ AC_CACHE_CHECK([whether pthread_sigmask unblocks signals correctly],
+ [gl_cv_func_pthread_sigmask_unblock_works],
+ [
+ case "$host_os" in
+ irix*)
+ gl_cv_func_pthread_sigmask_unblock_works="guessing no";;
+ *)
+ gl_cv_func_pthread_sigmask_unblock_works="guessing yes";;
+ esac
+ dnl Here we link against $LIBMULTITHREAD, not only $LIB_PTHREAD_SIGMASK,
+ dnl otherwise we get a false positive on those platforms where
+ dnl $gl_cv_func_pthread_sigmask_in_libc_works is "no".
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <pthread.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+static volatile int sigint_occurred;
+static void
+sigint_handler (int sig)
+{
+ sigint_occurred++;
+}
+int main ()
+{
+ sigset_t set;
+ int pid = getpid ();
+ char command[80];
+ signal (SIGINT, sigint_handler);
+ sigemptyset (&set);
+ sigaddset (&set, SIGINT);
+ if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0))
+ return 1;
+ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+ if (!(system (command) == 0))
+ return 2;
+ sleep (2);
+ if (!(sigint_occurred == 0))
+ return 3;
+ if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0))
+ return 4;
+ if (!(sigint_occurred == 1)) /* This fails on IRIX. */
+ return 5;
+ return 0;
+}]])],
+ [:],
+ [gl_cv_func_pthread_sigmask_unblock_works=no],
+ [:])
+ LIBS="$gl_save_LIBS"
+ ])
+ case "$gl_cv_func_pthread_sigmask_unblock_works" in
+ *no)
+ REPLACE_PTHREAD_SIGMASK=1
+ AC_DEFINE([PTHREAD_SIGMASK_UNBLOCK_BUG], [1],
+ [Define to 1 if pthread_sigmask() unblocks signals incorrectly.])
+ ;;
+ esac
+ fi
+])
+
+# Prerequisite of lib/pthread_sigmask.c.
+AC_DEFUN([gl_PREREQ_PTHREAD_SIGMASK],
+[
+ if test $HAVE_PTHREAD_SIGMASK = 1; then
+ AC_DEFINE([HAVE_PTHREAD_SIGMASK], [1],
+ [Define to 1 if the pthread_sigmask function can be used (despite bugs).])
+ fi
+])
-# ptsname.m4 serial 1
+# ptsname.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([ptsname])
if test $ac_cv_func_ptsname = no; then
HAVE_PTSNAME=0
- AC_LIBOBJ([ptsname])
- gl_PREREQ_PTSNAME
fi
])
-# pty.m4 serial 9
+# pty.m4 serial 12
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
if test $gl_cv_func_forkpty_const != yes; then
REPLACE_FORKPTY=1
- AC_LIBOBJ([forkpty])
fi
else
dnl The system does not have forkpty.
HAVE_FORKPTY=0
- AC_LIBOBJ([forkpty])
fi
])
])
if test $gl_cv_func_openpty_const != yes; then
REPLACE_OPENPTY=1
- AC_LIBOBJ([openpty])
AC_DEFINE([HAVE_OPENPTY], [1],
[Define to 1 if the system has the 'openpty' function.])
fi
else
dnl The system does not have openpty.
HAVE_OPENPTY=0
- AC_LIBOBJ([openpty])
+ dnl Prerequisites of lib/openpty.c in this case.
AC_CHECK_FUNCS([_getpty posix_openpt])
fi
])
LIBS="$LIBS $PTY_LIB"
AC_CHECK_FUNCS([login_tty])
LIBS="$gl_saved_LIBS"
- if test $ac_cv_func_login_tty = no; then
- AC_LIBOBJ([login_tty])
- fi
])
-# putenv.m4 serial 17
+# putenv.m4 serial 18
dnl Copyright (C) 2002-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
if test $gl_cv_func_svid_putenv = no; then
REPLACE_PUTENV=1
- AC_LIBOBJ([putenv])
fi
])
-# pwrite.m4 serial 3
+# pwrite.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_PWRITE=0
fi
- if test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1; then
- AC_LIBOBJ([pwrite])
- fi
])
-# quote.m4 serial 5
+# quote.m4 serial 6
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_QUOTE],
[
- AC_LIBOBJ([quote])
-
dnl Prerequisites of lib/quote.c.
dnl (none)
+ :
])
-# quotearg.m4 serial 8
+# quotearg.m4 serial 9
dnl Copyright (C) 2002, 2004-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_QUOTEARG],
[
- AC_LIBOBJ([quotearg])
+ :
])
-# serial 3
+# serial 4
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([random_r])
if test $ac_cv_func_random_r = no; then
HAVE_RANDOM_R=0
- AC_LIBOBJ([random_r])
- gl_PREREQ_RANDOM_R
fi
])
-# rawmemchr.m4 serial 1
+# rawmemchr.m4 serial 2
dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([rawmemchr])
+ AC_CHECK_FUNCS([rawmemchr])
if test $ac_cv_func_rawmemchr = no; then
HAVE_RAWMEMCHR=0
- gl_PREREQ_RAWMEMCHR
fi
])
-# read-file.m4 serial 2
+# read-file.m4 serial 3
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gl_FUNC_READ_FILE],
-[
- AC_LIBOBJ([read-file])
- gl_PREREQ_READ_FILE
-])
-
# Prerequisites of lib/read-file.c.
AC_DEFUN([gl_PREREQ_READ_FILE], [:])
-# read.m4 serial 1
+# read.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
gl_NONBLOCKING_IO
if test $gl_cv_have_nonblocking != yes; then
REPLACE_READ=1
- AC_LIBOBJ([read])
fi
])
])
-# readline.m4 serial 8
+# readline.m4 serial 9
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_SUBST([LTLIBREADLINE])
AC_CHECK_HEADERS([readline/readline.h])
-
- if test "$gl_cv_lib_readline" = no; then
- AC_LIBOBJ([readline])
- gl_PREREQ_READLINE
- fi
])
# Prerequisites of lib/readline.c.
-# readlink.m4 serial 10
+# readlink.m4 serial 11
dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([readlink])
if test $ac_cv_func_readlink = no; then
HAVE_READLINK=0
- AC_LIBOBJ([readlink])
- gl_PREREQ_READLINK
else
AC_CACHE_CHECK([whether readlink signature is correct],
[gl_cv_decl_readlink_works],
AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink
fails to recognize a trailing slash.])
REPLACE_READLINK=1
- AC_LIBOBJ([readlink])
elif test "$gl_cv_decl_readlink_works" != yes; then
REPLACE_READLINK=1
- AC_LIBOBJ([readlink])
fi
fi
])
-# serial 1
+# serial 2
# See if we need to provide readlinkat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([readlinkat])
if test $ac_cv_func_readlinkat = no; then
HAVE_READLINKAT=0
- AC_LIBOBJ([readlinkat])
fi
])
-# readtokens.m4 serial 5
+# readtokens.m4 serial 6
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/readtokens.c.
AC_DEFUN([gl_READTOKENS],
[
- AC_LIBOBJ([readtokens])
-
- dnl Prerequisites of lib/readtokens.c.
:
])
-# readutmp.m4 serial 17
+# readutmp.m4 serial 18
dnl Copyright (C) 2002-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_HEADERS_ONCE([utmp.h utmpx.h])
if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
- AC_LIBOBJ([readutmp])
-
dnl Prerequisites of lib/readutmp.h and lib/readutmp.c.
AC_REQUIRE([AC_C_INLINE])
AC_CHECK_FUNCS_ONCE([utmpname utmpxname])
-# realloc.m4 serial 11
+# realloc.m4 serial 12
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[Define to 1 if your system has a GNU libc compatible 'realloc'
function, and to 0 otherwise.])],
[AC_DEFINE([HAVE_REALLOC_GNU], [0])
- gl_REPLACE_REALLOC
+ REPLACE_REALLOC=1
])
])# gl_FUNC_REALLOC_GNU
AC_DEFINE([HAVE_REALLOC_POSIX], [1],
[Define if the 'realloc' function is POSIX compliant.])
else
- gl_REPLACE_REALLOC
+ REPLACE_REALLOC=1
fi
])
-
-AC_DEFUN([gl_REPLACE_REALLOC],
-[
- AC_LIBOBJ([realloc])
- REPLACE_REALLOC=1
-])
-# serial 58
+# serial 59
# Copyright (C) 1996-2001, 2003-2011 Free Software Foundation, Inc.
#
[Define to rpl_regerror if the replacement should be used.])
AC_DEFINE([regfree], [rpl_regfree],
[Define to rpl_regfree if the replacement should be used.])
- AC_LIBOBJ([regex])
- gl_PREREQ_REGEX
fi
])
-# relocatable-lib.m4 serial 5
+# relocatable-lib.m4 serial 6
dnl Copyright (C) 2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_RELOCATABLE_LIBRARY],
[
AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY])
- if test $RELOCATABLE = yes; then
- AC_LIBOBJ([relocatable])
- fi
])
AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY],
[
fi
])
-dnl Like gl_RELOCATABLE_LIBRARY, except prepare for separate compilation
-dnl (no AC_LIBOBJ).
-AC_DEFUN([gl_RELOCATABLE_LIBRARY_SEPARATE],
-[
- AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY])
-])
-
dnl Support for relocatable packages for which it is a nop.
AC_DEFUN([gl_RELOCATABLE_NOP],
[
-# relocatable.m4 serial 16
+# relocatable.m4 serial 17
dnl Copyright (C) 2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_RELOCATABLE_BODY])
gl_RELOCATABLE_LIBRARY
- if test $RELOCATABLE = yes; then
- AC_LIBOBJ([progreloc])
- fi
: ${RELOCATABLE_CONFIG_H_DIR='$(top_builddir)'}
RELOCATABLE_SRC_DIR="\$(top_srcdir)/$gl_source_base"
RELOCATABLE_BUILD_DIR="\$(top_builddir)/$gl_source_base"
-# remove.m4 serial 2
+# remove.m4 serial 3
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl If either underlying syscall is broken, then remove likely has
dnl the same bug; blindly use our replacement.
REPLACE_REMOVE=1
- AC_LIBOBJ([remove])
else
dnl C89 requires remove(), but only POSIX requires it to handle
dnl directories. On mingw, directories fails with EPERM.
esac])
rm -rf conftest.dir])
case $gl_cv_func_remove_dir_works in
- *no*) REPLACE_REMOVE=1
- AC_LIBOBJ([remove]);;
+ *no*) REPLACE_REMOVE=1;;
esac
fi
])
-# serial 23
+# serial 24
# Copyright (C) 2001, 2003, 2005-2006, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
])
if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
- AC_LIBOBJ([rename])
REPLACE_RENAME=1
AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1],
[Define if rename does not correctly handle slashes on the destination
rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
])
if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
- AC_LIBOBJ([rename])
REPLACE_RENAME=1
AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1],
[Define if rename does not correctly handle slashes on the source
rm -rf conftest.f conftest.f1
])
if test "x$gl_cv_func_rename_link_works" != xyes; then
- AC_LIBOBJ([rename])
REPLACE_RENAME=1
AC_DEFINE([RENAME_HARD_LINK_BUG], [1],
[Define if rename fails to leave hard links alone, as on NetBSD 1.6
rm -rf conftest.f conftest.d1 conftest.d2
])
if test "x$gl_cv_func_rename_dest_works" != xyes; then
- AC_LIBOBJ([rename])
REPLACE_RENAME=1
AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
[Define if rename does not work when the destination file exists,
-# serial 2
+# serial 3
# See if we need to provide renameat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([renameat])
if test $ac_cv_func_renameat = no; then
HAVE_RENAMEAT=0
- AC_LIBOBJ([renameat])
- AC_LIBOBJ([at-func2])
elif test $REPLACE_RENAME = 1; then
dnl Solaris 9 and 10 have the same bugs in renameat as in rename.
REPLACE_RENAMEAT=1
- AC_LIBOBJ([renameat])
- AC_LIBOBJ([at-func2])
fi
])
+++ /dev/null
-# rijndael.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_RIJNDAEL],
-[
- AC_LIBOBJ([rijndael-alg-fst])
- AC_LIBOBJ([rijndael-api-fst])
-])
-# rmdir.m4 serial 10
+# rmdir.m4 serial 11
dnl Copyright (C) 2002, 2005, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
rm -rf conftest.dir conftest.file])
if test x"$gl_cv_func_rmdir_works" != xyes; then
REPLACE_RMDIR=1
- AC_LIBOBJ([rmdir])
fi
])
-# round.m4 serial 10
+# round.m4 serial 12
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_DOUBLE_MINUS_ZERO_CODE[
]gl_DOUBLE_SIGNBIT_CODE[
-int main()
+static double dummy (double f) { return 0; }
+int main (int argc, char *argv[])
{
+ double (*my_round) (double) = argc ? round : dummy;
/* Test whether round (-0.0) is -0.0. */
- if (signbitd (minus_zerod) && !signbitd (round (minus_zerod)))
+ if (signbitd (minus_zerod) && !signbitd (my_round (minus_zerod)))
return 1;
return 0;
}
HAVE_DECL_ROUND=0
fi
if test $HAVE_DECL_ROUND = 0 || test $REPLACE_ROUND = 1; then
- AC_LIBOBJ([round])
+ dnl Find libraries needed to link lib/round.c.
gl_FUNC_FLOOR_LIBS
gl_FUNC_CEIL_LIBS
ROUND_LIBM=
-# roundf.m4 serial 10
+# roundf.m4 serial 13
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_FLOAT_MINUS_ZERO_CODE[
]gl_FLOAT_SIGNBIT_CODE[
-int main()
+static float dummy (float f) { return 0; }
+int main (int argc, char *argv[])
{
+ float (*my_roundf) (float) = argc ? roundf : dummy;
+ int result = 0;
/* Test whether roundf (-0.0f) is -0.0f. */
- if (signbitf (minus_zerof) && !signbitf (roundf (minus_zerof)))
- return 1;
- return 0;
+ if (signbitf (minus_zerof) && !signbitf (my_roundf (minus_zerof)))
+ result |= 1;
+ /* Test whether roundf (-0.3f) is -0.0f. */
+ if (signbitf (-0.3f) && !signbitf (my_roundf (-0.3f)))
+ result |= 2;
+ return result;
}
]])],
[gl_cv_func_roundf_ieee=yes],
HAVE_DECL_ROUNDF=0
fi
if test $HAVE_DECL_ROUNDF = 0 || test $REPLACE_ROUNDF = 1; then
- AC_LIBOBJ([roundf])
+ dnl Find libraries needed to link lib/roundf.c.
AC_CHECK_DECLS([ceilf, floorf], , , [#include <math.h>])
if test "$ac_cv_have_decl_floorf" = yes \
&& test "$ac_cv_have_decl_ceilf" = yes; then
-# roundl.m4 serial 8
+# roundl.m4 serial 11
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_LONG_DOUBLE_MINUS_ZERO_CODE[
]gl_LONG_DOUBLE_SIGNBIT_CODE[
-int main()
+static long double dummy (long double f) { return 0; }
+int main (int argc, char *argv[])
{
+ long double (*my_roundl) (long double) = argc ? roundl : dummy;
+ int result = 0;
/* Test whether roundl (-0.0L) is -0.0L. */
- if (signbitl (minus_zerol) && !signbitl (roundl (minus_zerol)))
- return 1;
- return 0;
+ if (signbitl (minus_zerol) && !signbitl (my_roundl (minus_zerol)))
+ result |= 1;
+ /* Test whether roundl (-0.3L) is -0.0L. */
+ if (signbitl (-0.3L) && !signbitl (my_roundl (-0.3L)))
+ result |= 2;
+ return result;
}
]])],
[gl_cv_func_roundl_ieee=yes],
HAVE_DECL_ROUNDL=0
fi
if test $HAVE_DECL_ROUNDL = 0 || test $REPLACE_ROUNDL = 1; then
- AC_LIBOBJ([roundl])
+ dnl Find libraries needed to link lib/roundl.c.
AC_CHECK_DECLS([ceill, floorl], , , [#include <math.h>])
if test "$ac_cv_have_decl_floorl" = yes \
&& test "$ac_cv_have_decl_ceill" = yes; then
-# rpmatch.m4 serial 9
+# rpmatch.m4 serial 10
dnl Copyright (C) 2002-2003, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_REPLACE_FUNCS([rpmatch])
+ AC_CHECK_FUNCS([rpmatch])
if test $ac_cv_func_rpmatch = no; then
HAVE_RPMATCH=0
- gl_PREREQ_RPMATCH
fi
])
-# safe-alloc.m4 serial 1
+# safe-alloc.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+
AC_DEFUN([gl_SAFE_ALLOC],
[
- AC_LIBOBJ([safe-alloc])
+ :
])
-# safe-read.m4 serial 5
+# safe-read.m4 serial 6
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gl_SAFE_READ],
-[
- AC_LIBOBJ([safe-read])
-
- gl_PREREQ_SAFE_READ
-])
-
# Prerequisites of lib/safe-read.c.
AC_DEFUN([gl_PREREQ_SAFE_READ],
[
-# safe-write.m4 serial 3
+# safe-write.m4 serial 4
dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-AC_DEFUN([gl_SAFE_WRITE],
-[
- AC_LIBOBJ([safe-write])
-
- gl_PREREQ_SAFE_WRITE
-])
-
# Prerequisites of lib/safe-write.c.
AC_DEFUN([gl_PREREQ_SAFE_WRITE],
[
-#serial 8
+#serial 9
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/same.c.
AC_DEFUN([gl_SAME],
[
- AC_LIBOBJ([same])
-
- dnl Prerequisites of lib/same.c.
AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
AC_CHECK_FUNCS_ONCE([pathconf])
])
-# serial 9
+# serial 10
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites for lib/save-cwd.c.
AC_DEFUN([gl_SAVE_CWD],
[
- AC_LIBOBJ([save-cwd])
- dnl Prerequisites for lib/save-cwd.c.
AC_CHECK_FUNCS_ONCE([fchdir])
])
-# savedir.m4 serial 9
+# savedir.m4 serial 10
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_SAVEDIR],
[
- AC_LIBOBJ([savedir])
+ :
])
-# scandir.m4 serial 1
+# scandir.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([scandir])
if test $ac_cv_func_scandir = no; then
HAVE_SCANDIR=0
- AC_LIBOBJ([scandir])
- gl_PREREQ_SCANDIR
fi
])
-# select.m4 serial 3
+# select.m4 serial 5
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_SOCKETS])
if test "$ac_cv_header_winsock2_h" = yes; then
- AC_LIBOBJ([select])
+ REPLACE_SELECT=1
else
dnl On Interix 3.5, select(0, NULL, NULL, NULL, timeout) fails with error
dnl EFAULT.
])
case "$gl_cv_func_select_supports0" in
*yes) ;;
- *)
- REPLACE_SELECT=1
- AC_LIBOBJ([select])
- ;;
+ *) REPLACE_SELECT=1 ;;
esac
fi
])
-# serial 4 -*- Autoconf -*-
+# serial 5 -*- Autoconf -*-
# Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
if test "$ac_cv_header_selinux_selinux_h" = yes; then
# We do have <selinux/selinux.h>, so do compile getfilecon.c
# and arrange to use its wrappers.
- AC_LIBOBJ([getfilecon])
gl_CHECK_NEXT_HEADERS([selinux/selinux.h])
AC_DEFINE([getfilecon], [rpl_getfilecon],
[Always use our getfilecon wrapper.])
-# setenv.m4 serial 22
+# setenv.m4 serial 24
dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_SETENV=1
fi
fi
- if test $HAVE_SETENV$REPLACE_SETENV != 10; then
- AC_LIBOBJ([setenv])
- fi
])
# Like gl_FUNC_SETENV, except prepare for separate compilation
fi
AC_CHECK_FUNCS([unsetenv])
if test $ac_cv_func_unsetenv = no; then
- AC_LIBOBJ([unsetenv])
- gl_PREREQ_UNSETENV
+ HAVE_UNSETENV=0
else
+ HAVE_UNSETENV=1
dnl Some BSDs return void, failing to do error checking.
AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
[AC_COMPILE_IFELSE(
AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
instead of int.])
REPLACE_UNSETENV=1
- AC_LIBOBJ([unsetenv])
fi
dnl Solaris 10 unsetenv does not remove all copies of a name.
[gl_cv_func_unsetenv_works="guessing no"])])
if test "$gl_cv_func_unsetenv_works" != yes; then
REPLACE_UNSETENV=1
- AC_LIBOBJ([unsetenv])
fi
fi
])
-# setlocale.m4 serial 3
+# setlocale.m4 serial 4
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
esac
;;
esac
- if test $REPLACE_SETLOCALE = 1; then
- AC_LIBOBJ([setlocale])
- gl_PREREQ_SETLOCALE
- fi
])
# Prerequisites of lib/setlocale.c.
-# settime.m4 serial 6
+# settime.m4 serial 7
dnl Copyright (C) 2002, 2004-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SETTIME],
[
- AC_LIBOBJ([settime])
-
dnl Prerequisites of lib/settime.c.
AC_REQUIRE([gl_CLOCK_TIME])
AC_REQUIRE([gl_TIMESPEC])
-# sha1.m4 serial 9
+# sha1.m4 serial 10
dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SHA1],
[
- AC_LIBOBJ([sha1])
-
dnl Prerequisites of lib/sha1.c.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_INLINE])
-# sha256.m4 serial 4
+# sha256.m4 serial 5
dnl Copyright (C) 2005, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SHA256],
[
- AC_LIBOBJ([sha256])
-
dnl Prerequisites of lib/sha256.c.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_INLINE])
-# sha512.m4 serial 5
+# sha512.m4 serial 6
dnl Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SHA512],
[
- AC_LIBOBJ([sha512])
-
dnl Prerequisites of lib/sha512.c.
AC_REQUIRE([gl_BIGENDIAN])
AC_REQUIRE([AC_C_INLINE])
-# serial 6
+# serial 7
dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_SIG2STR],
[
-
- AC_REPLACE_FUNCS([sig2str])
- if test $ac_cv_func_sig2str = no; then
- gl_PREREQ_SIG2STR
- fi
+ AC_CHECK_FUNCS([sig2str])
])
# Prerequisites of lib/sig2str.c.
-# sigaction.m4 serial 5
+# sigaction.m4 serial 6
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
else
HAVE_SIGACTION=0
- AC_LIBOBJ([sigaction])
- gl_PREREQ_SIGACTION
fi
])
-# signal_h.m4 serial 12
+# signal_h.m4 serial 16
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SIGNAL_H],
[
AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
gl_NEXT_HEADERS([signal.h])
# AIX declares sig_atomic_t to already include volatile, and C89 compilers
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use.
gl_WARN_ON_USE_PREPARE([[#include <signal.h>
- ]], [sigaction sigaddset sigdelset sigemptyset sigfillset sigismember
+ ]], [pthread_sigmask sigaction
+ sigaddset sigdelset sigemptyset sigfillset sigismember
sigpending sigprocmask])
])
+AC_DEFUN([gl_CHECK_TYPE_SIGSET_T],
+[
+ AC_CHECK_TYPES([sigset_t],
+ [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
+ [[
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+ ]])
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+])
+
AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR],
[
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
AC_DEFUN([gl_SIGNAL_H_DEFAULTS],
[
+ GNULIB_PTHREAD_SIGMASK=0; AC_SUBST([GNULIB_PTHREAD_SIGMASK])
GNULIB_SIGNAL_H_SIGPIPE=0; AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE])
GNULIB_SIGPROCMASK=0; AC_SUBST([GNULIB_SIGPROCMASK])
GNULIB_SIGACTION=0; AC_SUBST([GNULIB_SIGACTION])
dnl Assume proper GNU behavior unless another module says otherwise.
HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
+ HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK])
HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T])
HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T])
HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION])
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T])
+ REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK])
])
-# signalblocking.m4 serial 10
+# signalblocking.m4 serial 12
dnl Copyright (C) 2001-2002, 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_SIGNALBLOCKING],
[
AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
- signals_not_posix=
- AC_EGREP_HEADER([sigset_t], [signal.h], , [signals_not_posix=1])
- if test -z "$signals_not_posix"; then
+ AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
+ if test $gl_cv_type_sigset_t = yes; then
AC_CHECK_FUNC([sigprocmask], [gl_cv_func_sigprocmask=1])
fi
if test -z "$gl_cv_func_sigprocmask"; then
HAVE_POSIX_SIGNALBLOCKING=0
- AC_LIBOBJ([sigprocmask])
- gl_PREREQ_SIGPROCMASK
fi
])
-# Prerequisites of the part of lib/signal.in.h and of lib/sigprocmask.c.
-AC_DEFUN([gl_PREREQ_SIGPROCMASK],
-[
- AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
- AC_CHECK_TYPES([sigset_t],
- [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
- [#include <signal.h>
-/* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
-#include <sys/types.h>])
- if test $gl_cv_type_sigset_t != yes; then
- HAVE_SIGSET_T=0
- fi
- dnl HAVE_SIGSET_T is 1 if the system lacks the sigprocmask function but has
- dnl the sigset_t type.
- AC_SUBST([HAVE_SIGSET_T])
-])
+# Prerequisites of lib/sigprocmask.c.
+AC_DEFUN([gl_PREREQ_SIGPROCMASK], [:])
-# signbit.m4 serial 9
+# signbit.m4 serial 10
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_SIGNBIT_USING_GCC=1
else
if test "$gl_cv_func_signbit" != yes; then
+ dnl REPLACE_SIGNBIT=1 makes sure the signbit[fdl] functions get built.
REPLACE_SIGNBIT=1
- AC_LIBOBJ([signbitf])
- AC_LIBOBJ([signbitd])
- AC_LIBOBJ([signbitl])
gl_FLOAT_SIGN_LOCATION
gl_DOUBLE_SIGN_LOCATION
gl_LONG_DOUBLE_SIGN_LOCATION
-# sinl.m4 serial 3
+# sinl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_SINL=0
HAVE_SINL=0
- AC_LIBOBJ([sinl])
- AC_LIBOBJ([sincosl])
- AC_LIBOBJ([trigl])
+ dnl Find libraries needed to link lib/sinl.c, lib/sincosl.c, lib/trigl.c.
AC_REQUIRE([gl_FUNC_ISNANL])
AC_REQUIRE([gl_FUNC_FLOOR])
AC_REQUIRE([gl_FUNC_FLOORL])
-# sleep.m4 serial 4
+# sleep.m4 serial 5
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([sleep])
if test $ac_cv_have_decl_sleep != yes; then
HAVE_SLEEP=0
- AC_LIBOBJ([sleep])
else
dnl Cygwin 1.5.x has a bug where sleep can't exceed 49.7 days.
AC_CACHE_CHECK([for working sleep], [gl_cv_func_sleep_works],
[gl_cv_func_sleep_works="guessing no"])])
if test "$gl_cv_func_sleep_works" != yes; then
REPLACE_SLEEP=1
- AC_LIBOBJ([sleep])
fi
fi
])
-# snprintf.m4 serial 5
+# snprintf.m4 serial 6
dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Libintl 0.17 will replace snprintf only if it does not support %1$s,
+dnl but defers to any gnulib snprintf replacements. Therefore, gnulib
+dnl must guarantee that the decision for replacing snprintf is a superset
+dnl of the reasons checked by libintl.
AC_DEFUN([gl_FUNC_SNPRINTF],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
gl_SNPRINTF_RETVAL_C99
case "$gl_cv_func_snprintf_retval_c99" in
*yes)
- gl_cv_func_snprintf_usable=yes
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
;;
esac
;;
-# sqrtl.m4 serial 3
+# sqrtl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_SQRTL=0
HAVE_SQRTL=0
- AC_LIBOBJ([sqrtl])
+ dnl Find libraries needed to link lib/sqrtl.c.
AC_REQUIRE([gl_FUNC_ISNANL])
AC_REQUIRE([gl_FUNC_FREXPL])
AC_REQUIRE([gl_FUNC_LDEXPL])
--- /dev/null
+#serial 1
+
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_STAT_SIZE],
+[
+ # Don't call AC_STRUCT_ST_BLOCKS because it causes bugs. Details at
+ # http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00051.html
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+])
-# serial 7
+# serial 8
# Copyright (C) 2009-2011 Free Software Foundation, Inc.
#
AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs
help when passed a file name with a trailing slash]);;
esac
- if test $REPLACE_STAT = 1; then
- AC_LIBOBJ([stat])
- dnl Prerequisites of lib/stat.c.
- AC_REQUIRE([AC_C_INLINE])
- fi
+])
+
+# Prerequisites of lib/stat.c.
+AC_DEFUN([gl_PREREQ_STAT],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ :
])
+++ /dev/null
-#serial 12
-dnl Copyright (C) 2002, 2005-2007, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FOPEN_SAFER],
-[
- AC_LIBOBJ([fopen-safer])
-])
-
-AC_DEFUN([gl_FREOPEN_SAFER],
-[
- AC_LIBOBJ([freopen-safer])
-])
-
-AC_DEFUN([gl_POPEN_SAFER],
-[
- AC_LIBOBJ([popen-safer])
-])
-
-AC_DEFUN([gl_TMPFILE_SAFER],
-[
- AC_LIBOBJ([tmpfile-safer])
-])
+++ /dev/null
-# stdlib-safer.m4 serial 2
-dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_STDLIB_SAFER],
-[
- AC_LIBOBJ([mkstemp-safer])
-])
-# stpcpy.m4 serial 7
+# stpcpy.m4 serial 8
dnl Copyright (C) 2002, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([stpcpy])
+ AC_CHECK_FUNCS([stpcpy])
if test $ac_cv_func_stpcpy = no; then
HAVE_STPCPY=0
- gl_PREREQ_STPCPY
fi
])
-# stpncpy.m4 serial 13
+# stpncpy.m4 serial 15
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
#include <string.h> /* for strcpy */
/* The stpncpy prototype is missing in <string.h> on AIX 4. */
#if !HAVE_DECL_STPNCPY
-extern char *stpncpy (char *dest, const char *src, size_t n);
+extern
+# ifdef __cplusplus
+"C"
+# endif
+char *stpncpy (char *dest, const char *src, size_t n);
#endif
int main ()
{
[Define if you have the stpncpy() function and it works.])
else
REPLACE_STPNCPY=1
- AC_LIBOBJ([stpncpy])
- gl_PREREQ_STPNCPY
fi
else
HAVE_STPNCPY=0
- AC_LIBOBJ([stpncpy])
- gl_PREREQ_STPNCPY
fi
])
-# strcase.m4 serial 10
+# strcase.m4 serial 11
dnl Copyright (C) 2002, 2005-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRCASECMP],
[
AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
- AC_REPLACE_FUNCS([strcasecmp])
+ AC_CHECK_FUNCS([strcasecmp])
if test $ac_cv_func_strcasecmp = no; then
HAVE_STRCASECMP=0
- gl_PREREQ_STRCASECMP
fi
])
AC_DEFUN([gl_FUNC_STRNCASECMP],
[
AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
- AC_REPLACE_FUNCS([strncasecmp])
- if test $ac_cv_func_strncasecmp = no; then
- gl_PREREQ_STRNCASECMP
+ AC_CHECK_FUNCS([strncasecmp])
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
fi
AC_CHECK_DECLS([strncasecmp])
if test $ac_cv_have_decl_strncasecmp = no; then
-# strcasestr.m4 serial 19
+# strcasestr.m4 serial 20
dnl Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
if test "$gl_cv_func_strcasestr_works_always" != yes; then
REPLACE_STRCASESTR=1
- AC_LIBOBJ([strcasestr])
fi
fi
fi
- if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then
- AC_LIBOBJ([strcasestr])
- gl_PREREQ_STRCASESTR
- fi
]) # gl_FUNC_STRCASESTR_SIMPLE
dnl Additionally, check that strcasestr is efficient.
])
if test "$gl_cv_func_strcasestr_linear" != yes; then
REPLACE_STRCASESTR=1
- AC_LIBOBJ([strcasestr])
- gl_PREREQ_STRCASESTR
fi
fi
]) # gl_FUNC_STRCASESTR
-# strchrnul.m4 serial 8
+# strchrnul.m4 serial 9
dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
*) REPLACE_STRCHRNUL=1 ;;
esac
fi
- if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
- AC_LIBOBJ([strchrnul])
- gl_PREREQ_STRCHRNUL
- fi
])
# Prerequisites of lib/strchrnul.c.
-# strcspn.m4 serial 3
+# strcspn.m4 serial 4
dnl Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRCSPN],
[
- AC_REPLACE_FUNCS([strcspn])
- if test $ac_cv_func_strcspn = no; then
- gl_PREREQ_STRCSPN
- fi
+ AC_CHECK_FUNCS([strcspn])
])
# Prerequisites of lib/strcspn.c.
-# strdup.m4 serial 12
+# strdup.m4 serial 13
dnl Copyright (C) 2002-2011 Free Software Foundation, Inc.
[
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
AC_CHECK_FUNCS_ONCE([strdup])
- if test $ac_cv_func_strdup != yes; then
- AC_LIBOBJ([strdup])
- gl_PREREQ_STRDUP
- fi
AC_CHECK_DECLS_ONCE([strdup])
if test $ac_cv_have_decl_strdup = no; then
HAVE_DECL_STRDUP=0
if test $ac_cv_func_strdup = yes; then
if test $gl_cv_func_malloc_posix != yes; then
REPLACE_STRDUP=1
- AC_LIBOBJ([strdup])
- gl_PREREQ_STRDUP
fi
- else
- AC_LIBOBJ([strdup])
- gl_PREREQ_STRDUP
fi
AC_CHECK_DECLS_ONCE([strdup])
if test $ac_cv_have_decl_strdup = no; then
-# strerror.m4 serial 9
+# strerror.m4 serial 16
dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRERROR],
[
- AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])
- if test $REPLACE_STRERROR = 1; then
- AC_LIBOBJ([strerror])
- AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],
- [Define this to 1 if strerror is broken.])
- fi
-])
-
-# Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],
-[
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
AC_REQUIRE([gl_HEADER_ERRNO_H])
- if test -z "$ERRNO_H"; then
+ AC_REQUIRE([gl_FUNC_STRERROR_0])
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+ ])
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
AC_CACHE_CHECK([for working strerror function],
[gl_cv_func_working_strerror],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <string.h>
]],
- [[return !*strerror (-2);]])],
+ [[if (!*strerror (-2)) return 1;]])],
[gl_cv_func_working_strerror=yes],
[gl_cv_func_working_strerror=no],
- [dnl Assume crossbuild works if it compiles.
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <string.h>
- ]],
- [[return !*strerror (-2);]])],
- [gl_cv_func_working_strerror=yes],
- [gl_cv_func_working_strerror=no])
- ])
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_working_strerror="guessing no"])
])
- if test $gl_cv_func_working_strerror = no; then
+ if test "$gl_cv_func_working_strerror" != yes; then
dnl The system's strerror() fails to return a string for out-of-range
dnl integers. Replace it.
REPLACE_STRERROR=1
fi
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+ dnl buffer, we must replace strerror.
+ case "$gl_cv_func_strerror_r_works" in
+ *no) REPLACE_STRERROR=1 ;;
+ esac
+ ])
else
dnl The system's strerror() cannot know about the new errno values we add
- dnl to <errno.h>. Replace it.
+ dnl to <errno.h>, or any fix for strerror(0). Replace it.
REPLACE_STRERROR=1
fi
- if test $REPLACE_STRERROR = 1; then
- gl_PREREQ_STRERROR
- fi
])
-# Prerequisites of lib/strerror.c.
-AC_DEFUN([gl_PREREQ_STRERROR], [
- AC_CHECK_DECLS([strerror])
- AC_CHECK_HEADERS_ONCE([sys/socket.h])
- if test $ac_cv_header_sys_socket_h != yes; then
- dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
- dnl the check for those headers unconditional; yet cygwin reports
- dnl that the headers are present but cannot be compiled (since on
- dnl cygwin, all socket information should come from sys/socket.h).
- AC_CHECK_HEADERS([winsock2.h])
+dnl Detect if strerror(0) passes (that is, does not set errno, and does not
+dnl return a string that matches strerror(-1)).
+AC_DEFUN([gl_FUNC_STRERROR_0],
+[
+ REPLACE_STRERROR_0=0
+ AC_CACHE_CHECK([whether strerror(0) succeeds],
+ [gl_cv_func_strerror_0_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>
+ #include <errno.h>
+ ]],
+ [[int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;]])],
+ [gl_cv_func_strerror_0_works=yes],
+ [gl_cv_func_strerror_0_works=no],
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_strerror_0_works="guessing no"])
+ ])
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+ AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+ does not return a message implying success.])
fi
])
-# strerror_r.m4 serial 3
+# strerror_r.m4 serial 13
dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRERROR_R],
[
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REQUIRE([gl_HEADER_ERRNO_H])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
dnl Persuade Solaris <string.h> to declare strerror_r().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
HAVE_DECL_STRERROR_R=0
fi
- AC_CHECK_FUNCS([strerror_r])
if test $ac_cv_func_strerror_r = yes; then
- if test -z "$ERRNO_H"; then
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ if test $gl_cv_func_strerror_r_posix_signature = yes; then
+ case "$gl_cv_func_strerror_r_works" in
+ dnl The system's strerror_r has bugs. Replace it.
+ *no) REPLACE_STRERROR_R=1 ;;
+ esac
+ else
+ dnl The system's strerror_r() has a wrong signature. Replace it.
+ REPLACE_STRERROR_R=1
+ fi
+ else
+ dnl The system's strerror_r() cannot know about the new errno values we
+ dnl add to <errno.h>, or any fix for strerror(0). Replace it.
+ REPLACE_STRERROR_R=1
+ fi
+ fi
+])
+
+# Prerequisites of lib/strerror_r.c.
+AC_DEFUN([gl_PREREQ_STRERROR_R], [
+ dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r.
+ AC_CHECK_FUNCS_ONCE([__xpg_strerror_r])
+ AC_CHECK_FUNCS_ONCE([catgets])
+])
+
+# Detect if strerror_r works, but without affecting whether a replacement
+# strerror_r will be used.
+AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
+[
+ AC_REQUIRE([gl_HEADER_ERRNO_H])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_FUNC_STRERROR_0])
+
+ AC_CHECK_FUNCS_ONCE([strerror_r])
+ if test $ac_cv_func_strerror_r = yes; then
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
dnl The POSIX prototype is: int strerror_r (int, char *, size_t);
dnl glibc, Cygwin: char *strerror_r (int, char *, size_t);
dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int);
[[#include <string.h>
int strerror_r (int, char *, size_t);
]],
- [[return strerror (0);]])],
+ [])],
[gl_cv_func_strerror_r_posix_signature=yes],
[gl_cv_func_strerror_r_posix_signature=no])
])
dnl AIX 6.1 strerror_r fails by returning -1, not an error number.
dnl HP-UX 11.31 strerror_r always fails when the buffer length argument
dnl is less than 80.
+ dnl FreeBSD 8.s strerror_r claims failure on 0
+ dnl MacOS X 10.5 strerror_r treats 0 like -1
+ dnl Solaris 10 strerror_r corrupts errno on failure
AC_CACHE_CHECK([whether strerror_r works],
[gl_cv_func_strerror_r_works],
[AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <errno.h>
#include <string.h>
- int strerror_r (int, char *, size_t);
]],
[[int result = 0;
char buf[79];
if (strerror_r (EACCES, buf, 0) < 0)
result |= 1;
- if (strerror_r (EACCES, buf, sizeof (buf)) != 0)
+ errno = 0;
+ if (strerror_r (EACCES, buf, sizeof buf) != 0)
result |= 2;
+ strcpy (buf, "Unknown");
+ if (strerror_r (0, buf, sizeof buf) != 0)
+ result |= 4;
+ if (errno)
+ result |= 8;
+ if (strstr (buf, "nknown") || strstr (buf, "ndefined"))
+ result |= 0x10;
+ errno = 0;
+ *buf = 0;
+ if (strerror_r (-3, buf, sizeof buf) < 0)
+ result |= 0x20;
+ if (errno)
+ result |= 0x40;
+ if (!*buf)
+ result |= 0x80;
return result;
]])],
[gl_cv_func_strerror_r_works=yes],
aix*) gl_cv_func_strerror_r_works="guessing no";;
# Guess no on HP-UX.
hpux*) gl_cv_func_strerror_r_works="guessing no";;
+ # Guess no on BSD variants.
+ *bsd*) gl_cv_func_strerror_r_works="guessing no";;
# Guess yes otherwise.
*) gl_cv_func_strerror_r_works="guessing yes";;
esac
changequote([,])dnl
])
])
- case "$gl_cv_func_strerror_r_works" in
- *no) REPLACE_STRERROR_R=1 ;;
- esac
else
- dnl The system's strerror() has a wrong signature. Replace it.
- REPLACE_STRERROR_R=1
- dnl glibc >= 2.3.4 has a function __xpg_strerror_r.
- AC_CHECK_FUNCS([__xpg_strerror_r])
+ dnl The system's strerror() has a wrong signature.
+ dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r.
+ AC_CHECK_FUNCS_ONCE([__xpg_strerror_r])
+ dnl In glibc < 2.14, __xpg_strerror_r does not populate buf on failure.
+ dnl In cygwin < 1.7.10, __xpg_strerror_r clobbers strerror's buffer.
+ if test $ac_cv_func___xpg_strerror_r = yes; then
+ AC_CACHE_CHECK([whether __xpg_strerror_r works],
+ [gl_cv_func_strerror_r_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <errno.h>
+ #include <string.h>
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int __xpg_strerror_r(int, char *, size_t);
+ ]],
+ [[int result = 0;
+ char buf[256] = "^";
+ char copy[256];
+ char *str = strerror (-1);
+ strcpy (copy, str);
+ if (__xpg_strerror_r (-2, buf, 1) == 0)
+ result |= 1;
+ if (*buf)
+ result |= 2;
+ __xpg_strerror_r (-2, buf, 256);
+ if (strcmp (str, copy))
+ result |= 4;
+ return result;
+ ]])],
+ [gl_cv_func_strerror_r_works=yes],
+ [gl_cv_func_strerror_r_works=no],
+ [dnl Guess no on all platforms that have __xpg_strerror_r,
+ dnl at least until fixed glibc and cygwin are more common.
+ gl_cv_func_strerror_r_works="guessing no"
+ ])
+ ])
+ fi
fi
- else
- dnl The system's strerror_r() cannot know about the new errno values we
- dnl add to <errno.h>. Replace it.
- REPLACE_STRERROR_R=1
- AC_DEFINE([EXTEND_STRERROR_R], [1],
- [Define to 1 if strerror_r needs to be extended so that it handles the
- extra errno values.])
fi
fi
- if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
- AC_LIBOBJ([strerror_r])
- gl_PREREQ_STRERROR_R
- fi
-])
-
-# Prerequisites of lib/strerror_r.c.
-AC_DEFUN([gl_PREREQ_STRERROR_R], [
- :
])
-# serial 32
+# serial 33
# Copyright (C) 1996-1997, 1999-2007, 2009-2011 Free Software Foundation, Inc.
#
# These are the prerequisite macros for GNU's strftime.c replacement.
AC_DEFUN([gl_FUNC_STRFTIME],
[
- AC_LIBOBJ([strftime])
-
# This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
AC_REQUIRE([AC_STRUCT_TIMEZONE])
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 20
+# serial 21
# Written by Paul Eggert.
dnl guaranteed by C89.
gl_WARN_ON_USE_PREPARE([[#include <string.h>
]],
- [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
- strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r
- strsignal strverscmp])
+ [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+ strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+ strerror_r strsignal strverscmp])
])
AC_DEFUN([gl_STRING_MODULE_INDICATOR],
AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
[
+ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
+ GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM])
GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY])
GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_FFSL=1; AC_SUBST([HAVE_FFSL])
+ HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL])
HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR])
HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM])
HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY])
-# Configure a replacement for <string.h>.
-# serial 3
+# Configure a replacement for <strings.h>.
+# serial 5
# Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use.
- gl_WARN_ON_USE_PREPARE([[#include <strings.h>
- ]], [strcasecmp strncasecmp])
+ gl_WARN_ON_USE_PREPARE([[
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+ ]], [ffs strcasecmp strncasecmp])
])
AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS],
[
+ GNULIB_FFS=0; AC_SUBST([GNULIB_FFS])
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_FFS=1; AC_SUBST([HAVE_FFS])
HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP])
HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP])
])
-# strncat.m4 serial 1
+# strncat.m4 serial 2
dnl Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
case "$gl_cv_func_strncat_works" in
*yes) ;;
- *)
- REPLACE_STRNCAT=1
- AC_LIBOBJ([strncat])
- gl_PREREQ_STRNCAT
- ;;
+ *) REPLACE_STRNCAT=1 ;;
esac
])
-# strndup.m4 serial 18
+# strndup.m4 serial 20
dnl Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
# AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works],
[AC_RUN_IFELSE([
AC_LANG_PROGRAM([[#include <string.h>
#include <stdlib.h>]], [[
#ifndef HAVE_DECL_STRNDUP
- extern char *strndup (const char *, size_t);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
#endif
char *s;
s = strndup ("some longer string", 15);
changequote([,])dnl
])])
case $gl_cv_func_strndup_works in
- *no)
- REPLACE_STRNDUP=1
- AC_LIBOBJ([strndup])
- ;;
+ *no) REPLACE_STRNDUP=1 ;;
esac
else
- AC_LIBOBJ([strndup])
+ HAVE_STRNDUP=0
fi
])
-# strnlen.m4 serial 12
+# strnlen.m4 serial 13
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
if test $ac_cv_have_decl_strnlen = no; then
HAVE_DECL_STRNLEN=0
else
- AC_FUNC_STRNLEN
+ m4_pushdef([AC_LIBOBJ], [:])
dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]).
+ AC_FUNC_STRNLEN
+ m4_popdef([AC_LIBOBJ])
if test $ac_cv_func_strnlen_working = no; then
REPLACE_STRNLEN=1
fi
fi
- if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
- AC_LIBOBJ([strnlen])
- gl_PREREQ_STRNLEN
- fi
])
# Prerequisites of lib/strnlen.c.
-# strpbrk.m4 serial 5
+# strpbrk.m4 serial 6
dnl Copyright (C) 2002-2003, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRPBRK],
[
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([strpbrk])
+ AC_CHECK_FUNCS([strpbrk])
if test $ac_cv_func_strpbrk = no; then
HAVE_STRPBRK=0
- gl_PREREQ_STRPBRK
fi
])
-# strptime.m4 serial 6
+# strptime.m4 serial 7
dnl Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([strptime])
if test $ac_cv_func_strptime != yes; then
HAVE_STRPTIME=0
- AC_LIBOBJ([strptime])
- gl_PREREQ_STRPTIME
fi
])
-# strsep.m4 serial 9
+# strsep.m4 serial 10
dnl Copyright (C) 2002-2004, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([strsep])
+ AC_CHECK_FUNCS([strsep])
if test $ac_cv_func_strsep = no; then
HAVE_STRSEP=0
- gl_PREREQ_STRSEP
fi
])
-# strsignal.m4 serial 5
+# strsignal.m4 serial 6
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([strsignal])
if test $ac_cv_func_strsignal = yes; then
+ HAVE_STRSIGNAL=1
dnl Check if strsignal behaves reasonably for out-of-range signal numbers.
dnl On Solaris it returns NULL; on AIX 5.1 it returns (char *) -1.
AC_CACHE_CHECK([whether strsignal always returns a string],
solaris* | aix*) gl_cv_func_working_strsignal=no;;
*) gl_cv_func_working_strsignal="guessing yes";;
esac])])
- else
- gl_cv_func_working_strsignal=no
- fi
-
- if test "$gl_cv_func_working_strsignal" = no; then
- if test $ac_cv_func_strsignal = yes; then
+ if test "$gl_cv_func_working_strsignal" = no; then
REPLACE_STRSIGNAL=1
fi
- AC_LIBOBJ([strsignal])
- gl_PREREQ_STRSIGNAL
+ else
+ HAVE_STRSIGNAL=0
fi
])
-# strstr.m4 serial 13
+# strstr.m4 serial 15
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_FUNC_MEMCHR])
if test "$gl_cv_func_memchr_works" != yes; then
REPLACE_STRSTR=1
- AC_LIBOBJ([strstr])
else
dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092.
AC_CACHE_CHECK([whether strstr works],
])
if test "$gl_cv_func_strstr_works_always" != yes; then
REPLACE_STRSTR=1
- AC_LIBOBJ([strstr])
fi
fi
]) # gl_FUNC_STRSTR_SIMPLE
return result;
]])],
[gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no],
- [dnl Only glibc > 2.12 and cygwin > 1.7.7 are known to have a
- dnl bug-free strstr that works in linear time.
+ [dnl Only glibc > 2.12 on processors without SSE 4.2 instructions and
+ dnl cygwin > 1.7.7 are known to have a bug-free strstr that works in
+ dnl linear time.
AC_EGREP_CPP([Lucky user],
[
#include <features.h>
#ifdef __GNU_LIBRARY__
#if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+ && !(defined __i386__ || defined __x86_64__) \
&& !defined __UCLIBC__
Lucky user
#endif
REPLACE_STRSTR=1
fi
fi
- if test $REPLACE_STRSTR = 1; then
- AC_LIBOBJ([strstr])
- fi
]) # gl_FUNC_STRSTR
-# strtod.m4 serial 20
+# strtod.m4 serial 21
dnl Copyright (C) 2002-2003, 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[gl_cv_func_strtod_works=yes],
[gl_cv_func_strtod_works=no],
[dnl The last known bugs in glibc strtod(), as of this writing,
- dnl were fixed in version 2.8
+ dnl were fixed in version 2.8
AC_EGREP_CPP([Lucky user],
[
#include <features.h>
REPLACE_STRTOD=1
fi
fi
- if test $HAVE_STRTOD = 0 || test $REPLACE_STRTOD = 1; then
- AC_LIBOBJ([strtod])
- gl_PREREQ_STRTOD
- fi
])
# Prerequisites of lib/strtod.c.
-# strtoimax.m4 serial 9
+# strtoimax.m4 serial 10
dnl Copyright (C) 2002-2004, 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test "$ac_cv_have_decl_strtoimax" != yes; then
HAVE_DECL_STRTOIMAX=0
- AC_REPLACE_FUNCS([strtoimax])
- if test $ac_cv_func_strtoimax = no; then
- gl_PREREQ_STRTOIMAX
- fi
+ AC_CHECK_FUNCS([strtoimax])
fi
])
-# strtok_r.m4 serial 12
+# strtok_r.m4 serial 13
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CHECK_FUNCS([strtok_r])
if test $ac_cv_func_strtok_r = yes; then
+ HAVE_STRTOK_R=1
dnl glibc 2.7 has a bug in strtok_r that causes a segmentation fault
dnl when the second argument to strtok_r is a constant string that has
dnl exactly one byte and compiling with optimization. This bug is, for
])
case "$gl_cv_func_strtok_r_works" in
*no)
- dnl We could set REPLACE_STRTOK_R=1 and AC_LIBOBJ([strtok_r]) here,
- dnl but it's only the macro version in <bits/string2.h> which is wrong.
- dnl The code compiled into libc is fine.
+ dnl We could set REPLACE_STRTOK_R=1 here, but it's only the macro
+ dnl version in <bits/string2.h> which is wrong. The code compiled
+ dnl into libc is fine.
UNDEFINE_STRTOK_R=1
;;
esac
else
- AC_LIBOBJ([strtok_r])
- gl_PREREQ_STRTOK_R
+ HAVE_STRTOK_R=0
fi
AC_CHECK_DECLS_ONCE([strtok_r])
if test $ac_cv_have_decl_strtok_r = no; then
-# strtol.m4 serial 5
+# strtol.m4 serial 6
dnl Copyright (C) 2002-2003, 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRTOL],
[
- AC_REPLACE_FUNCS([strtol])
+ AC_CHECK_FUNCS([strtol])
])
-# strtoll.m4 serial 6
+# strtoll.m4 serial 7
dnl Copyright (C) 2002, 2004, 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl unless the type 'long long int' exists.
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
if test "$ac_cv_type_long_long_int" = yes; then
- AC_REPLACE_FUNCS([strtoll])
+ AC_CHECK_FUNCS([strtoll])
if test $ac_cv_func_strtoll = no; then
HAVE_STRTOLL=0
- gl_PREREQ_STRTOLL
fi
fi
])
-# strtoul.m4 serial 4
+# strtoul.m4 serial 5
dnl Copyright (C) 2002, 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_STRTOUL],
[
- AC_REPLACE_FUNCS([strtoul])
+ AC_CHECK_FUNCS([strtoul])
])
-# strtoull.m4 serial 6
+# strtoull.m4 serial 7
dnl Copyright (C) 2002, 2004, 2006, 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl unless the type 'unsigned long long int' exists.
AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
if test "$ac_cv_type_unsigned_long_long_int" = yes; then
- AC_REPLACE_FUNCS([strtoull])
+ AC_CHECK_FUNCS([strtoull])
if test $ac_cv_func_strtoull = no; then
HAVE_STRTOULL=0
- gl_PREREQ_STRTOULL
fi
fi
])
-# strtoumax.m4 serial 9
+# strtoumax.m4 serial 10
dnl Copyright (C) 2002-2004, 2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test "$ac_cv_have_decl_strtoumax" != yes; then
HAVE_DECL_STRTOUMAX=0
- AC_REPLACE_FUNCS([strtoumax])
- if test $ac_cv_func_strtoumax = no; then
- gl_PREREQ_STRTOUMAX
- fi
+ AC_CHECK_FUNCS([strtoumax])
fi
])
-# strverscmp.m4 serial 7
+# strverscmp.m4 serial 8
dnl Copyright (C) 2002, 2005-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
- AC_REPLACE_FUNCS([strverscmp])
+ AC_CHECK_FUNCS([strverscmp])
if test $ac_cv_func_strverscmp = no; then
- gl_PREREQ_STRVERSCMP
HAVE_STRVERSCMP=0
fi
])
-# serial 4
+# serial 5
# See if we need to provide symlink replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl and Solaris 9, we want to fix a bug with trailing slash handling.
if test $ac_cv_func_symlink = no; then
HAVE_SYMLINK=0
- AC_LIBOBJ([symlink])
else
AC_CACHE_CHECK([whether symlink handles trailing slash correctly],
[gl_cv_func_symlink_works],
rm -f conftest.f conftest.link conftest.lnk2])
if test "$gl_cv_func_symlink_works" != yes; then
REPLACE_SYMLINK=1
- AC_LIBOBJ([symlink])
fi
fi
])
-# serial 4
+# serial 5
# See if we need to provide symlinkat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([symlinkat])
if test $ac_cv_func_symlinkat = no; then
HAVE_SYMLINKAT=0
- AC_LIBOBJ([symlinkat])
fi
])
-# sys_select_h.m4 serial 16
+# sys_select_h.m4 serial 20
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_HEADER_SYS_SELECT],
[
- AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+ AC_REQUIRE([AC_C_RESTRICT])
AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS])
AC_CACHE_CHECK([whether <sys/select.h> is self-contained],
[gl_cv_header_sys_select_h_selfcontained],
[AC_LANG_PROGRAM([[#include <sys/select.h>]], [[
#undef memset
#define memset nonexistent_memset
- extern void *memset (void *, int, unsigned long);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ void *memset (void *, int, unsigned long);
#undef bzero
#define bzero nonexistent_bzero
- extern void bzero (void *, unsigned long);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ void bzero (void *, unsigned long);
fd_set fds;
FD_ZERO (&fds);
]])
# include <sys/time.h>
#endif
#include <sys/select.h>
- ]], [select])
+ ]], [pselect select])
])
AC_DEFUN([gl_SYS_SELECT_MODULE_INDICATOR],
AC_DEFUN([gl_SYS_SELECT_H_DEFAULTS],
[
+ GNULIB_PSELECT=0; AC_SUBST([GNULIB_PSELECT])
GNULIB_SELECT=0; AC_SUBST([GNULIB_SELECT])
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_PSELECT=1; AC_SUBST([HAVE_PSELECT])
+ REPLACE_PSELECT=0; AC_SUBST([REPLACE_PSELECT])
REPLACE_SELECT=0; AC_SUBST([REPLACE_SELECT])
])
-# sys_utsname_h.m4 serial 7
+# sys_utsname_h.m4 serial 8
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_SYS_UTSNAME_H=1
AC_CHECK_TYPES([struct utsname], [], [HAVE_STRUCT_UTSNAME=0], [[
+/* Minix 3.1.8 has a bug: <stddef.h> must be included before
+ <sys/utsname.h>. */
+#include <stddef.h>
#include <sys/utsname.h>
]])
fi
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use.
- gl_WARN_ON_USE_PREPARE([[#include <sys/utsname.h>
+ gl_WARN_ON_USE_PREPARE([[
+ /* Minix 3.1.8 has a bug: <stddef.h> must be included before
+ <sys/utsname.h>. */
+ #include <stddef.h>
+ #include <sys/utsname.h>
]], [uname])
])
-# tanl.m4 serial 3
+# tanl.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
else
HAVE_DECL_TANL=0
HAVE_TANL=0
- AC_LIBOBJ([tanl])
- AC_LIBOBJ([trigl])
+ dnl Find libraries needed to link lib/tanl.c, lib/trigl.c.
AC_REQUIRE([gl_FUNC_ISNANL])
AC_REQUIRE([gl_FUNC_FLOOR])
AC_REQUIRE([gl_FUNC_FLOORL])
-# tcgetsid.m4 serial 2
+# tcgetsid.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl Persuade glibc <termios.h> to declare tcgetsid().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_CHECK_DECLS_ONCE([tcgetsid])
+ AC_CHECK_DECLS([tcgetsid], , , [[#include <termios.h>]])
if test $ac_cv_have_decl_tcgetsid = no; then
HAVE_DECL_TCGETSID=0
fi
AC_CHECK_FUNCS([tcgetsid])
- if test $ac_cv_func_tcgetsid = no; then
- AC_LIBOBJ([tcgetsid])
- gl_PREREQ_TCGETSID
+ if test $ac_cv_func_tcgetsid = yes; then
+ HAVE_TCGETSID=1
+ else
+ HAVE_TCGETSID=0
fi
])
-#serial 3
+#serial 5
# Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# it as a public API, and provide it on systems that are lacking.
AC_DEFUN([gl_FUNC_GEN_TEMPNAME],
[
- AC_REQUIRE([AC_SYS_LARGEFILE])
-
- AC_LIBOBJ([tempname])
gl_PREREQ_TEMPNAME
])
else
HAVE_LOCALTIME_R=0
fi
- if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
- AC_LIBOBJ([time_r])
- gl_PREREQ_TIME_R
- fi
])
# Prerequisites of lib/time_r.c.
-# timegm.m4 serial 8
+# timegm.m4 serial 11
dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_TIMEGM=0
AC_CHECK_FUNCS_ONCE([timegm])
if test $ac_cv_func_timegm = yes; then
- if test $ac_cv_func_working_mktime = no; then
+ if test $gl_cv_func_working_mktime = no; then
# Assume that timegm is buggy if mktime is.
REPLACE_TIMEGM=1
fi
else
HAVE_TIMEGM=0
fi
- if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
- AC_LIBOBJ([timegm])
- gl_PREREQ_TIMEGM
- fi
])
# Prerequisites of lib/timegm.c.
AC_DEFUN([gl_PREREQ_TIMEGM], [
- AC_REQUIRE([gl_TIME_R])
- AC_REQUIRE([gl_FUNC_MKTIME])
- if test $ac_cv_func_working_mktime = yes; then
- AC_CHECK_FUNC([__mktime_internal], ,
- [# mktime works but it doesn't export __mktime_internal,
- # so we need to substitute our own mktime implementation.
- AC_LIBOBJ([mktime])
- AC_DEFINE([mktime], [rpl_mktime],
- [Define to rpl_mktime if the replacement function should be used.])
- gl_PREREQ_MKTIME])
- fi
+ :
])
--- /dev/null
+# timer_time.m4 serial 1
+dnl Copyright (C) 2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Check for timer_settime, and set LIB_TIMER_TIME.
+
+AC_DEFUN([gl_TIMER_TIME],
+[
+ dnl Based on clock_time.m4. See details there.
+
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ LIB_TIMER_TIME=
+ AC_SUBST([LIB_TIMER_TIME])
+ gl_saved_libs=$LIBS
+ AC_SEARCH_LIBS([timer_settime], [rt posix4],
+ [test "$ac_cv_search_timer_settime" = "none required" ||
+ LIB_TIMER_TIME=$ac_cv_search_timer_settime])
+ AC_CHECK_FUNCS([timer_settime])
+ LIBS=$gl_saved_libs
+])
-# times.m4 serial 1
+# times.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([times])
if test $ac_cv_func_times = no; then
HAVE_TIMES=0
- AC_LIBOBJ([times])
fi
])
-# tmpfile.m4 serial 1
+# tmpfile.m4 serial 2
# Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
[gl_cv_func_tmpfile_unusable=no])])
if test $gl_cv_func_tmpfile_unusable = yes; then
REPLACE_TMPFILE=1
- AC_LIBOBJ([tmpfile])
- gl_PREREQ_TMPFILE
fi
])
-# towctrans.m4 serial 1
+# towctrans.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
AC_REQUIRE([gl_WCTYPE_H])
- if test $HAVE_WCTRANS_T = 0; then
- AC_LIBOBJ([towctrans])
- fi
+ HAVE_TOWCTRANS=$HAVE_WCTRANS_T
])
-# trunc.m4 serial 5
+# trunc.m4 serial 7
dnl Copyright (C) 2007, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_DOUBLE_MINUS_ZERO_CODE[
]gl_DOUBLE_SIGNBIT_CODE[
-int main()
+static double dummy (double f) { return 0; }
+int main (int argc, char *argv[])
{
+ double (*my_trunc) (double) = argc ? trunc : dummy;
/* Test whether trunc (-0.0) is -0.0. */
- if (signbitd (minus_zerod) && !signbitd (trunc (minus_zerod)))
+ if (signbitd (minus_zerod) && !signbitd (my_trunc (minus_zerod)))
return 1;
return 0;
}
HAVE_DECL_TRUNC=0
fi
if test $HAVE_DECL_TRUNC = 0 || test $REPLACE_TRUNC = 1; then
- AC_LIBOBJ([trunc])
+ dnl No libraries are needed to link lib/trunc.c.
TRUNC_LIBM=
fi
AC_SUBST([TRUNC_LIBM])
-# truncf.m4 serial 4
+# truncf.m4 serial 6
dnl Copyright (C) 2007, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_FLOAT_MINUS_ZERO_CODE[
]gl_FLOAT_SIGNBIT_CODE[
-int main()
+static float dummy (float f) { return 0; }
+int main (int argc, char *argv[])
{
+ float (*my_truncf) (float) = argc ? truncf : dummy;
/* Test whether truncf (-0.0f) is -0.0f. */
- if (signbitf (minus_zerof) && !signbitf (truncf (minus_zerof)))
+ if (signbitf (minus_zerof) && !signbitf (my_truncf (minus_zerof)))
return 1;
return 0;
}
HAVE_DECL_TRUNCF=0
fi
if test $HAVE_DECL_TRUNCF = 0 || test $REPLACE_TRUNCF = 1; then
- AC_LIBOBJ([truncf])
+ dnl No libraries are needed to link lib/truncf.c.
TRUNCF_LIBM=
fi
AC_SUBST([TRUNCF_LIBM])
-# truncl.m4 serial 6
+# truncl.m4 serial 8
dnl Copyright (C) 2007-2008, 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#include <math.h>
]gl_LONG_DOUBLE_MINUS_ZERO_CODE[
]gl_LONG_DOUBLE_SIGNBIT_CODE[
-int main()
+static long double dummy (long double f) { return 0; }
+int main (int argc, char *argv[])
{
+ long double (*my_truncl) (long double) = argc ? truncl : dummy;
/* Test whether truncl (-0.3L) is -0.0L. */
- if (signbitl (minus_zerol) && !signbitl (truncl (-0.3L)))
+ if (signbitl (minus_zerol) && !signbitl (my_truncl (-0.3L)))
return 1;
return 0;
}
HAVE_DECL_TRUNCL=0
fi
if test $HAVE_DECL_TRUNCL = 0 || test $REPLACE_TRUNCL = 1; then
- AC_LIBOBJ([truncl])
+ dnl No libraries are needed to link lib/truncl.c.
TRUNCL_LIBM=
fi
AC_SUBST([TRUNCL_LIBM])
-# tsearch.m4 serial 5
+# tsearch.m4 serial 6
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
case "$gl_cv_func_tdelete_works" in
*no)
REPLACE_TSEARCH=1
- AC_LIBOBJ([tsearch])
- gl_PREREQ_TSEARCH
;;
esac
else
HAVE_TSEARCH=0
- AC_LIBOBJ([tsearch])
- gl_PREREQ_TSEARCH
fi
])
-# ttyname_r.m4 serial 7
+# ttyname_r.m4 serial 8
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
esac
fi
fi
- if test $HAVE_TTYNAME_R = 0 || test $REPLACE_TTYNAME_R = 1; then
- AC_LIBOBJ([ttyname_r])
- gl_PREREQ_TTYNAME_R
- fi
])
# Prerequisites of lib/ttyname_r.c.
-# serial 5
+# serial 6
# Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# Written by Paul Eggert and Jim Meyering.
+# A placeholder to ensure that this m4 file gets included by aclocal.
+AC_DEFUN([gl_FUNC_TZSET], [])
+
+# Set gl_cv_func_tzset_clobber.
AC_DEFUN([gl_FUNC_TZSET_CLOBBER],
[
AC_REQUIRE([gl_HEADER_SYS_TIME_H])
AC_DEFINE([HAVE_RUN_TZSET_TEST], [1],
[Define to 1 if you have run the test for working tzset.])
-
- if test $gl_cv_func_tzset_clobber = yes; then
- REPLACE_GETTIMEOFDAY=1
- gl_GETTIMEOFDAY_REPLACE_LOCALTIME
-
- AC_DEFINE([tzset], [rpl_tzset],
- [Define to rpl_tzset if the wrapper function should be used.])
- AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1],
- [Define if tzset clobbers localtime's static buffer.])
- fi
])
-# uname.m4 serial 10
+# uname.m4 serial 11
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_UNAME],
[
AC_REQUIRE([gl_SYS_UTSNAME_H_DEFAULTS])
- AC_REPLACE_FUNCS([uname])
+ AC_CHECK_FUNCS([uname])
if test $ac_cv_func_uname = no; then
HAVE_UNAME=0
- gl_PREREQ_UNAME
fi
])
-#serial 8
+#serial 9
dnl Copyright (C) 2002, 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_UNISTD_SAFER],
[
AC_CHECK_FUNCS_ONCE([pipe])
- AC_LIBOBJ([dup-safer])
- AC_LIBOBJ([fd-safer])
- AC_LIBOBJ([pipe-safer])
])
-# unlink.m4 serial 7
+# unlink.m4 serial 8
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
esac
}; then
REPLACE_UNLINK=1
- AC_LIBOBJ([unlink])
fi
])
-# serial 6
+# serial 7
# Copyright (C) 2005-2007, 2009-2011 Free Software Foundation, Inc.
#
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CHECK_HEADERS_ONCE([priv.h])
- AC_LIBOBJ([unlinkdir])
-
# The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
# Cygwin, and mingw never let anyone (even root) unlink directories.
# If anyone knows of another system for which unlink can never
-# unlockpt.m4 serial 1
+# unlockpt.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS([unlockpt])
if test $ac_cv_func_unlockpt = no; then
HAVE_UNLOCKPT=0
- AC_LIBOBJ([unlockpt])
- gl_PREREQ_UNLOCKPT
fi
])
-# serial 10
+# serial 11
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Prerequisites of lib/userspec.c.
AC_DEFUN([gl_USERSPEC],
[
- AC_LIBOBJ([userspec])
-
- dnl Prerequisites of lib/userspec.c.
AC_CHECK_HEADERS_ONCE([sys/param.h])
])
-# usleep.m4 serial 1
+# usleep.m4 serial 2
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
type if <sys/types.h> lacks this type.])])
if test $ac_cv_func_usleep = no; then
HAVE_USLEEP=0
- AC_LIBOBJ([usleep])
else
dnl POSIX allows implementations to reject arguments larger than
dnl 999999, but GNU guarantees it will work.
[gl_cv_func_usleep_works="guessing no"])])
if test "$gl_cv_func_usleep_works" != yes; then
REPLACE_USLEEP=1
- AC_LIBOBJ([usleep])
fi
fi
])
-#serial 3
+#serial 4
dnl Copyright (C) 2004-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_UTIMECMP],
[
- AC_LIBOBJ([utimecmp])
-
dnl Prerequisites of lib/utimecmp.c.
AC_REQUIRE([gl_FUNC_UTIMES])
:
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-dnl serial 5
+dnl serial 6
AC_DEFUN([gl_UTIMENS],
[
- AC_LIBOBJ([utimens])
-
dnl Prerequisites of lib/utimens.c.
AC_REQUIRE([gl_FUNC_UTIMES])
AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
-# serial 4
+# serial 5
# See if we need to provide utimensat replacement.
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([utimensat])
if test $ac_cv_func_utimensat = no; then
HAVE_UTIMENSAT=0
- AC_LIBOBJ([utimensat])
else
AC_CACHE_CHECK([whether utimensat works],
[gl_cv_func_utimensat_works],
[gl_cv_func_utimensat_works="guessing no"])])
if test "$gl_cv_func_utimensat_works" != yes; then
REPLACE_UTIMENSAT=1
- AC_LIBOBJ([utimensat])
fi
fi
])
-# vsnprintf.m4 serial 5
+# vsnprintf.m4 serial 6
dnl Copyright (C) 2002-2004, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+dnl Libintl 0.17 will replace vsnprintf only if it does not support %1$s,
+dnl but defers to any gnulib vsnprintf replacements. Therefore, gnulib
+dnl must guarantee that the decision for replacing vsnprintf is a superset
+dnl of the reasons checked by libintl.
AC_DEFUN([gl_FUNC_VSNPRINTF],
[
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
gl_SNPRINTF_RETVAL_C99
case "$gl_cv_func_snprintf_retval_c99" in
*yes)
- gl_cv_func_vsnprintf_usable=yes
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
;;
esac
;;
-# waitpid.m4 serial 1
+# waitpid.m4 serial 2
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_WAITPID],
[
AC_REQUIRE([AC_CANONICAL_HOST])
+ HAVE_WAITPID=1
case $host_os in
- mingw*)
- AC_LIBOBJ([waitpid])
- ;;
+ mingw*) HAVE_WAITPID=0 ;;
esac
])
-# warn-on-use.m4 serial 2
+# warn-on-use.m4 serial 4
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])),
[Define to 1 if ]m4_defn([gl_decl])[ is declared even after
undefining macros.])])dnl
+dnl FIXME: gl_Symbol must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
for gl_func in m4_flatten([$2]); do
AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
AC_CACHE_CHECK([whether $gl_func is declared without a macro],
[@%:@undef $gl_func
(void) $gl_func;])],
[AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])])
- AS_VAR_IF(gl_Symbol, [yes],
- [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
+ AS_VAR_IF(gl_Symbol, [yes],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
dnl shortcut - if the raw declaration exists, then set a cache
dnl variable to allow skipping any later AC_CHECK_DECL efforts
eval ac_cv_have_decl_$gl_func=yes])
-# warnings.m4 serial 3
+# warnings.m4 serial 5
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# Adds parameter to WARN_CFLAGS if the compiler supports it. For example,
# gl_WARN_ADD([-Wparentheses]).
AC_DEFUN([gl_WARN_ADD],
+dnl FIXME: gl_Warn must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
[AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_$1])dnl
-AC_CACHE_CHECK([whether compiler handles $1], [gl_Warn], [
+AC_CACHE_CHECK([whether compiler handles $1], m4_defn([gl_Warn]), [
gl_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS} $1"
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([])],
- [AS_VAR_SET([gl_Warn], [yes])],
- [AS_VAR_SET([gl_Warn], [no])])
+ [AS_VAR_SET(gl_Warn, [yes])],
+ [AS_VAR_SET(gl_Warn, [no])])
CPPFLAGS="$gl_save_CPPFLAGS"
])
-AS_VAR_PUSHDEF([gl_Flags], m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]))dnl
-AS_VAR_IF([gl_Warn], [yes], [gl_AS_VAR_APPEND([gl_Flags], [" $1"])])
-AS_VAR_POPDEF([gl_Flags])dnl
+AS_VAR_IF(gl_Warn, [yes],
+ [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])])
AS_VAR_POPDEF([gl_Warn])dnl
m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])], [])])dnl
])
-# wcpcpy.m4 serial 2
+# wcpcpy.m4 serial 3
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcpcpy])
if test $ac_cv_func_wcpcpy = no; then
HAVE_WCPCPY=0
- AC_LIBOBJ([wcpcpy])
fi
])
-# wcpncpy.m4 serial 2
+# wcpncpy.m4 serial 3
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcpncpy])
if test $ac_cv_func_wcpncpy = no; then
HAVE_WCPNCPY=0
- AC_LIBOBJ([wcpncpy])
fi
])
-# wcrtomb.m4 serial 9
+# wcrtomb.m4 serial 11
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcrtomb])
if test $ac_cv_func_wcrtomb = no; then
HAVE_WCRTOMB=0
+ AC_CHECK_DECLS([wcrtomb],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_WCRTOMB=1
+ fi
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_WCRTOMB=1
esac
fi
fi
- if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
- AC_LIBOBJ([wcrtomb])
- gl_PREREQ_WCRTOMB
- fi
])
# Prerequisites of lib/wcrtomb.c.
-# wcscasecmp.m4 serial 1
+# wcscasecmp.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscasecmp])
if test $ac_cv_func_wcscasecmp = no; then
HAVE_WCSCASECMP=0
- AC_LIBOBJ([wcscasecmp])
fi
])
-# wcscat.m4 serial 1
+# wcscat.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscat])
if test $ac_cv_func_wcscat = no; then
HAVE_WCSCAT=0
- AC_LIBOBJ([wcscat])
fi
])
-# wcschr.m4 serial 1
+# wcschr.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcschr])
if test $ac_cv_func_wcschr = no; then
HAVE_WCSCHR=0
- AC_LIBOBJ([wcschr])
fi
])
-# wcscmp.m4 serial 1
+# wcscmp.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscmp])
if test $ac_cv_func_wcscmp = no; then
HAVE_WCSCMP=0
- AC_LIBOBJ([wcscmp])
fi
])
-# wcscoll.m4 serial 1
+# wcscoll.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscoll])
if test $ac_cv_func_wcscoll = no; then
HAVE_WCSCOLL=0
- AC_LIBOBJ([wcscoll])
fi
])
-# wcscpy.m4 serial 1
+# wcscpy.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscpy])
if test $ac_cv_func_wcscpy = no; then
HAVE_WCSCPY=0
- AC_LIBOBJ([wcscpy])
fi
])
-# wcscspn.m4 serial 1
+# wcscspn.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcscspn])
if test $ac_cv_func_wcscspn = no; then
HAVE_WCSCSPN=0
- AC_LIBOBJ([wcscspn])
fi
])
-# wcsdup.m4 serial 1
+# wcsdup.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsdup])
if test $ac_cv_func_wcsdup = no; then
HAVE_WCSDUP=0
- AC_LIBOBJ([wcsdup])
fi
])
-# wcslen.m4 serial 1
+# wcslen.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcslen])
if test $ac_cv_func_wcslen = no; then
HAVE_WCSLEN=0
- AC_LIBOBJ([wcslen])
fi
])
-# wcsncasecmp.m4 serial 1
+# wcsncasecmp.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsncasecmp])
if test $ac_cv_func_wcsncasecmp = no; then
HAVE_WCSNCASECMP=0
- AC_LIBOBJ([wcsncasecmp])
fi
])
-# wcsncat.m4 serial 1
+# wcsncat.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsncat])
if test $ac_cv_func_wcsncat = no; then
HAVE_WCSNCAT=0
- AC_LIBOBJ([wcsncat])
fi
])
-# wcsncmp.m4 serial 1
+# wcsncmp.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsncmp])
if test $ac_cv_func_wcsncmp = no; then
HAVE_WCSNCMP=0
- AC_LIBOBJ([wcsncmp])
fi
])
-# wcsncpy.m4 serial 1
+# wcsncpy.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsncpy])
if test $ac_cv_func_wcsncpy = no; then
HAVE_WCSNCPY=0
- AC_LIBOBJ([wcsncpy])
fi
])
-# wcsnlen.m4 serial 1
+# wcsnlen.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsnlen])
if test $ac_cv_func_wcsnlen = no; then
HAVE_WCSNLEN=0
- AC_LIBOBJ([wcsnlen])
fi
])
-# wcsnrtombs.m4 serial 4
+# wcsnrtombs.m4 serial 5
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_WCSNRTOMBS=1
fi
fi
- if test $HAVE_WCSNRTOMBS = 0 || test $REPLACE_WCSNRTOMBS = 1; then
- AC_LIBOBJ([wcsnrtombs])
- AC_LIBOBJ([wcsrtombs-state])
- gl_PREREQ_WCSNRTOMBS
- fi
])
# Prerequisites of lib/wcsnrtombs.c.
-# wcspbrk.m4 serial 1
+# wcspbrk.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcspbrk])
if test $ac_cv_func_wcspbrk = no; then
HAVE_WCSPBRK=0
- AC_LIBOBJ([wcspbrk])
fi
])
-# wcsrchr.m4 serial 1
+# wcsrchr.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsrchr])
if test $ac_cv_func_wcsrchr = no; then
HAVE_WCSRCHR=0
- AC_LIBOBJ([wcsrchr])
fi
])
-# wcsrtombs.m4 serial 9
+# wcsrtombs.m4 serial 11
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsrtombs])
if test $ac_cv_func_wcsrtombs = no; then
HAVE_WCSRTOMBS=0
+ AC_CHECK_DECLS([wcsrtombs],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+ included before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+ if test $ac_cv_have_decl_wcsrtombs = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares wcsrtombs() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_WCSRTOMBS=1
+ fi
else
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_WCSRTOMBS=1
esac
fi
fi
- if test $HAVE_WCSRTOMBS = 0 || test $REPLACE_WCSRTOMBS = 1; then
- AC_LIBOBJ([wcsrtombs])
- AC_LIBOBJ([wcsrtombs-state])
- gl_PREREQ_WCSRTOMBS
- fi
])
dnl Test whether the wcsrtombs implementation stores a non-NULL source pointer
-# wcsspn.m4 serial 1
+# wcsspn.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsspn])
if test $ac_cv_func_wcsspn = no; then
HAVE_WCSSPN=0
- AC_LIBOBJ([wcsspn])
fi
])
-# wcsstr.m4 serial 1
+# wcsstr.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsstr])
if test $ac_cv_func_wcsstr = no; then
HAVE_WCSSTR=0
- AC_LIBOBJ([wcsstr])
fi
])
-# wcstok.m4 serial 1
+# wcstok.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcstok])
if test $ac_cv_func_wcstok = no; then
HAVE_WCSTOK=0
- AC_LIBOBJ([wcstok])
fi
])
-# wcswidth.m4 serial 1
+# wcswidth.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_WCSWIDTH=1
fi
fi
- if test $HAVE_WCSWIDTH = 0 || test $REPLACE_WCSWIDTH = 1; then
- AC_LIBOBJ([wcswidth])
- fi
])
-# wcsxfrm.m4 serial 1
+# wcsxfrm.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wcsxfrm])
if test $ac_cv_func_wcsxfrm = no; then
HAVE_WCSXFRM=0
- AC_LIBOBJ([wcsxfrm])
fi
])
-# wctob.m4 serial 8
+# wctob.m4 serial 9
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wctob])
if test $ac_cv_func_wctob = no; then
+ HAVE_WCTOB=0
HAVE_DECL_WCTOB=0
- AC_LIBOBJ([wctob])
- gl_PREREQ_WCTOB
else
+ HAVE_WCTOB=1
dnl Solaris 9 has the wctob() function but it does not work.
dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned
*yes) ;;
*) REPLACE_WCTOB=1 ;;
esac
- if test $REPLACE_WCTOB = 1; then
- AC_LIBOBJ([wctob])
- gl_PREREQ_WCTOB
- else
+ if test $REPLACE_WCTOB = 0; then
dnl IRIX 6.5 has the wctob() function but does not declare it.
AC_CHECK_DECLS([wctob], [], [], [
-# wctomb.m4 serial 1
+# wctomb.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if false; then
REPLACE_WCTOMB=1
fi
- if test $REPLACE_WCTOMB = 1; then
- AC_LIBOBJ([wctomb])
- gl_PREREQ_WCTOMB
- fi
])
# Prerequisites of lib/wctomb.c.
-# wctrans.m4 serial 1
+# wctrans.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
AC_REQUIRE([gl_WCTYPE_H])
- if test $HAVE_WCTRANS_T = 0; then
- AC_LIBOBJ([wctrans])
- fi
+ HAVE_WCTRANS=$HAVE_WCTRANS_T
])
-# wctype.m4 serial 1
+# wctype.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
AC_REQUIRE([gl_WCTYPE_H])
- if test $HAVE_WCTYPE_T = 0; then
- AC_LIBOBJ([wctype])
- fi
+ HAVE_WCTYPE=$HAVE_WCTYPE_T
])
-# wctype_h.m4 serial 14
+# wctype_h.m4 serial 16
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
AC_SUBST([REPLACE_ISWCNTRL])
if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
- dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+ dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ AC_CHECK_FUNCS([towlower])
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ AC_CHECK_DECLS([towlower],,,
+ [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+ included before <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+ must be included before <wchar.h>. */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ ]])
+ if test $ac_cv_have_decl_towlower = yes; then
+ dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+ dnl towupper() although it does not have the functions. Avoid a
+ dnl collision with gnulib's replacement.
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+ AC_SUBST([REPLACE_TOWLOWER])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ dnl Redefine towlower, towupper in <wctype.h>.
:
fi
-# wcwidth.m4 serial 19
+# wcwidth.m4 serial 20
dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
fi
if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
dnl This leads to bugs in 'ls' (coreutils).
*yes) ;;
*no) REPLACE_WCWIDTH=1 ;;
esac
- fi
- if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1; then
- AC_LIBOBJ([wcwidth])
+ else
+ HAVE_WCWIDTH=0
fi
dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
dnl have the wcwidth function, then it does not declare it.
-# wmemchr.m4 serial 1
+# wmemchr.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wmemchr])
if test $ac_cv_func_wmemchr = no; then
HAVE_WMEMCHR=0
- AC_LIBOBJ([wmemchr])
fi
])
-# wmemcmp.m4 serial 1
+# wmemcmp.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wmemcmp])
if test $ac_cv_func_wmemcmp = no; then
HAVE_WMEMCMP=0
- AC_LIBOBJ([wmemcmp])
fi
])
-# wmemcpy.m4 serial 1
+# wmemcpy.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wmemcpy])
if test $ac_cv_func_wmemcpy = no; then
HAVE_WMEMCPY=0
- AC_LIBOBJ([wmemcpy])
fi
])
-# wmemmove.m4 serial 1
+# wmemmove.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wmemmove])
if test $ac_cv_func_wmemmove = no; then
HAVE_WMEMMOVE=0
- AC_LIBOBJ([wmemmove])
fi
])
-# wmemset.m4 serial 1
+# wmemset.m4 serial 2
dnl Copyright (C) 2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_CHECK_FUNCS_ONCE([wmemset])
if test $ac_cv_func_wmemset = no; then
HAVE_WMEMSET=0
- AC_LIBOBJ([wmemset])
fi
])
AC_DEFUN([gl_WRITE_ANY_FILE],
[
AC_CHECK_HEADERS_ONCE([priv.h])
- AC_LIBOBJ([write-any-file])
])
-# write.m4 serial 2
+# write.m4 serial 3
dnl Copyright (C) 2008-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
REPLACE_WRITE=1
fi
])
- if test $REPLACE_WRITE = 1; then
- AC_LIBOBJ([write])
- fi
])
-# xalloc.m4 serial 16
+# xalloc.m4 serial 17
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_XALLOC],
[
- AC_LIBOBJ([xmalloc])
-
gl_PREREQ_XALLOC
gl_PREREQ_XMALLOC
])
-#serial 6
+#serial 8
dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_XGETCWD],
[
- AC_LIBOBJ([xgetcwd])
-
- AC_REQUIRE([gl_FUNC_GETCWD])
+ :
])
-#serial 4
+#serial 5
dnl Copyright (C) 2005-2006, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_XNANOSLEEP],
[
- AC_LIBOBJ([xnanosleep])
+ :
])
-#serial 6
+#serial 8
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
# Prerequisites of lib/xstrtod.c.
AC_DEFUN([gl_XSTRTOD],
[
- AC_LIBOBJ([xstrtod])
+ :
])
# Prerequisites of lib/xstrtold.c.
AC_DEFUN([gl_XSTRTOLD],
[
- AC_LIBOBJ([xstrtold])
+ :
])
-#serial 10
+#serial 11
dnl Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_XSTRTOL],
[
- AC_LIBOBJ([xstrtol])
- AC_LIBOBJ([xstrtoul])
- AC_LIBOBJ([xstrtol-error])
+ :
])
-# yesno.m4 serial 5
+# yesno.m4 serial 6
dnl Copyright (C) 2002-2003, 2005-2006, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
AC_DEFUN([gl_YESNO],
[
- AC_LIBOBJ([yesno])
-
dnl No prerequisites of lib/yesno.c.
:
])
configure.ac:
gl_FUNC__EXIT
+if test $HAVE__EXIT = 0; then
+ AC_LIBOBJ([_Exit])
+ gl_PREREQ__EXIT
+fi
gl_STDLIB_MODULE_INDICATOR([_Exit])
Makefile.am:
configure.ac:
gl_FUNC_ACOSL
+if test $HAVE_ACOSL = 0; then
+ AC_LIBOBJ([acosl])
+fi
gl_MATH_MODULE_INDICATOR([acosl])
Makefile.am:
configure.ac:
gl_FUNC_ALPHASORT
+if test $HAVE_ALPHASORT = 0; then
+ AC_LIBOBJ([alphasort])
+ gl_PREREQ_ALPHASORT
+fi
gl_DIRENT_MODULE_INDICATOR([alphasort])
Makefile.am:
+++ /dev/null
-Description:
-A C macro for declaring that specific arguments must not be NULL.
-
-Applicability:
-all
-
-Files:
-build-aux/arg-nonnull.h
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += arg-nonnull.h
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/GL_ARG_NONNULL/,$$p' \
- < $(top_srcdir)/build-aux/arg-nonnull.h \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
-
-ARG_NONNULL_H=arg-nonnull.h
-
-Include:
-
-License:
-LGPLv2+
-
-Maintainer:
-Bruno Haible
Files:
lib/argmatch.h
lib/argmatch.c
-m4/argmatch.m4
Depends-on:
gettext-h
memcmp
configure.ac:
-gl_ARGMATCH
Makefile.am:
+lib_SOURCES += argmatch.c
Include:
"argmatch.h"
lib/argv-iter.h
Depends-on:
-arg-nonnull
getdelim
+snippet/arg-nonnull
stdbool
configure.ac:
configure.ac:
gl_FUNC_ARGZ
+if test -n "$ARGZ_H"; then
+ AC_LIBOBJ([argz])
+fi
Makefile.am:
BUILT_SOURCES += $(ARGZ_H)
m4/arpa_inet_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
sys_socket
-warn-on-use
configure.ac:
gl_HEADER_ARPA_INET
$(AM_V_at)$(MKDIR_P) arpa
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
-e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
-e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
- -e 's|@''GNULIB_INET_NTOP''@|$(GNULIB_INET_NTOP)|g' \
- -e 's|@''GNULIB_INET_PTON''@|$(GNULIB_INET_PTON)|g' \
+ -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \
+ -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \
-e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
-e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
configure.ac:
gl_FUNC_ASINL
+if test $HAVE_ASINL = 0; then
+ AC_LIBOBJ([asinl])
+fi
gl_MATH_MODULE_INDICATOR([asinl])
Makefile.am:
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
< $(srcdir)/assert.in.h && \
- sed -e 's|_gl_verify|_gl_static_assert|g' \
+ sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
+ -e 's|_gl_verify|_gl_static_assert|g' \
-e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
+ -e 's|_GL\(_STATIC_ASSERT_H\)|_${gl_include_guard_prefix}\1|g' \
< $(srcdir)/verify.h; \
} > $@-t && \
mv $@-t $@
configure.ac:
gl_FUNC_ATANL
+if test $HAVE_ATANL = 0; then
+ AC_LIBOBJ([atanl])
+fi
gl_MATH_MODULE_INDICATOR([atanl])
Makefile.am:
configure.ac:
gl_FUNC_ATEXIT
+if test $ac_cv_func_atexit = no; then
+ AC_LIBOBJ([atexit])
+ gl_PREREQ_ATEXIT
+fi
Makefile.am:
configure.ac:
gl_FUNC_ATOLL
+if test $HAVE_ATOLL = 0; then
+ AC_LIBOBJ([atoll])
+ gl_PREREQ_ATOLL
+fi
gl_STDLIB_MODULE_INDICATOR([atoll])
Makefile.am:
gl_BACKUPFILE
Makefile.am:
+lib_SOURCES += backupfile.c
Include:
"backupfile.h"
configure.ac:
gl_FUNC_BTOWC
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+ AC_LIBOBJ([btowc])
+ gl_PREREQ_BTOWC
+fi
gl_WCHAR_MODULE_INDICATOR([btowc])
Makefile.am:
+++ /dev/null
-Description:
-Function declaration macros with C++ support.
-
-Applicability:
-all
-
-Files:
-build-aux/c++defs.h
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += c++defs.h
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/_GL_CXXDEFS/,$$p' \
- < $(top_srcdir)/build-aux/c++defs.h \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += c++defs.h c++defs.h-t
-
-CXXDEFS_H=c++defs.h
-
-Include:
-
-License:
-LGPLv2+
-
-Maintainer:
-Bruno Haible
gl_C_STRTOD
Makefile.am:
+lib_SOURCES += c-strtod.c
Include:
"c-strtod.h"
gl_C_STRTOLD
Makefile.am:
+lib_SOURCES += c-strtold.c
Include:
"c-strtod.h"
configure.ac:
gl_FUNC_CALLOC_GNU
+if test $REPLACE_CALLOC = 1; then
+ AC_LIBOBJ([calloc])
+fi
gl_MODULE_INDICATOR([calloc-gnu])
Makefile.am:
configure.ac:
gl_FUNC_CALLOC_POSIX
+if test $REPLACE_CALLOC = 1; then
+ AC_LIBOBJ([calloc])
+fi
gl_STDLIB_MODULE_INDICATOR([calloc-posix])
Makefile.am:
strdup
configure.ac:
-gl_CANON_HOST
+gl_PREREQ_CANON_HOST
Makefile.am:
+lib_SOURCES += canon-host.c
Include:
"canon-host.h"
gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
Makefile.am:
+lib_SOURCES += canonicalize.c
Include:
"canonicalize.h"
configure.ac:
gl_CANONICALIZE_LGPL
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+ AC_LIBOBJ([canonicalize-lgpl])
+fi
gl_MODULE_INDICATOR([canonicalize-lgpl])
gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
gl_STDLIB_MODULE_INDICATOR([realpath])
Depends-on:
ignore-value
-progname
same-inode
symlink
configure.ac:
gl_FUNC_CEIL
+if test $REPLACE_CEIL = 1; then
+ AC_LIBOBJ([ceil])
+fi
gl_MATH_MODULE_INDICATOR([ceil])
Makefile.am:
Makefile.am:
TESTS += test-ceil-ieee
check_PROGRAMS += test-ceil-ieee
-test_ceil_ieee_LDADD = $(LDADD) @FLOOR_LIBM@
+test_ceil_ieee_LDADD = $(LDADD) @CEIL_LIBM@
configure.ac:
gl_FUNC_CEILF
+if test $HAVE_DECL_CEILF = 0 || test $REPLACE_CEILF = 1; then
+ AC_LIBOBJ([ceilf])
+fi
gl_MATH_MODULE_INDICATOR([ceilf])
Makefile.am:
configure.ac:
gl_FUNC_CEILL
+if test $HAVE_DECL_CEILL = 0 || test $REPLACE_CEILL = 1; then
+ AC_LIBOBJ([ceill])
+fi
gl_MATH_MODULE_INDICATOR([ceill])
Makefile.am:
Depends-on:
unistd
+pathmax
atexit [test $gl_cv_have_arbitrary_file_name_length_limit = yes]
fchdir [test $gl_cv_have_arbitrary_file_name_length_limit = yes]
fcntl-h [test $gl_cv_have_arbitrary_file_name_length_limit = yes]
configure.ac:
gl_FUNC_CHDIR_LONG
+if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+ AC_LIBOBJ([chdir-long])
+ gl_PREREQ_CHDIR_LONG
+fi
Makefile.am:
gl_CHDIR_SAFER
Makefile.am:
+lib_SOURCES += chdir-safer.c
Include:
"chdir-safer.h"
Check version string compatibility.
Files:
-m4/check-version.m4
lib/check-version.h
lib/check-version.c
strverscmp
configure.ac:
-gl_CHECK_VERSION
Makefile.am:
+lib_SOURCES += check-version.c
Include:
"check-version.h"
configure.ac:
gl_FUNC_CHOWN
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+ AC_LIBOBJ([chown])
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+ AC_LIBOBJ([fchown-stub])
+fi
gl_UNISTD_MODULE_INDICATOR([chown])
Makefile.am:
ignore-value
lstat
mgetgroups
-progname
usleep
stat-time
stdbool
Makefile.am:
TESTS += test-chown
check_PROGRAMS += test-chown
-test_chown_LDADD = $(LDADD) @LIBINTL@
Files:
lib/cloexec.c
lib/cloexec.h
-m4/cloexec.m4
Depends-on:
dup2
stdbool
configure.ac:
-gl_CLOEXEC
gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
Makefile.am:
+lib_SOURCES += cloexec.c
Include:
"cloexec.h"
Depends-on:
unistd
fd-hook [test $REPLACE_CLOSE = 1]
-fclose
configure.ac:
gl_FUNC_CLOSE
+if test $REPLACE_CLOSE = 1; then
+ AC_LIBOBJ([close])
+fi
gl_UNISTD_MODULE_INDICATOR([close])
Makefile.am:
gl_MODULE_INDICATOR([close-stream])
Makefile.am:
+lib_SOURCES += close-stream.c
Include:
"close-stream.h"
gl_CLOSEIN
Makefile.am:
+lib_SOURCES += closein.c
Include:
"closein.h"
Files:
+tests/init.sh
tests/test-closein.sh
tests/test-closein.c
gl_CLOSEOUT
Makefile.am:
+lib_SOURCES += closeout.c
Include:
"closeout.h"
echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
echo '#define PKGLIBDIR "$(pkglibdir)"'; \
echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
- } | sed '/""/d' > $@-t && \
- if test -f $@ && cmp $@-t $@ > /dev/null; then \
- rm -f $@-t; \
- else \
- rm -f $@; mv $@-t $@; \
- fi
+ } | sed '/""/d' > $@-t
+ mv -f $@-t $@
BUILT_SOURCES += configmake.h
CLEANFILES += configmake.h configmake.h-t
configure.ac:
gl_FUNC_COSL
+if test $HAVE_COSL = 0; then
+ AC_LIBOBJ([cosl])
+ AC_LIBOBJ([sincosl])
+ AC_LIBOBJ([trigl])
+fi
gl_MATH_MODULE_INDICATOR([cosl])
Makefile.am:
Files:
lib/crc.h
lib/crc.c
-m4/crc.m4
Depends-on:
stdint
configure.ac:
-gl_CRC
Makefile.am:
+lib_SOURCES += crc.c
Include:
"crc.h"
Files:
lib/arcfour.h
lib/arcfour.c
-m4/arcfour.m4
Depends-on:
stdint
configure.ac:
-gl_ARCFOUR
Makefile.am:
+lib_SOURCES += arcfour.c
Include:
"arcfour.h"
gl_ARCTWO
Makefile.am:
+lib_SOURCES += arctwo.c
Include:
"arctwo.h"
Files:
lib/des.c
lib/des.h
-m4/des.m4
Depends-on:
stdint
memcmp
configure.ac:
-gl_DES
Makefile.am:
+lib_SOURCES += des.c
Include:
"des.h"
configure.ac:
gl_GC
+if test "$ac_cv_libgcrypt" = yes; then
+ AC_LIBOBJ([gc-libgcrypt])
+else
+ AC_LIBOBJ([gc-gnulib])
+fi
if test $gl_cond_libtool = false; then
gl_ltlibdeps="$gl_ltlibdeps $LTLIBGCRYPT"
gl_libdeps="$gl_libdeps $LIBGCRYPT"
m4/gc-arcfour.m4
lib/arcfour.h
lib/arcfour.c
-m4/arcfour.m4
Depends-on:
stdint
configure.ac:
gl_GC_ARCFOUR
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([arcfour])
+fi
gl_MODULE_INDICATOR([gc-arcfour])
Makefile.am:
configure.ac:
gl_GC_ARCTWO
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([arctwo])
+fi
gl_MODULE_INDICATOR([gc-arctwo])
Makefile.am:
m4/gc-des.m4
lib/des.h
lib/des.c
-m4/des.m4
Depends-on:
stdint
configure.ac:
gl_GC_DES
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([des])
+fi
gl_MODULE_INDICATOR([gc-des])
Makefile.am:
m4/md5.m4
lib/hmac.h
lib/hmac-md5.c
-m4/hmac-md5.m4
lib/memxor.h
lib/memxor.c
m4/memxor.m4
configure.ac:
gl_GC_HMAC_MD5
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([md5])
+ AC_LIBOBJ([hmac-md5])
+ AC_LIBOBJ([memxor])
+fi
gl_MODULE_INDICATOR([gc-hmac-md5])
Makefile.am:
m4/sha1.m4
lib/hmac.h
lib/hmac-sha1.c
-m4/hmac-sha1.m4
lib/memxor.h
lib/memxor.c
m4/memxor.m4
configure.ac:
gl_GC_HMAC_SHA1
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([sha1])
+ AC_LIBOBJ([hmac-sha1])
+ AC_LIBOBJ([memxor])
+fi
gl_MODULE_INDICATOR([gc-hmac-sha1])
Makefile.am:
configure.ac:
gl_GC_MD4
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([md4])
+fi
gl_MODULE_INDICATOR([gc-md4])
Makefile.am:
configure.ac:
gl_GC_MD5
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([md5])
+fi
gl_MODULE_INDICATOR([gc-md5])
Makefile.am:
Files:
lib/gc-pbkdf2-sha1.c
-m4/gc-pbkdf2-sha1.m4
Depends-on:
crypto/gc
crypto/gc-hmac-sha1
configure.ac:
-gl_GC_PBKDF2_SHA1
Makefile.am:
+lib_SOURCES += gc-pbkdf2-sha1.c
Include:
"gc.h"
lib/rijndael-alg-fst.h
lib/rijndael-api-fst.c
lib/rijndael-api-fst.h
-m4/rijndael.m4
Depends-on:
stdint
configure.ac:
gl_GC_RIJNDAEL
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([rijndael-alg-fst])
+ AC_LIBOBJ([rijndael-api-fst])
+fi
gl_MODULE_INDICATOR([gc-rijndael])
Makefile.am:
configure.ac:
gl_GC_SHA1
+if test "$ac_cv_libgcrypt" != yes; then
+ AC_LIBOBJ([sha1])
+fi
gl_MODULE_INDICATOR([gc-sha1])
Makefile.am:
Files:
lib/hmac.h
lib/hmac-md5.c
-m4/hmac-md5.m4
Depends-on:
memxor
crypto/md5
configure.ac:
-gl_HMAC_MD5
Makefile.am:
+lib_SOURCES += hmac-md5.c
Include:
"hmac.h"
Files:
lib/hmac.h
lib/hmac-sha1.c
-m4/hmac-sha1.m4
Depends-on:
memxor
crypto/sha1
configure.ac:
-gl_HMAC_SHA1
Makefile.am:
+lib_SOURCES += hmac-sha1.c
Include:
"hmac.h"
Files:
lib/md2.h
lib/md2.c
-m4/md2.m4
Depends-on:
minmax
configure.ac:
-gl_MD2
Makefile.am:
+lib_SOURCES += md2.c
Include:
"md2.h"
gl_MD4
Makefile.am:
+lib_SOURCES += md4.c
Include:
"md4.h"
gl_MD5
Makefile.am:
+lib_SOURCES += md5.c
Include:
"md5.h"
lib/rijndael-alg-fst.h
lib/rijndael-api-fst.c
lib/rijndael-api-fst.h
-m4/rijndael.m4
Depends-on:
stdint
configure.ac:
-gl_RIJNDAEL
Makefile.am:
+lib_SOURCES += rijndael-alg-fst.c rijndael-api-fst.c
Include:
"rijndael-alg-fst.h"
gl_SHA1
Makefile.am:
+lib_SOURCES += sha1.c
Include:
"sha1.h"
gl_SHA256
Makefile.am:
+lib_SOURCES += sha256.c
Include:
"sha256.h"
gl_SHA512
Makefile.am:
+lib_SOURCES += sha512.c
Include:
"sha512.h"
Depends-on:
include_next
-c++defs
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_CTYPE_H
ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \
gl_CYCLE_CHECK
Makefile.am:
+lib_SOURCES += cycle-check.c
Include:
"cycle-check.h"
m4/unistd_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_DIRENT_H
dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
- -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \
- -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \
- -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \
- -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \
+ -e 's/@''GNULIB_DIRFD''@/$(GNULIB_DIRFD)/g' \
+ -e 's/@''GNULIB_FDOPENDIR''@/$(GNULIB_FDOPENDIR)/g' \
+ -e 's/@''GNULIB_SCANDIR''@/$(GNULIB_SCANDIR)/g' \
+ -e 's/@''GNULIB_ALPHASORT''@/$(GNULIB_ALPHASORT)/g' \
-e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
-e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|g' \
-e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \
gl_MODULE_INDICATOR([dirent-safer])
Makefile.am:
+lib_SOURCES += opendir-safer.c
Include:
"dirent-safer.h"
Depends-on:
dirent
extensions
-errno [test $ac_cv_have_decl_dirfd = no || test $REPLACE_DIRFD = 1]
+errno [test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no]
configure.ac:
gl_FUNC_DIRFD
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ AC_LIBOBJ([dirfd])
+ gl_PREREQ_DIRFD
+fi
gl_DIRENT_MODULE_INDICATOR([dirfd])
Makefile.am:
gl_MODULE_INDICATOR([dirname])
Makefile.am:
+lib_SOURCES += dirname.c basename.c
Include:
"dirname.h"
gl_DIRNAME_LGPL
Makefile.am:
+lib_SOURCES += dirname-lgpl.c basename-lgpl.c stripslash.c
Include:
"dirname.h"
tests/test-dirname.c
Depends-on:
-progname
strdup
configure.ac:
--- /dev/null
+Description:
+Convert double to timespec.
+
+Files:
+lib/dtotimespec.c
+
+Depends-on:
+intprops
+timespec
+
+configure.ac:
+
+Makefile.am:
+lib_SOURCES += dtotimespec.c
+
+Include:
+"timespec.h"
+
+Link:
+
+License:
+GPL
+
+Maintainer:
+Paul Eggert, Jim Meyering
configure.ac:
gl_FUNC_DUP2
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+ AC_LIBOBJ([dup2])
+fi
gl_UNISTD_MODULE_INDICATOR([dup2])
Makefile.am:
configure.ac:
gl_FUNC_DUPLOCALE
+if test $REPLACE_DUPLOCALE = 1; then
+ AC_LIBOBJ([duplocale])
+ gl_PREREQ_DUPLOCALE
+fi
gl_LOCALE_MODULE_INDICATOR([duplocale])
Makefile.am:
errno.h: errno.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
configure.ac:
gl_ERROR
+if test $ac_cv_lib_error_at_line = no; then
+ AC_LIBOBJ([error])
+ gl_PREREQ_ERROR
+fi
m4_ifdef([AM_XGETTEXT_OPTION],
[AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
configure.ac:
gl_FUNC_EUIDACCESS
+if test $HAVE_EUIDACCESS = 0; then
+ AC_LIBOBJ([euidaccess])
+ gl_PREREQ_EUIDACCESS
+fi
gl_UNISTD_MODULE_INDICATOR([euidaccess])
Makefile.am:
Files:
lib/exclude.h
lib/exclude.c
-m4/exclude.m4
Depends-on:
fnmatch
xalloc
configure.ac:
-gl_EXCLUDE
Makefile.am:
+lib_SOURCES += exclude.c
Include:
"exclude.h"
configure.ac:
gl_FUNC_EXPL
+if test $HAVE_EXPL = 0; then
+ AC_LIBOBJ([expl])
+fi
gl_MATH_MODULE_INDICATOR([expl])
Makefile.am:
configure.ac:
gl_FUNC_FCLOSE
+if test $REPLACE_FCLOSE = 1; then
+ AC_LIBOBJ([fclose])
+fi
gl_STDIO_MODULE_INDICATOR([fclose])
Makefile.am:
configure.ac:
gl_FUNC_FCNTL
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+ AC_LIBOBJ([fcntl])
+fi
gl_FCNTL_MODULE_INDICATOR([fcntl])
Makefile.am:
m4/fcntl-o.m4
Depends-on:
-arg-nonnull
-c++defs
extensions
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
unistd
-warn-on-use
configure.ac:
gl_FCNTL_H
fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
- -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \
- -e 's|@''GNULIB_NONBLOCKING''@|$(GNULIB_NONBLOCKING)|g' \
- -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
- -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \
+ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
-e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
-e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
gl_MODULE_INDICATOR([fcntl-safer])
Makefile.am:
+lib_SOURCES += creat-safer.c open-safer.c
Include:
"fcntl-safer.h"
Depends-on:
dirent
extensions
-errno [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1]
-fchdir [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1]
-openat-die [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1]
-save-cwd [test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1]
+errno [test $HAVE_FDOPENDIR = 0]
+fchdir [test $HAVE_FDOPENDIR = 0]
+openat-die [test $HAVE_FDOPENDIR = 0]
+save-cwd [test $HAVE_FDOPENDIR = 0]
configure.ac:
gl_FUNC_FDOPENDIR
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+ AC_LIBOBJ([fdopendir])
+fi
+if test $HAVE_FDOPENDIR = 0; then
+ AC_LIBOBJ([openat-proc])
+fi
gl_DIRENT_MODULE_INDICATOR([fdopendir])
gl_MODULE_INDICATOR([fdopendir])
Depends-on:
ignore-value
-progname
timespec
usleep
utimecmp
configure.ac:
gl_FUNC_FFLUSH
+if test $REPLACE_FFLUSH = 1; then
+ AC_LIBOBJ([fflush])
+ gl_PREREQ_FFLUSH
+fi
gl_MODULE_INDICATOR([fflush])
gl_STDIO_MODULE_INDICATOR([fflush])
--- /dev/null
+Description:
+Finds the index of the least-significant set bit.
+
+Files:
+lib/ffs.c
+m4/ffs.m4
+
+Depends-on:
+strings
+
+configure.ac:
+gl_FUNC_FFS
+if test $HAVE_FFS = 0; then
+ AC_LIBOBJ([ffs])
+fi
+gl_STRINGS_MODULE_INDICATOR([ffs])
+
+Makefile.am:
+
+Include:
+<strings.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake
--- /dev/null
+Files:
+tests/test-ffs.c
+tests/macros.h
+tests/signature.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-ffs
+check_PROGRAMS += test-ffs
--- /dev/null
+Description:
+Finds the index of the least-significant set bit.
+
+Files:
+lib/ffsl.h
+lib/ffsl.c
+m4/ffsl.m4
+
+Depends-on:
+extensions
+string
+ffs [test $HAVE_FFSL = 0]
+
+configure.ac:
+gl_FUNC_FFSL
+if test $HAVE_FFSL = 0; then
+ AC_LIBOBJ([ffsl])
+fi
+gl_STRING_MODULE_INDICATOR([ffsl])
+
+Makefile.am:
+
+Include:
+<string.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake
--- /dev/null
+Files:
+tests/test-ffsl.c
+tests/macros.h
+tests/signature.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-ffsl
+check_PROGRAMS += test-ffsl
--- /dev/null
+Description:
+Finds the index of the least-significant set bit.
+
+Files:
+lib/ffsl.h
+lib/ffsll.c
+m4/ffsll.m4
+
+Depends-on:
+extensions
+string
+ffs [test $HAVE_FFSLL = 0]
+
+configure.ac:
+gl_FUNC_FFSLL
+if test $HAVE_FFSLL = 0; then
+ AC_LIBOBJ([ffsll])
+fi
+gl_STRING_MODULE_INDICATOR([ffsl])
+
+Makefile.am:
+
+Include:
+<string.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake
--- /dev/null
+Files:
+tests/test-ffsll.c
+tests/macros.h
+tests/signature.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-ffsll
+check_PROGRAMS += test-ffsll
Files:
lib/file-type.h
lib/file-type.c
-m4/file-type.m4
Depends-on:
gettext-h
sys_stat
configure.ac:
-gl_FILE_TYPE
Makefile.am:
+lib_SOURCES += file-type.c
Include:
"file-type.h"
configure.ac:
gl_FILEBLOCKS
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+ AC_LIBOBJ([fileblocks])
+ gl_PREREQ_FILEBLOCKS
+fi
Makefile.am:
gl_FILEMODE
Makefile.am:
+lib_SOURCES += filemode.c
Include:
"filemode.h"
gl_MODULE_INDICATOR([filenamecat])
Makefile.am:
+lib_SOURCES += filenamecat.c
Include:
"filenamecat.h"
gl_FILE_NAME_CONCAT_LGPL
Makefile.am:
+lib_SOURCES += filenamecat-lgpl.c
Include:
"filenamecat.h"
Files:
lib/float.in.h
+lib/float.c
m4/float_h.m4
Depends-on:
configure.ac:
gl_FLOAT_H
+if test $REPLACE_FLOAT_LDBL = 1; then
+ AC_LIBOBJ([float])
+fi
Makefile.am:
BUILT_SOURCES += $(FLOAT_H)
float.h: float.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
--- /dev/null
+Files:
+tests/test-float.c
+tests/macros.h
+
+Depends-on:
+fpieee
+fpucw
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-float
+check_PROGRAMS += test-float
configure.ac:
gl_FUNC_FLOCK
+if test $HAVE_FLOCK = 0; then
+ AC_LIBOBJ([flock])
+ gl_PREREQ_FLOCK
+fi
gl_HEADER_SYS_FILE_MODULE_INDICATOR([flock])
Makefile.am:
configure.ac:
gl_FUNC_FLOOR
+if test $REPLACE_FLOOR = 1; then
+ AC_LIBOBJ([floor])
+fi
gl_MATH_MODULE_INDICATOR([floor])
Makefile.am:
configure.ac:
gl_FUNC_FLOORF
+if test $HAVE_DECL_FLOORF = 0 || test $REPLACE_FLOORF = 1; then
+ AC_LIBOBJ([floorf])
+fi
gl_MATH_MODULE_INDICATOR([floorf])
Makefile.am:
configure.ac:
gl_FUNC_FLOORL
+if test $HAVE_DECL_FLOORL = 0 || test $REPLACE_FLOORL = 1; then
+ AC_LIBOBJ([floorl])
+fi
gl_MATH_MODULE_INDICATOR([floorl])
Makefile.am:
m4/fnmatch.m4
Depends-on:
-arg-nonnull
extensions
+snippet/arg-nonnull
alloca [test -n "$FNMATCH_H"]
stdbool [test -n "$FNMATCH_H"]
wchar [test -n "$FNMATCH_H"]
configure.ac:
gl_FUNC_FNMATCH_POSIX
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
Makefile.am:
BUILT_SOURCES += $(FNMATCH_H)
configure.ac:
gl_FUNC_FNMATCH_GNU
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
Makefile.am:
Depends-on:
stdio
+largefile
unistd [test $REPLACE_FOPEN = 1]
configure.ac:
gl_FUNC_FOPEN
+if test $REPLACE_FOPEN = 1; then
+ AC_LIBOBJ([fopen])
+ gl_PREREQ_FOPEN
+fi
gl_STDIO_MODULE_INDICATOR([fopen])
Makefile.am:
lib/stdio--.h
lib/stdio-safer.h
lib/fopen-safer.c
-m4/stdio-safer.m4
Depends-on:
fopen
unistd-safer
configure.ac:
-gl_FOPEN_SAFER
gl_MODULE_INDICATOR([fopen-safer])
Makefile.am:
+lib_SOURCES += fopen-safer.c
Include:
"stdio-safer.h"
configure.ac:
gl_FUNC_FORKPTY
+if test $HAVE_FORKPTY = 0 || test $REPLACE_FORKPTY = 1; then
+ AC_LIBOBJ([forkpty])
+fi
gl_PTY_MODULE_INDICATOR([forkpty])
Makefile.am:
configure.ac:
gl_FUNC_FPENDING
+if test $ac_cv_func___fpending = no; then
+ AC_LIBOBJ([fpending])
+ gl_PREREQ_FPENDING
+fi
Makefile.am:
Files:
lib/fprintftime.h
lib/fprintftime.c
-m4/fprintftime.m4
Depends-on:
ignore-value
strftime
configure.ac:
-gl_FPRINTFTIME
Makefile.am:
+lib_SOURCES += fprintftime.c
Include:
"fprintftime.h"
configure.ac:
gl_FUNC_FPURGE
+if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then
+ AC_LIBOBJ([fpurge])
+fi
gl_STDIO_MODULE_INDICATOR([fpurge])
Makefile.am:
configure.ac:
gl_FUNC_FREADABLE
+if test $ac_cv_func___freadable = no; then
+ AC_LIBOBJ([freadable])
+fi
Makefile.am:
configure.ac:
gl_FUNC_FREE
+if test $gl_cv_func_free = no; then
+ AC_LIBOBJ([free])
+ gl_PREREQ_FREE
+fi
Makefile.am:
Depends-on:
stdio
+largefile
configure.ac:
gl_FUNC_FREOPEN
+if test $REPLACE_FREOPEN = 1; then
+ AC_LIBOBJ([freopen])
+ gl_PREREQ_FREOPEN
+fi
gl_STDIO_MODULE_INDICATOR([freopen])
Makefile.am:
lib/stdio--.h
lib/stdio-safer.h
lib/freopen-safer.c
-m4/stdio-safer.m4
Depends-on:
dup2
stdbool
configure.ac:
-gl_FREOPEN_SAFER
gl_MODULE_INDICATOR([freopen-safer])
Makefile.am:
+lib_SOURCES += freopen-safer.c
Include:
"stdio-safer.h"
configure.ac:
gl_FUNC_FREXP
+if test $gl_func_frexp != yes; then
+ AC_LIBOBJ([frexp])
+fi
gl_MATH_MODULE_INDICATOR([frexp])
Makefile.am:
configure.ac:
gl_FUNC_FREXP_NO_LIBM
+if test $gl_func_frexp_no_libm != yes; then
+ AC_LIBOBJ([frexp])
+fi
gl_MATH_MODULE_INDICATOR([frexp])
Makefile.am:
configure.ac:
gl_FUNC_FREXPL
+if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
+ AC_LIBOBJ([frexpl])
+fi
gl_MATH_MODULE_INDICATOR([frexpl])
Makefile.am:
configure.ac:
gl_FUNC_FREXPL_NO_LIBM
+if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
+ AC_LIBOBJ([frexpl])
+fi
gl_MATH_MODULE_INDICATOR([frexpl])
Makefile.am:
configure.ac:
gl_FUNC_FSEEK
+if test $REPLACE_FSEEK = 1; then
+ AC_LIBOBJ([fseek])
+fi
gl_STDIO_MODULE_INDICATOR([fseek])
Makefile.am:
<stdio.h>
License:
-LGPL
+LGPLv2+
Maintainer:
Bruno Haible
Depends-on:
extensions
+largefile
lseek
stdio
+# Just to guarantee consistency between fseek() and fseeko().
+fseek
configure.ac-early:
AC_REQUIRE([AC_FUNC_FSEEKO])
configure.ac:
gl_FUNC_FSEEKO
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ AC_LIBOBJ([fseeko])
+fi
gl_STDIO_MODULE_INDICATOR([fseeko])
Makefile.am:
tests/test-fseeko.c
tests/test-fseeko.sh
tests/test-fseeko2.sh
+tests/test-fseeko3.c
+tests/test-fseeko3.sh
tests/signature.h
tests/macros.h
m4/ungetc.m4
gl_FUNC_UNGETC_WORKS
Makefile.am:
-TESTS += test-fseeko.sh test-fseeko2.sh
-check_PROGRAMS += test-fseeko
+TESTS += test-fseeko.sh test-fseeko2.sh test-fseeko3.sh
+check_PROGRAMS += test-fseeko test-fseeko3
m4/fsusage.m4
Depends-on:
+largefile
stdbool
stdint
full-read [test $gl_cv_fs_space = yes]
configure.ac:
gl_FSUSAGE
+if test $gl_cv_fs_space = yes; then
+ AC_LIBOBJ([fsusage])
+ gl_PREREQ_FSUSAGE_EXTRA
+fi
Makefile.am:
configure.ac:
gl_FUNC_FSYNC
+if test $HAVE_FSYNC = 0; then
+ AC_LIBOBJ([fsync])
+ gl_PREREQ_FSYNC
+fi
gl_UNISTD_MODULE_INDICATOR([fsync])
Makefile.am:
configure.ac:
gl_FUNC_FTELL
+if test $REPLACE_FTELL = 1; then
+ AC_LIBOBJ([ftell])
+fi
gl_STDIO_MODULE_INDICATOR([ftell])
Makefile.am:
<stdio.h>
License:
-LGPL
+LGPLv2+
Maintainer:
Bruno Haible
Depends-on:
stdio
extensions
+largefile
lseek [test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1]
+# Just to guarantee consistency between ftell() and ftello().
+ftell
configure.ac-early:
AC_REQUIRE([AC_FUNC_FSEEKO])
configure.ac:
gl_FUNC_FTELLO
+if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then
+ AC_LIBOBJ([ftello])
+fi
gl_STDIO_MODULE_INDICATOR([ftello])
Makefile.am:
intprops
configure.ac:
+AC_CHECK_FUNCS_ONCE([strtof])
AC_REQUIRE([gl_C99_STRTOLD])
Makefile.am:
configure.ac:
gl_FUNC_FTRUNCATE
+if test $HAVE_FTRUNCATE = 0; then
+ AC_LIBOBJ([ftruncate])
+ gl_PREREQ_FTRUNCATE
+fi
gl_UNISTD_MODULE_INDICATOR([ftruncate])
Makefile.am:
configure.ac:
gl_FUNC_FTS
+dnl Use this version of fts unconditionally, since the GNU libc and
+dnl NetBSD versions have bugs and/or unnecessary limitations.
+AC_LIBOBJ([fts])
Makefile.am:
configure.ac:
gl_FUNC_FUTIMENS
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+ AC_LIBOBJ([futimens])
+fi
gl_SYS_STAT_MODULE_INDICATOR([futimens])
Makefile.am:
Makefile.am:
TESTS += test-futimens
check_PROGRAMS += test-futimens
-test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
configure.ac:
gl_FUNC_FWRITABLE
+if test $ac_cv_func___fwritable = no; then
+ AC_LIBOBJ([fwritable])
+fi
Makefile.am:
configure.ac:
gl_FUNC_FWRITING
+if test $ac_cv_func___fwriting = no; then
+ AC_LIBOBJ([fwriting])
+fi
Makefile.am:
m4/getaddrinfo.m4
Depends-on:
-extensions
-gettext-h
-inet_ntop
-snprintf
-stdbool
-sys_socket
netdb
-strdup
-servent
-hostent
-sockets
+sys_socket
+extensions
+gettext-h [test $HAVE_GETADDRINFO = 0 || test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1]
+inet_ntop [test $HAVE_GETADDRINFO = 0]
+snprintf [test $HAVE_GETADDRINFO = 0]
+stdbool [test $HAVE_GETADDRINFO = 0]
+strdup [test $HAVE_GETADDRINFO = 0]
+servent [test $HAVE_GETADDRINFO = 0]
+hostent [test $HAVE_GETADDRINFO = 0]
+sockets [test $HAVE_GETADDRINFO = 0]
configure.ac:
gl_GETADDRINFO
+if test $HAVE_GETADDRINFO = 0; then
+ AC_LIBOBJ([getaddrinfo])
+fi
+if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then
+ AC_LIBOBJ([gai_strerror])
+fi
gl_NETDB_MODULE_INDICATOR([getaddrinfo])
Makefile.am:
Depends-on:
unistd
extensions
+pathmax [test $REPLACE_GETCWD = 1]
mempcpy [test $REPLACE_GETCWD = 1]
d-ino [test $REPLACE_GETCWD = 1]
memmove [test $REPLACE_GETCWD = 1]
configure.ac:
gl_FUNC_GETCWD
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd])
+ gl_PREREQ_GETCWD
+fi
gl_MODULE_INDICATOR([getcwd])
gl_UNISTD_MODULE_INDICATOR([getcwd])
configure.ac:
gl_FUNC_GETCWD_LGPL
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd-lgpl])
+fi
gl_UNISTD_MODULE_INDICATOR([getcwd])
Makefile.am:
errno
fcntl-h
getcwd-lgpl
+pathmax
sys_stat
configure.ac:
Depends-on:
stdio
extensions
-stdint [test $HAVE_DECL_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
-realloc-posix [test $HAVE_DECL_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
-errno [test $HAVE_DECL_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
+stdint [test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
+realloc-posix [test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
+errno [test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1]
configure.ac:
gl_FUNC_GETDELIM
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+ AC_LIBOBJ([getdelim])
+ gl_PREREQ_GETDELIM
+fi
gl_STDIO_MODULE_INDICATOR([getdelim])
Makefile.am:
configure.ac:
gl_FUNC_GETDOMAINNAME
+if test $HAVE_DECL_GETDOMAINNAME = 0 || test $REPLACE_GETDOMAINNAME = 1; then
+ AC_LIBOBJ([getdomainname])
+ gl_PREREQ_GETDOMAINNAME
+fi
gl_UNISTD_MODULE_INDICATOR([getdomainname])
Makefile.am:
configure.ac:
gl_FUNC_GETDTABLESIZE
+if test $HAVE_GETDTABLESIZE = 0; then
+ AC_LIBOBJ([getdtablesize])
+fi
gl_UNISTD_MODULE_INDICATOR([getdtablesize])
Makefile.am:
configure.ac:
gl_FUNC_GETGROUPS
+if test $HAVE_GETGROUPS = 0 || test $REPLACE_GETGROUPS = 1; then
+ AC_LIBOBJ([getgroups])
+fi
gl_UNISTD_MODULE_INDICATOR([getgroups])
Makefile.am:
configure.ac:
gl_FUNC_GETHOSTNAME
+if test $HAVE_GETHOSTNAME = 0; then
+ AC_LIBOBJ([gethostname])
+ gl_PREREQ_GETHOSTNAME
+fi
gl_UNISTD_MODULE_INDICATOR([gethostname])
Makefile.am:
configure.ac:
gl_GETHRXTIME
+if test $ac_cv_have_decl_gethrtime = no || test $gl_cv_arithmetic_hrtime_t = no; then
+ AC_LIBOBJ([gethrxtime])
+ gl_PREREQ_GETHRXTIME
+fi
Makefile.am:
configure.ac:
gl_FUNC_GETLINE
+if test $REPLACE_GETLINE = 1; then
+ AC_LIBOBJ([getline])
+ gl_PREREQ_GETLINE
+fi
gl_STDIO_MODULE_INDICATOR([getline])
Makefile.am:
configure.ac:
gl_GETLOADAVG
+if test $HAVE_GETLOADAVG = 0; then
+ AC_LIBOBJ([getloadavg])
+ gl_PREREQ_GETLOADAVG
+fi
gl_STDLIB_MODULE_INDICATOR([getloadavg])
Makefile.am:
configure.ac:
gl_FUNC_GETLOGIN
+if test $HAVE_GETLOGIN = 0; then
+ AC_LIBOBJ([getlogin])
+fi
gl_UNISTD_MODULE_INDICATOR([getlogin])
Makefile.am:
configure.ac:
gl_FUNC_GETLOGIN_R
+if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then
+ AC_LIBOBJ([getlogin_r])
+ gl_PREREQ_GETLOGIN_R
+fi
gl_UNISTD_MODULE_INDICATOR([getlogin_r])
Makefile.am:
gl_GETNDELIM2
Makefile.am:
+lib_SOURCES += getndelim2.c
Include:
"getndelim2.h"
Files:
Depends-on:
+nocrash
getopt-posix
configure.ac:
gl_FUNC_GETOPT_GNU
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+fi
gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
Makefile.am:
unistd
extensions
include_next
-arg-nonnull
-gettext-h [test $GNULIB_UNISTD_H_GETOPT = 1]
+snippet/arg-nonnull
+gettext-h [test $REPLACE_GETOPT = 1]
configure.ac:
gl_FUNC_GETOPT_POSIX
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+fi
Makefile.am:
BUILT_SOURCES += $(GETOPT_H)
getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
configure.ac:
gl_FUNC_GETPAGESIZE
+if test $REPLACE_GETPAGESIZE = 1; then
+ AC_LIBOBJ([getpagesize])
+fi
gl_UNISTD_MODULE_INDICATOR([getpagesize])
Makefile.am:
configure.ac:
gl_FUNC_GETPASS
+if test $HAVE_GETPASS = 0; then
+ AC_LIBOBJ([getpass])
+ gl_PREREQ_GETPASS
+fi
Makefile.am:
configure.ac:
gl_FUNC_GETPASS_GNU
+if test $REPLACE_GETPASS = 1; then
+ AC_LIBOBJ([getpass])
+ gl_PREREQ_GETPASS
+fi
Makefile.am:
configure.ac:
gl_FUNC_GETSUBOPT
+if test $HAVE_GETSUBOPT = 0; then
+ AC_LIBOBJ([getsubopt])
+ gl_PREREQ_GETSUBOPT
+fi
gl_STDLIB_MODULE_INDICATOR([getsubopt])
Makefile.am:
gl_GETTIME
Makefile.am:
+lib_SOURCES += gettime.c
Include:
"timespec.h"
configure.ac:
gl_FUNC_GETTIMEOFDAY
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+ AC_LIBOBJ([gettimeofday])
+ gl_PREREQ_GETTIMEOFDAY
+fi
gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
Makefile.am:
gl_GETUGROUPS
Makefile.am:
+lib_SOURCES += getugroups.c
Include:
"getugroups.h"
Depends-on:
unistd
extensions
-fopen-safer [test $ac_cv_func_getusershell = no]
-xalloc [test $ac_cv_func_getusershell = no]
+fopen-safer [test $HAVE_GETUSERSHELL = 0]
+xalloc [test $HAVE_GETUSERSHELL = 0]
configure.ac:
gl_FUNC_GETUSERSHELL
+if test $HAVE_GETUSERSHELL = 0; then
+ AC_LIBOBJ([getusershell])
+fi
gl_UNISTD_MODULE_INDICATOR([getusershell])
Makefile.am:
m4/glob.m4
Depends-on:
-arg-nonnull
-c++defs
extensions
-warn-on-use
+largefile
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
alloca [test -n "$GLOB_H"]
d-type [test -n "$GLOB_H"]
dirfd [test -n "$GLOB_H"]
configure.ac:
gl_GLOB
+if test -n "$GLOB_H"; then
+ AC_LIBOBJ([glob])
+ gl_PREREQ_GLOB
+fi
Makefile.am:
BUILT_SOURCES += $(GLOB_H)
configure.ac:
gl_FUNC_GRANTPT
+if test $HAVE_GRANTPT = 0; then
+ AC_LIBOBJ([grantpt])
+ gl_PREREQ_GRANTPT
+fi
gl_STDLIB_MODULE_INDICATOR([grantpt])
Makefile.am:
configure.ac:
gl_FUNC_GROUP_MEMBER
+if test $HAVE_GROUP_MEMBER = 0; then
+ AC_LIBOBJ([group-member])
+ gl_PREREQ_GROUP_MEMBER
+fi
gl_UNISTD_MODULE_INDICATOR([group-member])
Makefile.am:
gl_HARD_LOCALE
Makefile.am:
+lib_SOURCES += hard-locale.c
Include:
"hard-locale.h"
Files:
lib/hash.c
lib/hash.h
-m4/hash.m4
Depends-on:
bitrotate
xalloc-oversized
configure.ac:
-gl_HASH
Makefile.am:
+lib_SOURCES += hash.c
Include:
"hash.h"
Depends-on:
hash-pjw
inttostr
-progname
stdbool
configure.ac:
gl_HUMAN
Makefile.am:
+lib_SOURCES += human.c
Include:
"human.h"
gl_I_RING
Makefile.am:
+lib_SOURCES += i-ring.c
Include:
"i-ring.h"
Depends-on:
include_next
-c++defs
-arg-nonnull
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_ICONV_H
iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \
- -e 's|@''GNULIB_ICONV''@|$(GNULIB_ICONV)|g' \
+ -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \
-e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
-e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
-e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
lib/iconv_open-irix.gperf
lib/iconv_open-osf.gperf
lib/iconv_open-solaris.gperf
+lib/iconv.c
+lib/iconv_close.c
m4/iconv_open.m4
Depends-on:
gperf
iconv-h
iconv
-c-ctype [test $REPLACE_ICONV_OPEN = 1]
-c-strcase [test $REPLACE_ICONV_OPEN = 1]
+c-ctype [test $REPLACE_ICONV_OPEN = 1]
+c-strcase [test $REPLACE_ICONV_OPEN = 1]
+stdint [test $REPLACE_ICONV_UTF = 1]
+unistr/u8-mbtoucr [test $REPLACE_ICONV_UTF = 1]
+unistr/u8-uctomb [test $REPLACE_ICONV_UTF = 1]
configure.ac:
gl_FUNC_ICONV_OPEN
+if test $REPLACE_ICONV_OPEN = 1; then
+ AC_LIBOBJ([iconv_open])
+fi
+if test $REPLACE_ICONV = 1; then
+ AC_LIBOBJ([iconv])
+ AC_LIBOBJ([iconv_close])
+fi
Makefile.am:
iconv_open-aix.h: iconv_open-aix.gperf
Character set conversion support for UTF-{16,32}{BE,LE} encodings.
Files:
-lib/iconv.c
-lib/iconv_close.c
-m4/iconv_open.m4
+m4/iconv_open-utf.m4
Depends-on:
iconv_open
-stdint [test $REPLACE_ICONV_UTF = 1]
-unistr/u8-mbtoucr [test $REPLACE_ICONV_UTF = 1]
-unistr/u8-uctomb [test $REPLACE_ICONV_UTF = 1]
configure.ac:
gl_FUNC_ICONV_OPEN_UTF
gl_IDCACHE
Makefile.am:
+lib_SOURCES += idcache.c
Include:
"idcache.h"
configure.ac:
gl_FUNC_IMAXABS
+if test $HAVE_DECL_IMAXABS = 0; then
+ AC_LIBOBJ([imaxabs])
+ gl_PREREQ_IMAXABS
+fi
gl_INTTYPES_MODULE_INDICATOR([imaxabs])
Makefile.am:
configure.ac:
gl_FUNC_IMAXDIV
+if test $HAVE_DECL_IMAXDIV = 0; then
+ AC_LIBOBJ([imaxdiv])
+ gl_PREREQ_IMAXDIV
+fi
gl_INTTYPES_MODULE_INDICATOR([imaxdiv])
Makefile.am:
Depends-on:
arpa_inet
extensions
-sys_socket [test "$ac_cv_search_inet_ntop" = no && test $ac_cv_func_inet_ntop = no]
-errno [test "$ac_cv_search_inet_ntop" = no && test $ac_cv_func_inet_ntop = no]
-netinet_in [test "$ac_cv_search_inet_ntop" = no && test $ac_cv_func_inet_ntop = no]
+sys_socket [test $HAVE_INET_NTOP = 0]
+errno [test $HAVE_INET_NTOP = 0]
+netinet_in [test $HAVE_INET_NTOP = 0]
configure.ac:
gl_FUNC_INET_NTOP
+if test $HAVE_INET_NTOP = 0; then
+ AC_LIBOBJ([inet_ntop])
+ gl_PREREQ_INET_NTOP
+fi
gl_ARPA_INET_MODULE_INDICATOR([inet_ntop])
Makefile.am:
Depends-on:
arpa_inet
extensions
-c-ctype [test "$ac_cv_search_inet_pton" = no && test $ac_cv_func_inet_pton = no]
-sys_socket [test "$ac_cv_search_inet_pton" = no && test $ac_cv_func_inet_pton = no]
-errno [test "$ac_cv_search_inet_pton" = no && test $ac_cv_func_inet_pton = no]
-netinet_in [test "$ac_cv_search_inet_pton" = no && test $ac_cv_func_inet_pton = no]
+c-ctype [test $HAVE_INET_PTON = 0]
+sys_socket [test $HAVE_INET_PTON = 0]
+errno [test $HAVE_INET_PTON = 0]
+netinet_in [test $HAVE_INET_PTON = 0]
configure.ac:
gl_FUNC_INET_PTON
+if test $HAVE_INET_PTON = 0; then
+ AC_LIBOBJ([inet_pton])
+ gl_PREREQ_INET_PTON
+fi
gl_ARPA_INET_MODULE_INDICATOR([inet_pton])
Makefile.am:
Files:
tests/test-intprops.c
+tests/macros.h
Depends-on:
inttypes
m4/inttypes.m4
Depends-on:
-arg-nonnull
include_next
multiarch
+snippet/arg-nonnull
+snippet/warn-on-use
stdint
-warn-on-use
configure.ac:
gl_INTTYPES_INCOMPLETE
Depends-on:
sys_ioctl
-sys_socket [test "$ac_cv_header_winsock2_h" = yes || test $REPLACE_IOCTL = 1]
-errno [test "$ac_cv_header_winsock2_h" = yes || test $REPLACE_IOCTL = 1]
-fd-hook [test "$ac_cv_header_winsock2_h" = yes || test $REPLACE_IOCTL = 1]
+sys_socket [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
+errno [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
+fd-hook [test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1]
configure.ac:
gl_FUNC_IOCTL
+if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
+ AC_LIBOBJ([ioctl])
+fi
gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
Makefile.am:
m4/isapipe.m4
Depends-on:
-stdbool [test $ac_cv_func_isapipe = no]
-sys_stat [test $ac_cv_func_isapipe = no]
-unistd [test $ac_cv_func_isapipe = no]
+stdbool [test $HAVE_ISAPIPE = 0]
+sys_stat [test $HAVE_ISAPIPE = 0]
+unistd [test $HAVE_ISAPIPE = 0]
configure.ac:
gl_ISAPIPE
+if test $HAVE_ISAPIPE = 0; then
+ AC_LIBOBJ([isapipe])
+ gl_PREREQ_ISAPIPE
+fi
Makefile.am:
configure.ac:
gl_FUNC_ISBLANK
+if test $HAVE_ISBLANK = 0; then
+ AC_LIBOBJ([isblank])
+fi
gl_CTYPE_MODULE_INDICATOR([isblank])
Makefile.am:
configure.ac:
gl_ISFINITE
+if test $REPLACE_ISFINITE = 1; then
+ AC_LIBOBJ([isfinite])
+fi
gl_MATH_MODULE_INDICATOR([isfinite])
Makefile.am:
configure.ac:
gl_ISINF
+if test $REPLACE_ISINF = 1; then
+ AC_LIBOBJ([isinf])
+fi
gl_MATH_MODULE_INDICATOR([isinf])
Makefile.am:
configure.ac:
gl_FUNC_ISNAND
+m4_ifdef([gl_ISNAN], [
+ AC_REQUIRE([gl_ISNAN])
+])
+if test $HAVE_ISNAND = 0 || test $REPLACE_ISNAN = 1; then
+ AC_LIBOBJ([isnand])
+ gl_PREREQ_ISNAND
+fi
gl_MATH_MODULE_INDICATOR([isnand])
Makefile.am:
configure.ac:
gl_FUNC_ISNAND_NO_LIBM
+if test $gl_func_isnand_no_libm != yes; then
+ AC_LIBOBJ([isnand])
+ gl_PREREQ_ISNAND
+fi
Makefile.am:
configure.ac:
gl_FUNC_ISNANF
+m4_ifdef([gl_ISNAN], [
+ AC_REQUIRE([gl_ISNAN])
+])
+if test $HAVE_ISNANF = 0 || test $REPLACE_ISNAN = 1; then
+ AC_LIBOBJ([isnanf])
+ gl_PREREQ_ISNANF
+fi
gl_MATH_MODULE_INDICATOR([isnanf])
Makefile.am:
configure.ac:
gl_FUNC_ISNANF_NO_LIBM
+if test $gl_func_isnanf_no_libm != yes; then
+ AC_LIBOBJ([isnanf])
+ gl_PREREQ_ISNANF
+fi
Makefile.am:
configure.ac:
gl_FUNC_ISNANL
+m4_ifdef([gl_ISNAN], [
+ AC_REQUIRE([gl_ISNAN])
+])
+if test $HAVE_ISNANL = 0 || test $REPLACE_ISNAN = 1; then
+ AC_LIBOBJ([isnanl])
+ gl_PREREQ_ISNANL
+fi
gl_MATH_MODULE_INDICATOR([isnanl])
Makefile.am:
configure.ac:
gl_FUNC_ISNANL_NO_LIBM
+if test $gl_func_isnanl_no_libm != yes; then
+ AC_LIBOBJ([isnanl])
+ gl_PREREQ_ISNANL
+fi
Makefile.am:
configure.ac:
gl_FUNC_ISWBLANK
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ AC_LIBOBJ([iswblank])
+ fi
+fi
gl_WCTYPE_MODULE_INDICATOR([iswblank])
Makefile.am:
configure.ac:
gl_FUNC_ISWCTYPE
+if test $HAVE_WCTYPE_T = 0; then
+ AC_LIBOBJ([iswctype])
+fi
gl_WCTYPE_MODULE_INDICATOR([iswctype])
Makefile.am:
Depends-on:
extensions
include_next
-c++defs
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_LANGINFO_H
langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
- -e 's|@''GNULIB_NL_LANGINFO''@|$(GNULIB_NL_LANGINFO)|g' \
+ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
-e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
-e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
-e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
--- /dev/null
+Description:
+Use large files.
+
+Files:
+m4/largefile.m4
+
+Depends-on:
+
+configure.ac-early:
+AC_REQUIRE([AC_SYS_LARGEFILE])
+
+configure.ac:
+
+Makefile.am:
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+all
configure.ac:
gl_FUNC_LCHOWN
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+ AC_LIBOBJ([lchown])
+fi
gl_UNISTD_MODULE_INDICATOR([lchown])
Makefile.am:
Depends-on:
ignore-value
mgetgroups
-progname
usleep
stat-time
stdbool
Makefile.am:
TESTS += test-lchown
check_PROGRAMS += test-lchown
-test_lchown_LDADD = $(LDADD) @LIBINTL@
configure.ac:
gl_FUNC_LDEXPL
+if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then
+ AC_LIBOBJ([ldexpl])
+fi
gl_MATH_MODULE_INDICATOR([ldexpl])
Makefile.am:
configure.ac:
gl_FUNC_LINK
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+ AC_LIBOBJ([link])
+fi
gl_UNISTD_MODULE_INDICATOR([link])
Makefile.am:
+++ /dev/null
-Description:
-A C macro for emitting link time warnings.
-
-Applicability:
-all
-
-Files:
-build-aux/link-warning.h
-
-Depends-on:
-
-configure.ac:
-AC_REQUIRE([gl_FEATURES_H])
-
-Makefile.am:
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += link-warning.h
-# The link-warning.h that gets inserted into generated .h files is the same as
-# build-aux/link-warning.h, except that it has the copyright header cut off.
-link-warning.h: $(top_srcdir)/build-aux/link-warning.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/HAVE_FEATURES_H/,$$p' \
- < $(top_srcdir)/build-aux/link-warning.h \
- | sed -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += link-warning.h link-warning.h-t
-
-LINK_WARNING_H=link-warning.h
-
-Include:
-
-License:
-LGPLv2+
-
-Maintainer:
-Bruno Haible
-
configure.ac:
gl_FUNC_LINKAT
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+ AC_LIBOBJ([linkat])
+fi
+if test $HAVE_LINKAT = 0; then
+ AC_LIBOBJ([at-func2])
+fi
gl_UNISTD_MODULE_INDICATOR([linkat])
Makefile.am:
areadlink-with-size
filenamecat-lgpl
getcwd-lgpl
-progname
same-inode
configure.ac:
m4/locale_h.m4
Depends-on:
-arg-nonnull
-c++defs
extensions
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
-warn-on-use
configure.ac:
gl_LOCALE_H
locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
- -e 's|@''GNULIB_SETLOCALE''@|$(GNULIB_SETLOCALE)|g' \
- -e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
+ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
configure.ac:
gl_FUNC_LOGIN_TTY
+if test $ac_cv_func_login_tty = no; then
+ AC_LIBOBJ([login_tty])
+fi
gl_PTY_MODULE_INDICATOR([login_tty])
Makefile.am:
configure.ac:
gl_FUNC_LOGL
+if test $HAVE_LOGL = 0; then
+ AC_LIBOBJ([logl])
+fi
gl_MATH_MODULE_INDICATOR([logl])
Makefile.am:
Files:
lib/long-options.h
lib/long-options.c
-m4/long-options.m4
Depends-on:
getopt-gnu
version-etc
configure.ac:
-gl_LONG_OPTIONS
Makefile.am:
+lib_SOURCES += long-options.c
Include:
"long-options.h"
Depends-on:
unistd
+largefile
configure.ac:
gl_FUNC_LSEEK
+if test $REPLACE_LSEEK = 1; then
+ AC_LIBOBJ([lseek])
+fi
gl_UNISTD_MODULE_INDICATOR([lseek])
Makefile.am:
Depends-on:
sys_stat
+largefile
dosname [test $REPLACE_LSTAT = 1]
stat [test $REPLACE_LSTAT = 1]
configure.ac:
gl_FUNC_LSTAT
+if test $REPLACE_LSTAT = 1; then
+ AC_LIBOBJ([lstat])
+ gl_PREREQ_LSTAT
+fi
gl_SYS_STAT_MODULE_INDICATOR([lstat])
Makefile.am:
configure.ac:
gl_FUNC_MALLOC_GNU
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
gl_MODULE_INDICATOR([malloc-gnu])
Makefile.am:
configure.ac:
gl_FUNC_MALLOC_POSIX
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
gl_STDLIB_MODULE_INDICATOR([malloc-posix])
Makefile.am:
m4/math_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_MATH_H
math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
- -e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \
- -e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \
- -e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \
- -e 's|@''GNULIB_CEIL''@|$(GNULIB_CEIL)|g' \
- -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
- -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
- -e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \
- -e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \
- -e 's|@''GNULIB_FLOOR''@|$(GNULIB_FLOOR)|g' \
- -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
- -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
- -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
- -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
- -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
- -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \
- -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \
- -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \
- -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \
- -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \
- -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
- -e 's|@''GNULIB_LOGB''@|$(GNULIB_LOGB)|g' \
- -e 's|@''GNULIB_LOGL''@|$(GNULIB_LOGL)|g' \
- -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
- -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
- -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
- -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
- -e 's|@''GNULIB_SINL''@|$(GNULIB_SINL)|g' \
- -e 's|@''GNULIB_SQRTL''@|$(GNULIB_SQRTL)|g' \
- -e 's|@''GNULIB_TANL''@|$(GNULIB_TANL)|g' \
- -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
- -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
- -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+ -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \
+ -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \
+ -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \
+ -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \
+ -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \
+ -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \
+ -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \
+ -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \
+ -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \
+ -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \
+ -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \
+ -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \
+ -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \
+ -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \
+ -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \
+ -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \
+ -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \
+ -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \
+ -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \
+ -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \
+ -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \
+ -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \
+ -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \
+ -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \
+ -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \
+ -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \
+ -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \
+ -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \
+ -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \
+ -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \
+ -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \
+ -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \
< $(srcdir)/math.in.h | \
sed -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
-e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
configure.ac:
gl_FUNC_MBRLEN
+if test $HAVE_MBRLEN = 0 || test $REPLACE_MBRLEN = 1; then
+ AC_LIBOBJ([mbrlen])
+ gl_PREREQ_MBRLEN
+fi
gl_WCHAR_MODULE_INDICATOR([mbrlen])
Makefile.am:
configure.ac:
gl_FUNC_MBRTOWC
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+ AC_LIBOBJ([mbrtowc])
+ gl_PREREQ_MBRTOWC
+fi
gl_WCHAR_MODULE_INDICATOR([mbrtowc])
Makefile.am:
configure.ac:
gl_FUNC_MBSINIT
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+ AC_LIBOBJ([mbsinit])
+ gl_PREREQ_MBSINIT
+fi
gl_WCHAR_MODULE_INDICATOR([mbsinit])
Makefile.am:
configure.ac:
gl_FUNC_MBSNRTOWCS
+if test $HAVE_MBSNRTOWCS = 0 || test $REPLACE_MBSNRTOWCS = 1; then
+ AC_LIBOBJ([mbsnrtowcs])
+ AC_LIBOBJ([mbsrtowcs-state])
+ gl_PREREQ_MBSNRTOWCS
+fi
gl_WCHAR_MODULE_INDICATOR([mbsnrtowcs])
Makefile.am:
configure.ac:
gl_FUNC_MBSRTOWCS
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+ AC_LIBOBJ([mbsrtowcs])
+ AC_LIBOBJ([mbsrtowcs-state])
+ gl_PREREQ_MBSRTOWCS
+fi
gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
Makefile.am:
configure.ac:
gl_FUNC_MBTOWC
+if test $REPLACE_MBTOWC = 1; then
+ AC_LIBOBJ([mbtowc])
+ gl_PREREQ_MBTOWC
+fi
gl_STDLIB_MODULE_INDICATOR([mbtowc])
Makefile.am:
gl_MEMCASECMP
Makefile.am:
+lib_SOURCES += memcasecmp.c
Include:
"memcasecmp.h"
configure.ac:
gl_FUNC_MEMCHR
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+ AC_LIBOBJ([memchr])
+ gl_PREREQ_MEMCHR
+fi
gl_STRING_MODULE_INDICATOR([memchr])
Makefile.am:
m4/memcmp.m4
Depends-on:
-stdint [test $ac_cv_func_memcmp_working = no]
+stdint [test $gl_func_memcmp = no]
configure.ac:
gl_FUNC_MEMCMP
+if test $gl_func_memcmp = no; then
+ AC_LIBOBJ([memcmp])
+ gl_PREREQ_MEMCMP
+fi
Makefile.am:
gl_MEMCOLL
Makefile.am:
+lib_SOURCES += memcoll.c
Include:
"memcoll.h"
configure.ac:
gl_FUNC_MEMCPY
+if test $ac_cv_func_memcpy = no; then
+ AC_LIBOBJ([memcpy])
+ gl_PREREQ_MEMCPY
+fi
Makefile.am:
configure.ac:
gl_FUNC_MEMMEM
+if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+ AC_LIBOBJ([memmem])
+fi
Makefile.am:
configure.ac:
gl_FUNC_MEMMEM_SIMPLE
+if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+ AC_LIBOBJ([memmem])
+fi
gl_STRING_MODULE_INDICATOR([memmem])
Makefile.am:
configure.ac:
gl_FUNC_MEMMOVE
+if test $ac_cv_func_memmove = no; then
+ AC_LIBOBJ([memmove])
+ gl_PREREQ_MEMMOVE
+fi
Makefile.am:
configure.ac:
gl_FUNC_MEMPCPY
+if test $HAVE_MEMPCPY = 0; then
+ AC_LIBOBJ([mempcpy])
+ gl_PREREQ_MEMPCPY
+fi
gl_STRING_MODULE_INDICATOR([mempcpy])
Makefile.am:
configure.ac:
gl_FUNC_MEMRCHR
+if test $ac_cv_func_memrchr = no; then
+ AC_LIBOBJ([memrchr])
+ gl_PREREQ_MEMRCHR
+fi
gl_STRING_MODULE_INDICATOR([memrchr])
Makefile.am:
configure.ac:
gl_FUNC_MEMSET
+if test $ac_cv_func_memset = no; then
+ AC_LIBOBJ([memset])
+ gl_PREREQ_MEMSET
+fi
Makefile.am:
gl_MEMXOR
Makefile.am:
+lib_SOURCES += memxor.c
Include:
"memxor.h"
gl_MGETGROUPS
Makefile.am:
+lib_SOURCES += mgetgroups.c
Include:
"mgetgroups.h"
gl_MKANCESDIRS
Makefile.am:
+lib_SOURCES += mkancesdirs.c
Include:
"mkancesdirs.h"
configure.ac:
gl_FUNC_MKDIR
+if test $REPLACE_MKDIR = 1; then
+ AC_LIBOBJ([mkdir])
+fi
Makefile.am:
gl_MKDIR_PARENTS
Makefile.am:
+lib_SOURCES += dirchownmod.c mkdir-p.c
Include:
"mkdir-p.h"
tempname [test $HAVE_MKDTEMP = 0]
configure.ac:
-gt_FUNC_MKDTEMP
+gl_FUNC_MKDTEMP
+if test $HAVE_MKDTEMP = 0; then
+ AC_LIBOBJ([mkdtemp])
+ gl_PREREQ_MKDTEMP
+fi
gl_STDLIB_MODULE_INDICATOR([mkdtemp])
Makefile.am:
configure.ac:
gl_FUNC_MKFIFO
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+ AC_LIBOBJ([mkfifo])
+fi
gl_UNISTD_MODULE_INDICATOR([mkfifo])
Makefile.am:
configure.ac:
gl_FUNC_MKFIFOAT
+if test $HAVE_MKFIFOAT = 0; then
+ AC_LIBOBJ([mkfifoat])
+fi
+if test $HAVE_MKNODAT = 0; then
+ AC_LIBOBJ([mknodat])
+fi
gl_UNISTD_MODULE_INDICATOR([mkfifoat])
gl_UNISTD_MODULE_INDICATOR([mknodat])
configure.ac:
gl_FUNC_MKNOD
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+ AC_LIBOBJ([mknod])
+fi
gl_UNISTD_MODULE_INDICATOR([mknod])
Makefile.am:
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKOSTEMP = 0]
configure.ac:
gl_FUNC_MKOSTEMP
+if test $HAVE_MKOSTEMP = 0; then
+ AC_LIBOBJ([mkostemp])
+ gl_PREREQ_MKOSTEMP
+fi
gl_MODULE_INDICATOR([mkostemp])
gl_STDLIB_MODULE_INDICATOR([mkostemp])
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKOSTEMPS = 0]
configure.ac:
gl_FUNC_MKOSTEMPS
+if test $HAVE_MKOSTEMPS = 0; then
+ AC_LIBOBJ([mkostemps])
+fi
gl_MODULE_INDICATOR([mkostemps])
gl_STDLIB_MODULE_INDICATOR([mkostemps])
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1]
configure.ac:
gl_FUNC_MKSTEMP
+if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
+ AC_LIBOBJ([mkstemp])
+ gl_PREREQ_MKSTEMP
+fi
gl_STDLIB_MODULE_INDICATOR([mkstemp])
Makefile.am:
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKSTEMPS = 0]
configure.ac:
gl_FUNC_MKSTEMPS
+if test $HAVE_MKSTEMPS = 0; then
+ AC_LIBOBJ([mkstemps])
+fi
gl_MODULE_INDICATOR([mkstemps])
gl_STDLIB_MODULE_INDICATOR([mkstemps])
configure.ac:
gl_FUNC_MKTIME
+if test $REPLACE_MKTIME = 1; then
+ AC_LIBOBJ([mktime])
+ gl_PREREQ_MKTIME
+fi
gl_TIME_MODULE_INDICATOR([mktime])
Makefile.am:
--- /dev/null
+Description:
+mktime_internal() function: convert broken-down time to linear time.
+
+Files:
+lib/mktime-internal.h
+lib/mktime.c
+
+Depends-on:
+mktime
+
+configure.ac:
+gl_FUNC_MKTIME_INTERNAL
+if test $REPLACE_MKTIME = 1; then
+ AC_LIBOBJ([mktime])
+ gl_PREREQ_MKTIME
+fi
+
+Makefile.am:
+
+Include:
+"mktime-internal.h"
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible, Paul Eggert
gl_MODECHANGE
Makefile.am:
+lib_SOURCES += modechange.c
Include:
"modechange.h"
configure.ac:
gl_MOUNTLIST
+if test $gl_cv_list_mounted_fs = yes; then
+ AC_LIBOBJ([mountlist])
+ gl_PREREQ_MOUNTLIST_EXTRA
+fi
Makefile.am:
gl_MPSORT
Makefile.am:
+lib_SOURCES += mpsort.c
Include:
"mpsort.h"
configure.ac:
gl_FUNC_NANOSLEEP
+if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
+ AC_LIBOBJ([nanosleep])
+ gl_PREREQ_NANOSLEEP
+fi
gl_TIME_MODULE_INDICATOR([nanosleep])
Makefile.am:
m4/netdb_h.m4
Depends-on:
-c++defs
include_next
-arg-nonnull
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
sys_socket
configure.ac:
netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_NETDB_H''@|$(NEXT_NETDB_H)|g' \
-e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \
- -e 's|@''GNULIB_GETADDRINFO''@|$(GNULIB_GETADDRINFO)|g' \
+ -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \
-e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \
-e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \
-e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \
$(AM_V_at)$(MKDIR_P) netinet
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \
configure.ac:
gl_FUNC_NL_LANGINFO
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+ AC_LIBOBJ([nl_langinfo])
+fi
gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
Makefile.am:
configure.ac:
gl_FUNC_OBSTACK_PRINTF
+if test $ac_cv_func_obstack_printf = no || test $REPLACE_OBSTACK_PRINTF = 1; then
+ AC_LIBOBJ([obstack_printf])
+fi
gl_STDIO_MODULE_INDICATOR([obstack-printf])
Makefile.am:
configure.ac:
gl_FUNC_OBSTACK_PRINTF_POSIX
+if test $ac_cv_func_obstack_printf = no || test $REPLACE_OBSTACK_PRINTF = 1; then
+ AC_LIBOBJ([obstack_printf])
+fi
gl_STDIO_MODULE_INDICATOR([obstack-printf-posix])
Makefile.am:
Depends-on:
fcntl-h
+largefile
stat [test $REPLACE_OPEN = 1]
configure.ac:
gl_FUNC_OPEN
+if test $REPLACE_OPEN = 1; then
+ AC_LIBOBJ([open])
+ gl_PREREQ_OPEN
+fi
gl_FCNTL_MODULE_INDICATOR([open])
Makefile.am:
fdopendir
gettext-h
intprops
+largefile
lchown [test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1]
lstat
mkdir [test $HAVE_MKDIRAT = 0]
configure.ac:
gl_FUNC_OPENAT
+AC_LIBOBJ([openat-proc])
+if test $HAVE_FCHMODAT = 0; then
+ AC_LIBOBJ([fchmodat])
+fi
+if test $ac_cv_func_fstatat = no || test $REPLACE_FSTATAT = 1; then
+ AC_LIBOBJ([fstatat])
+fi
+if test $HAVE_MKDIRAT = 0; then
+ AC_LIBOBJ([mkdirat])
+fi
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+ AC_LIBOBJ([openat])
+fi
+if test $ac_cv_func_unlinkat = no || test $REPLACE_UNLINKAT = 1; then
+ AC_LIBOBJ([unlinkat])
+fi
+if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
+ AC_LIBOBJ([fchownat])
+fi
Makefile.am:
gl_MODULE_INDICATOR([openat-safer])
Makefile.am:
+lib_SOURCES += openat-safer.c
Include:
"fcntl-safer.h"
tests/macros.h
Depends-on:
+getcwd-lgpl
ignore-value
mgetgroups
-pathmax
+progname
usleep
stat-time
symlink
configure.ac:
gl_FUNC_OPENPTY
+if test $HAVE_OPENPTY = 0 || test $REPLACE_OPENPTY = 1; then
+ AC_LIBOBJ([openpty])
+fi
gl_PTY_MODULE_INDICATOR([openpty])
Makefile.am:
gl_PAGEALIGN_ALLOC
Makefile.am:
+lib_SOURCES += pagealign_alloc.c
Include:
"pagealign_alloc.h"
--- /dev/null
+Files:
+tests/test-pathmax.c
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pathmax
+check_PROGRAMS += test-pathmax
Depends-on:
stdio
-errno [test $REPLACE_PERROR = 1]
-strerror [test $REPLACE_PERROR = 1]
+errno [test $REPLACE_PERROR = 1]
+strerror-override [test $REPLACE_PERROR = 1]
+strerror_r-posix [test $REPLACE_PERROR = 1]
configure.ac:
gl_FUNC_PERROR
+if test $REPLACE_PERROR = 1; then
+ AC_LIBOBJ([perror])
+fi
gl_STRING_MODULE_INDICATOR([perror])
Makefile.am:
Files:
+tests/init.sh
+tests/macros.h
tests/signature.h
tests/test-perror.c
+tests/test-perror2.c
tests/test-perror.sh
Depends-on:
+dup2
+strerror
configure.ac:
Makefile.am:
-TESTS += test-perror.sh
-check_PROGRAMS += test-perror
+TESTS += test-perror.sh test-perror2
+check_PROGRAMS += test-perror test-perror2
gl_PHYSMEM
Makefile.am:
+lib_SOURCES += physmem.c
Include:
"physmem.h"
configure.ac:
gl_FUNC_PIPE
+if test $HAVE_PIPE = 0; then
+ AC_LIBOBJ([pipe])
+fi
gl_UNISTD_MODULE_INDICATOR([pipe])
Makefile.am:
configure.ac:
gl_FUNC_POLL
+if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then
+ AC_LIBOBJ([poll])
+ gl_PREREQ_POLL
+fi
gl_POLL_MODULE_INDICATOR([poll])
Makefile.am:
m4/poll_h.m4
Depends-on:
-c++defs
extensions
include_next
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_POLL_H
poll.h: poll.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_POLL_H''@|$(HAVE_POLL_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_POLL_H''@|$(HAVE_POLL_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_POLL_H''@|$(NEXT_POLL_H)|g' \
- -e 's|@''GNULIB_POLL''@|$(GNULIB_POLL)|g' \
+ -e 's/@''GNULIB_POLL''@/$(GNULIB_POLL)/g' \
-e 's|@''HAVE_POLL''@|$(HAVE_POLL)|g' \
-e 's|@''REPLACE_POLL''@|$(REPLACE_POLL)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
configure.ac:
gl_FUNC_POPEN
+if test $REPLACE_POPEN = 1; then
+ AC_LIBOBJ([popen])
+ gl_PREREQ_POPEN
+fi
gl_STDIO_MODULE_INDICATOR([popen])
Makefile.am:
lib/stdio--.h
lib/stdio-safer.h
lib/popen-safer.c
-m4/stdio-safer.m4
Depends-on:
cloexec
unistd-safer
configure.ac:
-gl_POPEN_SAFER
gl_MODULE_INDICATOR([popen-safer])
Makefile.am:
+lib_SOURCES += popen-safer.c
Include:
"stdio-safer.h"
gl_POSIX_SPAWN
if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then
AC_LIBOBJ([spawn])
- gl_POSIX_SPAWN_INTERNAL
+ AC_LIBOBJ([spawni])
+ gl_PREREQ_POSIX_SPAWN_INTERNAL
fi
gl_SPAWN_MODULE_INDICATOR([posix_spawn])
gl_POSIX_SPAWN
if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then
AC_LIBOBJ([spawnp])
- gl_POSIX_SPAWN_INTERNAL
+ AC_LIBOBJ([spawni])
+ gl_PREREQ_POSIX_SPAWN_INTERNAL
fi
gl_SPAWN_MODULE_INDICATOR([posix_spawnp])
gl_POSIXTM
Makefile.am:
+lib_SOURCES += posixtm.c
Include:
"posixtm.h"
gl_POSIXVER
Makefile.am:
+lib_SOURCES += posixver.c
Include:
"posixver.h"
Depends-on:
unistd
extensions
+largefile
lseek [test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1]
read [test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1]
configure.ac:
gl_FUNC_PREAD
+if test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1; then
+ AC_LIBOBJ([pread])
+fi
gl_UNISTD_MODULE_INDICATOR([pread])
Makefile.am:
--- /dev/null
+Description:
+pselect() function: synchronous I/O multiplexing.
+
+Files:
+lib/pselect.c
+m4/pselect.m4
+
+Depends-on:
+sys_select
+pthread_sigmask [test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1]
+select [test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1]
+
+configure.ac:
+gl_FUNC_PSELECT
+if test $HAVE_PSELECT = 0 || test $REPLACE_PSELECT = 1; then
+ AC_LIBOBJ([pselect])
+fi
+gl_SYS_SELECT_MODULE_INDICATOR([pselect])
+
+Makefile.am:
+
+Include:
+<sys/select.h>
+
+Link:
+$(LIBSOCKET) $(LIB_PTHREAD_SIGMASK)
+
+License:
+LGPLv2+
+
+Maintainer:
+Paul Eggert, Bruno Haible, Jim Meyering
--- /dev/null
+Files:
+tests/test-pselect.c
+tests/test-select.h
+tests/macros.h
+tests/signature.h
+
+Depends-on:
+stdbool
+netinet_in
+arpa_inet
+unistd
+sys_ioctl
+extensions
+inet_pton
+errno
+perror
+pipe-posix
+socket
+bind
+setsockopt
+listen
+connect
+accept
+ioctl
+close
+
+configure.ac:
+AC_CHECK_HEADERS_ONCE([sys/wait.h])
+
+Makefile.am:
+TESTS += test-pselect
+check_PROGRAMS += test-pselect
+test_pselect_LDADD = $(LDADD) @LIBSOCKET@ @LIB_PTHREAD_SIGMASK@ $(INET_PTON_LIB)
pthread.h: pthread.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_PTHREAD_H''@|$(HAVE_PTHREAD_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_PTHREAD_H''@|$(HAVE_PTHREAD_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
--- /dev/null
+Description:
+POSIX compatible signal blocking for threads.
+
+Files:
+lib/pthread_sigmask.c
+m4/pthread_sigmask.m4
+
+Depends-on:
+signal
+threadlib
+sigprocmask [test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1]
+
+configure.ac:
+gl_FUNC_PTHREAD_SIGMASK
+if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then
+ AC_LIBOBJ([pthread_sigmask])
+ gl_PREREQ_PTHREAD_SIGMASK
+fi
+gl_SIGNAL_MODULE_INDICATOR([pthread_sigmask])
+
+Makefile.am:
+
+Include:
+<signal.h>
+
+Link:
+$(LIB_PTHREAD_SIGMASK)
+
+License:
+LGPLv2+
+
+Maintainer:
+Paul Eggert, Bruno Haible, Jim Meyering
--- /dev/null
+Files:
+tests/test-pthread_sigmask1.c
+tests/test-pthread_sigmask2.c
+tests/signature.h
+tests/macros.h
+
+Depends-on:
+sleep
+thread
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pthread_sigmask1 test-pthread_sigmask2
+check_PROGRAMS += test-pthread_sigmask1 test-pthread_sigmask2
+test_pthread_sigmask1_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@
+test_pthread_sigmask2_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ @LIBMULTITHREAD@
configure.ac:
gl_FUNC_PTSNAME
+if test $HAVE_PTSNAME = 0; then
+ AC_LIBOBJ([ptsname])
+ gl_PREREQ_PTSNAME
+fi
gl_STDLIB_MODULE_INDICATOR([ptsname])
Makefile.am:
m4/pty_h.m4
Depends-on:
-c++defs
include_next
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_PTY_H
pty.h: pty.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_PTY_H''@|$(HAVE_PTY_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_PTY_H''@|$(HAVE_PTY_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_PTY_H''@|$(NEXT_PTY_H)|g' \
- -e 's|@''GNULIB_FORKPTY''@|$(GNULIB_FORKPTY)|g' \
- -e 's|@''GNULIB_OPENPTY''@|$(GNULIB_OPENPTY)|g' \
+ -e 's/@''GNULIB_FORKPTY''@/$(GNULIB_FORKPTY)/g' \
+ -e 's/@''GNULIB_OPENPTY''@/$(GNULIB_OPENPTY)/g' \
-e 's|@''HAVE_UTIL_H''@|$(HAVE_UTIL_H)|g' \
-e 's|@''HAVE_LIBUTIL_H''@|$(HAVE_LIBUTIL_H)|g' \
-e 's|@''HAVE_FORKPTY''@|$(HAVE_FORKPTY)|g' \
configure.ac:
gl_FUNC_PUTENV
+if test $REPLACE_PUTENV = 1; then
+ AC_LIBOBJ([putenv])
+fi
gl_STDLIB_MODULE_INDICATOR([putenv])
Makefile.am:
Depends-on:
unistd
extensions
+largefile
lseek [test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1]
write [test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1]
configure.ac:
gl_FUNC_PWRITE
+if test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1; then
+ AC_LIBOBJ([pwrite])
+fi
gl_UNISTD_MODULE_INDICATOR([pwrite])
Makefile.am:
gl_QUOTE
Makefile.am:
+lib_SOURCES += quote.c
Include:
"quote.h"
gl_QUOTEARG
Makefile.am:
+lib_SOURCES += quotearg.c
Include:
"quotearg.h"
configure.ac:
gl_FUNC_RANDOM_R
+if test $HAVE_RANDOM_R = 0; then
+ AC_LIBOBJ([random_r])
+ gl_PREREQ_RANDOM_R
+fi
gl_STDLIB_MODULE_INDICATOR([random_r])
Makefile.am:
configure.ac:
gl_FUNC_RAWMEMCHR
+if test $HAVE_RAWMEMCHR = 0; then
+ AC_LIBOBJ([rawmemchr])
+ gl_PREREQ_RAWMEMCHR
+fi
gl_STRING_MODULE_INDICATOR([rawmemchr])
Makefile.am:
configure.ac:
gl_FUNC_READ
+if test $REPLACE_READ = 1; then
+ AC_LIBOBJ([read])
+fi
gl_UNISTD_MODULE_INDICATOR([read])
Makefile.am:
sys_stat
configure.ac:
-gl_FUNC_READ_FILE
+gl_PREREQ_READ_FILE
Makefile.am:
+lib_SOURCES += read-file.c
Include:
"read-file.h"
configure.ac:
gl_FUNC_READLINE
+if test "$gl_cv_lib_readline" = no; then
+ AC_LIBOBJ([readline])
+ gl_PREREQ_READLINE
+fi
Makefile.am:
configure.ac:
gl_FUNC_READLINK
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+ AC_LIBOBJ([readlink])
+ gl_PREREQ_READLINK
+fi
gl_UNISTD_MODULE_INDICATOR([readlink])
Makefile.am:
configure.ac:
gl_FUNC_READLINKAT
+if test $HAVE_READLINKAT = 0; then
+ AC_LIBOBJ([readlinkat])
+fi
gl_UNISTD_MODULE_INDICATOR([readlinkat])
Makefile.am:
gl_READTOKENS
Makefile.am:
+lib_SOURCES += readtokens.c
Include:
"readtokens.h"
configure.ac:
gl_READUTMP
+if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
+ AC_LIBOBJ([readutmp])
+fi
Makefile.am:
configure.ac:
gl_FUNC_REALLOC_GNU
+if test $REPLACE_REALLOC = 1; then
+ AC_LIBOBJ([realloc])
+fi
gl_MODULE_INDICATOR([realloc-gnu])
Makefile.am:
configure.ac:
gl_FUNC_REALLOC_POSIX
+if test $REPLACE_REALLOC = 1; then
+ AC_LIBOBJ([realloc])
+fi
gl_STDLIB_MODULE_INDICATOR([realloc-posix])
Makefile.am:
nl_langinfo [test $ac_use_included_regex = yes]
stdbool [test $ac_use_included_regex = yes]
stdint [test $ac_use_included_regex = yes]
+strcase [test $ac_use_included_regex = yes]
wchar [test $ac_use_included_regex = yes]
wcrtomb [test $ac_use_included_regex = yes]
wctype-h [test $ac_use_included_regex = yes]
configure.ac:
gl_REGEX
+if test $ac_use_included_regex = yes; then
+ AC_LIBOBJ([regex])
+ gl_PREREQ_REGEX
+fi
Makefile.am:
configure.ac:
gl_RELOCATABLE_LIBRARY
+if test $RELOCATABLE = yes; then
+ AC_LIBOBJ([relocatable])
+fi
Makefile.am:
configure.ac:
gl_RELOCATABLE([$gl_source_base])
+if test $RELOCATABLE = yes; then
+ AC_LIBOBJ([progreloc])
+ AC_LIBOBJ([relocatable])
+fi
Makefile.am:
DEFS += -DEXEEXT=\"@EXEEXT@\"
lib/relocatable.h
lib/relocatable.c
lib/setenv.c
-lib/strerror.c
lib/c-ctype.h
lib/c-ctype.c
m4/malloca.m4
m4/readlink.m4
m4/relocatable-lib.m4
m4/setenv.m4
-m4/strerror.m4
Depends-on:
alloca-opt
gl_FUNC_READLINK_SEPARATE
gl_CANONICALIZE_LGPL_SEPARATE
gl_MALLOCA
-gl_RELOCATABLE_LIBRARY_SEPARATE
+gl_RELOCATABLE_LIBRARY
gl_FUNC_SETENV_SEPARATE
-gl_FUNC_STRERROR_SEPARATE
Makefile.am:
configure.ac:
gl_FUNC_REMOVE
+if test $REPLACE_REMOVE = 1; then
+ AC_LIBOBJ([remove])
+fi
gl_STDIO_MODULE_INDICATOR([remove])
Makefile.am:
configure.ac:
gl_FUNC_RENAME
+if test $REPLACE_RENAME = 1; then
+ AC_LIBOBJ([rename])
+fi
gl_STDIO_MODULE_INDICATOR([rename])
Makefile.am:
configure.ac:
gl_FUNC_RENAMEAT
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+ AC_LIBOBJ([renameat])
+ AC_LIBOBJ([at-func2])
+fi
gl_STDIO_MODULE_INDICATOR([renameat])
Makefile.am:
ignore-value
filenamecat
getcwd-lgpl
-progname
configure.ac:
configure.ac:
gl_FUNC_RMDIR
+if test $REPLACE_RMDIR = 1; then
+ AC_LIBOBJ([rmdir])
+fi
gl_UNISTD_MODULE_INDICATOR([rmdir])
Makefile.am:
configure.ac:
gl_FUNC_ROUND
+if test $HAVE_DECL_ROUND = 0 || test $REPLACE_ROUND = 1; then
+ AC_LIBOBJ([round])
+fi
gl_MATH_MODULE_INDICATOR([round])
Makefile.am:
Depends-on:
round
+floor-ieee [test $HAVE_DECL_ROUND = 0 || test $REPLACE_ROUND = 1]
+ceil-ieee [test $HAVE_DECL_ROUND = 0 || test $REPLACE_ROUND = 1]
configure.ac:
gl_FUNC_ROUND_IEEE
configure.ac:
gl_FUNC_ROUNDF
+if test $HAVE_DECL_ROUNDF = 0 || test $REPLACE_ROUNDF = 1; then
+ AC_LIBOBJ([roundf])
+fi
gl_MATH_MODULE_INDICATOR([roundf])
Makefile.am:
Depends-on:
roundf
+floorf-ieee [test $HAVE_DECL_ROUNDF = 0 || test $REPLACE_ROUNDF = 1]
+ceilf-ieee [test $HAVE_DECL_ROUNDF = 0 || test $REPLACE_ROUNDF = 1]
configure.ac:
gl_FUNC_ROUNDF_IEEE
configure.ac:
gl_FUNC_ROUNDL
+if test $HAVE_DECL_ROUNDL = 0 || test $REPLACE_ROUNDL = 1; then
+ AC_LIBOBJ([roundl])
+fi
gl_MATH_MODULE_INDICATOR([roundl])
Makefile.am:
configure.ac:
gl_FUNC_RPMATCH
+if test $HAVE_RPMATCH = 0; then
+ AC_LIBOBJ([rpmatch])
+ gl_PREREQ_RPMATCH
+fi
gl_STDLIB_MODULE_INDICATOR([rpmatch])
Makefile.am:
gl_SAFE_ALLOC
Makefile.am:
+lib_SOURCES += safe-alloc.c
Include:
"safe-alloc.h"
ssize_t
configure.ac:
-gl_SAFE_READ
+gl_PREREQ_SAFE_READ
Makefile.am:
+lib_SOURCES += safe-read.c
Include:
"safe-read.h"
write
configure.ac:
-gl_SAFE_WRITE
+gl_PREREQ_SAFE_WRITE
Makefile.am:
+lib_SOURCES += safe-write.c
Include:
"safe-write.h"
gl_SAME
Makefile.am:
+lib_SOURCES += same.c
Include:
"same.h"
gl_SAVE_CWD
Makefile.am:
+lib_SOURCES += save-cwd.c
Include:
"save-cwd.h"
gl_SAVEDIR
Makefile.am:
+lib_SOURCES += savedir.c
Include:
"savedir.h"
Depends-on:
dirent
extensions
+largefile
configure.ac:
gl_FUNC_SCANDIR
+if test $HAVE_SCANDIR = 0; then
+ AC_LIBOBJ([scandir])
+ gl_PREREQ_SCANDIR
+fi
gl_DIRENT_MODULE_INDICATOR([scandir])
Makefile.am:
sched.h: sched.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
m4/search_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_SEARCH_H
search.h: search.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''HAVE_SEARCH_H''@|$(HAVE_SEARCH_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_SEARCH_H''@|$(HAVE_SEARCH_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SEARCH_H''@|$(NEXT_SEARCH_H)|g' \
- -e 's|@''GNULIB_TSEARCH''@|$(GNULIB_TSEARCH)|g' \
+ -e 's/@''GNULIB_TSEARCH''@/$(GNULIB_TSEARCH)/g' \
-e 's|@''HAVE_TSEARCH''@|$(HAVE_TSEARCH)|g' \
-e 's|@''REPLACE_TSEARCH''@|$(REPLACE_TSEARCH)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
Depends-on:
sys_select
-alloca [test "$ac_cv_header_winsock2_h" = yes || test $REPLACE_SELECT = 1]
-sockets [test "$ac_cv_header_winsock2_h" = yes || test $REPLACE_SELECT = 1]
+alloca [test $REPLACE_SELECT = 1]
+sockets [test $REPLACE_SELECT = 1]
configure.ac:
gl_FUNC_SELECT
+if test $REPLACE_SELECT = 1; then
+ AC_LIBOBJ([select])
+fi
gl_SYS_SELECT_MODULE_INDICATOR([select])
Makefile.am:
tests/macros.h
tests/signature.h
tests/test-select.c
+tests/test-select.h
tests/test-select-fd.c
tests/test-select-in.sh
tests/test-select-out.sh
Depends-on:
errno
-unused-parameter
+snippet/unused-parameter
configure.ac:
gl_HEADERS_SELINUX_SELINUX_H
gl_HEADERS_SELINUX_CONTEXT_H
AC_REQUIRE([AC_C_INLINE])
+if test "$with_selinux" != no && test "$ac_cv_header_selinux_selinux_h" = yes; then
+ AC_LIBOBJ([getfilecon])
+fi
Makefile.am:
lib_SOURCES += se-context.in.h se-selinux.in.h
$(AM_V_at)$(MKDIR_P) selinux
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SELINUX_SELINUX_H''@|$(NEXT_SELINUX_SELINUX_H)|g' \
configure.ac:
gl_FUNC_SETENV
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+ AC_LIBOBJ([setenv])
+fi
gl_STDLIB_MODULE_INDICATOR([setenv])
Makefile.am:
configure.ac:
gl_FUNC_SETLOCALE
+if test $REPLACE_SETLOCALE = 1; then
+ AC_LIBOBJ([setlocale])
+ gl_PREREQ_SETLOCALE
+fi
gl_LOCALE_MODULE_INDICATOR([setlocale])
Makefile.am:
gl_SETTIME
Makefile.am:
+lib_SOURCES += settime.c
Include:
"timespec.h"
configure.ac:
gl_FUNC_SIG2STR
+if test $ac_cv_func_sig2str = no; then
+ AC_LIBOBJ([sig2str])
+ gl_PREREQ_SIG2STR
+fi
Makefile.am:
configure.ac:
gl_SIGACTION
+if test $HAVE_SIGACTION = 0; then
+ AC_LIBOBJ([sigaction])
+ gl_PREREQ_SIGACTION
+fi
gl_SIGNAL_MODULE_INDICATOR([sigaction])
Makefile.am:
m4/signal_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
extensions
configure.ac:
signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
- -e 's|@''GNULIB_SIGNAL_H_SIGPIPE''@|$(GNULIB_SIGNAL_H_SIGPIPE)|g' \
- -e 's|@''GNULIB_SIGPROCMASK''@|$(GNULIB_SIGPROCMASK)|g' \
- -e 's|@''GNULIB_SIGACTION''@|$(GNULIB_SIGACTION)|g' \
+ -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
+ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
+ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
-e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
+ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
-e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
-e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
-e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
-e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
-e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
-e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
+ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
TESTS += test-signal-c++
check_PROGRAMS += test-signal-c++
test_signal_c___SOURCES = test-signal-c++.cc test-signal-c++2.cc
-test_signal_c___LDADD = $(LDADD) $(LIBINTL) $(LIB_NANOSLEEP)
+test_signal_c___LDADD = $(LDADD) $(LIBINTL) $(LIB_NANOSLEEP) $(LIB_PTHREAD_SIGMASK)
endif
configure.ac:
gl_SIGNBIT
+if test $REPLACE_SIGNBIT = 1; then
+ AC_LIBOBJ([signbitf])
+ AC_LIBOBJ([signbitd])
+ AC_LIBOBJ([signbitl])
+fi
gl_MATH_MODULE_INDICATOR([signbit])
Makefile.am:
configure.ac:
gl_SIGNALBLOCKING
+if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
+ AC_LIBOBJ([sigprocmask])
+ gl_PREREQ_SIGPROCMASK
+fi
gl_SIGNAL_MODULE_INDICATOR([sigprocmask])
Makefile.am:
--- /dev/null
+Files:
+tests/test-sigprocmask.c
+tests/signature.h
+tests/macros.h
+
+Depends-on:
+sleep
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-sigprocmask
+check_PROGRAMS += test-sigprocmask
configure.ac:
gl_FUNC_SINL
+if test $HAVE_SINL = 0; then
+ AC_LIBOBJ([sinl])
+ AC_LIBOBJ([sincosl])
+ AC_LIBOBJ([trigl])
+fi
gl_MATH_MODULE_INDICATOR([sinl])
Makefile.am:
configure.ac:
gl_FUNC_SLEEP
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+ AC_LIBOBJ([sleep])
+fi
gl_UNISTD_MODULE_INDICATOR([sleep])
Makefile.am:
--- /dev/null
+Description:
+The _Noreturn keyword of C1X.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/_Noreturn.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+
+_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+all
--- /dev/null
+Description:
+A C macro for declaring that specific arguments must not be NULL.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/arg-nonnull.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += arg-nonnull.h
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/GL_ARG_NONNULL/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+ > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
+
+ARG_NONNULL_H=arg-nonnull.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
--- /dev/null
+Description:
+Function declaration macros with C++ support.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/c++defs.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += c++defs.h
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/_GL_CXXDEFS/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/c++defs.h \
+ > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += c++defs.h c++defs.h-t
+
+CXXDEFS_H=c++defs.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
--- /dev/null
+Description:
+A C macro for emitting link time warnings.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/link-warning.h
+
+Depends-on:
+
+configure.ac:
+AC_REQUIRE([gl_FEATURES_H])
+
+Makefile.am:
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += link-warning.h
+# The link-warning.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/link-warning.h, except that it has the copyright header cut
+# off.
+link-warning.h: $(top_srcdir)/build-aux/snippet/link-warning.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/HAVE_FEATURES_H/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/link-warning.h \
+ | sed -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
+ > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += link-warning.h link-warning.h-t
+
+LINK_WARNING_H=link-warning.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
--- /dev/null
+Description:
+A C macro for declaring that specific function parameters are not used.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/unused-parameter.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += unused-parameter.h
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+ > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
+
+UNUSED_PARAMETER_H=unused-parameter.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
--- /dev/null
+Description:
+A C macro for emitting a warning if a function is used.
+
+Applicability:
+all
+
+Files:
+build-aux/snippet/warn-on-use.h
+m4/warn-on-use.m4
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+BUILT_SOURCES += warn-on-use.h
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/^.ifndef/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+ > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
+
+WARN_ON_USE_H=warn-on-use.h
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake
m4/spawn_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
sched
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_SPAWN_H
spawn.h: spawn.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_SPAWN_H''@|$(HAVE_SPAWN_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_SPAWN_H''@|$(HAVE_SPAWN_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SPAWN_H''@|$(NEXT_SPAWN_H)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN''@|$(GNULIB_POSIX_SPAWN)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNP''@|$(GNULIB_POSIX_SPAWNP)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@|$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@|$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@|$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@|$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)|g' \
- -e 's|@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@|$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_INIT''@|$(GNULIB_POSIX_SPAWNATTR_INIT)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@|$(GNULIB_POSIX_SPAWNATTR_GETFLAGS)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@|$(GNULIB_POSIX_SPAWNATTR_SETFLAGS)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@|$(GNULIB_POSIX_SPAWNATTR_GETPGROUP)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@|$(GNULIB_POSIX_SPAWNATTR_SETPGROUP)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@|$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@|$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@|$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@|$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@|$(GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@|$(GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@|$(GNULIB_POSIX_SPAWNATTR_GETSIGMASK)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@|$(GNULIB_POSIX_SPAWNATTR_SETSIGMASK)|g' \
- -e 's|@''GNULIB_POSIX_SPAWNATTR_DESTROY''@|$(GNULIB_POSIX_SPAWNATTR_DESTROY)|g' \
+ -e 's/@''GNULIB_POSIX_SPAWN''@/$(GNULIB_POSIX_SPAWN)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNP''@/$(GNULIB_POSIX_SPAWNP)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_INIT''@/$(GNULIB_POSIX_SPAWNATTR_INIT)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_GETFLAGS)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_SETFLAGS)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_GETPGROUP)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_SETPGROUP)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGMASK)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGMASK)/g' \
+ -e 's/@''GNULIB_POSIX_SPAWNATTR_DESTROY''@/$(GNULIB_POSIX_SPAWNATTR_DESTROY)/g' \
-e 's|@''HAVE_POSIX_SPAWN''@|$(HAVE_POSIX_SPAWN)|g' \
-e 's|@''HAVE_POSIX_SPAWNATTR_T''@|$(HAVE_POSIX_SPAWNATTR_T)|g' \
-e 's|@''HAVE_POSIX_SPAWN_FILE_ACTIONS_T''@|$(HAVE_POSIX_SPAWN_FILE_ACTIONS_T)|g' \
Files:
tests/test-spawn-pipe.sh
-tests/test-spawn-pipe.c
+tests/test-spawn-pipe-main.c
+tests/test-spawn-pipe-child.c
tests/macros.h
Depends-on:
-progname
configure.ac:
Makefile.am:
TESTS += test-spawn-pipe.sh
-check_PROGRAMS += test-spawn-pipe
-test_spawn_pipe_LDADD = $(LDADD) @LIBINTL@
+check_PROGRAMS += test-spawn-pipe-main test-spawn-pipe-child
+test_spawn_pipe_main_LDADD = $(LDADD) @LIBINTL@
+# The test-spawn-pipe-child program must be a real executable, not a libtool
+# wrapper script, and should link against as few libraries as possible.
+# Therefore don't link it against any libraries other than -lc.
+test_spawn_pipe_child_LDADD =
configure.ac:
gl_FUNC_SQRTL
+if test $HAVE_SQRTL = 0; then
+ AC_LIBOBJ([sqrtl])
+fi
gl_MATH_MODULE_INDICATOR([sqrtl])
Makefile.am:
Depends-on:
sys_stat
+largefile
dosname [test $REPLACE_STAT = 1]
stdbool [test $REPLACE_STAT = 1]
+verify [test $REPLACE_STAT = 1]
configure.ac:
gl_FUNC_STAT
+if test $REPLACE_STAT = 1; then
+ AC_LIBOBJ([stat])
+ gl_PREREQ_STAT
+fi
gl_SYS_STAT_MODULE_INDICATOR([stat])
Makefile.am:
--- /dev/null
+Description:
+stat-related file size macros
+
+Files:
+lib/stat-size.h
+m4/stat-size.m4
+
+Depends-on:
+fileblocks
+sys_stat
+
+configure.ac:
+gl_STAT_SIZE
+
+Makefile.am:
+
+Include:
+"stat-size.h"
+
+License:
+GPL
+
+Maintainer:
+James Youngman, Jim Meyering
tests/macros.h
Depends-on:
-pathmax
+getcwd-lgpl
same-inode
stdbool
symlink
stdarg.h: stdarg.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
stddef.h: stddef.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
stdint.h: stdint.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
Depends-on:
include_next
-arg-nonnull
-c++defs
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
-warn-on-use
configure.ac:
gl_STDIO_H
stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
- -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \
- -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \
- -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \
- -e 's|@''GNULIB_FGETC''@|$(GNULIB_FGETC)|g' \
- -e 's|@''GNULIB_FGETS''@|$(GNULIB_FGETS)|g' \
- -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \
- -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \
- -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \
- -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \
- -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \
- -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \
- -e 's|@''GNULIB_FREAD''@|$(GNULIB_FREAD)|g' \
- -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \
- -e 's|@''GNULIB_FSCANF''@|$(GNULIB_FSCANF)|g' \
- -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \
- -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \
- -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \
- -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \
- -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \
- -e 's|@''GNULIB_GETC''@|$(GNULIB_GETC)|g' \
- -e 's|@''GNULIB_GETCHAR''@|$(GNULIB_GETCHAR)|g' \
- -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \
- -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \
- -e 's|@''GNULIB_GETS''@|$(GNULIB_GETS)|g' \
- -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \
- -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \
- -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \
- -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \
- -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \
- -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \
- -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \
- -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \
- -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \
- -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \
- -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \
- -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \
- -e 's|@''GNULIB_SCANF''@|$(GNULIB_SCANF)|g' \
- -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \
- -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \
- -e 's|@''GNULIB_STDIO_H_NONBLOCKING''@|$(GNULIB_STDIO_H_NONBLOCKING)|g' \
- -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \
- -e 's|@''GNULIB_TMPFILE''@|$(GNULIB_TMPFILE)|g' \
- -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \
- -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \
- -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \
- -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \
- -e 's|@''GNULIB_VFSCANF''@|$(GNULIB_VFSCANF)|g' \
- -e 's|@''GNULIB_VSCANF''@|$(GNULIB_VSCANF)|g' \
- -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \
- -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \
- -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \
- -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \
+ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+ -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
< $(srcdir)/stdio.in.h | \
sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
-e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
m4/stdlib_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
+snippet/_Noreturn
stddef
unistd
-warn-on-use
configure.ac:
gl_STDLIB_H
# We need the following in order to create <stdlib.h> when the system
# doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
+ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
- -e 's|@''GNULIB__EXIT''@|$(GNULIB__EXIT)|g' \
- -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
- -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
- -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \
- -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
- -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
- -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \
- -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
- -e 's|@''GNULIB_MBTOWC''@|$(GNULIB_MBTOWC)|g' \
- -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
- -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \
- -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \
- -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
- -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \
- -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \
- -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
- -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
- -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
- -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \
- -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
- -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
- -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
- -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
- -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
- -e 's|@''GNULIB_SYSTEM_POSIX''@|$(GNULIB_SYSTEM_POSIX)|g' \
- -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
- -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
- -e 's|@''GNULIB_WCTOMB''@|$(GNULIB_WCTOMB)|g' \
+ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
< $(srcdir)/stdlib.in.h | \
sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
-e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
-e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
-e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+ -e '/definition of _Noreturn/r $(_NORETURN_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
} > $@-t && \
lib/stdlib--.h
lib/stdlib-safer.h
lib/mkstemp-safer.c
-m4/stdlib-safer.m4
Depends-on:
fd-safer-flag
unistd-safer
configure.ac:
-gl_STDLIB_SAFER
Makefile.am:
+lib_SOURCES += mkstemp-safer.c
Include:
"stdlib-safer.h"
configure.ac:
gl_FUNC_STPCPY
+if test $HAVE_STPCPY = 0; then
+ AC_LIBOBJ([stpcpy])
+ gl_PREREQ_STPCPY
+fi
gl_STRING_MODULE_INDICATOR([stpcpy])
Makefile.am:
configure.ac:
gl_FUNC_STPNCPY
+if test $HAVE_STPNCPY = 0 || test $REPLACE_STPNCPY = 1; then
+ AC_LIBOBJ([stpncpy])
+ gl_PREREQ_STPNCPY
+fi
gl_STRING_MODULE_INDICATOR([stpncpy])
Makefile.am:
configure.ac:
gl_STRCASE
+if test $HAVE_STRCASECMP = 0; then
+ AC_LIBOBJ([strcasecmp])
+ gl_PREREQ_STRCASECMP
+fi
+if test $HAVE_STRNCASECMP = 0; then
+ AC_LIBOBJ([strncasecmp])
+ gl_PREREQ_STRNCASECMP
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRCASESTR
+if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then
+ AC_LIBOBJ([strcasestr])
+ gl_PREREQ_STRCASESTR
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRCASESTR_SIMPLE
+if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then
+ AC_LIBOBJ([strcasestr])
+ gl_PREREQ_STRCASESTR
+fi
gl_STRING_MODULE_INDICATOR([strcasestr])
Makefile.am:
configure.ac:
gl_FUNC_STRCHRNUL
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+ AC_LIBOBJ([strchrnul])
+ gl_PREREQ_STRCHRNUL
+fi
gl_STRING_MODULE_INDICATOR([strchrnul])
Makefile.am:
configure.ac:
gl_FUNC_STRCSPN
+if test $ac_cv_func_strcspn = no; then
+ AC_LIBOBJ([strcspn])
+ gl_PREREQ_STRCSPN
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRDUP
+if test $ac_cv_func_strdup = no; then
+ AC_LIBOBJ([strdup])
+ gl_PREREQ_STRDUP
+fi
gl_STRING_MODULE_INDICATOR([strdup])
Makefile.am:
configure.ac:
gl_FUNC_STRDUP_POSIX
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+ AC_LIBOBJ([strdup])
+ gl_PREREQ_STRDUP
+fi
gl_STRING_MODULE_INDICATOR([strdup])
Makefile.am:
Depends-on:
string
-errno [test $REPLACE_STRERROR = 1]
-intprops [test $REPLACE_STRERROR = 1]
+errno [test $REPLACE_STRERROR = 1]
+intprops [test $REPLACE_STRERROR = 1]
+strerror-override [test $REPLACE_STRERROR = 1]
+verify [test $REPLACE_STRERROR = 1]
configure.ac:
gl_FUNC_STRERROR
+if test $REPLACE_STRERROR = 1; then
+ AC_LIBOBJ([strerror])
+fi
+gl_MODULE_INDICATOR([strerror])
gl_STRING_MODULE_INDICATOR([strerror])
Makefile.am:
--- /dev/null
+Description:
+strerror_override() function: provide strings for gnulib-specific errno values
+
+Files:
+lib/strerror-override.h
+lib/strerror-override.c
+m4/sys_socket_h.m4
+m4/strerror.m4
+
+Depends-on:
+errno
+
+configure.ac:
+AC_REQUIRE([gl_HEADER_ERRNO_H])
+AC_REQUIRE([gl_FUNC_STRERROR_0])
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+ AC_LIBOBJ([strerror-override])
+ gl_PREREQ_SYS_H_WINSOCK2
+fi
+
+Makefile.am:
+
+Include:
+"strerror-override.h"
+
+License:
+LGPLv2+
+
+Maintainer:
+all
extensions
errno [test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1]
lock [test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1]
-strerror [test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1]
+strerror-override [test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1]
configure.ac:
gl_FUNC_STRERROR_R
+if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+ AC_LIBOBJ([strerror_r])
+ gl_PREREQ_STRERROR_R
+fi
gl_STRING_MODULE_INDICATOR([strerror_r])
Makefile.am:
gl_FUNC_GNU_STRFTIME
Makefile.am:
+lib_SOURCES += strftime.c
Include:
"strftime.h"
m4/string_h.m4
Depends-on:
-arg-nonnull
-c++defs
extensions
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
-warn-on-use
configure.ac:
gl_HEADER_STRING_H
string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
- -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
- -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
- -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
- -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
- -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
- -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
- -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
- -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
- -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
- -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
- -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
- -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
- -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
- -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
- -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
- -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
- -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
- -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
- -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
- -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
- -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
- -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
- -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
- -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \
- -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
- -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
- -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
- -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
- -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
- -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
- -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
- -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
- -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \
- -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
- -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
< $(srcdir)/string.in.h | \
- sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
-e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
-e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
-e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
m4/strings_h.m4
Depends-on:
-arg-nonnull
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_HEADER_STRINGS_H
# We need the following in order to create <strings.h> when the system
# doesn't have one that works with the given compiler.
-strings.h: strings.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+ -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/strings.in.h; \
configure.ac:
gl_FUNC_STRNCAT
+if test $REPLACE_STRNCAT = 1; then
+ AC_LIBOBJ([strncat])
+ gl_PREREQ_STRNCAT
+fi
gl_STRING_MODULE_INDICATOR([strncat])
Makefile.am:
Depends-on:
string
extensions
-strnlen [test $ac_cv_func_strndup = no || test $REPLACE_STRNDUP = 1]
+strnlen [test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1]
configure.ac:
gl_FUNC_STRNDUP
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+ AC_LIBOBJ([strndup])
+fi
gl_STRING_MODULE_INDICATOR([strndup])
Makefile.am:
configure.ac:
gl_FUNC_STRNLEN
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+ AC_LIBOBJ([strnlen])
+ gl_PREREQ_STRNLEN
+fi
+
gl_STRING_MODULE_INDICATOR([strnlen])
Makefile.am:
configure.ac:
gl_FUNC_STRPBRK
+if test $HAVE_STRPBRK = 0; then
+ AC_LIBOBJ([strpbrk])
+ gl_PREREQ_STRPBRK
+fi
gl_STRING_MODULE_INDICATOR([strpbrk])
Makefile.am:
configure.ac:
gl_FUNC_STRPTIME
+if test $HAVE_STRPTIME = 0; then
+ AC_LIBOBJ([strptime])
+ gl_PREREQ_STRPTIME
+fi
gl_TIME_MODULE_INDICATOR([strptime])
Makefile.am:
configure.ac:
gl_FUNC_STRSEP
+if test $HAVE_STRSEP = 0; then
+ AC_LIBOBJ([strsep])
+ gl_PREREQ_STRSEP
+fi
gl_STRING_MODULE_INDICATOR([strsep])
Makefile.am:
Depends-on:
string
extensions
-gettext-h [test $ac_cv_func_strsignal = no || test $REPLACE_STRSIGNAL = 1]
-lock [test $ac_cv_func_strsignal = no || test $REPLACE_STRSIGNAL = 1]
-tls [test $ac_cv_func_strsignal = no || test $REPLACE_STRSIGNAL = 1]
-snprintf [test $ac_cv_func_strsignal = no || test $REPLACE_STRSIGNAL = 1]
-memset [test $ac_cv_func_strsignal = no || test $REPLACE_STRSIGNAL = 1]
+gettext-h [test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1]
+lock [test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1]
+tls [test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1]
+snprintf [test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1]
+memset [test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1]
configure.ac:
gl_FUNC_STRSIGNAL
+if test $HAVE_STRSIGNAL = 0 || test $REPLACE_STRSIGNAL = 1; then
+ AC_LIBOBJ([strsignal])
+ gl_PREREQ_STRSIGNAL
+fi
gl_STRING_MODULE_INDICATOR([strsignal])
Makefile.am:
configure.ac:
gl_FUNC_STRSTR
+if test $REPLACE_STRSTR = 1; then
+ AC_LIBOBJ([strstr])
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRSTR_SIMPLE
+if test $REPLACE_STRSTR = 1; then
+ AC_LIBOBJ([strstr])
+fi
gl_STRING_MODULE_INDICATOR([strstr])
Makefile.am:
configure.ac:
gl_FUNC_STRTOD
+if test $HAVE_STRTOD = 0 || test $REPLACE_STRTOD = 1; then
+ AC_LIBOBJ([strtod])
+ gl_PREREQ_STRTOD
+fi
gl_STDLIB_MODULE_INDICATOR([strtod])
Makefile.am:
configure.ac:
gl_FUNC_STRTOIMAX
+if test "$ac_cv_have_decl_strtoimax" != yes && test $ac_cv_func_strtoimax = no; then
+ AC_LIBOBJ([strtoimax])
+ gl_PREREQ_STRTOIMAX
+fi
gl_INTTYPES_MODULE_INDICATOR([strtoimax])
Makefile.am:
Depends-on:
string
-strpbrk [test $ac_cv_func_strtok_r = no]
+strpbrk [test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1]
configure.ac:
gl_FUNC_STRTOK_R
+if test $HAVE_STRTOK_R = 0 || test $REPLACE_STRTOK_R = 1; then
+ AC_LIBOBJ([strtok_r])
+ gl_PREREQ_STRTOK_R
+fi
gl_STRING_MODULE_INDICATOR([strtok_r])
Makefile.am:
configure.ac:
gl_FUNC_STRTOL
+if test $ac_cv_func_strtol = no; then
+ AC_LIBOBJ([strtol])
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRTOLL
+if test $HAVE_STRTOLL = 0; then
+ AC_LIBOBJ([strtoll])
+ gl_PREREQ_STRTOLL
+fi
gl_STDLIB_MODULE_INDICATOR([strtoll])
Makefile.am:
configure.ac:
gl_FUNC_STRTOUL
+if test $ac_cv_func_strtoul = no; then
+ AC_LIBOBJ([strtoul])
+fi
Makefile.am:
configure.ac:
gl_FUNC_STRTOULL
+if test $HAVE_STRTOULL = 0; then
+ AC_LIBOBJ([strtoull])
+ gl_PREREQ_STRTOULL
+fi
gl_STDLIB_MODULE_INDICATOR([strtoull])
Makefile.am:
configure.ac:
gl_FUNC_STRTOUMAX
+if test "$ac_cv_have_decl_strtoumax" != yes && test $ac_cv_func_strtoumax = no; then
+ AC_LIBOBJ([strtoumax])
+ gl_PREREQ_STRTOUMAX
+fi
gl_INTTYPES_MODULE_INDICATOR([strtoumax])
Makefile.am:
configure.ac:
gl_FUNC_STRVERSCMP
+if test $HAVE_STRVERSCMP = 0; then
+ AC_LIBOBJ([strverscmp])
+ gl_PREREQ_STRVERSCMP
+fi
gl_STRING_MODULE_INDICATOR([strverscmp])
Makefile.am:
configure.ac:
gl_FUNC_SYMLINK
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+ AC_LIBOBJ([symlink])
+fi
gl_UNISTD_MODULE_INDICATOR([symlink])
Makefile.am:
configure.ac:
gl_FUNC_SYMLINKAT
+if test $HAVE_SYMLINKAT = 0; then
+ AC_LIBOBJ([symlinkat])
+fi
gl_UNISTD_MODULE_INDICATOR([symlinkat])
Makefile.am:
Depends-on:
include_next
-warn-on-use
+snippet/warn-on-use
configure.ac:
gl_HEADER_SYS_FILE_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_SYS_FILE_H''@/$(HAVE_SYS_FILE_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_SYS_FILE_H''@/$(HAVE_SYS_FILE_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
Depends-on:
include_next
-c++defs
+snippet/c++defs
+snippet/warn-on-use
unistd
-warn-on-use
configure.ac:
gl_SYS_IOCTL_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \
- -e 's|@''GNULIB_IOCTL''@|$(GNULIB_IOCTL)|g' \
+ -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \
-e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \
-e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
-e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \
Files:
lib/sys_select.in.h
m4/sys_select_h.m4
+m4/sys_socket_h.m4
Depends-on:
include_next
-c++defs
-sys_socket
+signal
+snippet/c++defs
+snippet/warn-on-use
sys_time
-warn-on-use
configure.ac:
gl_HEADER_SYS_SELECT
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
-e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
- -e 's|@''GNULIB_SELECT''@|$(GNULIB_SELECT)|g' \
+ -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \
+ -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+ -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \
+ -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \
-e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
Files:
tests/test-sys_select.c
+tests/signature.h
Depends-on:
sys_select-c++-tests
Depends-on:
alignof
-arg-nonnull
-c++defs
errno
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
socklen
sys_uio
-warn-on-use
configure.ac:
gl_HEADER_SYS_SOCKET
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
-e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
- -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
- -e 's|@''GNULIB_SOCKET''@|$(GNULIB_SOCKET)|g' \
- -e 's|@''GNULIB_CONNECT''@|$(GNULIB_CONNECT)|g' \
- -e 's|@''GNULIB_ACCEPT''@|$(GNULIB_ACCEPT)|g' \
- -e 's|@''GNULIB_BIND''@|$(GNULIB_BIND)|g' \
- -e 's|@''GNULIB_GETPEERNAME''@|$(GNULIB_GETPEERNAME)|g' \
- -e 's|@''GNULIB_GETSOCKNAME''@|$(GNULIB_GETSOCKNAME)|g' \
- -e 's|@''GNULIB_GETSOCKOPT''@|$(GNULIB_GETSOCKOPT)|g' \
- -e 's|@''GNULIB_LISTEN''@|$(GNULIB_LISTEN)|g' \
- -e 's|@''GNULIB_RECV''@|$(GNULIB_RECV)|g' \
- -e 's|@''GNULIB_SEND''@|$(GNULIB_SEND)|g' \
- -e 's|@''GNULIB_RECVFROM''@|$(GNULIB_RECVFROM)|g' \
- -e 's|@''GNULIB_SENDTO''@|$(GNULIB_SENDTO)|g' \
- -e 's|@''GNULIB_SETSOCKOPT''@|$(GNULIB_SETSOCKOPT)|g' \
- -e 's|@''GNULIB_SHUTDOWN''@|$(GNULIB_SHUTDOWN)|g' \
- -e 's|@''GNULIB_ACCEPT4''@|$(GNULIB_ACCEPT4)|g' \
+ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+ -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \
+ -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \
+ -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \
+ -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \
+ -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \
+ -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \
+ -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \
+ -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \
+ -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \
+ -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \
+ -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \
+ -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \
+ -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \
+ -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \
+ -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
-e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
m4/unistd_h.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
time
-warn-on-use
configure.ac:
gl_HEADER_SYS_STAT_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
- -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \
- -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \
- -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \
- -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \
- -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \
- -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \
- -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \
- -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \
- -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \
- -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \
- -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \
- -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \
+ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \
+ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \
+ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \
+ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \
+ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \
+ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \
+ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \
+ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \
+ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \
+ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \
+ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \
-e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
-e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
-e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
Depends-on:
include_next
-arg-nonnull
-c++defs
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_HEADER_SYS_TIME_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
m4/sys_times_h.m4
Depends-on:
-arg-nonnull
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/warn-on-use
configure.ac:
gl_SYS_TIMES_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_SYS_TIMES_H''@/$(HAVE_SYS_TIMES_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_TIMES_H''@|$(NEXT_SYS_TIMES_H)|g' \
- -e 's|@''GNULIB_TIMES''@|$(GNULIB_TIMES)|g' \
+ -e 's/@''GNULIB_TIMES''@/$(GNULIB_TIMES)/g' \
-e 's|@''HAVE_STRUCT_TMS''@|$(HAVE_STRUCT_TMS)|g' \
-e 's|@''HAVE_TIMES''@|$(HAVE_TIMES)|g' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \
m4/sys_utsname_h.m4
Depends-on:
-arg-nonnull
include_next
-warn-on-use
+snippet/arg-nonnull
+snippet/warn-on-use
configure.ac:
gl_SYS_UTSNAME_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_SYS_UTSNAME_H''@/$(HAVE_SYS_UTSNAME_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_SYS_UTSNAME_H''@/$(HAVE_SYS_UTSNAME_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_UTSNAME_H''@|$(NEXT_SYS_UTSNAME_H)|g' \
- -e 's|@''GNULIB_UNAME''@|$(GNULIB_UNAME)|g' \
+ -e 's/@''GNULIB_UNAME''@/$(GNULIB_UNAME)/g' \
-e 's|@''HAVE_STRUCT_UTSNAME''@|$(HAVE_STRUCT_UTSNAME)|g' \
-e 's|@''HAVE_UNAME''@|$(HAVE_UNAME)|g' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
m4/sys_wait_h.m4
Depends-on:
-c++defs
include_next
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_SYS_WAIT_H
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \
- -e 's|@''GNULIB_WAITPID''@|$(GNULIB_WAITPID)|g' \
+ -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/sys_wait.in.h; \
sysexits.h: sysexits.in.h $(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
configure.ac:
gl_FUNC_TANL
+if test $HAVE_TANL = 0; then
+ AC_LIBOBJ([tanl])
+ AC_LIBOBJ([trigl])
+fi
gl_MATH_MODULE_INDICATOR([tanl])
Makefile.am:
Depends-on:
termios
extensions
-sys_ioctl [test $ac_cv_func_tcgetsid = no]
+sys_ioctl [test $HAVE_TCGETSID = 0]
configure.ac:
gl_FUNC_TCGETSID
+if test $HAVE_TCGETSID = 0; then
+ AC_LIBOBJ([tcgetsid])
+ gl_PREREQ_TCGETSID
+fi
gl_TERMIOS_MODULE_INDICATOR([tcgetsid])
Makefile.am:
gl_FUNC_GEN_TEMPNAME
Makefile.am:
+lib_SOURCES += tempname.c
Include:
"tempname.h"
Depends-on:
include_next
-c++defs
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_TERMIOS_H
termios.h: termios.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_TERMIOS_H''@|$(NEXT_TERMIOS_H)|g' \
- -e 's|@''GNULIB_TCGETSID''@|$(GNULIB_TCGETSID)|g' \
+ -e 's/@''GNULIB_TCGETSID''@/$(GNULIB_TCGETSID)/g' \
-e 's|@''HAVE_DECL_TCGETSID''@|$(HAVE_DECL_TCGETSID)|g' \
-e 's|@''HAVE_TERMIOS_H''@|$(HAVE_TERMIOS_H)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
--- /dev/null
+Files:
+tests/test-thread_self.c
+tests/test-thread_create.c
+tests/macros.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-thread_self test-thread_create
+check_PROGRAMS += test-thread_self test-thread_create
+test_thread_self_LDADD = $(LDADD) @LIBTHREAD@
+test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@
Depends-on:
extensions
include_next
-arg-nonnull
-c++defs
-warn-on-use
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
configure.ac:
time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
- -e 's|@''GNULIB_MKTIME''@|$(GNULIB_MKTIME)|g' \
- -e 's|@''GNULIB_NANOSLEEP''@|$(GNULIB_NANOSLEEP)|g' \
- -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \
- -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \
- -e 's|@''GNULIB_TIME_R''@|$(GNULIB_TIME_R)|g' \
+ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
+ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
+ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
+ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
+ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
-e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
-e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
-e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
configure.ac:
gl_TIME_R
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+ AC_LIBOBJ([time_r])
+ gl_PREREQ_TIME_R
+fi
gl_TIME_MODULE_INDICATOR([time_r])
Makefile.am:
m4/timegm.m4
Depends-on:
-mktime
time
-time_r
+mktime-internal [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1]
+time_r [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1]
configure.ac:
gl_FUNC_TIMEGM
+if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
+ AC_LIBOBJ([timegm])
+ gl_PREREQ_TIMEGM
+fi
gl_TIME_MODULE_INDICATOR([timegm])
Makefile.am:
--- /dev/null
+Description:
+Check for timer_settime. Within HAVE_TIMER_SETTIME one can
+assume timer_create, timer_delete and timer_gettime are available too.
+
+Files:
+m4/timer_time.m4
+
+Depends-on:
+extensions
+
+configure.ac:
+gl_TIMER_TIME
+
+Makefile.am:
+
+Include:
+<time.h>
+
+Link:
+$(LIB_TIMER_TIME)
+
+License:
+LGPLv2+
+
+Maintainer:
+Pádraig Brady, Paul Eggert, Jim Meyering
configure.ac:
gl_FUNC_TIMES
+if test $HAVE_TIMES = 0; then
+ AC_LIBOBJ([times])
+fi
gl_SYS_TIMES_MODULE_INDICATOR([times])
Makefile.am:
--- /dev/null
+Description:
+Add timespec values.
+
+Files:
+lib/timespec-add.c
+
+Depends-on:
+intprops
+timespec
+
+configure.ac:
+
+Makefile.am:
+lib_SOURCES += timespec-add.c
+
+Include:
+"timespec.h"
+
+Link:
+
+License:
+GPL
+
+Maintainer:
+Paul Eggert, Jim Meyering
--- /dev/null
+Description:
+Subtract timespec values.
+
+Files:
+lib/timespec-sub.c
+
+Depends-on:
+intprops
+timespec
+
+configure.ac:
+
+Makefile.am:
+lib_SOURCES += timespec-sub.c
+
+Include:
+"timespec.h"
+
+Link:
+
+License:
+GPL
+
+Maintainer:
+Paul Eggert, Jim Meyering
Depends-on:
stdbool
sys_stat
+pathmax
configure.ac:
gt_TMPDIR
Depends-on:
stdio
+largefile
pathmax [test $REPLACE_TMPFILE = 1]
tempname [test $REPLACE_TMPFILE = 1]
tmpdir [test $REPLACE_TMPFILE = 1]
configure.ac:
gl_FUNC_TMPFILE
+if test $REPLACE_TMPFILE = 1; then
+ AC_LIBOBJ([tmpfile])
+ gl_PREREQ_TMPFILE
+fi
gl_STDIO_MODULE_INDICATOR([tmpfile])
Makefile.am:
lib/stdio--.h
lib/stdio-safer.h
lib/tmpfile-safer.c
-m4/stdio-safer.m4
Depends-on:
binary-io
unistd-safer
configure.ac:
-gl_TMPFILE_SAFER
gl_MODULE_INDICATOR([tmpfile-safer])
Makefile.am:
+lib_SOURCES += tmpfile-safer.c
Include:
"stdio-safer.h"
configure.ac:
gl_FUNC_TOWCTRANS
+if test $HAVE_TOWCTRANS = 0; then
+ AC_LIBOBJ([towctrans])
+fi
gl_WCTYPE_MODULE_INDICATOR([towctrans])
Makefile.am:
configure.ac:
gl_FUNC_TRUNC
+if test $HAVE_DECL_TRUNC = 0 || test $REPLACE_TRUNC = 1; then
+ AC_LIBOBJ([trunc])
+fi
gl_MATH_MODULE_INDICATOR([trunc])
Makefile.am:
configure.ac:
gl_FUNC_TRUNCF
+if test $HAVE_DECL_TRUNCF = 0 || test $REPLACE_TRUNCF = 1; then
+ AC_LIBOBJ([truncf])
+fi
gl_MATH_MODULE_INDICATOR([truncf])
Makefile.am:
configure.ac:
gl_FUNC_TRUNCL
+if test $HAVE_DECL_TRUNCL = 0 || test $REPLACE_TRUNCL = 1; then
+ AC_LIBOBJ([truncl])
+fi
gl_MATH_MODULE_INDICATOR([truncl])
Makefile.am:
configure.ac:
gl_FUNC_TSEARCH
+if test $HAVE_TSEARCH = 0 || test $REPLACE_TSEARCH = 1; then
+ AC_LIBOBJ([tsearch])
+ gl_PREREQ_TSEARCH
+fi
gl_SEARCH_MODULE_INDICATOR([tsearch])
Makefile.am:
configure.ac:
gl_FUNC_TTYNAME_R
+if test $HAVE_TTYNAME_R = 0 || test $REPLACE_TTYNAME_R = 1; then
+ AC_LIBOBJ([ttyname_r])
+ gl_PREREQ_TTYNAME_R
+fi
gl_UNISTD_MODULE_INDICATOR([ttyname_r])
Makefile.am:
gettimeofday
configure.ac:
-gl_FUNC_TZSET_CLOBBER
+gl_FUNC_TZSET
Makefile.am:
configure.ac:
gl_FUNC_UNAME
+if test $HAVE_UNAME = 0; then
+ AC_LIBOBJ([uname])
+ gl_PREREQ_UNAME
+fi
gl_SYS_UTSNAME_MODULE_INDICATOR([uname])
Makefile.am:
stdbool
configure.ac:
-gl_LIBUNISTRING_LIBHEADER([0.9], [unictype.h])
+gl_LIBUNISTRING_LIBHEADER([0.9.4], [unictype.h])
Makefile.am:
BUILT_SOURCES += $(LIBUNISTRING_UNICTYPE_H)
lib/unistd.in.h
Depends-on:
-arg-nonnull
-c++defs
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
-warn-on-use
configure.ac:
gl_UNISTD_H
unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
- -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
- -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
- -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
- -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \
- -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
- -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
- -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \
- -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
- -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \
- -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
- -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
- -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
- -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
- -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
- -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \
- -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
- -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \
- -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
- -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
- -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
- -e 's|@''GNULIB_GROUP_MEMBER''@|$(GNULIB_GROUP_MEMBER)|g' \
- -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
- -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
- -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
- -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
- -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \
- -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
- -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
- -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \
- -e 's|@''GNULIB_READ''@|$(GNULIB_READ)|g' \
- -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
- -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
- -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
- -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
- -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \
- -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
- -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
- -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
- -e 's|@''GNULIB_UNISTD_H_NONBLOCKING''@|$(GNULIB_UNISTD_H_NONBLOCKING)|g' \
- -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
- -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
- -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
- -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \
- -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/$(GNULIB_UNISTD_H_GETOPT)/g' \
+ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
< $(srcdir)/unistd.in.h | \
sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
gl_UNISTD_SAFER
Makefile.am:
+lib_SOURCES += dup-safer.c fd-safer.c pipe-safer.c
Include:
"unistd-safer.h"
Depends-on:
unitypes
-unused-parameter
+snippet/unused-parameter
stdbool
inline
configure.ac:
gl_FUNC_UNLINK
+if test $REPLACE_UNLINK = 1; then
+ AC_LIBOBJ([unlink])
+fi
gl_UNISTD_MODULE_INDICATOR([unlink])
Makefile.am:
gl_UNLINKDIR
Makefile.am:
+lib_SOURCES += unlinkdir.c
Include:
"unlinkdir.h"
configure.ac:
gl_FUNC_UNLOCKPT
+if test $HAVE_UNLOCKPT = 0; then
+ AC_LIBOBJ([unlockpt])
+ gl_PREREQ_UNLOCKPT
+fi
gl_STDLIB_MODULE_INDICATOR([unlockpt])
Makefile.am:
Depends-on:
stdlib
-unistd [test $ac_cv_func_unsetenv = no || test $REPLACE_UNSETENV = 1]
-environ [test $ac_cv_func_unsetenv = no || test $REPLACE_UNSETENV = 1]
+unistd [test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1]
+environ [test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1]
configure.ac:
gl_FUNC_UNSETENV
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+ AC_LIBOBJ([unsetenv])
+ gl_PREREQ_UNSETENV
+fi
gl_STDLIB_MODULE_INDICATOR([unsetenv])
Makefile.am:
+++ /dev/null
-Description:
-A C macro for declaring that specific function parameters are not used.
-
-Applicability:
-all
-
-Files:
-build-aux/unused-parameter.h
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += unused-parameter.h
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/unused-parameter.h, except that it has the copyright header cut
-# off.
-unused-parameter.h: $(top_srcdir)/build-aux/unused-parameter.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
- < $(top_srcdir)/build-aux/unused-parameter.h \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
-
-UNUSED_PARAMETER_H=unused-parameter.h
-
-Include:
-
-License:
-LGPLv2+
-
-Maintainer:
-Bruno Haible
gl_USERSPEC
Makefile.am:
+lib_SOURCES += userspec.c
Include:
"userspec.h"
configure.ac:
gl_FUNC_USLEEP
+if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then
+ AC_LIBOBJ([usleep])
+fi
gl_UNISTD_MODULE_INDICATOR([usleep])
Makefile.am:
gl_UTIMECMP
Makefile.am:
+lib_SOURCES += utimecmp.c
Include:
"utimecmp.h"
gl_UTIMENS
Makefile.am:
+lib_SOURCES += utimens.c
Include:
"utimens.h"
Makefile.am:
TESTS += test-utimens
check_PROGRAMS += test-utimens
-test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
configure.ac:
gl_FUNC_UTIMENSAT
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+ AC_LIBOBJ([utimensat])
+fi
gl_SYS_STAT_MODULE_INDICATOR([utimensat])
Makefile.am:
Depends-on:
ignore-value
-progname
timespec
usleep
utimecmp
configure.ac:
gl_FUNC_WAITPID
+if test $HAVE_WAITPID = 0; then
+ AC_LIBOBJ([waitpid])
+fi
gl_SYS_WAIT_MODULE_INDICATOR([waitpid])
Makefile.am:
+++ /dev/null
-Description:
-A C macro for emitting a warning if a function is used.
-
-Applicability:
-all
-
-Files:
-build-aux/warn-on-use.h
-m4/warn-on-use.m4
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-BUILT_SOURCES += warn-on-use.h
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- sed -n -e '/^.ifndef/,$$p' \
- < $(top_srcdir)/build-aux/warn-on-use.h \
- > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
-
-WARN_ON_USE_H=warn-on-use.h
-
-Include:
-
-License:
-LGPLv2+
-
-Maintainer:
-Eric Blake
m4/wint_t.m4
Depends-on:
-arg-nonnull
-c++defs
include_next
+snippet/arg-nonnull
+snippet/c++defs
+snippet/warn-on-use
stddef
-warn-on-use
configure.ac:
gl_WCHAR_H
wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
-e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
-e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
- -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
- -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
- -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
- -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
- -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
- -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
- -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
- -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
- -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
- -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
- -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
- -e 's|@''GNULIB_WMEMCHR''@|$(GNULIB_WMEMCHR)|g' \
- -e 's|@''GNULIB_WMEMCMP''@|$(GNULIB_WMEMCMP)|g' \
- -e 's|@''GNULIB_WMEMCPY''@|$(GNULIB_WMEMCPY)|g' \
- -e 's|@''GNULIB_WMEMMOVE''@|$(GNULIB_WMEMMOVE)|g' \
- -e 's|@''GNULIB_WMEMSET''@|$(GNULIB_WMEMSET)|g' \
- -e 's|@''GNULIB_WCSLEN''@|$(GNULIB_WCSLEN)|g' \
- -e 's|@''GNULIB_WCSNLEN''@|$(GNULIB_WCSNLEN)|g' \
- -e 's|@''GNULIB_WCSCPY''@|$(GNULIB_WCSCPY)|g' \
- -e 's|@''GNULIB_WCPCPY''@|$(GNULIB_WCPCPY)|g' \
- -e 's|@''GNULIB_WCSNCPY''@|$(GNULIB_WCSNCPY)|g' \
- -e 's|@''GNULIB_WCPNCPY''@|$(GNULIB_WCPNCPY)|g' \
- -e 's|@''GNULIB_WCSCAT''@|$(GNULIB_WCSCAT)|g' \
- -e 's|@''GNULIB_WCSNCAT''@|$(GNULIB_WCSNCAT)|g' \
- -e 's|@''GNULIB_WCSCMP''@|$(GNULIB_WCSCMP)|g' \
- -e 's|@''GNULIB_WCSNCMP''@|$(GNULIB_WCSNCMP)|g' \
- -e 's|@''GNULIB_WCSCASECMP''@|$(GNULIB_WCSCASECMP)|g' \
- -e 's|@''GNULIB_WCSNCASECMP''@|$(GNULIB_WCSNCASECMP)|g' \
- -e 's|@''GNULIB_WCSCOLL''@|$(GNULIB_WCSCOLL)|g' \
- -e 's|@''GNULIB_WCSXFRM''@|$(GNULIB_WCSXFRM)|g' \
- -e 's|@''GNULIB_WCSDUP''@|$(GNULIB_WCSDUP)|g' \
- -e 's|@''GNULIB_WCSCHR''@|$(GNULIB_WCSCHR)|g' \
- -e 's|@''GNULIB_WCSRCHR''@|$(GNULIB_WCSRCHR)|g' \
- -e 's|@''GNULIB_WCSCSPN''@|$(GNULIB_WCSCSPN)|g' \
- -e 's|@''GNULIB_WCSSPN''@|$(GNULIB_WCSSPN)|g' \
- -e 's|@''GNULIB_WCSPBRK''@|$(GNULIB_WCSPBRK)|g' \
- -e 's|@''GNULIB_WCSSTR''@|$(GNULIB_WCSSTR)|g' \
- -e 's|@''GNULIB_WCSTOK''@|$(GNULIB_WCSTOK)|g' \
- -e 's|@''GNULIB_WCSWIDTH''@|$(GNULIB_WCSWIDTH)|g' \
+ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
< $(srcdir)/wchar.in.h | \
sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
-e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
configure.ac:
gl_FUNC_WCPCPY
+if test $HAVE_WCPCPY = 0; then
+ AC_LIBOBJ([wcpcpy])
+fi
gl_WCHAR_MODULE_INDICATOR([wcpcpy])
Makefile.am:
configure.ac:
gl_FUNC_WCPNCPY
+if test $HAVE_WCPNCPY = 0; then
+ AC_LIBOBJ([wcpncpy])
+fi
gl_WCHAR_MODULE_INDICATOR([wcpncpy])
Makefile.am:
configure.ac:
gl_FUNC_WCRTOMB
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+ AC_LIBOBJ([wcrtomb])
+ gl_PREREQ_WCRTOMB
+fi
gl_WCHAR_MODULE_INDICATOR([wcrtomb])
Makefile.am:
configure.ac:
gl_FUNC_WCSCASECMP
+if test $HAVE_WCSCASECMP = 0; then
+ AC_LIBOBJ([wcscasecmp])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscasecmp])
Makefile.am:
configure.ac:
gl_FUNC_WCSCAT
+if test $HAVE_WCSCAT = 0; then
+ AC_LIBOBJ([wcscat])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscat])
Makefile.am:
configure.ac:
gl_FUNC_WCSCHR
+if test $HAVE_WCSCHR = 0; then
+ AC_LIBOBJ([wcschr])
+fi
gl_WCHAR_MODULE_INDICATOR([wcschr])
Makefile.am:
configure.ac:
gl_FUNC_WCSCMP
+if test $HAVE_WCSCMP = 0; then
+ AC_LIBOBJ([wcscmp])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscmp])
Makefile.am:
configure.ac:
gl_FUNC_WCSCOLL
+if test $HAVE_WCSCOLL = 0; then
+ AC_LIBOBJ([wcscoll])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscoll])
Makefile.am:
configure.ac:
gl_FUNC_WCSCPY
+if test $HAVE_WCSCPY = 0; then
+ AC_LIBOBJ([wcscpy])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscpy])
Makefile.am:
configure.ac:
gl_FUNC_WCSCSPN
+if test $HAVE_WCSCSPN = 0; then
+ AC_LIBOBJ([wcscspn])
+fi
gl_WCHAR_MODULE_INDICATOR([wcscspn])
Makefile.am:
configure.ac:
gl_FUNC_WCSDUP
+if test $HAVE_WCSDUP = 0; then
+ AC_LIBOBJ([wcsdup])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsdup])
Makefile.am:
configure.ac:
gl_FUNC_WCSLEN
+if test $HAVE_WCSLEN = 0; then
+ AC_LIBOBJ([wcslen])
+fi
gl_WCHAR_MODULE_INDICATOR([wcslen])
Makefile.am:
configure.ac:
gl_FUNC_WCSNCASECMP
+if test $HAVE_WCSNCASECMP = 0; then
+ AC_LIBOBJ([wcsncasecmp])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsncasecmp])
Makefile.am:
configure.ac:
gl_FUNC_WCSNCAT
+if test $HAVE_WCSNCAT = 0; then
+ AC_LIBOBJ([wcsncat])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsncat])
Makefile.am:
configure.ac:
gl_FUNC_WCSNCMP
+if test $HAVE_WCSNCMP = 0; then
+ AC_LIBOBJ([wcsncmp])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsncmp])
Makefile.am:
configure.ac:
gl_FUNC_WCSNCPY
+if test $HAVE_WCSNCPY = 0; then
+ AC_LIBOBJ([wcsncpy])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsncpy])
Makefile.am:
configure.ac:
gl_FUNC_WCSNLEN
+if test $HAVE_WCSNLEN = 0; then
+ AC_LIBOBJ([wcsnlen])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsnlen])
Makefile.am:
configure.ac:
gl_FUNC_WCSNRTOMBS
+if test $HAVE_WCSNRTOMBS = 0 || test $REPLACE_WCSNRTOMBS = 1; then
+ AC_LIBOBJ([wcsnrtombs])
+ AC_LIBOBJ([wcsrtombs-state])
+ gl_PREREQ_WCSNRTOMBS
+fi
gl_WCHAR_MODULE_INDICATOR([wcsnrtombs])
Makefile.am:
configure.ac:
gl_FUNC_WCSPBRK
+if test $HAVE_WCSPBRK = 0; then
+ AC_LIBOBJ([wcspbrk])
+fi
gl_WCHAR_MODULE_INDICATOR([wcspbrk])
Makefile.am:
configure.ac:
gl_FUNC_WCSRCHR
+if test $HAVE_WCSRCHR = 0; then
+ AC_LIBOBJ([wcsrchr])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsrchr])
Makefile.am:
configure.ac:
gl_FUNC_WCSRTOMBS
+if test $HAVE_WCSRTOMBS = 0 || test $REPLACE_WCSRTOMBS = 1; then
+ AC_LIBOBJ([wcsrtombs])
+ AC_LIBOBJ([wcsrtombs-state])
+ gl_PREREQ_WCSRTOMBS
+fi
gl_WCHAR_MODULE_INDICATOR([wcsrtombs])
Makefile.am:
configure.ac:
gl_FUNC_WCSSPN
+if test $HAVE_WCSSPN = 0; then
+ AC_LIBOBJ([wcsspn])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsspn])
Makefile.am:
configure.ac:
gl_FUNC_WCSSTR
+if test $HAVE_WCSSTR = 0; then
+ AC_LIBOBJ([wcsstr])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsstr])
Makefile.am:
configure.ac:
gl_FUNC_WCSTOK
+if test $HAVE_WCSTOK = 0; then
+ AC_LIBOBJ([wcstok])
+fi
gl_WCHAR_MODULE_INDICATOR([wcstok])
Makefile.am:
configure.ac:
gl_FUNC_WCSWIDTH
+if test $HAVE_WCSWIDTH = 0 || test $REPLACE_WCSWIDTH = 1; then
+ AC_LIBOBJ([wcswidth])
+fi
gl_WCHAR_MODULE_INDICATOR([wcswidth])
Makefile.am:
configure.ac:
gl_FUNC_WCSXFRM
+if test $HAVE_WCSXFRM = 0; then
+ AC_LIBOBJ([wcsxfrm])
+fi
gl_WCHAR_MODULE_INDICATOR([wcsxfrm])
Makefile.am:
Depends-on:
wchar
-wctomb [test $ac_cv_func_wctob = no || test $REPLACE_WCTOB = 1]
+wctomb [test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1]
configure.ac:
gl_FUNC_WCTOB
+if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
+ AC_LIBOBJ([wctob])
+ gl_PREREQ_WCTOB
+fi
gl_WCHAR_MODULE_INDICATOR([wctob])
Makefile.am:
configure.ac:
gl_FUNC_WCTOMB
+if test $REPLACE_WCTOMB = 1; then
+ AC_LIBOBJ([wctomb])
+ gl_PREREQ_WCTOMB
+fi
gl_STDLIB_MODULE_INDICATOR([wctomb])
Makefile.am:
configure.ac:
gl_FUNC_WCTRANS
+if test $HAVE_WCTRANS = 0; then
+ AC_LIBOBJ([wctrans])
+fi
gl_WCTYPE_MODULE_INDICATOR([wctrans])
Makefile.am:
Depends-on:
wctype-h
-iswblank [test $HAVE_WCTYPE_T = 0]
+iswblank [test $HAVE_WCTYPE = 0]
configure.ac:
gl_FUNC_WCTYPE
+if test $HAVE_WCTYPE = 0; then
+ AC_LIBOBJ([wctype])
+fi
gl_WCTYPE_MODULE_INDICATOR([wctype])
Makefile.am:
Depends-on:
include_next
-c++defs
-warn-on-use
+snippet/c++defs
+snippet/warn-on-use
configure.ac:
gl_WCTYPE_H
wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
-e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
-e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/wctype.in.h; \
Depends-on:
wchar
extensions
-wctype-h [test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1]
-localcharset [test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1]
-streq [test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1]
-uniwidth/width [test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1]
+wctype-h [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1]
+localcharset [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1]
+streq [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1]
+uniwidth/width [test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1]
configure.ac:
gl_FUNC_WCWIDTH
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+ AC_LIBOBJ([wcwidth])
+fi
gl_WCHAR_MODULE_INDICATOR([wcwidth])
Makefile.am:
configure.ac:
gl_FUNC_WMEMCHR
+if test $HAVE_WMEMCHR = 0; then
+ AC_LIBOBJ([wmemchr])
+fi
gl_WCHAR_MODULE_INDICATOR([wmemchr])
Makefile.am:
configure.ac:
gl_FUNC_WMEMCMP
+if test $HAVE_WMEMCMP = 0; then
+ AC_LIBOBJ([wmemcmp])
+fi
gl_WCHAR_MODULE_INDICATOR([wmemcmp])
Makefile.am:
configure.ac:
gl_FUNC_WMEMCPY
+if test $HAVE_WMEMCPY = 0; then
+ AC_LIBOBJ([wmemcpy])
+fi
gl_WCHAR_MODULE_INDICATOR([wmemcpy])
Makefile.am:
configure.ac:
gl_FUNC_WMEMMOVE
+if test $HAVE_WMEMMOVE = 0; then
+ AC_LIBOBJ([wmemmove])
+fi
gl_WCHAR_MODULE_INDICATOR([wmemmove])
Makefile.am:
configure.ac:
gl_FUNC_WMEMSET
+if test $HAVE_WMEMSET = 0; then
+ AC_LIBOBJ([wmemset])
+fi
gl_WCHAR_MODULE_INDICATOR([wmemset])
Makefile.am:
configure.ac:
gl_FUNC_WRITE
+if test $REPLACE_WRITE = 1; then
+ AC_LIBOBJ([write])
+fi
gl_UNISTD_MODULE_INDICATOR([write])
Makefile.am:
gl_WRITE_ANY_FILE
Makefile.am:
+lib_SOURCES += write-any-file.c
Include:
"write-any-file.h"
gl_XALLOC
Makefile.am:
+lib_SOURCES += xmalloc.c
Include:
"xalloc.h"
gl_XGETCWD
Makefile.am:
+lib_SOURCES += xgetcwd.c
Include:
"xgetcwd.h"
m4/xnanosleep.m4
Depends-on:
+dtotimespec
nanosleep
time
-intprops
-stdbool
configure.ac:
gl_XNANOSLEEP
Makefile.am:
+lib_SOURCES += xnanosleep.c
Include:
"xnanosleep.h"
gl_XSTRTOD
Makefile.am:
+lib_SOURCES += xstrtod.c
Include:
"xstrtod.h"
gl_XSTRTOL
Makefile.am:
+lib_SOURCES += xstrtol.c xstrtoul.c xstrtol-error.c
Include:
"xstrtol.h"
gl_XSTRTOLD
Makefile.am:
+lib_SOURCES += xstrtold.c
Include:
"xstrtod.h"
gl_YESNO
Makefile.am:
+lib_SOURCES += yesno.c
Include:
"yesno.h"
Files:
+tests/init.sh
tests/test-yesno.c
tests/test-yesno.sh
# Print warnings (e.g., about skipped and failed tests) to this file number.
# Override by defining to say, 9, in init.cfg, and putting say,
-# "export ...ENVVAR_SETTINGS...; exec 9>&2; $(SHELL)" in the definition
-# of TESTS_ENVIRONMENT in your tests/Makefile.am file.
+# export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2
+# in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file.
# This is useful when using automake's parallel tests mode, to print
# the reason for skip/failure to console, rather than to the .log files.
: ${stderr_fileno_=2}
warn_ () { echo "$@" 1>&$stderr_fileno_; }
fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
+fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
# Sanitize this shell to POSIX mode, if possible.
*not* work for function parameters of array type, because they are actually
parameters of pointer type. */
#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* STREQ (str1, str2)
+ Return true if two strings compare equal. */
+#define STREQ(a, b) (strcmp (a, b) == 0)
#include <stdlib.h>
+/* But did he ever return? No he never returned,
+ And his fate is still unlearned ... */
+static _Noreturn void MTA (int);
+
+static _Noreturn void
+Charlie (int n)
+{
+ MTA (n - 1);
+}
+
+static void
+MTA (int n)
+{
+ if (n < 0)
+ _Exit (81);
+ Charlie (n - 1);
+}
+
int
-main ()
+main (int argc, char **argv)
{
- _Exit (81);
+ MTA (argc + !!argv);
}
thus must link with a definition of that function. Provide it here. */
#ifdef ARGMATCH_DIE_DECL
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
-
-ARGMATCH_DIE_DECL _GL_ATTRIBUTE_NORETURN;
+_Noreturn ARGMATCH_DIE_DECL;
ARGMATCH_DIE_DECL { exit (1); }
#endif
{
case ARGP_KEY_INIT:
for (i = 0; state->root_argp->children[i].argp; i++)
- state->child_inputs[i] = args;
+ state->child_inputs[i] = args;
break;
case 't':
void
test_optional (struct argp *argp, int argc, char **argv,
- struct test_args *args, const char *val, const char *a)
+ struct test_args *args, const char *val, const char *a)
{
int index;
if (argp_parse (argp, argc, argv, 0, &index, args))
if (!val)
{
if (args->optional)
- fail ("option processed incorrectly");
+ fail ("option processed incorrectly");
}
else if (strcmp (args->optional, val))
fail ("option processed incorrectly");
if (a)
{
if (index == argc)
- fail ("expected command line argument not found");
+ fail ("expected command line argument not found");
else if (strcmp (argv[index], a))
- fail ("expected command line argument does not match");
+ fail ("expected command line argument does not match");
}
}
ok = base64_decode_alloc_ctx (&ctx, "hp", 2, &p, &len);
ASSERT (ok);
- ASSERT (len == 2);
- /* Actually this looks buggy. Shouldn't output be 'ghi'? */
- ASSERT (memcmp (p, "gh", len) == 0);
+ ASSERT (len == 3);
+ ASSERT (memcmp (p, "ghi", len) == 0);
ok = base64_decode_alloc_ctx (&ctx, "", 0, &p, &len);
ASSERT (ok);
}
case $? in
77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then
- if test -z "$LIBSIGSEGV"; then
- echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2
- exit 77
- else
- echo 'cannot tell stack overflow from crash, in spite of libsigsegv' >&2
- exit 1
- fi
+ if test -z "$LIBSIGSEGV"; then
+ echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2
+ exit 77
+ else
+ echo 'cannot tell stack overflow from crash, in spite of libsigsegv' >&2
+ exit 1
+ fi
else
- cat t-c-stack2.tmp >&2
- exit 77
+ cat t-c-stack2.tmp >&2
+ exit 77
fi
;;
0) (exit 1); exit 1 ;;
#!/bin/sh
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
-tmpfiles=
-trap 'rm -fr $tmpfiles' 1 2 3 15
-
-p=t-closein-
-tmpfiles="${p}in.tmp ${p}xout.tmp ${p}out1.tmp ${p}out2.tmp"
-
-echo Hello world > ${p}in.tmp
-echo world > ${p}xout.tmp
+echo Hello world > in.tmp
+echo world > xout.tmp
+fail=0
# Test with seekable stdin; followon process must see remaining data
-(./test-closein${EXEEXT}; cat) < ${p}in.tmp > ${p}out1.tmp || exit 1
-cmp ${p}out1.tmp ${p}in.tmp || exit 1
+(test-closein; cat) < in.tmp > out1.tmp || fail=1
+cmp out1.tmp in.tmp || fail=1
-(./test-closein${EXEEXT} consume; cat) < ${p}in.tmp > ${p}out2.tmp || exit 1
-cmp ${p}out2.tmp ${p}xout.tmp || exit 1
+(test-closein consume; cat) < in.tmp > out2.tmp || fail=1
+cmp out2.tmp xout.tmp || fail=1
# Test for lack of error on pipe. Ignore any EPIPE failures from cat.
-cat ${p}in.tmp 2>/dev/null | ./test-closein${EXEEXT} || exit 1
+cat in.tmp 2>/dev/null | test-closein || fail=1
-cat ${p}in.tmp 2>/dev/null | ./test-closein${EXEEXT} consume || exit 1
+cat in.tmp 2>/dev/null | test-closein consume || fail=1
# Test for lack of error when nothing is read
-./test-closein${EXEEXT} </dev/null || exit 1
+test-closein </dev/null || fail=1
-./test-closein${EXEEXT} <&- || exit 1
+test-closein <&- || fail=1
# Test for no error when EOF is read early
-./test-closein${EXEEXT} consume </dev/null || exit 1
+test-closein consume </dev/null || fail=1
# Test for error when read fails because no file available
-./test-closein${EXEEXT} consume close <&- 2>/dev/null && exit 1
-
-# Cleanup
-rm -fr $tmpfiles
+test-closein consume close <&- 2>/dev/null && fail=1
-exit 0
+Exit $fail
# Classification of the platform according to the programs available for
# manipulating ACLs.
# Possible values are:
- # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none.
+ # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none.
# TODO: Support also native Win32 platforms (mingw).
acl_flavor=none
if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then
if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
- acl_flavor=hpux
+ if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
+ # HP-UX 11.11 or newer.
+ acl_flavor=hpuxjfs
+ else
+ # HP-UX 11.00.
+ acl_flavor=hpux
+ fi
else
if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
# Tru64, NonStop Kernel.
cmp tmpaclout1 tmpaclout2 > /dev/null
}
;;
+ hpuxjfs)
+ func_test_same_acls ()
+ {
+ { lsacl "$1" | sed -e "s/$1/FILENAME/g" > tmpaclout1
+ lsacl "$2" | sed -e "s/$2/FILENAME/g" > tmpaclout2
+ cmp tmpaclout1 tmpaclout2 > /dev/null
+ } &&
+ { getacl "$1" | sed -e "s/$1/FILENAME/g" > tmpaclout1
+ getacl "$2" | sed -e "s/$2/FILENAME/g" > tmpaclout2
+ cmp tmpaclout1 tmpaclout2 > /dev/null
+ }
+ }
+ ;;
osf1 | nsk)
func_test_same_acls ()
{
;;
+ hpuxjfs)
+
+ # Set an ACL for a user.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}($auid.%,--x)" tmpfile0 \
+ || setacl -m user:$auid:1 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile2
+
+ # Set an ACL for a group.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}(%.$agid,r--)" tmpfile0 \
+ || setacl -m group:$agid:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile3
+
+ # Set an ACL for other.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}(%.%,r--)" tmpfile0 \
+ || setacl -m other:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile4
+
+ # Remove the ACL for the user.
+ chacl -d "($auid.%,--x)" tmpfile0 \
+ || setacl -d user:$auid tmpfile0
+
+ func_test_copy tmpfile0 tmpfile5
+
+ # Remove the ACL for the group.
+ chacl -d "(%.$agid,r--)" tmpfile0 \
+ || setacl -d group:$agid tmpfile0
+
+ func_test_copy tmpfile0 tmpfile6
+
+ # Delete all optional ACLs.
+ chacl -z tmpfile0 \
+ || { setacl -m user:$auid:1 tmpfile0
+ setacl -s user::6,group::0,class:7,other:0 tmpfile0
+ }
+
+ func_test_copy tmpfile0 tmpfile8
+
+ # Copy ACLs from a file that has no ACLs.
+ echo > tmpfile9
+ chmod a+x tmpfile9
+ orig=`lsacl tmpfile9 | sed -e 's/ tmpfile9$//'`
+ getacl tmpfile9 > tmpaclout0
+ rm -f tmpfile9
+ chacl -r "${orig}" tmpfile0 \
+ || setacl -f tmpaclout0 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile9
+
+ ;;
+
osf1)
# Set an ACL for a user.
# Classification of the platform according to the programs available for
# manipulating ACLs.
# Possible values are:
- # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none.
+ # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none.
# TODO: Support also native Win32 platforms (mingw).
acl_flavor=none
if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then
if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
- acl_flavor=hpux
+ if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
+ # HP-UX 11.11 or newer.
+ acl_flavor=hpuxjfs
+ else
+ # HP-UX 11.00.
+ acl_flavor=hpux
+ fi
else
if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
# Tru64, NonStop Kernel.
cmp tmpaclout1 tmpaclout2 > /dev/null
}
;;
+ hpuxjfs)
+ func_test_same_acls ()
+ {
+ { lsacl "$1" | sed -e "s/$1/FILENAME/g" > tmpaclout1
+ lsacl "$2" | sed -e "s/$2/FILENAME/g" > tmpaclout2
+ cmp tmpaclout1 tmpaclout2 > /dev/null
+ } &&
+ { getacl "$1" | sed -e "s/$1/FILENAME/g" > tmpaclout1
+ getacl "$2" | sed -e "s/$2/FILENAME/g" > tmpaclout2
+ cmp tmpaclout1 tmpaclout2 > /dev/null
+ }
+ }
+ ;;
osf1 | nsk)
func_test_same_acls ()
{
;;
+ hpuxjfs)
+
+ # Set an ACL for a user.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}($auid.%,--x)" tmpfile0 \
+ || setacl -m user:$auid:1 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile2
+
+ # Set an ACL for a group.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}(%.$agid,r--)" tmpfile0 \
+ || setacl -m group:$agid:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile3
+
+ # Set an ACL for other.
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}(%.%,r--)" tmpfile0 \
+ || setacl -m other:4 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile4
+
+ # Remove the ACL for the user.
+ chacl -d "($auid.%,--x)" tmpfile0 \
+ || setacl -d user:$auid tmpfile0
+
+ func_test_copy tmpfile0 tmpfile5
+
+ # Remove the ACL for the group.
+ chacl -d "(%.$agid,r--)" tmpfile0 \
+ || setacl -d group:$agid tmpfile0
+
+ func_test_copy tmpfile0 tmpfile6
+
+ # Delete all optional ACLs.
+ chacl -z tmpfile0 \
+ || { setacl -m user:$auid:1 tmpfile0
+ setacl -s user::6,group::0,class:7,other:0 tmpfile0
+ }
+
+ func_test_copy tmpfile0 tmpfile8
+
+ # Copy ACLs from a file that has no ACLs.
+ echo > tmpfile9
+ chmod a+x tmpfile9
+ orig=`lsacl tmpfile9 | sed -e 's/ tmpfile9$//'`
+ getacl tmpfile9 > tmpaclout0
+ rm -f tmpfile9
+ chacl -r "${orig}" tmpfile0 \
+ || setacl -f tmpaclout0 tmpfile0
+
+ func_test_copy tmpfile0 tmpfile9
+
+ ;;
+
osf1)
# Set an ACL for a user.
thus must link with a definition of that function. Provide it here. */
#ifdef ARGMATCH_DIE_DECL
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
-# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# else
-# define _GL_ATTRIBUTE_NORETURN /* empty */
-# endif
-
-ARGMATCH_DIE_DECL _GL_ATTRIBUTE_NORETURN;
+_Noreturn ARGMATCH_DIE_DECL;
ARGMATCH_DIE_DECL { exit (1); }
#endif
#include "mgetgroups.h"
#include "openat.h"
+#include "progname.h"
#include "stat-time.h"
#include "ignore-value.h"
#include "macros.h"
}
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
int result1; /* Skip because of no chown/symlink support. */
int result2; /* Skip because of no lchown support. */
+ set_program_name (argv[0]);
+
/* Clean up any trash from prior testsuite runs. */
ignore_value (system ("rm -rf " BASE "*"));
#include <fcntl.h>
#include <unistd.h>
+#include "progname.h"
#include "macros.h"
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
DIR *d;
int fd;
+ set_program_name (argv[0]);
+
/* A non-directory cannot be turned into a directory stream. */
fd = open ("test-fdopendir.tmp", O_RDONLY | O_CREAT, 0600);
ASSERT (0 <= fd);
--- /dev/null
+/*
+ * Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake. */
+#include <config.h>
+
+#include <strings.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (ffs, int, (int));
+
+#include <limits.h>
+
+#include "macros.h"
+
+#define NBITS (sizeof (int) * CHAR_BIT)
+
+static int
+naive (int i)
+{
+ unsigned int j;
+ for (j = 0; j < NBITS; j++)
+ if (i & (1U << j))
+ return j + 1;
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ int x;
+ int i;
+
+ for (x = -128; x <= 128; x++)
+ ASSERT (ffs (x) == naive (x));
+ for (i = 0; i < NBITS; i++)
+ {
+ ASSERT (ffs (1U << i) == naive (1U << i));
+ ASSERT (ffs (1U << i) == i + 1);
+ ASSERT (ffs (-1U << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 1; i++)
+ {
+ ASSERT (ffs (3U << i) == i + 1);
+ ASSERT (ffs (-3U << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 2; i++)
+ {
+ ASSERT (ffs (5U << i) == i + 1);
+ ASSERT (ffs (-5U << i) == i + 1);
+ ASSERT (ffs (7U << i) == i + 1);
+ ASSERT (ffs (-7U << i) == i + 1);
+ }
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake. */
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (ffsl, int, (long int));
+
+#include <limits.h>
+
+#include "macros.h"
+
+#define NBITS (sizeof (long int) * CHAR_BIT)
+
+static int
+naive (long int i)
+{
+ unsigned long int j;
+ for (j = 0; j < NBITS; j++)
+ if (i & (1UL << j))
+ return j + 1;
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ long int x;
+ int i;
+
+ for (i = -128; i <= 128; i++)
+ ASSERT (ffsl (i) == naive (i));
+ for (i = 0; i < NBITS; i++)
+ {
+ ASSERT (ffsl (1UL << i) == naive (1UL << i));
+ ASSERT (ffsl (1UL << i) == i + 1);
+ ASSERT (ffsl (-1UL << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 1; i++)
+ {
+ ASSERT (ffsl (3UL << i) == i + 1);
+ ASSERT (ffsl (-3UL << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 2; i++)
+ {
+ ASSERT (ffsl (5UL << i) == i + 1);
+ ASSERT (ffsl (-5UL << i) == i + 1);
+ ASSERT (ffsl (7UL << i) == i + 1);
+ ASSERT (ffsl (-7UL << i) == i + 1);
+ }
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake. */
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (ffsll, int, (long long int));
+
+#include <limits.h>
+
+#include "macros.h"
+
+#define NBITS (sizeof (long long int) * CHAR_BIT)
+
+static int
+naive (long long int i)
+{
+ unsigned long long int j;
+ for (j = 0; j < NBITS; j++)
+ if (i & (1ULL << j))
+ return j + 1;
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ long long int x;
+ int i;
+
+ for (x = -128; x <= 128; x++)
+ ASSERT (ffsll (x) == naive (x));
+ for (i = 0; i < NBITS; i++)
+ {
+ ASSERT (ffsll (1ULL << i) == naive (1ULL << i));
+ ASSERT (ffsll (1ULL << i) == i + 1);
+ ASSERT (ffsll (-1ULL << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 1; i++)
+ {
+ ASSERT (ffsll (3ULL << i) == i + 1);
+ ASSERT (ffsll (-3ULL << i) == i + 1);
+ }
+ for (i = 0; i < NBITS - 2; i++)
+ {
+ ASSERT (ffsll (5ULL << i) == i + 1);
+ ASSERT (ffsll (-5ULL << i) == i + 1);
+ ASSERT (ffsll (7ULL << i) == i + 1);
+ ASSERT (ffsll (-7ULL << i) == i + 1);
+ }
+ return 0;
+}
# Classification of the platform according to the programs available for
# manipulating ACLs.
# Possible values are:
- # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none.
+ # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none.
# TODO: Support also native Win32 platforms (mingw).
acl_flavor=none
if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then
if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
- acl_flavor=hpux
+ if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
+ # HP-UX 11.11 or newer.
+ acl_flavor=hpuxjfs
+ else
+ # HP-UX 11.00.
+ acl_flavor=hpux
+ fi
else
if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
# Tru64, NonStop Kernel.
fi
;;
- hpux)
+ hpux | hpuxjfs)
# Set an ACL for a user.
orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
func_test_has_acl tmpfile0 no
+ else
+ if test $acl_flavor = hpuxjfs; then
+
+ # Set an ACL for a user.
+ setacl -m user:$auid:1 tmpfile0
+
+ func_test_has_acl tmpfile0 yes
+
+ # Remove the ACL for the user.
+ setacl -d user:$auid tmpfile0
+
+ func_test_has_acl tmpfile0 no
+
+ fi
fi
;;
--- /dev/null
+/* Test of <float.h> substitute.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include <float.h>
+
+#include "fpucw.h"
+#include "macros.h"
+
+/* Check that FLT_RADIX is a constant expression. */
+int a[] = { FLT_RADIX };
+
+#if FLT_RADIX == 2
+
+/* Return 2^n. */
+static float
+pow2f (int n)
+{
+ int k = n;
+ volatile float x = 1;
+ volatile float y = 2;
+ /* Invariant: 2^n == x * y^k. */
+ if (k < 0)
+ {
+ y = 0.5f;
+ k = - k;
+ }
+ while (k > 0)
+ {
+ if (k != 2 * (k / 2))
+ {
+ x = x * y;
+ k = k - 1;
+ }
+ if (k == 0)
+ break;
+ y = y * y;
+ k = k / 2;
+ }
+ /* Now k == 0, hence x == 2^n. */
+ return x;
+}
+
+/* Return 2^n. */
+static double
+pow2d (int n)
+{
+ int k = n;
+ volatile double x = 1;
+ volatile double y = 2;
+ /* Invariant: 2^n == x * y^k. */
+ if (k < 0)
+ {
+ y = 0.5;
+ k = - k;
+ }
+ while (k > 0)
+ {
+ if (k != 2 * (k / 2))
+ {
+ x = x * y;
+ k = k - 1;
+ }
+ if (k == 0)
+ break;
+ y = y * y;
+ k = k / 2;
+ }
+ /* Now k == 0, hence x == 2^n. */
+ return x;
+}
+
+/* Return 2^n. */
+static long double
+pow2l (int n)
+{
+ int k = n;
+ volatile long double x = 1;
+ volatile long double y = 2;
+ /* Invariant: 2^n == x * y^k. */
+ if (k < 0)
+ {
+ y = 0.5L;
+ k = - k;
+ }
+ while (k > 0)
+ {
+ if (k != 2 * (k / 2))
+ {
+ x = x * y;
+ k = k - 1;
+ }
+ if (k == 0)
+ break;
+ y = y * y;
+ k = k / 2;
+ }
+ /* Now k == 0, hence x == 2^n. */
+ return x;
+}
+
+/* ----------------------- Check macros for 'float' ----------------------- */
+
+/* Check that the FLT_* macros expand to constant expressions. */
+int fb[] =
+ {
+ FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP,
+ FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP
+ };
+float fc[] = { FLT_EPSILON, FLT_MIN, FLT_MAX };
+
+static void
+test_float (void)
+{
+ /* Check that the value of FLT_MIN_EXP is well parenthesized. */
+ ASSERT ((FLT_MIN_EXP % 101111) == (FLT_MIN_EXP) % 101111);
+
+ /* Check that the value of DBL_MIN_10_EXP is well parenthesized. */
+ ASSERT ((FLT_MIN_10_EXP % 101111) == (FLT_MIN_10_EXP) % 101111);
+
+ /* Check that 'float' is as specified in IEEE 754. */
+ ASSERT (FLT_MANT_DIG == 24);
+ ASSERT (FLT_MIN_EXP == -125);
+ ASSERT (FLT_MAX_EXP == 128);
+
+ /* Check the value of FLT_MIN_10_EXP. */
+ ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103));
+
+ /* Check the value of FLT_DIG. */
+ ASSERT (FLT_DIG == (int) ((FLT_MANT_DIG - 1) * 0.30103));
+
+ /* Check the value of FLT_MIN_10_EXP. */
+ ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103));
+
+ /* Check the value of FLT_MAX_10_EXP. */
+ ASSERT (FLT_MAX_10_EXP == (int) (FLT_MAX_EXP * 0.30103));
+
+ /* Check the value of FLT_MAX. */
+ {
+ volatile float m = FLT_MAX;
+ int n;
+
+ ASSERT (m + m > m);
+ for (n = 0; n <= 2 * FLT_MANT_DIG; n++)
+ {
+ volatile float pow2_n = pow2f (n); /* 2^n */
+ volatile float x = m + (m / pow2_n);
+ if (x > m)
+ ASSERT (x + x == x);
+ else
+ ASSERT (!(x + x == x));
+ }
+ }
+
+ /* Check the value of FLT_MIN. */
+ {
+ volatile float m = FLT_MIN;
+ volatile float x = pow2f (FLT_MIN_EXP - 1);
+ ASSERT (m == x);
+ }
+
+ /* Check the value of FLT_EPSILON. */
+ {
+ volatile float e = FLT_EPSILON;
+ volatile float me;
+ int n;
+
+ me = 1.0f + e;
+ ASSERT (me > 1.0f);
+ ASSERT (me - 1.0f == e);
+ for (n = 0; n <= 2 * FLT_MANT_DIG; n++)
+ {
+ volatile float half_n = pow2f (- n); /* 2^-n */
+ volatile float x = me - half_n;
+ if (x < me)
+ ASSERT (x <= 1.0f);
+ }
+ }
+}
+
+/* ----------------------- Check macros for 'double' ----------------------- */
+
+/* Check that the DBL_* macros expand to constant expressions. */
+int db[] =
+ {
+ DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP,
+ DBL_DIG, DBL_MIN_10_EXP, DBL_MAX_10_EXP
+ };
+double dc[] = { DBL_EPSILON, DBL_MIN, DBL_MAX };
+
+static void
+test_double (void)
+{
+ /* Check that the value of DBL_MIN_EXP is well parenthesized. */
+ ASSERT ((DBL_MIN_EXP % 101111) == (DBL_MIN_EXP) % 101111);
+
+ /* Check that the value of DBL_MIN_10_EXP is well parenthesized. */
+ ASSERT ((DBL_MIN_10_EXP % 101111) == (DBL_MIN_10_EXP) % 101111);
+
+ /* Check that 'double' is as specified in IEEE 754. */
+ ASSERT (DBL_MANT_DIG == 53);
+ ASSERT (DBL_MIN_EXP == -1021);
+ ASSERT (DBL_MAX_EXP == 1024);
+
+ /* Check the value of DBL_MIN_10_EXP. */
+ ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103));
+
+ /* Check the value of DBL_DIG. */
+ ASSERT (DBL_DIG == (int) ((DBL_MANT_DIG - 1) * 0.30103));
+
+ /* Check the value of DBL_MIN_10_EXP. */
+ ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103));
+
+ /* Check the value of DBL_MAX_10_EXP. */
+ ASSERT (DBL_MAX_10_EXP == (int) (DBL_MAX_EXP * 0.30103));
+
+ /* Check the value of DBL_MAX. */
+ {
+ volatile double m = DBL_MAX;
+ int n;
+
+ ASSERT (m + m > m);
+ for (n = 0; n <= 2 * DBL_MANT_DIG; n++)
+ {
+ volatile double pow2_n = pow2d (n); /* 2^n */
+ volatile double x = m + (m / pow2_n);
+ if (x > m)
+ ASSERT (x + x == x);
+ else
+ ASSERT (!(x + x == x));
+ }
+ }
+
+ /* Check the value of DBL_MIN. */
+ {
+ volatile double m = DBL_MIN;
+ volatile double x = pow2d (DBL_MIN_EXP - 1);
+ ASSERT (m == x);
+ }
+
+ /* Check the value of DBL_EPSILON. */
+ {
+ volatile double e = DBL_EPSILON;
+ volatile double me;
+ int n;
+
+ me = 1.0 + e;
+ ASSERT (me > 1.0);
+ ASSERT (me - 1.0 == e);
+ for (n = 0; n <= 2 * DBL_MANT_DIG; n++)
+ {
+ volatile double half_n = pow2d (- n); /* 2^-n */
+ volatile double x = me - half_n;
+ if (x < me)
+ ASSERT (x <= 1.0);
+ }
+ }
+}
+
+/* -------------------- Check macros for 'long double' -------------------- */
+
+/* Check that the LDBL_* macros expand to constant expressions. */
+int lb[] =
+ {
+ LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP,
+ LDBL_DIG, LDBL_MIN_10_EXP, LDBL_MAX_10_EXP
+ };
+long double lc1 = LDBL_EPSILON;
+long double lc2 = LDBL_MIN;
+#if 0 /* LDBL_MAX is not a constant expression on some platforms. */
+long double lc3 = LDBL_MAX;
+#endif
+
+static void
+test_long_double (void)
+{
+ /* Check that the value of LDBL_MIN_EXP is well parenthesized. */
+ ASSERT ((LDBL_MIN_EXP % 101111) == (LDBL_MIN_EXP) % 101111);
+
+ /* Check that the value of LDBL_MIN_10_EXP is well parenthesized. */
+ ASSERT ((LDBL_MIN_10_EXP % 101111) == (LDBL_MIN_10_EXP) % 101111);
+
+ /* Check that 'long double' is at least as wide as 'double'. */
+ ASSERT (LDBL_MANT_DIG >= DBL_MANT_DIG);
+ ASSERT (LDBL_MIN_EXP <= DBL_MIN_EXP);
+ ASSERT (LDBL_MAX_EXP >= DBL_MAX_EXP);
+
+ /* Check the value of LDBL_DIG. */
+ ASSERT (LDBL_DIG == (int)((LDBL_MANT_DIG - 1) * 0.30103));
+
+ /* Check the value of LDBL_MIN_10_EXP. */
+ ASSERT (LDBL_MIN_10_EXP == - (int) (- (LDBL_MIN_EXP - 1) * 0.30103));
+
+ /* Check the value of LDBL_MAX_10_EXP. */
+ ASSERT (LDBL_MAX_10_EXP == (int) (LDBL_MAX_EXP * 0.30103));
+
+ /* Check the value of LDBL_MAX. */
+ {
+ volatile long double m = LDBL_MAX;
+ int n;
+
+ ASSERT (m + m > m);
+ for (n = 0; n <= 2 * LDBL_MANT_DIG; n++)
+ {
+ volatile long double pow2_n = pow2l (n); /* 2^n */
+ volatile long double x = m + (m / pow2_n);
+ if (x > m)
+ ASSERT (x + x == x);
+ else
+ ASSERT (!(x + x == x));
+ }
+ }
+
+ /* Check the value of LDBL_MIN. */
+ {
+ volatile long double m = LDBL_MIN;
+ volatile long double x = pow2l (LDBL_MIN_EXP - 1);
+ ASSERT (m == x);
+ }
+
+ /* Check the value of LDBL_EPSILON. */
+ {
+ volatile long double e = LDBL_EPSILON;
+ volatile long double me;
+ int n;
+
+ me = 1.0L + e;
+ ASSERT (me > 1.0L);
+ ASSERT (me - 1.0L == e);
+ for (n = 0; n <= 2 * LDBL_MANT_DIG; n++)
+ {
+ volatile long double half_n = pow2l (- n); /* 2^-n */
+ volatile long double x = me - half_n;
+ if (x < me)
+ ASSERT (x <= 1.0L);
+ }
+ }
+}
+
+int
+main ()
+{
+ test_float ();
+ test_double ();
+
+ {
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ test_long_double ();
+
+ END_LONG_DOUBLE_ROUNDING ();
+ }
+
+ return 0;
+}
+
+#else
+
+int
+main ()
+{
+ fprintf (stderr, "Skipping test: FLT_RADIX is not 2.\n");
+ return 77;
+}
+
+#endif
--- /dev/null
+/* Test of fseeko() function.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake <eblake@redhat.com>, 2011. */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include <stdlib.h>
+
+#include "macros.h"
+
+int
+main (int argc, char **argv)
+{
+ int do_initial_ftell = atoi (argv[1]);
+ const char *filename = argv[2];
+ FILE *fp = fopen (filename, "r");
+ ASSERT (fp != NULL);
+
+ if (do_initial_ftell)
+ {
+ off_t pos = ftell (fp);
+ ASSERT (pos == 0);
+ }
+
+ ASSERT (fseeko (fp, 0, SEEK_END) == 0);
+
+ {
+ off_t pos = ftell (fp);
+ ASSERT (pos > 0);
+ }
+
+ ASSERT (fclose (fp) == 0);
+
+ return 0;
+}
--- /dev/null
+#!/bin/sh
+
+./test-fseeko3${EXEEXT} 0 "$srcdir/test-fseeko3.sh" || exit 1
+
+./test-fseeko3${EXEEXT} 1 "$srcdir/test-fseeko3.sh" || exit 1
+
+exit 0
#include <unistd.h>
#include "openat.h"
-#include "pathmax.h"
+#include "progname.h"
#include "same-inode.h"
#include "ignore-value.h"
#include "macros.h"
}
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
int result;
+ set_program_name (argv[0]);
+
/* Remove any leftovers from a previous partial run. */
ignore_value (system ("rm -rf " BASE "*"));
const char *file = "test-fsync.txt";
if (fsync (0) != 0)
- ASSERT (errno == EINVAL);
+ {
+ ASSERT (errno == EINVAL /* POSIX */
+ || errno == ENOTSUP /* seen on MacOS X 10.5 */
+ || errno == EBADF /* seen on AIX 7.1 */
+ );
+ }
fd = open (file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
ASSERT (0 <= fd);
ASSERT (write (fd, "hello", 5) == 5);
#include <string.h>
#include <sys/stat.h>
+#include "pathmax.h"
#include "macros.h"
#if ! HAVE_GETPAGESIZE
size_t desired_depth;
size_t d;
+#ifdef PATH_MAX
/* The bug is triggered when PATH_MAX < getpagesize (), so skip
this relatively expensive and invasive test if that's not true. */
if (getpagesize () <= PATH_MAX)
return 0;
+#endif
cwd = getcwd (NULL, 0);
if (cwd == NULL)
{
if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
{
- fail = 3; /* Unable to construct deep hierarchy. */
+ if (! (errno == ERANGE || errno == ENAMETOOLONG || errno == ENOENT))
+ fail = 3; /* Unable to construct deep hierarchy. */
break;
}
}
results in a failed assertion. */
cwd = getcwd (NULL, 0);
if (cwd == NULL)
- fail = 4; /* getcwd failed. This is ok, and expected. */
+ fail = 4; /* getcwd didn't assert, but it failed for a long name
+ where the answer could have been learned. */
free (cwd);
/* Call rmdir first, in case the above chdir failed. */
errors, be pessimistic and consider that as a failure, too. */
if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
{
- if (! (errno == ERANGE || errno == ENAMETOOLONG))
+ if (! (errno == ERANGE || errno == ENAMETOOLONG || errno == ENOENT))
fail = 20;
break;
}
ASSERT (optind == 3);
ASSERT (!output);
}
+
+ /* Check that 'W' does not dump core:
+ http://sourceware.org/bugzilla/show_bug.cgi?id=12922
+ Technically, POSIX says the presence of ';' in the opt-string
+ gives unspecified behavior, so we only test this when GNU compliance
+ is desired. */
+ for (start = OPTIND_MIN; start <= 1; start++)
+ {
+ int argc = 0;
+ const char *argv[10];
+ int pos = ftell (stderr);
+
+ argv[argc++] = "program";
+ argv[argc++] = "-W";
+ argv[argc++] = "dummy";
+ argv[argc] = NULL;
+ optind = start;
+ opterr = 1;
+ ASSERT (getopt (argc, (char **) argv, "W;") == 'W');
+ ASSERT (ftell (stderr) == pos);
+ ASSERT (optind == 2);
+ }
#endif /* GNULIB_TEST_GETOPT_GNU */
}
}
}
+ /* Test that 'W' does not dump core:
+ http://sourceware.org/bugzilla/show_bug.cgi?id=12922 */
+ {
+ int argc = 0;
+ const char *argv[10];
+ int option_index;
+ int c;
+
+ argv[argc++] = "program";
+ argv[argc++] = "-W";
+ argv[argc++] = "dummy";
+ argv[argc] = NULL;
+ optind = 1;
+ opterr = 0;
+ c = do_getopt_long (argc, argv, "W;", NULL, &option_index);
+ ASSERT (c == 'W');
+ ASSERT (optind == 2);
+ }
+
/* Test processing of boolean short options. */
for (start = 0; start <= 1; start++)
{
#include <stdbool.h>
#include <inttypes.h>
-/* TYPE_IS_INTEGER. */
-verify (TYPE_IS_INTEGER (bool));
-verify (TYPE_IS_INTEGER (char));
-verify (TYPE_IS_INTEGER (signed char));
-verify (TYPE_IS_INTEGER (unsigned char));
-verify (TYPE_IS_INTEGER (short int));
-verify (TYPE_IS_INTEGER (unsigned short int));
-verify (TYPE_IS_INTEGER (int));
-verify (TYPE_IS_INTEGER (unsigned int));
-verify (TYPE_IS_INTEGER (long int));
-verify (TYPE_IS_INTEGER (unsigned long int));
-verify (TYPE_IS_INTEGER (intmax_t));
-verify (TYPE_IS_INTEGER (uintmax_t));
-verify (! TYPE_IS_INTEGER (float));
-verify (! TYPE_IS_INTEGER (double));
-verify (! TYPE_IS_INTEGER (long double));
-
-/* Integer representation. */
-verify (INT_MIN + INT_MAX < 0
- ? (TYPE_TWOS_COMPLEMENT (int)
- && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int))
- : (! TYPE_TWOS_COMPLEMENT (int)
- && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int))));
-
-/* TYPE_SIGNED. */
-/* verify (! TYPE_SIGNED (bool)); */ /* not guaranteed by gnulib substitute */
-verify (TYPE_SIGNED (signed char));
-verify (! TYPE_SIGNED (unsigned char));
-verify (TYPE_SIGNED (short int));
-verify (! TYPE_SIGNED (unsigned short int));
-verify (TYPE_SIGNED (int));
-verify (! TYPE_SIGNED (unsigned int));
-verify (TYPE_SIGNED (long int));
-verify (! TYPE_SIGNED (unsigned long int));
-verify (TYPE_SIGNED (intmax_t));
-verify (! TYPE_SIGNED (uintmax_t));
-verify (TYPE_SIGNED (float));
-verify (TYPE_SIGNED (double));
-verify (TYPE_SIGNED (long double));
-
-/* TYPE_MINIMUM, TYPE_MAXIMUM. */
-verify (TYPE_MINIMUM (char) == CHAR_MIN);
-verify (TYPE_MAXIMUM (char) == CHAR_MAX);
-verify (TYPE_MINIMUM (unsigned char) == 0);
-verify (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
-verify (TYPE_MINIMUM (signed char) == SCHAR_MIN);
-verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
-verify (TYPE_MINIMUM (short int) == SHRT_MIN);
-verify (TYPE_MAXIMUM (short int) == SHRT_MAX);
-verify (TYPE_MINIMUM (unsigned short int) == 0);
-verify (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
-verify (TYPE_MINIMUM (int) == INT_MIN);
-verify (TYPE_MAXIMUM (int) == INT_MAX);
-verify (TYPE_MINIMUM (unsigned int) == 0);
-verify (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
-verify (TYPE_MINIMUM (long int) == LONG_MIN);
-verify (TYPE_MAXIMUM (long int) == LONG_MAX);
-verify (TYPE_MINIMUM (unsigned long int) == 0);
-verify (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
-verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
-verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
-verify (TYPE_MINIMUM (uintmax_t) == 0);
-verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
-
-/* INT_BITS_STRLEN_BOUND. */
-verify (INT_BITS_STRLEN_BOUND (1) == 1);
-verify (INT_BITS_STRLEN_BOUND (2620) == 789);
-
-/* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND. */
-#ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX hosts */
-verify (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1);
-verify (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648"));
-#endif
-#ifdef INT64_MAX
-verify (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1);
-verify (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808"));
-#endif
+#include "macros.h"
-/* All the INT_<op>_RANGE_OVERFLOW tests are equally valid as
- INT_<op>_OVERFLOW tests, so define a single macro to do both. */
-#define check_binop(op, a, b, min, max, overflow) \
- (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow) \
- && INT_##op##_OVERFLOW (a, b) == (overflow))
-#define check_unop(op, a, min, max, overflow) \
- (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow) \
- && INT_##op##_OVERFLOW (a) == (overflow))
-
-/* INT_<op>_RANGE_OVERFLOW, INT_<op>_OVERFLOW. */
-verify (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX));
-verify (INT_ADD_OVERFLOW (INT_MAX, 1));
-verify (check_binop (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true));
-verify (check_binop (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false));
-verify (check_binop (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false));
-verify (check_binop (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true));
-verify (check_binop (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true));
-verify (check_binop (ADD, 0u, 1u, 0u, UINT_MAX, false));
-
-verify (check_binop (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false));
-verify (check_binop (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true));
-verify (check_binop (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true));
-verify (check_binop (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false));
-verify (check_binop (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false));
-verify (check_binop (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true));
-
-verify (check_unop (NEGATE, INT_MIN, INT_MIN, INT_MAX,
- TYPE_TWOS_COMPLEMENT (int)));
-verify (check_unop (NEGATE, 0, INT_MIN, INT_MAX, false));
-verify (check_unop (NEGATE, INT_MAX, INT_MIN, INT_MAX, false));
-verify (check_unop (NEGATE, 0u, 0u, UINT_MAX, false));
-verify (check_unop (NEGATE, 1u, 0u, UINT_MAX, true));
-verify (check_unop (NEGATE, UINT_MAX, 0u, UINT_MAX, true));
-
-verify (check_binop (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true));
-verify (check_binop (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true));
-verify (check_binop (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true));
-verify (check_binop (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true));
-verify (check_binop (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX,
- INT_NEGATE_OVERFLOW (INT_MIN)));
-verify (check_binop (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX,
- LONG_MIN, LONG_MIN, false));
-
-verify (check_binop (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX,
- INT_NEGATE_OVERFLOW (INT_MIN)));
-verify (check_binop (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false));
-verify (check_binop (DIVIDE, (unsigned int) INT_MIN,
- -1u, 0u, UINT_MAX, false));
-
-verify (check_binop (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX,
- INT_NEGATE_OVERFLOW (INT_MIN)));
-verify (check_binop (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false));
-verify (check_binop (REMAINDER, (unsigned int) INT_MIN,
- -1u, 0u, UINT_MAX, false));
-
-verify (check_binop (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true));
-verify (check_binop (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true));
-verify (check_binop (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false));
-
-/* INT_<op>_OVERFLOW with mixed types. */
-#define check_sum(a, b, overflow) \
- verify (INT_ADD_OVERFLOW (a, b) == (overflow)); \
- verify (INT_ADD_OVERFLOW (b, a) == (overflow))
-check_sum (-1, LONG_MIN, true);
-check_sum (-1, UINT_MAX, false);
-check_sum (-1L, INT_MIN, INT_MIN == LONG_MIN);
-check_sum (0u, -1, true);
-check_sum (0u, 0, false);
-check_sum (0u, 1, false);
-check_sum (1, LONG_MAX, true);
-check_sum (1, UINT_MAX, true);
-check_sum (1L, INT_MAX, INT_MAX == LONG_MAX);
-check_sum (1u, INT_MAX, INT_MAX == UINT_MAX);
-check_sum (1u, INT_MIN, true);
-
-verify (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u));
-verify (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1));
-verify (! INT_SUBTRACT_OVERFLOW (0u, -1));
-verify (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1));
-verify (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u));
-verify (INT_SUBTRACT_OVERFLOW (-1, 0u));
-
-#define check_product(a, b, overflow) \
- verify (INT_MULTIPLY_OVERFLOW (a, b) == (overflow)); \
- verify (INT_MULTIPLY_OVERFLOW (b, a) == (overflow))
-
-check_product (-1, 1u, true);
-check_product (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN));
-check_product (-1, UINT_MAX, true);
-check_product (-12345, LONG_MAX / -12345 - 1, true);
-check_product (-12345, LONG_MAX / -12345, false);
-check_product (0, -1, false);
-check_product (0, 0, false);
-check_product (0, 0u, false);
-check_product (0, 1, false);
-check_product (0, INT_MAX, false);
-check_product (0, INT_MIN, false);
-check_product (0, UINT_MAX, false);
-check_product (0u, -1, false);
-check_product (0u, 0, false);
-check_product (0u, 0u, false);
-check_product (0u, 1, false);
-check_product (0u, INT_MAX, false);
-check_product (0u, INT_MIN, false);
-check_product (0u, UINT_MAX, false);
-check_product (1, INT_MAX, false);
-check_product (1, INT_MIN, false);
-check_product (1, UINT_MAX, false);
-check_product (1u, INT_MIN, true);
-check_product (1u, INT_MAX, UINT_MAX < INT_MAX);
-check_product (INT_MAX, UINT_MAX, true);
-check_product (INT_MAX, ULONG_MAX, true);
-check_product (INT_MIN, LONG_MAX / INT_MIN - 1, true);
-check_product (INT_MIN, LONG_MAX / INT_MIN, false);
-check_product (INT_MIN, UINT_MAX, true);
-check_product (INT_MIN, ULONG_MAX, true);
-
-verify (INT_DIVIDE_OVERFLOW (INT_MIN, -1L)
- == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
-verify (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX));
-verify (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX));
-verify (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX));
-verify (INT_DIVIDE_OVERFLOW (-11, 10u));
-verify (INT_DIVIDE_OVERFLOW (-10, 10u));
-verify (! INT_DIVIDE_OVERFLOW (-9, 10u));
-verify (INT_DIVIDE_OVERFLOW (11u, -10));
-verify (INT_DIVIDE_OVERFLOW (10u, -10));
-verify (! INT_DIVIDE_OVERFLOW (9u, -10));
-
-verify (INT_REMAINDER_OVERFLOW (INT_MIN, -1L)
- == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
-verify (INT_REMAINDER_OVERFLOW (-1, UINT_MAX));
-verify (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX));
-verify (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX)
- == (INTMAX_MAX < UINT_MAX
- && - (unsigned int) INTMAX_MIN % UINT_MAX != 0));
-verify (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX)
- == (INT_MIN % ULONG_MAX != 1));
-verify (! INT_REMAINDER_OVERFLOW (1u, -1));
-verify (! INT_REMAINDER_OVERFLOW (37*39u, -39));
-verify (INT_REMAINDER_OVERFLOW (37*39u + 1, -39));
-verify (INT_REMAINDER_OVERFLOW (37*39u - 1, -39));
-verify (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX));
+/* VERIFY (X) uses a static assertion for compilers that are known to work,
+ and falls back on a dynamic assertion for other compilers.
+ These tests should be checkable via 'verify' rather than 'ASSERT', but
+ using 'verify' would run into a bug with HP-UX 11.23 cc; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */
+#if __GNUC__ || __SUNPRO_C
+# define VERIFY(x) do { verify (x); } while (0)
+#else
+# define VERIFY(x) ASSERT (x)
+#endif
int
main (void)
{
+ /* Use VERIFY for tests that must be integer constant expressions,
+ ASSERT otherwise. */
+
+ /* TYPE_IS_INTEGER. */
+ ASSERT (TYPE_IS_INTEGER (bool));
+ ASSERT (TYPE_IS_INTEGER (char));
+ ASSERT (TYPE_IS_INTEGER (signed char));
+ ASSERT (TYPE_IS_INTEGER (unsigned char));
+ ASSERT (TYPE_IS_INTEGER (short int));
+ ASSERT (TYPE_IS_INTEGER (unsigned short int));
+ ASSERT (TYPE_IS_INTEGER (int));
+ ASSERT (TYPE_IS_INTEGER (unsigned int));
+ ASSERT (TYPE_IS_INTEGER (long int));
+ ASSERT (TYPE_IS_INTEGER (unsigned long int));
+ ASSERT (TYPE_IS_INTEGER (intmax_t));
+ ASSERT (TYPE_IS_INTEGER (uintmax_t));
+ ASSERT (! TYPE_IS_INTEGER (float));
+ ASSERT (! TYPE_IS_INTEGER (double));
+ ASSERT (! TYPE_IS_INTEGER (long double));
+
+ /* TYPE_SIGNED. */
+ /* VERIFY (! TYPE_SIGNED (bool)); // not guaranteed by gnulib substitute */
+ VERIFY (TYPE_SIGNED (signed char));
+ VERIFY (! TYPE_SIGNED (unsigned char));
+ VERIFY (TYPE_SIGNED (short int));
+ VERIFY (! TYPE_SIGNED (unsigned short int));
+ VERIFY (TYPE_SIGNED (int));
+ VERIFY (! TYPE_SIGNED (unsigned int));
+ VERIFY (TYPE_SIGNED (long int));
+ VERIFY (! TYPE_SIGNED (unsigned long int));
+ VERIFY (TYPE_SIGNED (intmax_t));
+ VERIFY (! TYPE_SIGNED (uintmax_t));
+ ASSERT (TYPE_SIGNED (float));
+ ASSERT (TYPE_SIGNED (double));
+ ASSERT (TYPE_SIGNED (long double));
+
+ /* Integer representation. */
+ VERIFY (INT_MIN + INT_MAX < 0
+ ? (TYPE_TWOS_COMPLEMENT (int)
+ && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int))
+ : (! TYPE_TWOS_COMPLEMENT (int)
+ && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int))));
+
+ /* TYPE_MINIMUM, TYPE_MAXIMUM. */
+ VERIFY (TYPE_MINIMUM (char) == CHAR_MIN);
+ VERIFY (TYPE_MAXIMUM (char) == CHAR_MAX);
+ VERIFY (TYPE_MINIMUM (unsigned char) == 0);
+ VERIFY (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
+ VERIFY (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+ VERIFY (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+ VERIFY (TYPE_MINIMUM (short int) == SHRT_MIN);
+ VERIFY (TYPE_MAXIMUM (short int) == SHRT_MAX);
+ VERIFY (TYPE_MINIMUM (unsigned short int) == 0);
+ VERIFY (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
+ VERIFY (TYPE_MINIMUM (int) == INT_MIN);
+ VERIFY (TYPE_MAXIMUM (int) == INT_MAX);
+ VERIFY (TYPE_MINIMUM (unsigned int) == 0);
+ VERIFY (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
+ VERIFY (TYPE_MINIMUM (long int) == LONG_MIN);
+ VERIFY (TYPE_MAXIMUM (long int) == LONG_MAX);
+ VERIFY (TYPE_MINIMUM (unsigned long int) == 0);
+ VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
+ VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
+ VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
+ VERIFY (TYPE_MINIMUM (uintmax_t) == 0);
+ VERIFY (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
+
+ /* INT_BITS_STRLEN_BOUND. */
+ VERIFY (INT_BITS_STRLEN_BOUND (1) == 1);
+ VERIFY (INT_BITS_STRLEN_BOUND (2620) == 789);
+
+ /* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND. */
+ #ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX. */
+ VERIFY (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1);
+ VERIFY (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648"));
+ #endif
+ #ifdef INT64_MAX
+ VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1);
+ VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808"));
+ #endif
+
+ /* All the INT_<op>_RANGE_OVERFLOW tests are equally valid as
+ INT_<op>_OVERFLOW tests, so define a single macro to do both. */
+ #define CHECK_BINOP(op, a, b, min, max, overflow) \
+ (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow) \
+ && INT_##op##_OVERFLOW (a, b) == (overflow))
+ #define CHECK_UNOP(op, a, min, max, overflow) \
+ (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow) \
+ && INT_##op##_OVERFLOW (a) == (overflow))
+
+ /* INT_<op>_RANGE_OVERFLOW, INT_<op>_OVERFLOW. */
+ VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX));
+ VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1));
+ VERIFY (CHECK_BINOP (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true));
+ VERIFY (CHECK_BINOP (ADD, 0u, 1u, 0u, UINT_MAX, false));
+
+ VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false));
+ VERIFY (CHECK_BINOP (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true));
+
+ VERIFY (CHECK_UNOP (NEGATE, INT_MIN, INT_MIN, INT_MAX,
+ TYPE_TWOS_COMPLEMENT (int)));
+ VERIFY (CHECK_UNOP (NEGATE, 0, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_UNOP (NEGATE, INT_MAX, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_UNOP (NEGATE, 0u, 0u, UINT_MAX, false));
+ VERIFY (CHECK_UNOP (NEGATE, 1u, 0u, UINT_MAX, true));
+ VERIFY (CHECK_UNOP (NEGATE, UINT_MAX, 0u, UINT_MAX, true));
+
+ VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true));
+ VERIFY (CHECK_BINOP (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX,
+ INT_NEGATE_OVERFLOW (INT_MIN)));
+ VERIFY (CHECK_BINOP (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX,
+ LONG_MIN, LONG_MIN, false));
+
+ VERIFY (CHECK_BINOP (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX,
+ INT_NEGATE_OVERFLOW (INT_MIN)));
+ VERIFY (CHECK_BINOP (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (DIVIDE, (unsigned int) INT_MIN,
+ -1u, 0u, UINT_MAX, false));
+
+ VERIFY (CHECK_BINOP (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX,
+ INT_NEGATE_OVERFLOW (INT_MIN)));
+ VERIFY (CHECK_BINOP (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false));
+ VERIFY (CHECK_BINOP (REMAINDER, (unsigned int) INT_MIN,
+ -1u, 0u, UINT_MAX, false));
+
+ VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true));
+ VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true));
+ VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false));
+
+ /* INT_<op>_OVERFLOW with mixed types. */
+ #define CHECK_SUM(a, b, overflow) \
+ VERIFY (INT_ADD_OVERFLOW (a, b) == (overflow)); \
+ VERIFY (INT_ADD_OVERFLOW (b, a) == (overflow))
+ CHECK_SUM (-1, LONG_MIN, true);
+ CHECK_SUM (-1, UINT_MAX, false);
+ CHECK_SUM (-1L, INT_MIN, INT_MIN == LONG_MIN);
+ CHECK_SUM (0u, -1, true);
+ CHECK_SUM (0u, 0, false);
+ CHECK_SUM (0u, 1, false);
+ CHECK_SUM (1, LONG_MAX, true);
+ CHECK_SUM (1, UINT_MAX, true);
+ CHECK_SUM (1L, INT_MAX, INT_MAX == LONG_MAX);
+ CHECK_SUM (1u, INT_MAX, INT_MAX == UINT_MAX);
+ CHECK_SUM (1u, INT_MIN, true);
+
+ VERIFY (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u));
+ VERIFY (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1));
+ VERIFY (! INT_SUBTRACT_OVERFLOW (0u, -1));
+ VERIFY (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1));
+ VERIFY (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u));
+ VERIFY (INT_SUBTRACT_OVERFLOW (-1, 0u));
+
+ #define CHECK_PRODUCT(a, b, overflow) \
+ VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (overflow)); \
+ VERIFY (INT_MULTIPLY_OVERFLOW (b, a) == (overflow))
+
+ CHECK_PRODUCT (-1, 1u, true);
+ CHECK_PRODUCT (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN));
+ CHECK_PRODUCT (-1, UINT_MAX, true);
+ CHECK_PRODUCT (-12345, LONG_MAX / -12345 - 1, true);
+ CHECK_PRODUCT (-12345, LONG_MAX / -12345, false);
+ CHECK_PRODUCT (0, -1, false);
+ CHECK_PRODUCT (0, 0, false);
+ CHECK_PRODUCT (0, 0u, false);
+ CHECK_PRODUCT (0, 1, false);
+ CHECK_PRODUCT (0, INT_MAX, false);
+ CHECK_PRODUCT (0, INT_MIN, false);
+ CHECK_PRODUCT (0, UINT_MAX, false);
+ CHECK_PRODUCT (0u, -1, false);
+ CHECK_PRODUCT (0u, 0, false);
+ CHECK_PRODUCT (0u, 0u, false);
+ CHECK_PRODUCT (0u, 1, false);
+ CHECK_PRODUCT (0u, INT_MAX, false);
+ CHECK_PRODUCT (0u, INT_MIN, false);
+ CHECK_PRODUCT (0u, UINT_MAX, false);
+ CHECK_PRODUCT (1, INT_MAX, false);
+ CHECK_PRODUCT (1, INT_MIN, false);
+ CHECK_PRODUCT (1, UINT_MAX, false);
+ CHECK_PRODUCT (1u, INT_MIN, true);
+ CHECK_PRODUCT (1u, INT_MAX, UINT_MAX < INT_MAX);
+ CHECK_PRODUCT (INT_MAX, UINT_MAX, true);
+ CHECK_PRODUCT (INT_MAX, ULONG_MAX, true);
+ CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, true);
+ CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN, false);
+ CHECK_PRODUCT (INT_MIN, UINT_MAX, true);
+ CHECK_PRODUCT (INT_MIN, ULONG_MAX, true);
+
+ VERIFY (INT_DIVIDE_OVERFLOW (INT_MIN, -1L)
+ == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
+ VERIFY (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX));
+ VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX));
+ VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX));
+ VERIFY (INT_DIVIDE_OVERFLOW (-11, 10u));
+ VERIFY (INT_DIVIDE_OVERFLOW (-10, 10u));
+ VERIFY (! INT_DIVIDE_OVERFLOW (-9, 10u));
+ VERIFY (INT_DIVIDE_OVERFLOW (11u, -10));
+ VERIFY (INT_DIVIDE_OVERFLOW (10u, -10));
+ VERIFY (! INT_DIVIDE_OVERFLOW (9u, -10));
+
+ VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, -1L)
+ == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
+ VERIFY (INT_REMAINDER_OVERFLOW (-1, UINT_MAX));
+ VERIFY (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX));
+ VERIFY (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX)
+ == (INTMAX_MAX < UINT_MAX
+ && - (unsigned int) INTMAX_MIN % UINT_MAX != 0));
+ VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX)
+ == (INT_MIN % ULONG_MAX != 1));
+ VERIFY (! INT_REMAINDER_OVERFLOW (1u, -1));
+ VERIFY (! INT_REMAINDER_OVERFLOW (37*39u, -39));
+ VERIFY (INT_REMAINDER_OVERFLOW (37*39u + 1, -39));
+ VERIFY (INT_REMAINDER_OVERFLOW (37*39u - 1, -39));
+ VERIFY (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX));
+
return 0;
}
ASSERT (errno == ENOENT);
errno = 0;
ASSERT (func (BASE "a/", BASE "c") == -1);
- ASSERT (errno == ENOTDIR);
+ ASSERT (errno == ENOTDIR || errno == EINVAL);
errno = 0;
ASSERT (func (BASE "a", BASE "c/") == -1);
- ASSERT (errno == ENOTDIR || errno == ENOENT);
+ ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EINVAL);
/* Most platforms reject hard links to directories, and even on
those that do permit it, most users can't create them. We assume
}
errno = 0;
ASSERT (func (BASE "b", BASE "link/") == -1);
- ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST);
+ ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST
+ || errno == EINVAL);
+ errno = 0;
+ ASSERT (func (BASE "b", BASE "link") == -1);
+ ASSERT (errno == EEXIST);
ASSERT (rename (BASE "b", BASE "a") == 0);
errno = 0;
ASSERT (func (BASE "link/", BASE "b") == -1);
- ASSERT (errno == ENOTDIR || errno == EEXIST);
+ ASSERT (errno == ENOTDIR || errno == EEXIST || errno == EINVAL);
/* Clean up. */
ASSERT (unlink (BASE "a") == 0);
errno = 0;
ASSERT (linkat (dfd, BASE "link1/", dfd, BASE "sub1",
AT_SYMLINK_FOLLOW) == -1);
- ASSERT (errno == EEXIST || errno == EPERM || errno == EACCES);
+ ASSERT (errno == EEXIST || errno == EPERM || errno == EACCES
+ || errno == EINVAL);
errno = 0;
ASSERT (linkat (dfd, BASE "link1", dfd, BASE "sub1/",
AT_SYMLINK_FOLLOW) == -1);
- ASSERT (errno == EEXIST || errno == EPERM || errno == EACCES);
+ ASSERT (errno == EEXIST || errno == EPERM || errno == EACCES
+ || errno == EINVAL);
errno = 0;
ASSERT (linkat (dfd, BASE "link1", dfd, BASE "link2", 0) == -1);
ASSERT (errno == EEXIST);
errno = 0;
ASSERT (linkat (dfd, BASE "link2/", dfd, BASE "link5",
AT_SYMLINK_FOLLOW) == -1);
- ASSERT (errno == ENOTDIR);
+ ASSERT (errno == ENOTDIR || errno == EINVAL);
errno = 0;
ASSERT (linkat (dfd, BASE "link3/", dfd, BASE "link5", 0) == -1);
ASSERT (errno == ELOOP);
errno = 0;
ASSERT (linkat (dfd, BASE "link3/", dfd, BASE "link5",
AT_SYMLINK_FOLLOW) == -1);
- ASSERT (errno == ELOOP);
+ ASSERT (errno == ELOOP || errno == EINVAL);
errno = 0;
ASSERT (linkat (dfd, BASE "link4/", dfd, BASE "link5", 0) == -1);
ASSERT (errno == ENOENT);
errno = 0;
ASSERT (linkat (dfd, BASE "link4/", dfd, BASE "link5",
AT_SYMLINK_FOLLOW) == -1);
- ASSERT (errno == ENOENT);
+ ASSERT (errno == ENOENT || errno == EINVAL);
/* Check for hard links to symlinks. */
ASSERT (linkat (dfd, BASE "link1", dfd, BASE "link5", 0) == 0);
{
int i1, i2, value;
- dbgprintf ("Mutator %p before lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ());
gl_lock_lock (my_lock);
- dbgprintf ("Mutator %p after lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ());
i1 = random_account ();
i2 = random_account ();
account[i1] += value;
account[i2] -= value;
- dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
gl_lock_unlock (my_lock);
- dbgprintf ("Mutator %p after unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ());
- dbgprintf ("Mutator %p before check lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ());
gl_lock_lock (my_lock);
check_accounts ();
gl_lock_unlock (my_lock);
- dbgprintf ("Mutator %p after check unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+ dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
{
while (!lock_checker_done)
{
- dbgprintf ("Checker %p before check lock\n", gl_thread_self ());
+ dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
gl_lock_lock (my_lock);
check_accounts ();
gl_lock_unlock (my_lock);
- dbgprintf ("Checker %p after check unlock\n", gl_thread_self ());
+ dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+ dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
{
int i1, i2, value;
- dbgprintf ("Mutator %p before wrlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before wrlock\n", gl_thread_self_pointer ());
gl_rwlock_wrlock (my_rwlock);
- dbgprintf ("Mutator %p after wrlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after wrlock\n", gl_thread_self_pointer ());
i1 = random_account ();
i2 = random_account ();
account[i1] += value;
account[i2] -= value;
- dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
gl_rwlock_unlock (my_rwlock);
- dbgprintf ("Mutator %p after unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+ dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
{
while (!rwlock_checker_done)
{
- dbgprintf ("Checker %p before check rdlock\n", gl_thread_self ());
+ dbgprintf ("Checker %p before check rdlock\n", gl_thread_self_pointer ());
gl_rwlock_rdlock (my_rwlock);
check_accounts ();
gl_rwlock_unlock (my_rwlock);
- dbgprintf ("Checker %p after check unlock\n", gl_thread_self ());
+ dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+ dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
{
int i1, i2, value;
- dbgprintf ("Mutator %p before lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ());
gl_recursive_lock_lock (my_reclock);
- dbgprintf ("Mutator %p after lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ());
i1 = random_account ();
i2 = random_account ();
if (((unsigned int) rand () >> 3) % 2)
recshuffle ();
- dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
gl_recursive_lock_unlock (my_reclock);
- dbgprintf ("Mutator %p after unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ());
}
static void *
{
recshuffle ();
- dbgprintf ("Mutator %p before check lock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ());
gl_recursive_lock_lock (my_reclock);
check_accounts ();
gl_recursive_lock_unlock (my_reclock);
- dbgprintf ("Mutator %p after check unlock\n", gl_thread_self ());
+ dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+ dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
{
while (!reclock_checker_done)
{
- dbgprintf ("Checker %p before check lock\n", gl_thread_self ());
+ dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
gl_recursive_lock_lock (my_reclock);
check_accounts ();
gl_recursive_lock_unlock (my_reclock);
- dbgprintf ("Checker %p after check unlock\n", gl_thread_self ());
+ dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ());
yield ();
}
- dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+ dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
break;
dbgprintf ("Contender %p waiting for signal for round %d\n",
- gl_thread_self (), repeat);
+ gl_thread_self_pointer (), repeat);
#if ENABLE_LOCKING
/* Wait for the signal to go. */
gl_rwlock_rdlock (fire_signal[repeat]);
yield ();
#endif
dbgprintf ("Contender %p got the signal for round %d\n",
- gl_thread_self (), repeat);
+ gl_thread_self_pointer (), repeat);
/* Contend for execution. */
gl_once (once_control, once_execute);
#include <stdlib.h>
#include <unistd.h>
+#include "progname.h"
#include "ignore-value.h"
#include "macros.h"
}
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
int result;
+ set_program_name (argv[0]);
+
/* Clean up any trash from prior testsuite runs. */
ignore_value (system ("rm -rf " BASE "*"));
#include <stdio.h>
#include <unistd.h>
+#include "progname.h"
#include "macros.h"
#define BASE "test-openat.t"
}
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
int result;
+ set_program_name (argv[0]);
+
/* Basic checks. */
result = test_open (do_open, false);
dfd = open (".", O_RDONLY);
tmpf="${tmp}/tests.txt"
cat > "${tmpf}" <<- _EOF_
- 1 Y 2 M 3 W 4 d 5 h 6 m 7 s
- P 00010225 T 05:06:07
- P 1Y2M3W4D T 5H6M7S
- 1 Y 2 M 25 D 5:6:7
- 1 Y 2 M 25 d 5h 6:7
- 1 Y 2 M 25 d 5h 6m 7
- P 1-2-25 T 5:6:7
- _EOF_
+ 1 Y 2 M 3 W 4 d 5 h 6 m 7 s
+ P 00010225 T 05:06:07
+ P 1Y2M3W4D T 5H6M7S
+ 1 Y 2 M 25 D 5:6:7
+ 1 Y 2 M 25 d 5h 6:7
+ 1 Y 2 M 25 d 5h 6m 7
+ P 1-2-25 T 5:6:7
+ _EOF_
exec 3< "${tmpf}"
while read line <&3
--- /dev/null
+/* Test of "pathmax.h".
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include "pathmax.h"
+
+/* Check that PATH_MAX is a constant if it is defined. */
+#ifdef PATH_MAX
+int a = PATH_MAX;
+#endif
+
+int
+main (void)
+{
+ return 0;
+}
#!/bin/sh
-
-tmpfiles=""
-trap 'rm -fr $tmpfiles' 1 2 3 15
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
# Test NULL prefix. Result should not contain a number.
-tmpfiles="$tmpfiles t-perror.tmp"
-./test-perror${EXEEXT} 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp
-if grep '[0-9]' t-perror.tmp > /dev/null; then
- rm -fr $tmpfiles; exit 1
-fi
+test-perror 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp
+grep '[0-9]' t-perror.tmp > /dev/null \
+ && fail_ "result should not contain a number"
# Test empty prefix. Result should be the same.
-tmpfiles="$tmpfiles t-perror1.tmp"
-./test-perror${EXEEXT} '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp
-diff t-perror.tmp t-perror1.tmp
-test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+test-perror '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp
+diff t-perror.tmp t-perror1.tmp \
+ || fail_ "empty prefix should behave like NULL argument"
# Test non-empty prefix.
-tmpfiles="$tmpfiles t-perror2.tmp t-perror3.tmp"
-./test-perror${EXEEXT} 'foo' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror3.tmp
+test-perror foo 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror3.tmp
sed -e 's/^/foo: /' < t-perror.tmp > t-perror2.tmp
-diff t-perror2.tmp t-perror3.tmp
-test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+diff t-perror2.tmp t-perror3.tmp || fail_ "prefix applied incorrectly"
+
+# Test exit status.
+test-perror >out 2>/dev/null || fail_ "unexpected exit status"
+test -s out && fail_ "unexpected output"
-rm -fr $tmpfiles
-exit 0
+Exit 0
--- /dev/null
+/* Test of perror() function.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+/* This test intentionally parses stderr. So, we arrange to have fd 10
+ (outside the range of interesting fd's during the test) set up to
+ duplicate the original stderr. */
+#define BACKUP_STDERR_FILENO 10
+#define ASSERT_STREAM myerr
+#include "macros.h"
+
+static FILE *myerr;
+
+#define BASE "test-perror2"
+
+int
+main (void)
+{
+ /* We change fd 2 later, so save it in fd 10. */
+ if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
+ || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
+ return 2;
+
+ ASSERT (freopen (BASE ".tmp", "w+", stderr) == stderr);
+
+ /* Test that perror does not clobber strerror buffer. */
+ {
+ const char *msg1;
+ const char *msg2;
+ const char *msg3;
+ const char *msg4;
+ char *str1;
+ char *str2;
+ char *str3;
+ char *str4;
+
+ msg1 = strerror (ENOENT);
+ ASSERT (msg1);
+ str1 = strdup (msg1);
+ ASSERT (str1);
+
+ msg2 = strerror (ERANGE);
+ ASSERT (msg2);
+ str2 = strdup (msg2);
+ ASSERT (str2);
+
+ msg3 = strerror (-4);
+ ASSERT (msg3);
+ str3 = strdup (msg3);
+ ASSERT (str3);
+
+ msg4 = strerror (1729576);
+ ASSERT (msg4);
+ str4 = strdup (msg4);
+ ASSERT (str4);
+
+ errno = EACCES;
+ perror ("");
+ errno = -5;
+ perror ("");
+ ASSERT (!ferror (stderr));
+ ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
+ ASSERT (msg2 == msg4 || STREQ (msg2, str2));
+ ASSERT (msg3 == msg4 || STREQ (msg3, str3));
+ ASSERT (STREQ (msg4, str4));
+
+ free (str1);
+ free (str2);
+ free (str3);
+ free (str4);
+ }
+
+ /* Test that perror uses the same message as strerror. */
+ {
+ int errs[] = { EACCES, 0, -3, };
+ int i;
+ for (i = 0; i < SIZEOF (errs); i++)
+ {
+ char buf[256];
+ char *err = strerror (errs[i]);
+
+ ASSERT (err);
+ ASSERT (strlen (err) < sizeof buf);
+ rewind (stderr);
+ ASSERT (ftruncate (fileno (stderr), 0) == 0);
+ errno = errs[i];
+ perror (NULL);
+ ASSERT (!ferror (stderr));
+ rewind (stderr);
+ ASSERT (fgets (buf, sizeof buf, stderr) == buf);
+ ASSERT (strstr (buf, err));
+ }
+ }
+
+ /* Test that perror reports write failure. */
+ {
+ ASSERT (freopen (BASE ".tmp", "r", stderr) == stderr);
+ ASSERT (setvbuf (stderr, NULL, _IONBF, BUFSIZ) == 0);
+ errno = -1;
+ ASSERT (!ferror (stderr));
+ perror (NULL);
+#if 0
+ /* Commented out until cygwin behaves:
+ http://sourceware.org/ml/newlib/2011/msg00228.html */
+ ASSERT (errno > 0);
+ /* Commented out until glibc behaves:
+ http://sourceware.org/bugzilla/show_bug.cgi?id=12792 */
+ ASSERT (ferror (stderr));
+#endif
+ }
+
+ ASSERT (fclose (stderr) == 0);
+ ASSERT (remove (BASE ".tmp") == 0);
+
+ return 0;
+}
/* Invalid offset must evoke failure with EINVAL. */
char byte;
ASSERT (pread (fd, &byte, 1, (off_t) -1) == -1);
- ASSERT (errno == EINVAL);
+ ASSERT (errno == EINVAL
+ || errno == EFBIG /* seen on OpenBSD 4.9 */
+ );
}
ASSERT (close (fd) == 0);
--- /dev/null
+/* Test of pselect() substitute.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <sys/select.h>
+
+#include "signature.h"
+
+SIGNATURE_CHECK (pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, const sigset_t *restrict));
+
+#include "test-select.h"
+
+static int
+my_select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ struct timeval *timeout)
+{
+ struct timespec ts;
+ struct timespec *pts = NULL;
+ if (timeout)
+ {
+ ts.tv_sec = timeout->tv_sec;
+ ts.tv_nsec = timeout->tv_usec * 1000;
+ pts = &ts;
+ }
+ return pselect (nfds, readfds, writefds, exceptfds, pts, NULL);
+}
+
+int
+main (void)
+{
+ return test_function (my_select);
+}
--- /dev/null
+/* Test of pthread_sigmask in a single-threaded program.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include <signal.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *));
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
+
+static volatile int sigint_occurred;
+
+static void
+sigint_handler (int sig)
+{
+ sigint_occurred++;
+}
+
+int
+main (int argc, char *argv[])
+{
+ sigset_t set;
+ int pid = getpid ();
+ char command[80];
+
+ signal (SIGINT, sigint_handler);
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGINT);
+
+ /* Check error handling. */
+ ASSERT (pthread_sigmask (1729, &set, NULL) == EINVAL);
+
+ /* Block SIGINT. */
+ ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0);
+
+ /* Request a SIGINT signal from outside. */
+ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+ ASSERT (system (command) == 0);
+
+ /* Wait. */
+ sleep (2);
+
+ /* The signal should not have arrived yet, because it is blocked. */
+ ASSERT (sigint_occurred == 0);
+
+ /* Unblock SIGINT. */
+ ASSERT (pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0);
+
+ /* The signal should have arrived now, because POSIX says
+ "If there are any pending unblocked signals after the call to
+ pthread_sigmask(), at least one of those signals shall be delivered
+ before the call to pthread_sigmask() returns." */
+ ASSERT (sigint_occurred == 1);
+
+ return 0;
+}
+
+#else
+
+/* On native Windows, getpid() values and the arguments that are passed to
+ the (Cygwin?) 'kill' program are not necessarily related. */
+
+int
+main ()
+{
+ fputs ("Skipping test: native Windows platform\n", stderr);
+ return 77;
+}
+
+#endif
--- /dev/null
+/* Test of pthread_sigmask in a multi-threaded program.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include <signal.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include "glthread/thread.h"
+
+#include "macros.h"
+
+#if USE_POSIX_THREADS
+
+static gl_thread_t main_thread;
+static gl_thread_t killer_thread;
+
+static void *
+killer_thread_func (void *arg)
+{
+ sleep (1);
+ pthread_kill (main_thread, SIGINT);
+ return NULL;
+}
+
+static volatile int sigint_occurred;
+
+static void
+sigint_handler (int sig)
+{
+ sigint_occurred++;
+}
+
+int
+main (int argc, char *argv[])
+{
+ sigset_t set;
+
+ signal (SIGINT, sigint_handler);
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGINT);
+
+ /* Check error handling. */
+ ASSERT (pthread_sigmask (1729, &set, NULL) == EINVAL);
+
+ /* Block SIGINT. */
+ ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0);
+
+ /* Request a SIGINT signal from another thread. */
+ main_thread = gl_thread_self ();
+ ASSERT (glthread_create (&killer_thread, killer_thread_func, NULL) == 0);
+
+ /* Wait. */
+ sleep (2);
+
+ /* The signal should not have arrived yet, because it is blocked. */
+ ASSERT (sigint_occurred == 0);
+
+ /* Unblock SIGINT. */
+ ASSERT (pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0);
+
+ /* The signal should have arrived now, because POSIX says
+ "If there are any pending unblocked signals after the call to
+ pthread_sigmask(), at least one of those signals shall be delivered
+ before the call to pthread_sigmask() returns." */
+ ASSERT (sigint_occurred == 1);
+
+ return 0;
+}
+
+#else
+
+int
+main ()
+{
+ fputs ("Skipping test: POSIX threads not enabled\n", stderr);
+ return 77;
+}
+
+#endif
# include <sys/types.h>
# include <sys/acl.h>
#endif
+#if HAVE_ACLV_H
+# include <sys/types.h>
+# include <aclv.h>
+#endif
#include "progname.h"
#include "read-file.h"
int count2;
count1 = getacl (file1, 0, NULL);
- if (count1 < 0 && (errno == ENOSYS || errno == EOPNOTSUPP))
+ if (count1 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
count1 = 0;
count2 = getacl (file2, 0, NULL);
- if (count2 < 0 && (errno == ENOSYS || errno == EOPNOTSUPP))
+ if (count2 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
count2 = 0;
if (count1 < 0)
}
}
}
+
+# if HAVE_ACLV_H /* HP-UX >= 11.11 */
+ {
+ struct acl dummy_entries[NACLVENTRIES];
+
+ count1 = acl ((char *) file1, ACL_CNT, NACLVENTRIES, dummy_entries);
+ if (count1 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL))
+ count1 = 0;
+ count2 = acl ((char *) file2, ACL_CNT, NACLVENTRIES, dummy_entries);
+ if (count2 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL))
+ count2 = 0;
+ }
+
+ if (count1 < 0)
+ {
+ fprintf (stderr, "error accessing the ACLs of file %s\n", file1);
+ fflush (stderr);
+ abort ();
+ }
+ if (count2 < 0)
+ {
+ fprintf (stderr, "error accessing the ACLs of file %s\n", file2);
+ fflush (stderr);
+ abort ();
+ }
+ if (count1 != count2)
+ {
+ fprintf (stderr, "files %s and %s have different number of ACLs: %d and %d\n",
+ file1, file2, count1, count2);
+ return 1;
+ }
+ else if (count1 > 0)
+ {
+ struct acl *entries1 = XNMALLOC (count1, struct acl);
+ struct acl *entries2 = XNMALLOC (count2, struct acl);
+ int i;
+
+ if (acl ((char *) file1, ACL_GET, count1, entries1) < count1)
+ {
+ fprintf (stderr, "error retrieving the ACLs of file %s\n", file1);
+ fflush (stderr);
+ abort ();
+ }
+ if (acl ((char *) file2, ACL_GET, count2, entries2) < count1)
+ {
+ fprintf (stderr, "error retrieving the ACLs of file %s\n", file2);
+ fflush (stderr);
+ abort ();
+ }
+ for (i = 0; i < count1; i++)
+ {
+ if (entries1[i].a_type != entries2[i].a_type)
+ {
+ fprintf (stderr, "files %s and %s: different ACL entry #%d: different types %d and %d\n",
+ file1, file2, i, entries1[i].a_type, entries2[i].a_type);
+ return 1;
+ }
+ if (entries1[i].a_id != entries2[i].a_id)
+ {
+ fprintf (stderr, "files %s and %s: different ACL entry #%d: different ids %d and %d\n",
+ file1, file2, i, (int)entries1[i].a_id, (int)entries2[i].a_id);
+ return 1;
+ }
+ if (entries1[i].a_perm != entries2[i].a_perm)
+ {
+ fprintf (stderr, "files %s and %s: different ACL entry #%d: different permissions %03o and %03o\n",
+ file1, file2, i, (unsigned int) entries1[i].a_perm, (unsigned int) entries2[i].a_perm);
+ return 1;
+ }
+ }
+ }
+# endif
#elif HAVE_ACLX_GET /* AIX */
acl_type_t type1;
char acl1[1000];
#include <sys/select.h>
#include "signature.h"
+
SIGNATURE_CHECK (select, int, (int, fd_set *, fd_set *, fd_set *,
struct timeval *));
-/* The following may be macros without underlying functions, so only
- check signature if they are not macros. */
-#ifndef FD_CLR
-SIGNATURE_CHECK (FD_CLR, void, (int, fd_set *));
-#endif
-#ifndef FD_ISSET
-SIGNATURE_CHECK (FD_ISSET, void, (int, fd_set *));
-#endif
-#ifndef FD_SET
-SIGNATURE_CHECK (FD_SET, int, (int, fd_set *));
-#endif
-#ifndef FD_ZERO
-SIGNATURE_CHECK (FD_ZERO, void, (fd_set *));
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-
-#include "macros.h"
-
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-# define WIN32_NATIVE
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#ifndef SO_REUSEPORT
-# define SO_REUSEPORT SO_REUSEADDR
-#endif
-
-#define TEST_PORT 12345
-
-
-/* Minimal testing infrastructure. */
-
-static int failures;
-
-static void
-failed (const char *reason)
-{
- if (++failures > 1)
- printf (" ");
- printf ("failed (%s)\n", reason);
-}
-
-static int
-test (void (*fn) (void), const char *msg)
-{
- failures = 0;
- printf ("%s... ", msg);
- fflush (stdout);
- fn ();
-
- if (!failures)
- printf ("passed\n");
-
- return failures;
-}
-
-
-/* Funny socket code. */
-
-static int
-open_server_socket (void)
-{
- int s, x;
- struct sockaddr_in ia;
-
- s = socket (AF_INET, SOCK_STREAM, 0);
-
- memset (&ia, 0, sizeof (ia));
- ia.sin_family = AF_INET;
- inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
- ia.sin_port = htons (TEST_PORT);
- if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0)
- {
- perror ("bind");
- exit (77);
- }
-
- x = 1;
- setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
-
- if (listen (s, 1) < 0)
- {
- perror ("listen");
- exit (77);
- }
-
- return s;
-}
-
-static int
-connect_to_socket (bool blocking)
-{
- int s;
- struct sockaddr_in ia;
-
- s = socket (AF_INET, SOCK_STREAM, 0);
-
- memset (&ia, 0, sizeof (ia));
- ia.sin_family = AF_INET;
- inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
- ia.sin_port = htons (TEST_PORT);
-
- if (!blocking)
- {
-#ifdef WIN32_NATIVE
- unsigned long iMode = 1;
- ioctl (s, FIONBIO, (char *) &iMode);
-
-#elif defined F_GETFL
- int oldflags = fcntl (s, F_GETFL, NULL);
-
- if (!(oldflags & O_NONBLOCK))
- fcntl (s, F_SETFL, oldflags | O_NONBLOCK);
-#endif
- }
-
- if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0
- && (blocking || errno != EINPROGRESS))
- {
- perror ("connect");
- exit (77);
- }
-
- return s;
-}
-
-
-/* A slightly more convenient interface to select(2).
- Waits until a specific event occurs on a file descriptor FD.
- EV is a bit mask of events to look for:
- SEL_IN - input can be polled without blocking,
- SEL_OUT - output can be provided without blocking,
- SEL_EXC - an exception occurred,
- A maximum wait time is specified by TIMEOUT.
- *TIMEOUT = { 0, 0 } means to return immediately,
- TIMEOUT = NULL means to wait indefinitely. */
-
-enum { SEL_IN = 1, SEL_OUT = 2, SEL_EXC = 4 };
-
-static int
-do_select (int fd, int ev, struct timeval *timeout)
-{
- fd_set rfds, wfds, xfds;
- int r, rev;
-
- FD_ZERO (&rfds);
- FD_ZERO (&wfds);
- FD_ZERO (&xfds);
- if (ev & SEL_IN)
- FD_SET (fd, &rfds);
- if (ev & SEL_OUT)
- FD_SET (fd, &wfds);
- if (ev & SEL_EXC)
- FD_SET (fd, &xfds);
- r = select (fd + 1, &rfds, &wfds, &xfds, timeout);
- if (r < 0)
- return r;
-
- rev = 0;
- if (FD_ISSET (fd, &rfds))
- rev |= SEL_IN;
- if (FD_ISSET (fd, &wfds))
- rev |= SEL_OUT;
- if (FD_ISSET (fd, &xfds))
- rev |= SEL_EXC;
- if (rev && r == 0)
- failed ("select returned 0");
- if (rev & ~ev)
- failed ("select returned unrequested events");
-
- return rev;
-}
-
-static int
-do_select_nowait (int fd, int ev)
-{
- struct timeval tv0;
- tv0.tv_sec = 0;
- tv0.tv_usec = 0;
- return do_select (fd, ev, &tv0);
-}
-
-static int
-do_select_wait (int fd, int ev)
-{
- return do_select (fd, ev, NULL);
-}
-
-
-/* Test select(2) for TTYs. */
-
-#ifdef INTERACTIVE
-static void
-test_tty (void)
-{
- if (do_select_nowait (0, SEL_IN) != 0)
- failed ("can read");
- if (do_select_nowait (0, SEL_OUT) == 0)
- failed ("cannot write");
-
- if (do_select_wait (0, SEL_IN) == 0)
- failed ("return with infinite timeout");
-
- getchar ();
- if (do_select_nowait (0, SEL_IN) != 0)
- failed ("can read after getc");
-}
-#endif
-
-
-/* Test select(2) for unconnected nonblocking sockets. */
-
-static void
-test_connect_first (void)
-{
- int s = open_server_socket ();
- struct sockaddr_in ia;
- socklen_t addrlen;
-
- int c1, c2;
-
- if (do_select_nowait (s, SEL_IN | SEL_EXC) != 0)
- failed ("can read, socket not connected");
-
- c1 = connect_to_socket (false);
-
- if (do_select_wait (s, SEL_IN | SEL_EXC) != SEL_IN)
- failed ("expecting readability on passive socket");
- if (do_select_nowait (s, SEL_IN | SEL_EXC) != SEL_IN)
- failed ("expecting readability on passive socket");
-
- addrlen = sizeof (ia);
- c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
- ASSERT (close (s) == 0);
- ASSERT (close (c1) == 0);
- ASSERT (close (c2) == 0);
-}
-
-
-/* Test select(2) for unconnected blocking sockets. */
-
-static void
-test_accept_first (void)
-{
-#ifndef WIN32_NATIVE
- int s = open_server_socket ();
- struct sockaddr_in ia;
- socklen_t addrlen;
- char buf[3];
- int c, pid;
-
- pid = fork ();
- if (pid < 0)
- return;
-
- if (pid == 0)
- {
- addrlen = sizeof (ia);
- c = accept (s, (struct sockaddr *) &ia, &addrlen);
- ASSERT (close (s) == 0);
- ASSERT (write (c, "foo", 3) == 3);
- ASSERT (read (c, buf, 3) == 3);
- shutdown (c, SHUT_RD);
- ASSERT (close (c) == 0);
- exit (0);
- }
- else
- {
- ASSERT (close (s) == 0);
- c = connect_to_socket (true);
- if (do_select_nowait (c, SEL_OUT) != SEL_OUT)
- failed ("cannot write after blocking connect");
- ASSERT (write (c, "foo", 3) == 3);
- wait (&pid);
- if (do_select_wait (c, SEL_IN) != SEL_IN)
- failed ("cannot read data left in the socket by closed process");
- ASSERT (read (c, buf, 3) == 3);
- ASSERT (write (c, "foo", 3) == 3);
- (void) close (c); /* may fail with errno = ECONNRESET */
- }
-#endif
-}
-
-/* Common code for pipes and connected sockets. */
-
-static void
-test_pair (int rd, int wd)
-{
- char buf[3];
- if (do_select_wait (wd, SEL_IN | SEL_OUT | SEL_EXC) != SEL_OUT)
- failed ("expecting writability before writing");
- if (do_select_nowait (wd, SEL_IN | SEL_OUT | SEL_EXC) != SEL_OUT)
- failed ("expecting writability before writing");
-
- ASSERT (write (wd, "foo", 3) == 3);
- if (do_select_wait (rd, SEL_IN) != SEL_IN)
- failed ("expecting readability after writing");
- if (do_select_nowait (rd, SEL_IN) != SEL_IN)
- failed ("expecting readability after writing");
-
- ASSERT (read (rd, buf, 3) == 3);
-}
-
-
-/* Test select(2) on connected sockets. */
-
-static void
-test_socket_pair (void)
-{
- struct sockaddr_in ia;
-
- socklen_t addrlen = sizeof (ia);
- int s = open_server_socket ();
- int c1 = connect_to_socket (false);
- int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
-
- ASSERT (close (s) == 0);
-
- test_pair (c1, c2);
- ASSERT (close (c1) == 0);
- ASSERT (write (c2, "foo", 3) == 3);
- (void) close (c2); /* may fail with errno = ECONNRESET */
-}
-
-
-/* Test select(2) on pipes. */
-
-static void
-test_pipe (void)
-{
- int fd[2];
-
- ASSERT (pipe (fd) == 0);
- test_pair (fd[0], fd[1]);
- ASSERT (close (fd[0]) == 0);
- ASSERT (close (fd[1]) == 0);
-}
-
-
-/* Do them all. */
+#include "test-select.h"
int
main (void)
{
- int result;
-
-#ifdef INTERACTIVE
- printf ("Please press Enter\n");
- test (test_tty, "TTY");
-#endif
-
- result = test (test_connect_first, "Unconnected socket test");
- result += test (test_socket_pair, "Connected sockets test");
- result += test (test_accept_first, "General socket test with fork");
- result += test (test_pipe, "Pipe test");
-
- exit (result);
+ return test_function (select);
}
--- /dev/null
+/* Test of select() substitute.
+ Copyright (C) 2008-2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paolo Bonzini, 2008. */
+
+#include <stdio.h>
+#include <string.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+
+#include "macros.h"
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_NATIVE
+#endif
+
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+
+#ifndef SO_REUSEPORT
+# define SO_REUSEPORT SO_REUSEADDR
+#endif
+
+#define TEST_PORT 12345
+
+
+typedef int (*select_fn) (int, fd_set *, fd_set *, fd_set *, struct timeval *);
+
+
+/* Minimal testing infrastructure. */
+
+static int failures;
+
+static void
+failed (const char *reason)
+{
+ if (++failures > 1)
+ printf (" ");
+ printf ("failed (%s)\n", reason);
+}
+
+static int
+test (void (*fn) (select_fn), select_fn my_select, const char *msg)
+{
+ failures = 0;
+ printf ("%s... ", msg);
+ fflush (stdout);
+ fn (my_select);
+
+ if (!failures)
+ printf ("passed\n");
+
+ return failures;
+}
+
+
+/* Funny socket code. */
+
+static int
+open_server_socket (void)
+{
+ int s, x;
+ struct sockaddr_in ia;
+
+ s = socket (AF_INET, SOCK_STREAM, 0);
+
+ memset (&ia, 0, sizeof (ia));
+ ia.sin_family = AF_INET;
+ inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
+ ia.sin_port = htons (TEST_PORT);
+ if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0)
+ {
+ perror ("bind");
+ exit (77);
+ }
+
+ x = 1;
+ setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
+
+ if (listen (s, 1) < 0)
+ {
+ perror ("listen");
+ exit (77);
+ }
+
+ return s;
+}
+
+static int
+connect_to_socket (bool blocking)
+{
+ int s;
+ struct sockaddr_in ia;
+
+ s = socket (AF_INET, SOCK_STREAM, 0);
+
+ memset (&ia, 0, sizeof (ia));
+ ia.sin_family = AF_INET;
+ inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
+ ia.sin_port = htons (TEST_PORT);
+
+ if (!blocking)
+ {
+#ifdef WIN32_NATIVE
+ unsigned long iMode = 1;
+ ioctl (s, FIONBIO, (char *) &iMode);
+
+#elif defined F_GETFL
+ int oldflags = fcntl (s, F_GETFL, NULL);
+
+ if (!(oldflags & O_NONBLOCK))
+ fcntl (s, F_SETFL, oldflags | O_NONBLOCK);
+#endif
+ }
+
+ if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0
+ && (blocking || errno != EINPROGRESS))
+ {
+ perror ("connect");
+ exit (77);
+ }
+
+ return s;
+}
+
+
+/* A slightly more convenient interface to select(2).
+ Waits until a specific event occurs on a file descriptor FD.
+ EV is a bit mask of events to look for:
+ SEL_IN - input can be polled without blocking,
+ SEL_OUT - output can be provided without blocking,
+ SEL_EXC - an exception occurred,
+ A maximum wait time is specified by TIMEOUT.
+ *TIMEOUT = { 0, 0 } means to return immediately,
+ TIMEOUT = NULL means to wait indefinitely. */
+
+enum { SEL_IN = 1, SEL_OUT = 2, SEL_EXC = 4 };
+
+static int
+do_select (int fd, int ev, struct timeval *timeout, select_fn my_select)
+{
+ fd_set rfds, wfds, xfds;
+ int r, rev;
+
+ FD_ZERO (&rfds);
+ FD_ZERO (&wfds);
+ FD_ZERO (&xfds);
+ if (ev & SEL_IN)
+ FD_SET (fd, &rfds);
+ if (ev & SEL_OUT)
+ FD_SET (fd, &wfds);
+ if (ev & SEL_EXC)
+ FD_SET (fd, &xfds);
+ r = my_select (fd + 1, &rfds, &wfds, &xfds, timeout);
+ if (r < 0)
+ return r;
+
+ rev = 0;
+ if (FD_ISSET (fd, &rfds))
+ rev |= SEL_IN;
+ if (FD_ISSET (fd, &wfds))
+ rev |= SEL_OUT;
+ if (FD_ISSET (fd, &xfds))
+ rev |= SEL_EXC;
+ if (rev && r == 0)
+ failed ("select returned 0");
+ if (rev & ~ev)
+ failed ("select returned unrequested events");
+
+ return rev;
+}
+
+static int
+do_select_nowait (int fd, int ev, select_fn my_select)
+{
+ struct timeval tv0;
+ tv0.tv_sec = 0;
+ tv0.tv_usec = 0;
+ return do_select (fd, ev, &tv0, my_select);
+}
+
+static int
+do_select_wait (int fd, int ev, select_fn my_select)
+{
+ return do_select (fd, ev, NULL, my_select);
+}
+
+
+/* Test select(2) for TTYs. */
+
+#ifdef INTERACTIVE
+static void
+test_tty (select_fn my_select)
+{
+ if (do_select_nowait (0, SEL_IN, my_select) != 0)
+ failed ("can read");
+ if (do_select_nowait (0, SEL_OUT, my_select) == 0)
+ failed ("cannot write");
+
+ if (do_select_wait (0, SEL_IN, my_select) == 0)
+ failed ("return with infinite timeout");
+
+ getchar ();
+ if (do_select_nowait (0, SEL_IN, my_select) != 0)
+ failed ("can read after getc");
+}
+#endif
+
+
+/* Test select(2) for unconnected nonblocking sockets. */
+
+static void
+test_connect_first (select_fn my_select)
+{
+ int s = open_server_socket ();
+ struct sockaddr_in ia;
+ socklen_t addrlen;
+
+ int c1, c2;
+
+ if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != 0)
+ failed ("can read, socket not connected");
+
+ c1 = connect_to_socket (false);
+
+ if (do_select_wait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN)
+ failed ("expecting readability on passive socket");
+ if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN)
+ failed ("expecting readability on passive socket");
+
+ addrlen = sizeof (ia);
+ c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
+ ASSERT (close (s) == 0);
+ ASSERT (close (c1) == 0);
+ ASSERT (close (c2) == 0);
+}
+
+
+/* Test select(2) for unconnected blocking sockets. */
+
+static void
+test_accept_first (select_fn my_select)
+{
+#ifndef WIN32_NATIVE
+ int s = open_server_socket ();
+ struct sockaddr_in ia;
+ socklen_t addrlen;
+ char buf[3];
+ int c, pid;
+
+ pid = fork ();
+ if (pid < 0)
+ return;
+
+ if (pid == 0)
+ {
+ addrlen = sizeof (ia);
+ c = accept (s, (struct sockaddr *) &ia, &addrlen);
+ ASSERT (close (s) == 0);
+ ASSERT (write (c, "foo", 3) == 3);
+ ASSERT (read (c, buf, 3) == 3);
+ shutdown (c, SHUT_RD);
+ ASSERT (close (c) == 0);
+ exit (0);
+ }
+ else
+ {
+ ASSERT (close (s) == 0);
+ c = connect_to_socket (true);
+ if (do_select_nowait (c, SEL_OUT, my_select) != SEL_OUT)
+ failed ("cannot write after blocking connect");
+ ASSERT (write (c, "foo", 3) == 3);
+ wait (&pid);
+ if (do_select_wait (c, SEL_IN, my_select) != SEL_IN)
+ failed ("cannot read data left in the socket by closed process");
+ ASSERT (read (c, buf, 3) == 3);
+ ASSERT (write (c, "foo", 3) == 3);
+ (void) close (c); /* may fail with errno = ECONNRESET */
+ }
+#endif
+}
+
+
+/* Common code for pipes and connected sockets. */
+
+static void
+test_pair (int rd, int wd, select_fn my_select)
+{
+ char buf[3];
+ if (do_select_wait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT)
+ failed ("expecting writability before writing");
+ if (do_select_nowait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT)
+ failed ("expecting writability before writing");
+
+ ASSERT (write (wd, "foo", 3) == 3);
+ if (do_select_wait (rd, SEL_IN, my_select) != SEL_IN)
+ failed ("expecting readability after writing");
+ if (do_select_nowait (rd, SEL_IN, my_select) != SEL_IN)
+ failed ("expecting readability after writing");
+
+ ASSERT (read (rd, buf, 3) == 3);
+}
+
+
+/* Test select(2) on connected sockets. */
+
+static void
+test_socket_pair (select_fn my_select)
+{
+ struct sockaddr_in ia;
+
+ socklen_t addrlen = sizeof (ia);
+ int s = open_server_socket ();
+ int c1 = connect_to_socket (false);
+ int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
+
+ ASSERT (close (s) == 0);
+
+ test_pair (c1, c2, my_select);
+ ASSERT (close (c1) == 0);
+ ASSERT (write (c2, "foo", 3) == 3);
+ (void) close (c2); /* may fail with errno = ECONNRESET */
+}
+
+
+/* Test select(2) on pipes. */
+
+static void
+test_pipe (select_fn my_select)
+{
+ int fd[2];
+
+ ASSERT (pipe (fd) == 0);
+ test_pair (fd[0], fd[1], my_select);
+ ASSERT (close (fd[0]) == 0);
+ ASSERT (close (fd[1]) == 0);
+}
+
+
+/* Do them all. */
+
+static int
+test_function (select_fn my_select)
+{
+ int result;
+
+#ifdef INTERACTIVE
+ printf ("Please press Enter\n");
+ test (test_tty, "TTY", my_select);
+#endif
+
+ result = test (test_connect_first, my_select, "Unconnected socket test");
+ result += test (test_socket_pair, my_select, "Connected sockets test");
+ result += test (test_accept_first, my_select, "General socket test with fork");
+ result += test (test_pipe, my_select, "Pipe test");
+
+ return result;
+}
# Classification of the platform according to the programs available for
# manipulating ACLs.
# Possible values are:
- # linux, cygwin, freebsd, solaris, hpux, osf1, aix, macosx, irix, none.
+ # linux, cygwin, freebsd, solaris, hpux, hpuxjfs, osf1, aix, macosx, irix, none.
# TODO: Support also native Win32 platforms (mingw).
acl_flavor=none
if (getfacl tmpfile0 >/dev/null) 2>/dev/null; then
if (lsacl / >/dev/null) 2>/dev/null; then
# Platforms with the lsacl and chacl programs.
# HP-UX, sometimes also IRIX.
- acl_flavor=hpux
+ if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
+ # HP-UX 11.11 or newer.
+ acl_flavor=hpuxjfs
+ else
+ # HP-UX 11.00.
+ acl_flavor=hpux
+ fi
else
if (getacl tmpfile0 >/dev/null) 2>/dev/null; then
# Tru64, NonStop Kernel.
orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
chacl -r "${orig}($auid.%,--x)" tmpfile0
;;
+ hpuxjfs)
+ orig=`lsacl tmpfile0 | sed -e 's/ tmpfile0$//'`
+ chacl -r "${orig}($auid.%,--x)" tmpfile0 \
+ || setacl -m user:$auid:1 tmpfile0
+ ;;
osf1)
setacl -u user:$auid:1 tmpfile0
;;
#include "signature.h"
+#if GNULIB_TEST_PTHREAD_SIGMASK
+SIGNATURE_CHECK (GNULIB_NAMESPACE::pthread_sigmask, int,
+ (int, const sigset_t *, sigset_t *));
+#endif
+
#if GNULIB_TEST_SIGPROCMASK
SIGNATURE_CHECK (GNULIB_NAMESPACE::sigismember, int, (const sigset_t *, int));
SIGNATURE_CHECK (GNULIB_NAMESPACE::sigemptyset, int, (sigset_t *));
--- /dev/null
+/* Test of sigprocmask.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include <signal.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (sigprocmask, int, (int, const sigset_t *, sigset_t *));
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
+
+static volatile int sigint_occurred;
+
+static void
+sigint_handler (int sig)
+{
+ sigint_occurred++;
+}
+
+int
+main (int argc, char *argv[])
+{
+ sigset_t set;
+ int pid = getpid ();
+ char command[80];
+
+ signal (SIGINT, sigint_handler);
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGINT);
+
+ /* Check error handling. */
+ ASSERT (sigprocmask (1729, &set, NULL) == -1);
+ ASSERT (errno == EINVAL);
+
+ /* Block SIGINT. */
+ ASSERT (sigprocmask (SIG_BLOCK, &set, NULL) == 0);
+
+ /* Request a SIGINT signal from outside. */
+ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+ ASSERT (system (command) == 0);
+
+ /* Wait. */
+ sleep (2);
+
+ /* The signal should not have arrived yet, because it is blocked. */
+ ASSERT (sigint_occurred == 0);
+
+ /* Unblock SIGINT. */
+ ASSERT (sigprocmask (SIG_UNBLOCK, &set, NULL) == 0);
+
+ /* The signal should have arrived now, because POSIX says
+ "If there are any pending unblocked signals after the call to
+ sigprocmask(), at least one of those signals shall be delivered
+ before the call to sigprocmask() returns." */
+ ASSERT (sigint_occurred == 1);
+
+ return 0;
+}
+
+#else
+
+/* On native Windows, getpid() values and the arguments that are passed to
+ the (Cygwin?) 'kill' program are not necessarily related. */
+
+int
+main ()
+{
+ fputs ("Skipping test: native Windows platform\n", stderr);
+ return 77;
+}
+
+#endif
}
}
+ /* Test the support of the POSIX/XSI format strings with positions. */
+ {
+ char result[100];
+ retval = snprintf (result, sizeof (result), "%2$d %1$d", 33, 55);
+ ASSERT (strcmp (result, "55 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
return 0;
}
--- /dev/null
+/* Child program invoked by test-spawn-pipe-main.
+ Copyright (C) 2009-2011 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the Win32 API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+/* Depending on arguments, this test intentionally closes stderr or
+ starts life with stderr closed. So, we arrange to have fd 10
+ (outside the range of interesting fd's during the test) set up to
+ duplicate the original stderr. */
+
+#define BACKUP_STDERR_FILENO 10
+#define ASSERT_STREAM myerr
+#include "macros.h"
+
+static FILE *myerr;
+
+/* In this file, we use only system functions, no overrides from gnulib. */
+#undef atoi
+#undef close
+#undef fcntl
+#undef fdopen
+#undef fflush
+#undef fprintf
+#undef read
+#undef write
+
+/* Return non-zero if FD is open. */
+static int
+is_open (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* On Win32, the initial state of unassigned standard file
+ descriptors is that they are open but point to an
+ INVALID_HANDLE_VALUE, and there is no fcntl. */
+ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+#else
+# ifndef F_GETFL
+# error Please port fcntl to your platform
+# endif
+ return 0 <= fcntl (fd, F_GETFL);
+#endif
+}
+
+int
+main (int argc, char *argv[])
+{
+ char buffer[2] = { 's', 't' };
+ int fd;
+
+ /* fd 2 might be closed, but fd BACKUP_STDERR_FILENO is the original
+ stderr. */
+ myerr = fdopen (BACKUP_STDERR_FILENO, "w");
+ if (!myerr)
+ return 2;
+
+ ASSERT (argc == 2);
+
+ /* Read one byte from fd 0, and write its value plus one to fd 1.
+ fd 2 should be closed iff the argument is 1. Check that no other file
+ descriptors leaked. */
+
+ ASSERT (read (STDIN_FILENO, buffer, 2) == 1);
+
+ buffer[0]++;
+ ASSERT (write (STDOUT_FILENO, buffer, 1) == 1);
+
+ switch (atoi (argv[1]))
+ {
+ case 0:
+ /* Expect fd 2 is open. */
+ ASSERT (is_open (STDERR_FILENO));
+ break;
+ case 1:
+ /* Expect fd 2 is closed.
+ But on HP-UX 11, fd 2 gets automatically re-opened to /dev/null if it
+ was closed. Future POSIX will allow this, see
+ <http://austingroupbugs.net/view.php?id=173>. */
+#if !defined __hpux
+ ASSERT (! is_open (STDERR_FILENO));
+#endif
+ break;
+ default:
+ ASSERT (0);
+ }
+
+ for (fd = 3; fd < 7; fd++)
+ {
+ errno = 0;
+ ASSERT (close (fd) == -1);
+ ASSERT (errno == EBADF);
+ }
+
+ return 0;
+}
--- /dev/null
+/* Test of create_pipe_bidi/wait_subprocess.
+ Copyright (C) 2009-2011 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+#include "spawn-pipe.h"
+#include "wait-process.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Depending on arguments, this test intentionally closes stderr or
+ starts life with stderr closed. So, we arrange to have fd 10
+ (outside the range of interesting fd's during the test) set up to
+ duplicate the original stderr. */
+
+#define BACKUP_STDERR_FILENO 10
+#define ASSERT_STREAM myerr
+#include "macros.h"
+
+static FILE *myerr;
+
+/* Create a bi-directional pipe to a test child, and validate that the
+ child program returns the expected output.
+ PROG is the program to run in the child process.
+ STDERR_CLOSED is true if we have already closed fd 2. */
+static void
+test_pipe (const char *prog, bool stderr_closed)
+{
+ int fd[2];
+ char *argv[3];
+ pid_t pid;
+ char buffer[2] = { 'a', 't' };
+
+ /* Set up child. */
+ argv[0] = (char *) prog;
+ argv[1] = (char *) (stderr_closed ? "1" : "0");
+ argv[2] = NULL;
+ pid = create_pipe_bidi (prog, prog, argv, false, true, true, fd);
+ ASSERT (0 <= pid);
+ ASSERT (STDERR_FILENO < fd[0]);
+ ASSERT (STDERR_FILENO < fd[1]);
+
+ /* Push child's input. */
+ ASSERT (write (fd[1], buffer, 1) == 1);
+ ASSERT (close (fd[1]) == 0);
+
+ /* Get child's output. */
+ ASSERT (read (fd[0], buffer, 2) == 1);
+
+ /* Wait for child. */
+ ASSERT (wait_subprocess (pid, prog, true, false, true, true, NULL) == 0);
+ ASSERT (close (fd[0]) == 0);
+
+ /* Check the result. */
+ ASSERT (buffer[0] == 'b');
+ ASSERT (buffer[1] == 't');
+}
+
+int
+main (int argc, char *argv[])
+{
+ int test;
+ int fd;
+
+ if (argc != 3)
+ {
+ fprintf (stderr, "%s: need 2 arguments\n", argv[0]);
+ return 2;
+ }
+ /* We might close fd 2 later, so save it in fd 10. */
+ if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
+ || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
+ return 2;
+
+ /* Selectively close various standard fds, to verify the child process is
+ not impacted by this. */
+ test = atoi (argv[2]);
+ switch (test)
+ {
+ case 0:
+ break;
+ case 1:
+ close (0);
+ break;
+ case 2:
+ close (1);
+ break;
+ case 3:
+ close (0);
+ close (1);
+ break;
+ case 4:
+ close (2);
+ break;
+ case 5:
+ close (0);
+ close (2);
+ break;
+ case 6:
+ close (1);
+ close (2);
+ break;
+ case 7:
+ close (0);
+ close (1);
+ close (2);
+ break;
+ default:
+ ASSERT (false);
+ }
+
+ /* Plug any file descriptor leaks inherited from outside world before
+ starting, so that child has a clean slate (at least for the fds that we
+ might be manipulating). */
+ for (fd = 3; fd < 7; fd++)
+ close (fd);
+
+ test_pipe (argv[1], test >= 4);
+
+ return 0;
+}
+++ /dev/null
-/* Test of create_pipe_bidi/wait_subprocess.
- Copyright (C) 2009-2011 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <config.h>
-
-#include "spawn-pipe.h"
-#include "wait-process.h"
-
-#include <errno.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* Depending on arguments, this test intentionally closes stderr or
- starts life with stderr closed. So, we arrange to have fd 10
- (outside the range of interesting fd's during the test) set up to
- duplicate the original stderr. */
-
-#define BACKUP_STDERR_FILENO 10
-#define ASSERT_STREAM myerr
-#include "macros.h"
-
-static FILE *myerr;
-
-/* Code executed by the child process. argv[1] = "child". */
-static int
-child_main (int argc, char *argv[])
-{
- char buffer[2] = { 's', 't' };
- int fd;
- int ret;
-
- ASSERT (argc == 3);
-
- /* Read one byte from fd 0, and write its value plus one to fd 1.
- fd 2 should be closed iff the argument is 1. Check that no other file
- descriptors leaked. */
-
- ASSERT (read (STDIN_FILENO, buffer, 2) == 1);
-
- buffer[0]++;
- ASSERT (write (STDOUT_FILENO, buffer, 1) == 1);
-
- errno = 0;
- ret = dup2 (STDERR_FILENO, STDERR_FILENO);
- switch (atoi (argv[2]))
- {
- case 0:
- /* Expect fd 2 is open. */
- ASSERT (ret == STDERR_FILENO);
- break;
- case 1:
- /* Expect fd 2 is closed. */
- ASSERT (ret == -1);
- ASSERT (errno == EBADF);
- break;
- default:
- ASSERT (false);
- }
-
- for (fd = 3; fd < 7; fd++)
- {
- errno = 0;
- ASSERT (close (fd) == -1);
- ASSERT (errno == EBADF);
- }
-
- return 0;
-}
-
-/* Create a bi-directional pipe to a test child, and validate that the
- child program returns the expected output. The child is the same
- program as the parent ARGV0, but with different arguments.
- STDERR_CLOSED is true if we have already closed fd 2. */
-static void
-test_pipe (const char *argv0, bool stderr_closed)
-{
- int fd[2];
- char *argv[4];
- pid_t pid;
- char buffer[2] = { 'a', 't' };
-
- /* Set up child. */
- argv[0] = (char *) argv0;
- argv[1] = (char *) "child";
- argv[2] = (char *) (stderr_closed ? "1" : "0");
- argv[3] = NULL;
- pid = create_pipe_bidi (argv0, argv0, argv, false, true, true, fd);
- ASSERT (0 <= pid);
- ASSERT (STDERR_FILENO < fd[0]);
- ASSERT (STDERR_FILENO < fd[1]);
-
- /* Push child's input. */
- ASSERT (write (fd[1], buffer, 1) == 1);
- ASSERT (close (fd[1]) == 0);
-
- /* Get child's output. */
- ASSERT (read (fd[0], buffer, 2) == 1);
-
- /* Wait for child. */
- ASSERT (wait_subprocess (pid, argv0, true, false, true, true, NULL) == 0);
- ASSERT (close (fd[0]) == 0);
-
- /* Check the result. */
- ASSERT (buffer[0] == 'b');
- ASSERT (buffer[1] == 't');
-}
-
-/* Code executed by the parent process. */
-static int
-parent_main (int argc, char *argv[])
-{
- int test;
- int fd;
-
- ASSERT (argc == 2);
-
- /* Selectively close various standard fds, to verify the child process is
- not impacted by this. */
- test = atoi (argv[1]);
- switch (test)
- {
- case 0:
- break;
- case 1:
- close (0);
- break;
- case 2:
- close (1);
- break;
- case 3:
- close (0);
- close (1);
- break;
- case 4:
- close (2);
- break;
- case 5:
- close (0);
- close (2);
- break;
- case 6:
- close (1);
- close (2);
- break;
- case 7:
- close (0);
- close (1);
- close (2);
- break;
- default:
- ASSERT (false);
- }
-
- /* Plug any file descriptor leaks inherited from outside world before
- starting, so that child has a clean slate (at least for the fds that we
- might be manipulating). */
- for (fd = 3; fd < 7; fd++)
- close (fd);
-
- test_pipe (argv[0], test >= 4);
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- if (argc < 2)
- {
- fprintf (stderr, "%s: need arguments\n", argv[0]);
- return 2;
- }
- if (strcmp (argv[1], "child") == 0)
- {
- /* fd 2 might be closed, but fd BACKUP_STDERR_FILENO is the original
- stderr. */
- myerr = fdopen (BACKUP_STDERR_FILENO, "w");
- if (!myerr)
- return 2;
- return child_main (argc, argv);
- }
- /* We might close fd 2 later, so save it in fd 10. */
- if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
- || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
- return 2;
- return parent_main (argc, argv);
-}
st=0
for i in 0 1 2 3 4 5 6 7 ; do
- ./test-spawn-pipe${EXEEXT} $i \
+ ./test-spawn-pipe-main${EXEEXT} ./test-spawn-pipe-child${EXEEXT} $i \
|| { echo test-spawn-pipe.sh: iteration $i failed >&2; st=1; }
done
exit $st
#include <stdio.h>
#include <unistd.h>
-#include "pathmax.h"
#include "same-inode.h"
#include "macros.h"
{
struct stat st1;
struct stat st2;
- char cwd[PATH_MAX];
+ char *cwd = getcwd (NULL, 0);
- ASSERT (getcwd (cwd, PATH_MAX) == cwd);
+ ASSERT (cwd);
ASSERT (func (".", &st1) == 0);
ASSERT (func ("./", &st2) == 0);
ASSERT (SAME_INODE (st1, st2));
{
char *str;
+ errno = 0;
str = strerror (EACCES);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ errno = 0;
str = strerror (ETIMEDOUT);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ errno = 0;
str = strerror (EOVERFLOW);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ /* POSIX requires strerror (0) to succeed. Reject use of "Unknown
+ error", but allow "Success", "No error", or even Solaris' "Error
+ 0" which are distinct patterns from true out-of-range strings.
+ http://austingroupbugs.net/view.php?id=382 */
+ errno = 0;
str = strerror (0);
ASSERT (str);
ASSERT (*str);
-
+ ASSERT (errno == 0);
+ ASSERT (strstr (str, "nknown") == NULL);
+ ASSERT (strstr (str, "ndefined") == NULL);
+
+ /* POSIX requires strerror to produce a non-NULL result for all
+ inputs; as an extension, we also guarantee a non-empty reseult.
+ Reporting EINVAL is optional. */
+ errno = 0;
str = strerror (-3);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0 || errno == EINVAL);
return 0;
}
/* Test results with valid errnum and enough room. */
+ errno = 0;
buf[0] = '\0';
- ASSERT (strerror_r (EACCES, buf, sizeof (buf)) == 0);
+ ASSERT (strerror_r (EACCES, buf, sizeof buf) == 0);
ASSERT (buf[0] != '\0');
+ ASSERT (errno == 0);
+ ASSERT (strlen (buf) < sizeof buf);
+ errno = 0;
buf[0] = '\0';
- ASSERT (strerror_r (ETIMEDOUT, buf, sizeof (buf)) == 0);
+ ASSERT (strerror_r (ETIMEDOUT, buf, sizeof buf) == 0);
ASSERT (buf[0] != '\0');
+ ASSERT (errno == 0);
+ ASSERT (strlen (buf) < sizeof buf);
+ errno = 0;
buf[0] = '\0';
- ASSERT (strerror_r (EOVERFLOW, buf, sizeof (buf)) == 0);
+ ASSERT (strerror_r (EOVERFLOW, buf, sizeof buf) == 0);
ASSERT (buf[0] != '\0');
-
- /* Test results with out-of-range errnum and enough room. */
-
- buf[0] = '^';
- ret = strerror_r (0, buf, sizeof (buf));
- ASSERT (ret == 0 || ret == EINVAL);
- if (ret == 0)
- ASSERT (buf[0] != '^');
-
+ ASSERT (errno == 0);
+ ASSERT (strlen (buf) < sizeof buf);
+
+ /* POSIX requires strerror (0) to succeed. Reject use of "Unknown
+ error", but allow "Success", "No error", or even Solaris' "Error
+ 0" which are distinct patterns from true out-of-range strings.
+ http://austingroupbugs.net/view.php?id=382 */
+ errno = 0;
+ buf[0] = '\0';
+ ret = strerror_r (0, buf, sizeof buf);
+ ASSERT (ret == 0);
+ ASSERT (buf[0]);
+ ASSERT (errno == 0);
+ ASSERT (strstr (buf, "nknown") == NULL);
+ ASSERT (strstr (buf, "ndefined") == NULL);
+
+ /* Test results with out-of-range errnum and enough room. POSIX
+ allows an empty string on success, and allows an unchanged buf on
+ error, but these are not useful, so we guarantee contents. */
+ errno = 0;
buf[0] = '^';
- ret = strerror_r (-3, buf, sizeof (buf));
+ ret = strerror_r (-3, buf, sizeof buf);
ASSERT (ret == 0 || ret == EINVAL);
- if (ret == 0)
- ASSERT (buf[0] != '^');
-
- /* Test results with a too small buffer. */
-
- ASSERT (strerror_r (EACCES, buf, sizeof (buf)) == 0);
+ ASSERT (buf[0] != '^');
+ ASSERT (*buf);
+ ASSERT (errno == 0);
+ ASSERT (strlen (buf) < sizeof buf);
+
+ /* Test results with a too small buffer. POSIX requires an error;
+ only ERANGE for 0 and valid errors, and a choice of ERANGE or
+ EINVAL for out-of-range values. On error, POSIX permits buf to
+ be empty, unchanged, or unterminated, but these are not useful,
+ so we guarantee NUL-terminated truncated contents for all but
+ size 0. http://austingroupbugs.net/view.php?id=398. Also ensure
+ that no out-of-bounds writes occur. */
{
- size_t len = strlen (buf);
- size_t i;
+ int errs[] = { EACCES, 0, -3, };
+ int j;
- for (i = 0; i <= len; i++)
+ buf[sizeof buf - 1] = '\0';
+ for (j = 0; j < SIZEOF (errs); j++)
{
- strcpy (buf, "BADFACE");
- ret = strerror_r (EACCES, buf, i);
- if (ret == 0)
- {
- /* Truncated result. POSIX allows this, and it actually
- happens on AIX 6.1 and Cygwin. */
- ASSERT ((strcmp (buf, "BADFACE") == 0) == (i == 0));
- }
- else
+ int err = errs[j];
+ char buf2[sizeof buf] = "";
+ size_t len;
+ size_t i;
+
+ strerror_r (err, buf2, sizeof buf2);
+ len = strlen (buf2);
+ ASSERT (len < sizeof buf);
+
+ for (i = 0; i <= len; i++)
{
- /* Failure. */
- ASSERT (ret == ERANGE);
- /* buf is clobbered nevertheless, on FreeBSD and MacOS X. */
+ memset (buf, '^', sizeof buf - 1);
+ errno = 0;
+ ret = strerror_r (err, buf, i);
+ ASSERT (errno == 0);
+ if (err < 0)
+ ASSERT (ret == ERANGE || ret == EINVAL);
+ else
+ ASSERT (ret == ERANGE);
+ if (i)
+ {
+ ASSERT (strncmp (buf, buf2, i - 1) == 0);
+ ASSERT (buf[i - 1] == '\0');
+ }
+ ASSERT (strspn (buf + i, "^") == sizeof buf - 1 - i);
}
+
+ strcpy (buf, "BADFACE");
+ errno = 0;
+ ret = strerror_r (err, buf, len + 1);
+ ASSERT (ret != ERANGE);
+ ASSERT (errno == 0);
+ ASSERT (strcmp (buf, buf2) == 0);
}
+ }
- strcpy (buf, "BADFACE");
- ret = strerror_r (EACCES, buf, len + 1);
- ASSERT (ret == 0);
+#if GNULIB_STRERROR
+ /* Test that strerror_r does not clobber strerror buffer. On some
+ platforms, this test can only succeed if gnulib also replaces
+ strerror. */
+ {
+ const char *msg1;
+ const char *msg2;
+ const char *msg3;
+ const char *msg4;
+ char *str1;
+ char *str2;
+ char *str3;
+ char *str4;
+
+ msg1 = strerror (ENOENT);
+ ASSERT (msg1);
+ str1 = strdup (msg1);
+ ASSERT (str1);
+
+ msg2 = strerror (ERANGE);
+ ASSERT (msg2);
+ str2 = strdup (msg2);
+ ASSERT (str2);
+
+ msg3 = strerror (-4);
+ ASSERT (msg3);
+ str3 = strdup (msg3);
+ ASSERT (str3);
+
+ msg4 = strerror (1729576);
+ ASSERT (msg4);
+ str4 = strdup (msg4);
+ ASSERT (str4);
+
+ strerror_r (EACCES, buf, sizeof buf);
+ strerror_r (-5, buf, sizeof buf);
+ ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
+ ASSERT (msg2 == msg4 || STREQ (msg2, str2));
+ ASSERT (msg3 == msg4 || STREQ (msg3, str3));
+ ASSERT (STREQ (msg4, str4));
+
+ free (str1);
+ free (str2);
+ free (str3);
+ free (str4);
}
+#endif
return 0;
}
#include "signature.h"
+#if GNULIB_TEST_PSELECT
+SIGNATURE_CHECK (GNULIB_NAMESPACE::pselect, int,
+ (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+ struct timespec const *restrict, sigset_t const *restrict));
+#endif
+
#if GNULIB_TEST_SELECT
SIGNATURE_CHECK (GNULIB_NAMESPACE::select, int,
(int, fd_set *, fd_set *, fd_set *, struct timeval *));
#include <sys/select.h>
+#include "signature.h"
+
+/* The following may be macros without underlying functions, so only
+ check signature if they are not macros. */
+#ifndef FD_CLR
+SIGNATURE_CHECK (FD_CLR, void, (int, fd_set *));
+#endif
+#ifndef FD_ISSET
+SIGNATURE_CHECK (FD_ISSET, void, (int, fd_set *));
+#endif
+#ifndef FD_SET
+SIGNATURE_CHECK (FD_SET, int, (int, fd_set *));
+#endif
+#ifndef FD_ZERO
+SIGNATURE_CHECK (FD_ZERO, void, (fd_set *));
+#endif
+
/* Check that the 'struct timeval' type is defined. */
struct timeval t1;
+/* Check that sigset_t is defined. */
+sigset_t t2;
+
int
main (void)
{
--- /dev/null
+/* Test of gl_thread_create () macro.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include "glthread/thread.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include "macros.h"
+
+static gl_thread_t main_thread_before;
+static gl_thread_t main_thread_after;
+static gl_thread_t worker_thread;
+
+static int dummy;
+static volatile int work_done;
+
+static void *
+worker_thread_func (void *arg)
+{
+ work_done = 1;
+ return &dummy;
+}
+
+int
+main ()
+{
+ main_thread_before = gl_thread_self ();
+
+ if (glthread_create (&worker_thread, worker_thread_func, NULL) == 0)
+ {
+ void *ret;
+
+ /* Check that gl_thread_self () has the same value before than after the
+ first call to gl_thread_create (). */
+ main_thread_after = gl_thread_self ();
+ ASSERT (memcmp (&main_thread_before, &main_thread_after,
+ sizeof (gl_thread_t))
+ == 0);
+
+ gl_thread_join (worker_thread, &ret);
+
+ /* Check the return value of the thread. */
+ ASSERT (ret == &dummy);
+
+ /* Check that worker_thread_func () has finished executing. */
+ ASSERT (work_done);
+
+ return 0;
+ }
+ else
+ {
+#if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WIN32_THREADS
+ fputs ("glthread_create failed\n", stderr);
+ return 1;
+#else
+ fputs ("Skipping test: multithreading not enabled\n", stderr);
+ return 77;
+#endif
+ }
+}
--- /dev/null
+/* Test of gl_thread_self () macro.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include "glthread/thread.h"
+
+gl_thread_t main_thread;
+
+int
+main ()
+{
+ /* Check that gl_thread_self () can be used with just $(LIBTHREAD), not
+ $(LIBMULTITHREAD), i.e. in libraries that are multithread-safe but don't
+ create threads themselves. */
+ main_thread = gl_thread_self ();
+
+ return 0;
+}
int i, j, repeat;
unsigned int values[KEYS_COUNT];
- dbgprintf ("Worker %p started\n", gl_thread_self ());
+ dbgprintf ("Worker %p started\n", gl_thread_self_pointer ());
/* Initialize the per-thread storage. */
for (i = 0; i < KEYS_COUNT; i++)
perhaps_yield ();
/* Verify that the initial value is NULL. */
- dbgprintf ("Worker %p before initial verify\n", gl_thread_self ());
+ dbgprintf ("Worker %p before initial verify\n", gl_thread_self_pointer ());
for (i = 0; i < KEYS_COUNT; i++)
if (gl_tls_get (mykeys[i]) != NULL)
abort ();
- dbgprintf ("Worker %p after initial verify\n", gl_thread_self ());
+ dbgprintf ("Worker %p after initial verify\n", gl_thread_self_pointer ());
perhaps_yield ();
/* Initialize the per-thread storage. */
- dbgprintf ("Worker %p before first tls_set\n", gl_thread_self ());
+ dbgprintf ("Worker %p before first tls_set\n", gl_thread_self_pointer ());
for (i = 0; i < KEYS_COUNT; i++)
{
unsigned int *ptr = (unsigned int *) malloc (sizeof (unsigned int));
*ptr = values[i];
gl_tls_set (mykeys[i], ptr);
}
- dbgprintf ("Worker %p after first tls_set\n", gl_thread_self ());
+ dbgprintf ("Worker %p after first tls_set\n", gl_thread_self_pointer ());
perhaps_yield ();
/* Shuffle around the pointers. */
for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
- dbgprintf ("Worker %p doing value swapping\n", gl_thread_self ());
+ dbgprintf ("Worker %p doing value swapping\n", gl_thread_self_pointer ());
i = ((unsigned int) rand () >> 3) % KEYS_COUNT;
j = ((unsigned int) rand () >> 3) % KEYS_COUNT;
if (i != j)
}
/* Verify that all the values are from this thread. */
- dbgprintf ("Worker %p before final verify\n", gl_thread_self ());
+ dbgprintf ("Worker %p before final verify\n", gl_thread_self_pointer ());
for (i = 0; i < KEYS_COUNT; i++)
if ((*(unsigned int *) gl_tls_get (mykeys[i]) % THREAD_COUNT) != id)
abort ();
- dbgprintf ("Worker %p after final verify\n", gl_thread_self ());
+ dbgprintf ("Worker %p after final verify\n", gl_thread_self_pointer ());
perhaps_yield ();
- dbgprintf ("Worker %p dying.\n", gl_thread_self ());
+ dbgprintf ("Worker %p dying.\n", gl_thread_self_pointer ());
return NULL;
}
#include <stdlib.h>
#include <sys/stat.h>
+#include "progname.h"
#include "unlinkdir.h"
#include "ignore-value.h"
#include "macros.h"
}
int
-main (void)
+main (int argc _GL_UNUSED, char *argv[])
{
/* FIXME: Add tests of fd other than ".". */
int result1;
int result2;
+ set_program_name (argv[0]);
+
/* Remove any leftovers from a previous partial run. */
ignore_value (system ("rm -rf " BASE "*"));
# Foundation, Inc.
EOF
-rm -f $TMP.*.bak
UPDATE_COPYRIGHT_YEAR=2009 \
update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr
compare /dev/null $TMP-stdout || exit 1
# Foundation, Inc.
EOF
-rm -f $TMP.*.bak
UPDATE_COPYRIGHT_YEAR=2010 UPDATE_COPYRIGHT_USE_INTERVALS=1 \
update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr
compare /dev/null $TMP-stdout || exit 1
# Copyright (C) 1990-2005, 2007-2010 Free Software Foundation, Inc.
EOF
-rm -f $TMP.*.bak
UPDATE_COPYRIGHT_YEAR=2010 UPDATE_COPYRIGHT_FORCE=1 \
update-copyright $TMP.* 1> $TMP-stdout 2> $TMP-stderr
compare /dev/null $TMP-stdout || exit 1
char *user_name;
char *group_name;
char const *diag = parse_user_spec (T[i].in, &uid, &gid,
- &user_name, &group_name);
+ &user_name, &group_name);
free (user_name);
free (group_name);
if (!same_diag (diag, T[i].result))
if (uid != T[i].uid || gid != T[i].gid)
{
printf ("%s mismatch (-: expected uid,gid; +:actual)\n"
- "-%3lu,%3lu\n+%3lu,%3lu\n",
- T[i].in,
+ "-%3lu,%3lu\n+%3lu,%3lu\n",
+ T[i].in,
(unsigned long int) T[i].uid,
(unsigned long int) T[i].gid,
(unsigned long int) uid,
{
printf ("%s diagnostic mismatch (-: expected uid,gid; +:actual)\n"
- "-%s\n+%s\n",
- T[i].in, T[i].result, diag);
+ "-%s\n+%s\n",
+ T[i].in, T[i].result, diag);
fail = 1;
}
}
verify (1 == 1); verify (1 == 1); /* should be ok */
if (n)
- return ((void) verify_true (1 == 1), verify_true (1 == 1) + 7); /* should be ok */
+ return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */
#if EXP_FAIL == 5
- return (verify_true (1 == 2), 5); /* should give ERROR */
+ return verify_expr (1 == 2, 5); /* should give ERROR */
#endif
return 0;
}
}
}
+ /* Test the support of the POSIX/XSI format strings with positions. */
+ {
+ char result[100];
+ retval = my_snprintf (result, sizeof (result), "%2$d %1$d", 33, 55);
+ ASSERT (strcmp (result, "55 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
return 0;
}
#!/bin/sh
-
-tmpfiles=
-trap 'rm -fr $tmpfiles' 1 2 3 15
-
-p=t-yesno-
-tmpfiles="${p}in.tmp ${p}xout.tmp ${p}out1.tmp ${p}out.tmp ${p}err.tmp"
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
# For now, only test with C locale
LC_ALL=C
fi
# Test with seekable stdin; the followon process must see remaining data.
-tr @ '\177' <<EOF > ${p}in.tmp
+tr @ '\177' <<EOF > in.tmp
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn - entire line consumed
y@n - backspace does not change result
y
n
EOF
-cat <<EOF > ${p}xout.tmp
+cat <<EOF > xout.tmp
N
Y
Y
n
EOF
-(./test-yesno${EXEEXT}; ./test-yesno${EXEEXT} 3; cat) \
- < ${p}in.tmp > ${p}out1.tmp || exit 1
-LC_ALL=C tr -d "$cr" < ${p}out1.tmp > ${p}out.tmp || exit 1
-cmp ${p}xout.tmp ${p}out.tmp || exit 1
+fail=0
+(test-yesno; test-yesno 3; cat) < in.tmp > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
-(./test-yesno${EXEEXT} 3; ./test-yesno${EXEEXT}; cat) \
- < ${p}in.tmp > ${p}out1.tmp || exit 1
-LC_ALL=C tr -d "$cr" < ${p}out1.tmp > ${p}out.tmp || exit 1
-cmp ${p}xout.tmp ${p}out.tmp || exit 1
+(test-yesno 3; test-yesno; cat) < in.tmp > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
# Test for behavior on pipe
-cat <<EOF > ${p}xout.tmp
+cat <<EOF > xout.tmp
Y
N
EOF
-echo yes | ./test-yesno${EXEEXT} 2 > ${p}out1.tmp || exit 1
-LC_ALL=C tr -d "$cr" < ${p}out1.tmp > ${p}out.tmp || exit 1
-cmp ${p}xout.tmp ${p}out.tmp || exit 1
+echo yes | test-yesno 2 > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
# Test for behavior on EOF
-cat <<EOF > ${p}xout.tmp
+cat <<EOF > xout.tmp
N
EOF
-./test-yesno${EXEEXT} </dev/null > ${p}out1.tmp || exit 1
-LC_ALL=C tr -d "$cr" < ${p}out1.tmp > ${p}out.tmp || exit 1
-cmp ${p}xout.tmp ${p}out.tmp || exit 1
+test-yesno </dev/null > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
# Test for behavior when stdin is closed
-./test-yesno${EXEEXT} 0 <&- > ${p}out1.tmp 2> ${p}err.tmp && exit 1
-LC_ALL=C tr -d "$cr" < ${p}out1.tmp > ${p}out.tmp || exit 1
-cmp ${p}xout.tmp ${p}out.tmp || exit 1
-test -s ${p}err.tmp || exit 1
-
-# Cleanup
-rm -fr $tmpfiles
+test-yesno 0 <&- > out1.tmp 2> err.tmp && fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+test -s err.tmp || fail=1
-exit 0
+Exit $fail
# "TYPE" must be stable, beta or alpha
make TYPE
-* Test the tarball. copy it to a few odd-ball systems and ensure that
+* Test the tarball. Copy it to a few odd-ball systems and ensure that
it builds and passes all tests.
* While that's happening, write the release announcement that you will
$(_sc_search_regexp)
# To use this "command" macro, you must first define two shell variables:
-# h: the header, enclosed in <> or ""
+# h: the header name, with no enclosing <> or ""
# re: a regular expression that matches IFF something provided by $h is used.
define _sc_header_without_use
dummy=; : so we do not need a semicolon before each use; \
- h_esc=`echo "$$h"|sed 's/\./\\\\./g'`; \
+ h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \
if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \
files=$$(grep -l '^# *include '"$$h_esc" \
$$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \
# Prohibit the inclusion of assert.h without an actual use of assert.
sc_prohibit_assert_without_use:
- @h='<assert.h>' re='\<assert *\(' $(_sc_header_without_use)
+ @h='assert.h' re='\<assert *\(' $(_sc_header_without_use)
# Prohibit the inclusion of close-stream.h without an actual use.
sc_prohibit_close_stream_without_use:
- @h='"close-stream.h"' re='\<close_stream *\(' $(_sc_header_without_use)
+ @h='close-stream.h' re='\<close_stream *\(' $(_sc_header_without_use)
# Prohibit the inclusion of getopt.h without an actual use.
sc_prohibit_getopt_without_use:
- @h='<getopt.h>' re='\<getopt(_long)? *\(' $(_sc_header_without_use)
+ @h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use)
# Don't include quotearg.h unless you use one of its functions.
sc_prohibit_quotearg_without_use:
- @h='"quotearg.h"' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use)
+ @h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use)
# Don't include quote.h unless you use one of its functions.
sc_prohibit_quote_without_use:
- @h='"quote.h"' re='\<quote(_n)? *\(' $(_sc_header_without_use)
+ @h='quote.h' re='\<quote(_n)? *\(' $(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_long_options_without_use:
- @h='"long-options.h"' re='\<parse_long_options *\(' \
+ @h='long-options.h' re='\<parse_long_options *\(' \
$(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_inttostr_without_use:
- @h='"inttostr.h"' re='\<(off|[iu]max|uint)tostr *\(' \
+ @h='inttostr.h' re='\<(off|[iu]max|uint)tostr *\(' \
$(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_ignore_value_without_use:
- @h='"ignore-value.h"' re='\<ignore_(value|ptr) *\(' \
+ @h='ignore-value.h' re='\<ignore_(value|ptr) *\(' \
$(_sc_header_without_use)
# Don't include this header unless you use one of its functions.
sc_prohibit_error_without_use:
- @h='"error.h"' \
+ @h='error.h' \
re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\
$(_sc_header_without_use)
_xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup)
_xa2 = X([CZ]|N?M)ALLOC
sc_prohibit_xalloc_without_use:
- @h='"xalloc.h"' \
+ @h='xalloc.h' \
re='\<($(_xa1)|$(_xa2)) *\('\
$(_sc_header_without_use)
_hash_fn = \<($(_hash_re)) *\(
_hash_struct = (struct )?\<[Hh]ash_(table|tuning)\>
sc_prohibit_hash_without_use:
- @h='"hash.h"' \
+ @h='hash.h' \
re='$(_hash_fn)|$(_hash_struct)'\
$(_sc_header_without_use)
+sc_prohibit_cloexec_without_use:
+ @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \
+ $(_sc_header_without_use)
+
+sc_prohibit_posixver_without_use:
+ @h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use)
+
+sc_prohibit_same_without_use:
+ @h='same.h' re='\<same_name *\(' $(_sc_header_without_use)
+
sc_prohibit_hash_pjw_without_use:
- @h='"hash-pjw.h"' \
+ @h='hash-pjw.h' \
re='\<hash_pjw *\(' \
$(_sc_header_without_use)
sc_prohibit_safe_read_without_use:
- @h='"safe-read.h"' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
+ @h='safe-read.h' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
$(_sc_header_without_use)
sc_prohibit_argmatch_without_use:
- @h='"argmatch.h"' \
- re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<argmatch(_exit_fn|_(in)?valid) *\()' \
+ @h='argmatch.h' \
+ re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<(invalid_arg|argmatch(_exit_fn|_(in)?valid)?) *\()' \
$(_sc_header_without_use)
sc_prohibit_canonicalize_without_use:
- @h='"canonicalize.h"' \
+ @h='canonicalize.h' \
re='CAN_(EXISTING|ALL_BUT_LAST|MISSING)|canonicalize_(mode_t|filename_mode)' \
$(_sc_header_without_use)
sc_prohibit_root_dev_ino_without_use:
- @h='"root-dev-ino.h"' \
+ @h='root-dev-ino.h' \
re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \
$(_sc_header_without_use)
sc_prohibit_openat_without_use:
- @h='"openat.h"' \
+ @h='openat.h' \
re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat)\>' \
$(_sc_header_without_use)
ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\
|isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper
sc_prohibit_c_ctype_without_use:
- @h='[<"]c-ctype.h[">]' re='\<c_($(ctype_re)) *\(' \
+ @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \
$(_sc_header_without_use)
_empty =
# Prohibit the inclusion of signal.h without an actual use.
sc_prohibit_signal_without_use:
- @h='<signal.h>' \
+ @h='signal.h' \
re='\<($(_sig_function_re)) *\(|\<($(_sig_syms_re))\>' \
$(_sc_header_without_use)
# Don't include stdio--.h unless you use one of its functions.
sc_prohibit_stdio--_without_use:
- @h='"stdio--.h"' re='\<((f(re)?|p)open|tmpfile) *\(' \
+ @h='stdio--.h' re='\<((f(re)?|p)open|tmpfile) *\(' \
$(_sc_header_without_use)
# Don't include stdio-safer.h unless you use one of its functions.
sc_prohibit_stdio-safer_without_use:
- @h='"stdio-safer.h"' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \
+ @h='stdio-safer.h' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \
$(_sc_header_without_use)
# Prohibit the inclusion of strings.h without a sensible use.
# Using the likes of bcmp, bcopy, bzero, index or rindex is not sensible.
sc_prohibit_strings_without_use:
- @h='<strings.h>' \
+ @h='strings.h' \
re='\<(strn?casecmp|ffs(ll)?)\>' \
$(_sc_header_without_use)
# Get the list of symbol names with this:
-# perl -lne '/^# *define (\w+)\(/ and print $1' lib/intprops.h|grep -v '^s'|fmt
+# perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
_intprops_names = \
TYPE_IS_INTEGER TYPE_TWOS_COMPLEMENT TYPE_ONES_COMPLEMENT \
TYPE_SIGNED_MAGNITUDE TYPE_SIGNED TYPE_MINIMUM TYPE_MAXIMUM \
- INT_STRLEN_BOUND INT_BUFSIZE_BOUND
+ INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND \
+ INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW \
+ INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW \
+ INT_DIVIDE_RANGE_OVERFLOW INT_REMAINDER_RANGE_OVERFLOW \
+ INT_LEFT_SHIFT_RANGE_OVERFLOW INT_ADD_OVERFLOW INT_SUBTRACT_OVERFLOW \
+ INT_NEGATE_OVERFLOW INT_MULTIPLY_OVERFLOW INT_DIVIDE_OVERFLOW \
+ INT_REMAINDER_OVERFLOW INT_LEFT_SHIFT_OVERFLOW
_intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
# Prohibit the inclusion of intprops.h without an actual use.
sc_prohibit_intprops_without_use:
- @h='"intprops.h"' \
+ @h='intprops.h' \
re='\<($(_intprops_syms_re)) *\(' \
$(_sc_header_without_use)
_stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t
# Prohibit the inclusion of stddef.h without an actual use.
sc_prohibit_stddef_without_use:
- @h='<stddef.h>' \
+ @h='stddef.h' \
re='\<($(_stddef_syms_re)) *\(' \
$(_sc_header_without_use)
+# Prohibit the inclusion of verify.h without an actual use.
+sc_prohibit_verify_without_use:
+ @h='verify.h' \
+ re='\<(verify(true|expr)?|static_assert) *\(' \
+ $(_sc_header_without_use)
+
# Don't include xfreopen.h unless you use one of its functions.
sc_prohibit_xfreopen_without_use:
- @h='"xfreopen.h"' re='\<xfreopen *\(' $(_sc_header_without_use)
+ @h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use)
sc_obsolete_symbols:
@prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
halt='help2man requires at least two spaces between an option and its description'\
$(_sc_search_regexp)
+# A regexp matching function names like "error" that may be used
+# to emit translatable messages.
+_gl_translatable_diag_func_re ?= error
+
# Look for diagnostics that aren't marked for translation.
# This won't find any for which error's format string is on a separate line.
sc_unmarked_diagnostics:
@grep -nE \
- '\<error *\([^"]*"[^"]*[a-z]{3}' $$($(VC_LIST_EXCEPT)) \
+ '\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
+ $$($(VC_LIST_EXCEPT)) \
| grep -Ev '(_|ngettext ?)\(' && \
{ echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
exit 1; } || :
gl_extract_significant_defines_ = \
/^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\
&& $$2 !~ /(?:rpl_|_used_without_)/\
- && $$1 !~ /^(?:NSIG|ATTRIBUTE_NORETURN)$$/\
+ && $$1 !~ /^(?:NSIG)$$/\
+ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\
and print $$1
# Create a list of regular expressions matching the names
perl -lne '$(gl_extract_significant_defines_)' $$f; \
done; \
) | sort -u \
- | grep -Ev '^ATTRIBUTE_NORETURN' \
| sed 's/^/^ *# *(define|undef) */;s/$$/\\>/'
endef
# the other init.sh-using tests also get it right.
_hv_file ?= $(srcdir)/tests/help-version
_hv_regex_weak ?= ^ *\. .*/init\.sh"
+# Fix syntax-highlighters "
_hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh"
sc_cross_check_PATH_usage_in_tests:
@if test -f $(_hv_file); then \
halt='Use 0 or 1 for macro values' \
$(_sc_search_regexp)
+# Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might
+# not be constant, or might overflow a stack. In general, use PATH_MAX as
+# a limit, not an array or alloca size.
+sc_prohibit_path_max_allocation:
+ @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX' \
+ halt='Avoid stack allocations of size PATH_MAX' \
+ $(_sc_search_regexp)
+
sc_vulnerable_makefile_CVE-2009-4029:
@prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \
in_files=$$(find $(srcdir) -name Makefile.in) \
$$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \
| $(update-copyright-env) xargs $(build_aux)/$@
-# NOTE: This test is silently skipped if $(_gl_TS_dir)/Makefile.am
-# does not mention noinst_HEADERS.
-# NOTE: to override these _gl_TS_* default values, you must
+# This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not
+# overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS.
+
+# NOTE: to override any _gl_TS_* default value, you must
# define the variable(s) using "export" in cfg.mk.
_gl_TS_dir ?= src
+
ALL_RECURSIVE_TARGETS += sc_tight_scope
sc_tight_scope: tight-scope.mk
- @grep noinst_HEADERS $(_gl_TS_dir)/Makefile.am > /dev/null 2>&1 \
- && $(MAKE) -s -C $(_gl_TS_dir) -f Makefile \
- -f '$(abs_srcdir)/tight-scope.mk' _gl_tight_scope \
- || :
+ @if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \
+ > /dev/null \
+ && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \
+ > /dev/null 2>&1; then \
+ echo '$(ME): skipping $@'; \
+ else \
+ $(MAKE) -s -C $(_gl_TS_dir) \
+ -f Makefile \
+ -f $(abs_top_srcdir)/cfg.mk \
+ -f $(abs_top_builddir)/$< \
+ _gl_tight_scope \
+ || fail=1; \
+ fi
@rm -f $<
tight-scope.mk: $(ME)
ifeq (a,b)
# TS-start
+
# Most functions should have static scope.
# Any that don't must be marked with `extern', but `main'
# and `usage' are exceptions: they're always extern, but
# do not need to be marked. Symbols matching `__.*' are
# reserved by the compiler, so are automatically excluded below.
_gl_TS_unmarked_extern_functions ?= main usage
-_gl_TS_function_match ?= \
- /^(?:extern|XTERN) +(?:void|(?:struct |const |enum )?\S+) +\**(\S+) +\(/
+_gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/
+
+# If your project uses a macro like "XTERN", then put
+# the following in cfg.mk to override this default:
+# export _gl_TS_extern = extern|XTERN
+_gl_TS_extern ?= extern
# The second nm|grep checks for file-scope variables with `extern' scope.
# Without gnulib's progname module, you might put program_name here.
# a macro like this: GLOBAL(type, var_name, initializer), then you
# can override this definition to automatically extract those names:
# export _gl_TS_var_match = \
-# /^(?:extern|XTERN) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
-_gl_TS_var_match ?= /^(?:extern|XTERN) .*?\**(\w+)(\[.*?\])?;/
+# /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
+_gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/
+
+# The names of object files in (or relative to) $(_gl_TS_dir).
+_gl_TS_obj_files ?= *.$(OBJEXT)
+
+# Files in which to search for the one-line style extern declarations.
+# $(_gl_TS_dir)-relative.
+_gl_TS_headers ?= $(noinst_HEADERS)
+
.PHONY: _gl_tight_scope
_gl_tight_scope: $(bin_PROGRAMS)
t=exceptions-$$$$; \
done; \
src=`for f in $(SOURCES); do \
test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
- hdr=`for f in $(noinst_HEADERS); do \
+ hdr=`for f in $(_gl_TS_headers); do \
test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \
grep -h -A1 '^extern .*[^;]$$' $$src \
| grep -vE '^(extern |--)' | sed 's/ .*//'; \
- perl -lne '$(_gl_TS_function_match)' \
- -e 'and print $$1' $$hdr; \
- ) | sort -u | sed 's/^/^/;s/$$/$$/' > $$t; \
- nm -e *.$(OBJEXT) | sed -n 's/.* T //p' | grep -Ev -f $$t \
+ perl -lne \
+ '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \
+ ) | sort -u > $$t; \
+ nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \
&& { echo the above functions should have static scope >&2; \
exit 1; } || : ; \
( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \
- perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' \
- $$hdr *.h ) | sort -u > $$t; \
- nm -e *.$(OBJEXT) | sed -n 's/.* [BCDGRS] //p' \
+ perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' $$hdr *.h \
+ ) | sort -u > $$t; \
+ nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \
| sort -u | grep -Ev -f $$t \
&& { echo the above variables should have static scope >&2; \
exit 1; } || :