202 Commits
Author SHA1 Message Date
Bruno Haible 5f7d5f2b78 dirent: Update doc.
* doc/posix-headers/dirent.texi: More concrete list of platforms.
2017-09-02 13:23:15 +02:00
Paul Eggert c8e57c1ad7 glob, backupfile: inode 0 is a valid inode number
* doc/posix-functions/readdir.texi (readdir):
* doc/posix-headers/dirent.texi (dirent.h):
Document more readdir portability issues.
* lib/backupfile.c (REAL_DIR_ENTRY): Remove.
(numbered_backup): Don’t treat inode 0 any differently from
other inode values.
* lib/glob.c (struct readdir_result): Remove skip_entry member.
(readdir_result_skip_entry, D_INO_TO_RESULT): Remove.
All uses removed.
* modules/glob (Depends-on): Remove d-ino.
2017-08-31 15:08:44 -07:00
Bruno Haible daba2833be stdnoreturn: Fix test compilation failure on Cygwin.
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): On Cygwin, use gnulib's
<stdnoreturn.h> replacement.
* lib/stdnoreturn.in.h (noreturn): Treat Cygwin like MSVC.
* doc/posix-headers/stdnoreturn.texi: Mention the Cygwin problem.
2017-08-17 02:00:04 +02:00
John E. Malmberg 418a494eaa sys_socket: Add support for OpenVMS.
* lib/sys_socket.in.h [__VMS]: Define CMSG_SPACE, CMSG_LEN.
* doc/posix-headers/sys_socket.texi: Mention OpenVMS issues.
2017-07-15 23:11:44 +02:00
John E. Malmberg 4abebc63f3 sys_resource: Add support for OpenVMS.
* lib/resource.in.h [__VMS]: Define RUSAGE_SELF, RUSAGE_CHILDREN.
* doc/posix-headers/sys_resource.texi: Mention OpenVMS issues.
2017-07-15 17:30:13 +02:00
John E. Malmberg 9d63a16e7f math: Add support for OpenVMS.
* lib/math.in.h [__VMS]: Include <fp.h>.
* doc/posix-headers/math.texi: Mention OpenVMS issues.
2017-07-15 17:10:51 +02:00
Bruno Haible 8fb59b8fac doc: Update for MSVC 14.
* doc/posix-headers/*.texi: Add info about MSVC 14.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2017-07-06 01:15:49 +02:00
Bruno Haible 8123b614e6 windows-stat-inodes: New module.
* m4/windows-stat-inodes.m4: New file.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_STAT_INODES.
* modules/sys_types (Makefile.am): Substitute WINDOWS_STAT_INODES.
* lib/sys_types.in.h [WINDOWS_STAT_INODES]: Override dev_t and ino_t.
(_GL_WINDOWS_STAT_INODES): New macro.
* lib/stat-w32.c: Set _WIN32_WINNT. Include <string.h>, verify.h.
(GetFileInformationByHandleExFunc): New variable.
(initialize): Initialize it.
(_gl_fstat_by_handle) [_GL_WINDOWS_STAT_INODES]: Initialize st_dev and
st_ino appropriately.
* lib/stat.c (rpl_stat): Use the directory entry based approach only as
a fallback, because it does not provide st_dev and st_ino values.
* modules/fstat (Depends-on): Add 'verify'.
* modules/windows-stat-inodes: New file.
* doc/windows-stat-inodes.texi: New file.
* doc/gnulib.texi: Include it.
* doc/posix-headers/sys_stat.texi: Mention the new module.
2017-05-14 17:38:24 +02:00
Bruno Haible 7a06674599 largefile: Improve and document.
* m4/largefile.m4 (gl_LARGEFILE): Set WINDOWS_64_BIT_ST_SIZE to 0 if
the mingw headers already define 'stat' appropriately.
* modules/largefile (Description): Clarify.
* doc/largefile.texi: New file.
* doc/gnulib.texi: Include it.
* doc/posix-headers/sys_types.texi: Update.
2017-05-13 03:03:07 +02:00
Bruno Haible 8dac05d25a utime-h: New module.
* m4/utime_h.m4: New file.
* lib/utime.in.h: New file.
* modules/utime-h: New file.
* doc/posix-headers/utime.texi: Mention the new module.

* tests/test-utime-h.c: New file.
* modules/utime-h-tests: New file.
2017-04-30 10:21:22 +02:00
Bruno Haible d25927299b stdint: Update doc about Solaris 9.
* doc/posix-headers/stdint.texi: Add info about Solaris 9.
2016-12-10 12:08:07 +01:00
Paul Eggert 0d63463512 same-inode: port to MinGW
Here st_ino is always 0, so change the definition of SAME_INODE so
that 1 means the two files are the same, 0 with st_ino != 0 means
they differ, and 0 with st_ino == 0 means we don’t know.  Problem
reported by Bruno Haible (Bug#25146).
* doc/posix-headers/sys_stat.texi (sys/stat.h): Update.
* lib/same-inode.h (SAME_INODE): Return 0 on MinGW.
2016-12-09 08:17:09 -08:00
Paul Eggert 136ecf4524 stdint: port SIZE_MAX to glibc s390
Problem reported by Eric Blake in:
http://lists.gnu.org/archive/html/bug-gnulib/2016-10/msg00031.html
* doc/posix-headers/stdint.texi (stdint.h): Document the fix.
* m4/stdint.m4 (gl_STDINT_H): Check that SIZE_MAX has the
correct type, if possible.
2016-10-13 11:17:13 -07:00
Paul Eggert b81c53b701 stdint: support new _WIDTH macros
* doc/posix-headers/stdint.texi: Document this.
* lib/stdint.in.h: Add support for INTMAX_WIDTH. etc.
* m4/stdint.m4 (gl_STDINT_H): Require gl_LIMITS_H.  Check for
support for INTMAX_WIDTH, etc. as well as for support for just C99.
* modules/stdint (Depends-on): Add limits-h.
(Makefile.am): Substitute HAVE_C99_STDINT_H.
* modules/stdint-tests (Depends-on): Add extensions, so that
INTMAX_MAX etc. are defined.
* tests/test-stdint.c: Verify the new macros.
2016-09-16 00:46:11 -07:00
Paul Eggert 0d12d16ab3 limits-h: new module
This adds ISO/IEC TS 18661-1:2014 support to limits.h.
* MODULES.html.sh: Add limits-h,and move size_max to stdint section.
* doc/posix-headers/limits.texi: Document new module.
* lib/limits.in.h, m4/limits-h.m4, modules/limits-h:
* modules/limit-h-tests, tests/test-limits-h.c: New files.
2016-09-16 00:46:11 -07:00
Eric Blake a512e04112 sys_types: avoid glibc 2.25 warnings about major()
glibc 2.25 is deprecating the namespace pollution of <sys/types.h>
injecting major(), minor(), and makedev() into the compilation
environment, with a warning that insists that users include
<sys/sysmacros.h> instead.  However, because the expansion of
AC_HEADER_MAJOR didn't bother checking sys/sysmacros.h until
after probing whether sys/types.h pollutes the namespace, it was
not defining MAJOR_IN_SYSMACROS, with the result that code
compiled with -Werror chokes on the deprecation warnings because
it was not including sysmacros.h.

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

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

Signed-off-by: Eric Blake <eblake@redhat.com>
2016-09-15 12:40:24 -05:00
Paul Eggert 775dbeeb11 stdalign: correct mistake in alignof doc
Problem reported by Joseph Myers in:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00340.html
* doc/posix-headers/stdalign.texi: Do not imply that C11 prohibits
alignof(S) where S is a structure containing a flexible array
member.  The Gnulib substitute does not support this, but C11 does.
2016-09-06 14:26:43 -07:00
Paul Eggert a073adb9e9 intprops: port to OpenVMS
Problem reported by John E. Malmberg in: https://bugs.gnu.org/24300
* doc/posix-headers/limits.texi: Document the problem.
* lib/intprops.h (LLONG_MAX, LLONG_MIN) [__INT64_MAX]:
Define if not already defined.
2016-08-24 20:52:10 -07:00
Paul Eggert 6fafd688d6 stdbool: don't require _Bool for C++
Problem reported by David Seifert in:
http://lists.gnu.org/archive/html/bug-gnulib/2016-06/msg00005.html
* NEWS, doc/posix-headers/stdbool.texi (stdbool.h): Document this.
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Make the check
more-forgiving for C++, in that it requires only 'bool'.  Be a bit
stricter about checking that bool and _Bool are compatible in C.
2016-08-17 15:35:35 -07:00
Eric Blake 1513c61836 doc: mention glibc, OS X, Cygwin [S]SIZE_MAX buglet
More platforms have similar bugs, and in the case of glibc on s390,
the bug is in SIZE_MAX instead of SSIZE_MAX.

* doc/posix-headers/stdint.texi (stdint.h): Document the bugs.
* doc/posix-headers/limits.texi (limits.h): Document the bugs.

Signed-off-by: Eric Blake <eblake@redhat.com>
2016-07-13 09:51:00 -06:00
Paul Eggert 2cd814db9c doc: mention glibc SSIZE_MAX buglet
* doc/posix-headers/limits.texi (limits.h): Document the bug.
2016-07-13 11:43:05 +02:00
Paul Eggert 96609bb2f7 Use GCC_LINT, not lint
FreeBSD and Cygwin #define _Noreturn to empty if 'lint' is defined.
Problem reported by Ken Brown in: http://bugs.gnu.org/23640
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document problem with lint and _Noreturn.
* lib/diffseq.h (IF_LINT, IF_LINT2):
* lib/fts.c (sccsid):
* lib/getndelim2.c (IF_LINT):
* lib/gl_anylinked_list2.h (gl_linked_iterator)
(gl_linked_iterator_from_to):
* lib/gl_anytree_list2.h (gl_tree_iterator)
(gl_tree_iterator_from_to):
* lib/gl_anytree_oset.h (gl_tree_iterator):
* lib/gl_array_list.c (gl_array_iterator)
(gl_array_iterator_from_to):
* lib/gl_array_oset.c (gl_array_iterator):
* lib/gl_carray_list.c (gl_carray_iterator)
(gl_carray_iterator_from_to):
* lib/idcache.c:
* lib/inet_ntop.c (IF_LINT):
* lib/regcomp.c (build_charclass_op, create_tree):
* lib/regex_internal.c (re_acquire_state)
(re_acquire_state_context):
* lib/trigl.c (rcsid):
* lib/trim.c (IF_LINT):
* lib/vasnprintf.c (IF_LINT):
* lib/verify.h (assume):
Treat GCC_LINT like lint.
2016-05-30 16:04:23 -07:00
Paul Eggert 956fa543b1 stdalign: port to Sun C 5.9
* doc/posix-headers/stdalign.texi: Document this.
* lib/stdalign.in.h (_Alignas): Sun C 5.9 also supports
__attribute__ ((__aligned__ (...))).
2015-10-25 01:11:20 -07:00
Paul Eggert 04dee58e17 fts: port to C11 alignof
* doc/posix-headers/stdalign.texi (stdalign.h):
Document the C11 restriction.
* lib/fts.c: Include stddef.h, for max_align_t.
(fts_alloc): Align using max_align_t, not FTSENT.
* modules/fts (Depends-on): Add stddef.
2015-10-18 10:04:12 -07:00
Paul Eggert cc0a1a96a5 Android doesn't define RLIM_SAVED_*
Portability problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00122.html
* doc/posix-headers/sys_resource.texi (sys/resource.h):
Mention the portability problem.
* lib/getdtablesize.c (RLIM_SAVED_CUR, RLIM_SAVED_MAX):
Define if not defined.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Likewise.
2015-02-22 19:08:12 -08:00
Kevin Cernekee 52f74ee1b4 duplocale: Fix Android build of duplocale-tests
* modules/duplocale-tests (Depends-on): Add langinfo, as the header
is included by test-duplocale.c (but not by duplocale.c).
* modules/duplocale-tests (configure.ac): Check for monetary.h.
* tests/test-duplocale.c: Skip test if monetary.h is absent.
* doc/posix-headers/monetary.texi: Add Android to the list of
platforms missing monetary.h.
2015-02-11 15:47:46 -08:00
Eric Blake 16518d9ed8 docs: mention why libgen.h is bad
I just debugged a failure in sharutils-4.14.2-1 for using basename()
without including <libgen.h>.  In the process, I realized that we
aren't doing a good job of explaining why we don't offer a libgen.h
replacement (it is useless because the only two functions it
provides are also useless).

* doc/posix-headers/libgen.texi (libgen.h): Refer to dirname module.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-12-22 11:50:37 -07:00
Paul Eggert 3ae2441d46 stddef: support C11's max_align_t
* doc/posix-headers/stddef.texi (stddef.h): Document max_align_t.
* lib/stddef.in.h (_@GUARD_PREFIX@_STDDEF_H) [__need_wint_t]:
Do not undef, as that might cause max_align_t to be defined twice.
Instead, change use to check for _GL_STDDEF_WINT_T too.
(max_align_t) [!HAVE_MAX_ALIGN_T]: New decl.
* m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS):
Check for max_align_t.
* modules/stddef (stddef.h): Substitute HAVE_MAX_ALIGN_T.
* modules/stddef-tests (Depends-on): Add stdalign.
* tests/test-stddef.c: Test max_align_t.
2014-12-12 11:28:09 -08:00
Paul Eggert 93ce02b4fa dup2, fcntl, fcntl-h: port to AIX 7.1
This fixes some porting problems discovered when testing the latest
grep snapshot on AIX 7.1.  I don't think if fixes any bugs
in grep but it could be important for other applications.
* doc/posix-functions/dup2.texi:
* doc/posix-functions/fcntl.texi:
* doc/posix-headers/fcntl.texi:
Document AIX bugs.
* lib/fcntl.in.h (O_CLOEXEC, O_NOFOLLOW, O_TTY_INIT) [_AIX]:
Define to 0 if outside 'int' range.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Check for getdtablesize.  If it's available, test a value just
outside its range instead of testing 1000000.  When cross-compiling,
guess that AIX will fail this improved test.
2014-05-31 14:09:02 -07:00
Eric Blake d5fec6c22f pthread: work around winpthread header pollution on mingw
Dan Berrange reported compilation failure of libvirt on Fedora 20
when cross-compiling to mingw; the problem was traced to bogus
macros in the winpthreads <pthread.h> header shipped as part of
mingw-headers 3.0.

  CC       util/libvirt_util_la-virerror.lo
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/sys/time.h:10:0,
                 from ../gnulib/lib/sys/time.h:39,
                 from ../gnulib/lib/sys/select.h:117,
                 from util/virutil.h:31,
                 from util/virerror.c:35:
../gnulib/lib/time.h:468:21: error: expected identifier or '(' before '{' token
 _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
                     ^

Gnulib's time.h was already working around the pthread.h pollution,
but now that newer mingw has started providing struct timespec,
the workaround was no longer being hit.  Moving the pollution
workaround to the wrapper around the broken header solves the problem.

* lib/time.in.h: Move pthread workarounds...
* lib/pthread.in.h: ...here.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Also build pthread.h when we
detect macro pollution on mingw.
* doc/posix-headers/pthread.texi (pthread.h): Document the problems.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-01-23 10:55:02 -07:00
Eric Blake 311a4f3c3d docs: mention cygwin shortcoming in <sys/un.h>
I'm not quite ready to implement a replacement <sys/un.h> that
automatically works around this problem, since making the replacement
work for mingw seems much harder; so for now I'm just documenting
the issue I hit.

* doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-05-30 11:39:35 -06:00
Paul Eggert 076ac82d1d stdalign: doc fix
* doc/posix-headers/stdalign.texi (stdalign.h):
Gnulib doesn't support '_Alignof expr'.
2013-03-30 10:21:41 -07:00
Paul Eggert 76b501132e stdalign: port to stricter ISO C11
ISO C11 says that _Alignof's operand must be a parenthesized type.
Problem reported by Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00960.html>.
* doc/posix-headers/stdalign.texi (stdalign.h): Document this.
* m4/stdalign.m4 (gl_STDALIGN_H): Don't use _Alignof (expr).
2013-03-29 19:48:38 -07:00
Paul Eggert d71ee32416 Fix typo in stdnoreturn documentation. 2013-02-19 12:30:55 -08:00
Paul Eggert 72fa964ff7 Hyphen and dash fixes. 2012-12-27 01:24:17 -08:00
Paul Eggert a0169ab699 fcntl-h: default O_SEARCH, O_EXEC back to O_RDONLY
O_PATH doesn't work with Linux kernel 3.6.5, as fchmod (fd, ...)
fails with errno == EBADF when fd is opened with O_PATH.
Reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-11/msg00026.html>.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default back to O_RDONLY.
2012-11-08 01:24:09 -08:00
Paul Eggert daf7f8c022 errno: port to LynxOS 178 2.2.2
Problem reported by Joel Brobecker in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-10/msg00088.html>.
* doc/posix-headers/errno.texi (errno.h): Document this.
* lib/errno.in.h (EILSEQ, GNULIB_defined_EILSEQ) [!EILSEQ]: New macros.
* lib/strerror-override.c, lib/strerror-override.h (strerror_override):
Supply a string for EILSEQ.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Check for EILSEQ.
2012-11-05 17:29:39 -08:00
Paul Eggert e99cec677e fcntl-h: default O_SEARCH, O_EXEC to O_PATH if available
Linux kernel 2.6.39 introduced O_PATH (see
<http://lwn.net/Articles/433854/>) and this is a better fallback
for O_SEARCH and O_EXEC than O_RDONLY, if O_PATH is available.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default to O_PATH.
* lib/fcntl.in.h (O_ACCMODE):
* tests/test-fcntl-h.c (main):
Do not reject O_ACCMODE merely because it has more than the
minimal number of bits, as POSIX allows extensions here.
2012-11-05 13:54:38 -08:00
Paul Eggert a4abf7a49b fcntl-h: support GNU flags like O_IGNORE_CTTY
* doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY,
O_NOLINK, and O_NOTRANS.  These flags are nonzero on GNU/Hurd
systems.  Discovered when using fcntl-h with GNU Emacs, which uses
O_IGNORE_CTTY.  Fix misspelling of F_SETLKW.
* lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS):
Define to 0 if not already defined.
* tests/test-fcntl-h.c: Test these new flags.
2012-10-15 09:31:52 -07:00
Eric Blake d8d412ccd9 net_if: give more details about the bug being fixed
Jasper Lievisse Adriaanse reported that NetBSD 5.2 also has
the same bug.  Also, when writing configure tests that use
<net/if.h> (such as for 'struct ifreq'), it is useful to know
what pre-requisite headers are needed within that test.

* doc/posix-headers/net_if.texi: Add clarification.

Signed-off-by: Eric Blake <eblake@redhat.com>
2012-09-06 16:25:29 -06:00
Eric Blake 440a1dbe52 net_if: new module
OpenBSD's <net/if.h> is not self-contained; this should compile:

| #define _POSIX_C_SOURCE 200809L
| #include <net/if.h>
| struct if_nameindex i;

but fails with:

In file included from foo.c:2:
/usr/include/net/if.h:112: error: expected specifier-qualifier-list before 'u_int'
...
/usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type
In file included from /usr/include/net/if.h:691,
                 from foo.c:2:
/usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type
/usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type
*** Error code 1

We already had a test program for systems with the if_* functions
(including OpenBSD); but in adding this module, I had to enhance
that test to also work on platforms like mingw where we are now
providing a new header.

* modules/net_if: New module, borrowing ideas from netinet_in.
* m4/net_if_h.m4: New file.
* lib/net_if.in.h: Likewise.
* doc/posix-headers/net_if.texi (net/if.h): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* tests/test-net_if.c: Make function checks conditional.
Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>.

Signed-off-by: Eric Blake <eblake@redhat.com>
2012-09-05 15:51:13 -06:00
Paul Eggert 8f25604017 stdnoreturn: port to newer GCCs
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Avoid problems with
bleeding-edge GCC that complains about 'int _Noreturn foo (void);'.
Problem reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00121.html>.
Also, rename the 'test' function to a void a clash with the
already-supplied 'main' function; this fixes a bug that incorrectly
rejected GCC 4.7.1's <stdnoreturn.h>.
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document GCC problem.
2012-08-23 16:42:35 -07:00
Paul Eggert e07d7c40f3 sys_time: allow too-wide tv_sec
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Allow struct
timeval even if tv_sec is wider than time_t.  This allows
OpenBSD 5.1 amd64 and fixes an Emacs porting glitch with utimens.c,
as without this patch gnulib replaces struct timeval
and OpenBSD futimes therefore has a type mismatch.
* doc/posix-headers/sys_time.texi: Mention this.
2012-07-06 02:28:29 +00:00
Bruno Haible 06b335ade6 Write "Mac OS X" instead of "MacOS X".
* README: Write "Mac OS X" instead of "MacOS X".
* build-aux/bootstrap: Likewise.
* build-aux/install-reloc: Likewise.
* lib/acl-internal.h: Likewise.
* lib/acl_entries.c: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/config.charset: Likewise.
* lib/copy-acl.c: Likewise.
* lib/csharpexec.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fflush.c: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/filemode.h: Likewise.
* lib/fpurge.c: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freading.c: Likewise.
* lib/freadptr.c: Likewise.
* lib/freadseek.c: Likewise.
* lib/fseeko.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fsusage.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
* lib/get-rusage-as.c: Likewise.
* lib/get-rusage-data.c: Likewise.
* lib/getdomainname.c: Likewise.
* lib/idpriv-drop.c: Likewise.
* lib/idpriv-droptemp.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/locale.in.h: Likewise.
* lib/localename.c: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/nproc.c: Likewise.
* lib/passfd.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/set-mode-acl.c: Likewise.
* lib/signal.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/strtod.c: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/tcgetsid.c: Likewise.
* lib/unistd.in.h: Likewise.
* lib/unlockpt.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/vma-iter.c: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/acl.m4: Likewise.
* m4/acosl.m4: Likewise.
* m4/asinl.m4: Likewise.
* m4/atanl.m4: Likewise.
* m4/c-stack.m4: Likewise.
* m4/cosl.m4: Likewise.
* m4/expl.m4: Likewise.
* m4/extensions.m4: Likewise.
* m4/fdatasync.m4: Likewise.
* m4/fmal.m4: Likewise.
* m4/frexp.m4: Likewise.
* m4/frexpf.m4: Likewise.
* m4/frexpl.m4: Likewise.
* m4/fsusage.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getloadavg.m4: Likewise.
* m4/getopt.m4: Likewise.
* m4/gettext.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/intdiv0.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/ldexpl.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/locale-ar.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
* m4/locale-zh.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/logl.m4: Likewise.
* m4/mathfunc.m4: Likewise.
* m4/minus-zero.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/mmap-anon.m4: Likewise.
* m4/multiarch.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/nocrash.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/printf-frexpl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/signbit.m4: Likewise.
* m4/sinl.m4: Likewise.
* m4/sqrtl.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/tanl.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/ttyname_r.m4: Likewise.
* m4/unlink.m4: Likewise.
* m4/visibility.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* tests/minus-zero.h: Likewise.
* tests/test-alloca-opt.c: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-fdatasync.c: Likewise.
* tests/test-file-has-acl.sh: Likewise.
* tests/test-flock.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-malloca.c: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-openpty.c: Likewise.
* tests/test-posix_openpt.c: Likewise.
* tests/test-ptsname.c: Likewise.
* tests/test-ptsname_r.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-select.h: Likewise.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-strtod.c: Likewise.
* tests/test-time.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* doc/acl-resources.txt: Likewise.
* doc/**/*.texi: Likewise.
Reported by Max Horn <max@quendi.de>.
2012-06-22 13:28:15 +02:00
Bruno Haible 04a037691d error, strerror-override: Support new errno values from POSIX:2008.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also EOWNERDEAD and
ENOTRECOVERABLE.
* lib/errno.in.h (EOWNERDEAD, ENOTRECOVERABLE): Define on all
platforms.
* lib/strerror-override.c (strerror_override): Conditionalize the
EOWNERDEAD, ENOTRECOVERABLE handling on GNULIB_defined_EOWNERDEAD.
* lib/strerror-override.h (strerror_override): Declare also if
GNULIB_defined_EOWNERDEAD is defined.
* tests/test-errno.c (e130, e131): New variables.
* doc/posix-headers/errno.texi: Mention the status for EOWNERDEAD,
ENOTRECOVERABLE.
Reported by Paolo Bonzini.
2012-06-03 17:27:30 +02:00
Paul Eggert b20511327b stdint: document issues with int_fast8_t etc.
* doc/posix-headers/stdint.texi (stdint.h): Say that other
stdint.h substitutes may define these types differently.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2012-05/msg00071.html>.
2012-05-06 09:59:29 -07:00
Bruno Haible 3f3d9b41ce Large File Support for native Windows platforms.
* m4/largefile.m4 (gl_LARGEFILE): New macro.
* modules/largefile (configure.ac): Require gl_LARGEFILE.

* lib/sys_types.in.h (off_t) [WINDOWS_64_BIT_OFF_T]: Define to a 64-bit
type.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_64_BIT_OFF_T.
* modules/sys_types (Makefile.am): Substitute WINDOWS_64_BIT_OFF_T.
* doc/posix-headers/sys_types.texi: Mention the effect of the
'largefile' module.

* lib/fcntl.in.h: Add comments about off_t.
* modules/fcntl-h (Depends-on): Add sys_types.

* lib/unistd.in.h [WINDOWS_64_BIT_OFF_T]: Include <sys/types.h>.
(ftruncate): Replace it if REPLACE_FTRUNCATE is 1.
* m4/unistd_h.m4 (gl_UNISTD_H): Require gl_SYS_TYPES_H.
(gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FTRUNCATE.
* modules/unistd (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_OFF_T, REPLACE_FTRUNCATE.

* lib/lseek.c (rpl_lseek) [_GL_WINDOWS_64_BIT_OFF_T]: Use _lseeki64
instead of lseek.
* m4/lseek.m4 (gl_FUNC_LSEEK): Require gl_SYS_TYPES_H. Set
REPLACE_LSEEK if WINDOWS_64_BIT_OFF_T is 1.
* modules/lseek (Depends-on): Add sys_types.

* lib/ftruncate.c: Put under GPLv3+. Include <windows.h>,
msvc-nothrow.h.
(SetFileSize): New function.
(ftruncate) [_GL_WINDOWS_64_BIT_OFF_T]: New implementation.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Set REPLACE_FTRUNCATE on Windows
if Large File Support is requested.
* modules/ftruncate (configure.ac): Consider REPLACE_FTRUNCATE.
(Depends-on): Add sys_types, msvc-nothrow. Update conditions.

* lib/stdio.in.h: Add comments about off_t.
* modules/stdio (Depends-on): Add sys_types.

* lib/ftello.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _ftelli64 or ftello64
instead of ftello.
* m4/ftello.m4 (gl_FUNC_FTELLO): Require gl_SYS_TYPES_H. Set
REPLACE_FTELLO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FTELLO): New macro.
* modules/ftello (Depends-on): Add sys_types.
(configure.ac): Incoke gl_PREREQ_FTELLO.

* lib/fseeko.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _fseeki64 or fseeko64
instead of fseeko.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Require gl_SYS_TYPES_H. Set
REPLACE_FSEEKO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FSEEKO): New macro.
* modules/fseeko (Depends-on): Add sys_types.
(configure.ac): Invoke gl_PREREQ_FSEEKO.

* lib/sys_stat.in.h: Add comments about off_t.
(stat, fstat) [WINDOWS_64_BIT_ST_SIZE]: Define to variants that use a
64-bit integer for st_size in 'struct stat'.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_64_BIT_ST_SIZE.
Define _GL_WINDOWS_64_BIT_ST_SIZE.
* modules/sys_stat (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_ST_SIZE.

* lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Define to _stati64
instead of stat or _stat.

* lib/fstat.c [_GL_WINDOWS_64_BIT_ST_SIZE]: Use _fstati64 and
'struct _stati64' instead of fstat and 'struct stat'.
* m4/fstat.m4 (gl_FUNC_FSTAT): Require gl_HEADER_SYS_STAT_H. Set
REPLACE_FSTAT if WINDOWS_64_BIT_ST_SIZE is 1.

Reported by Ray Satiro <raysatiro@yahoo.com>.
2012-04-21 11:45:29 +02:00
Bruno Haible ab2b3f6d0f New module 'sys_resource'.
* lib/sys_resource.in.h: New file.
* m4/sys_resource_h.m4: New file.
* modules/sys_resource: New file.
* doc/posix-headers/sys_resource.texi: Mention the new module.
2012-04-13 00:52:25 +02:00
Bruno Haible 9e7a6e9093 math: Provide FP_ILOGB0 and FP_ILOGBNAN.
* lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Define fallback.
* tests/test-math.c: Check that FP_ILOGB0, FP_ILOGBNAN are defined.
(main): Check their values.
* doc/posix-headers/math.texi: Mention the FP_ILOGB0, FP_ILOGBNAN
problem.
2012-04-03 18:58:51 +02:00
Bruno Haible 7c05b5f061 locale: Provide a complete 'struct lconv'.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not contain int_p_cs_precedes.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Update.
2012-03-25 13:56:33 +02:00