Bruno Haible [Tue, 20 Sep 2011 21:09:06 +0000 (23:09 +0200)]
ftello tests: EBADF tests.
* tests/test-ftello4.sh: New file.
* tests/test-ftello4.c: New file.
* modules/ftello-tests (Files): Add them.
(Makefile.am): Arrange to compile test-ftello4 and run test-ftello4.sh.
Bruno Haible [Tue, 20 Sep 2011 21:07:31 +0000 (23:07 +0200)]
fseeko tests: EBADF tests.
* tests/test-fseeko4.sh: New file.
* tests/test-fseeko4.c: New file.
* modules/fseeko-tests (Files): Add them.
(Makefile.am): Arrange to compile test-fseeko4 and run test-fseeko4.sh.
Bruno Haible [Tue, 20 Sep 2011 01:16:18 +0000 (03:16 +0200)]
msvc-inval: Require a semicolon after DONE_MSVC_INVAL.
* lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Wrap in a
do...while(0).
* lib/dup2.c (rpl_dup2): Add a semicolon after DONE_MSVC_INVAL.
Suggested by Paul Eggert.
Bruno Haible [Mon, 19 Sep 2011 21:48:58 +0000 (23:48 +0200)]
sched: Ensure pid_t is defined.
* m4/sched_h.m4 (gl_SCHED_H): Arrange to override <sched.h> if it does
not define pid_t.
* lib/sched.in.h: Include <sys/types.h>.
* doc/posix-headers/sched.texi: Mention the pid_t problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
Jim Meyering [Mon, 19 Sep 2011 17:27:53 +0000 (19:27 +0200)]
tests: use printf, not echo in init.sh's warn_ function
* tests/init.sh (warn_): Use printf, not echo. The latter would
misbehave when given strings containing a backslash or starting
with e.g., -n. James Youngman suggested setting IFS.
Jim Meyering [Mon, 19 Sep 2011 07:48:35 +0000 (09:48 +0200)]
getcwd: don't fail in a deep directory on a system without openat
Before this change, getcwd would fail when called from a directory
of depth PATH_MAX / 3 or greater. That was due to the fact that
the non-openat implementation used "..", "../..", "../../..", etc.
to access ancestor directories. With too many, that string would
be longer than PATH_MAX.
* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Define also when we are
using gnulib's openat replacement.
* m4/openat.m4: Set GNULIB_OPENAT, so getcwd.c knows when
we're using the replacement function.
maint.mk: avoid warnings from perl about missing files
* top/maint.mk (def_sym_regex): Ignore files listed in
$(gl_other_headers_) that do not exist, say because a project
does not use a corresponding module.
Paul Eggert [Mon, 19 Sep 2011 04:46:34 +0000 (21:46 -0700)]
stat: use pathmax.h only if needed
* lib/stat.c: Include pathmax.h only if REPLACE_FUNC_STAT_DIR.
This is better for Emacs, which does not have a mingw port and
therefore can avoid the pathmax module.
Bruno Haible [Mon, 19 Sep 2011 01:44:56 +0000 (03:44 +0200)]
inet_ntop, inet_pton: Look for it also in libresolv.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): If the function was not found in
libnsl, search for it in libresolv.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
Needed on Solaris 7.
Bruno Haible [Mon, 19 Sep 2011 01:10:16 +0000 (03:10 +0200)]
accept, accept4 tests: Avoid link error on Solaris.
* modules/accept-tests (Makefile.am): Link test-accept against
$(LIBSOCKET).
* modules/accept4-tests (Makefile.am): Link test-accept4 against
$(LIBSOCKET).
Bruno Haible [Sun, 18 Sep 2011 08:34:24 +0000 (10:34 +0200)]
dup2: Support for MSVC.
* lib/dup2.c: Include msvc-inval.h.
(rpl_dup2): Handle invalid parameter notifications during dup2 and
_get_osfhandle calls.
* modules/dup2 (Depends-on): Add msvc-inval.
* doc/posix-functions/dup2.texi: Mention problem on MSVC.
Bruno Haible [Sat, 17 Sep 2011 16:28:17 +0000 (18:28 +0200)]
popen: Support for MSVC.
* lib/stdio.in.h (popen): Declare it if the system lacks this function.
* lib/popen.c (popen): Provide alternate definition for native Windows.
* m4/popen.m4 (gl_FUNC_POPEN): Test if popen exists. Set HAVE_POPEN.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_POPEN.
* modules/popen (Depends-on, configure.ac): Update condition.
* modules/stdio (Makefile.am): Substitute HAVE_POPEN.
* doc/posix-functions/popen.texi: Mention that the MSVC problem is
fixed.
Bruno Haible [Sat, 17 Sep 2011 13:09:53 +0000 (15:09 +0200)]
inet_pton: Support for MSVC on Windows Vista or newer.
* lib/arpa_inet.in.h (inet_pton): Also consider REPLACE_INET_PTON.
* lib/inet_pton.c (rpl_inet_pton): Use a simple wrapper if
HAVE_DECL_INET_PTON is defined.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_pton is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_PTON.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_PTON.
* modules/inet_pton (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_pton.texi: Mention the MSVC problem.
Bruno Haible [Sat, 17 Sep 2011 12:56:11 +0000 (14:56 +0200)]
inet_ntop: Support for MSVC on Windows Vista or newer.
* lib/arpa_inet.in.h (inet_ntop): Also consider REPLACE_INET_NTOP.
* lib/inet_ntop.c (rpl_inet_ntop): Use a simple wrapper if
HAVE_DECL_INET_NTOP is defined.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_ntop is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_NTOP.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_NTOP.
* modules/inet_ntop (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_ntop.texi: Mention the MSVC problem.
Bruno Haible [Fri, 16 Sep 2011 21:17:49 +0000 (23:17 +0200)]
sys_stat: Support for MSVC.
* lib/sys_stat.in.h (S_IFIFO): Define to _S_IFIFO if that exists.
* tests/test-sys_stat.c: Don't assume that S_IFBLK exists.
* doc/posix-headers/sys_stat.texi: Mention missing S_IFIFO, S_IFBLK on
MSVC.
Eric Blake [Fri, 16 Sep 2011 20:12:01 +0000 (14:12 -0600)]
fdatasync: port to Solaris
Cater to Solaris requiring extra libraries for fdatasync.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Set LIB_FDATASYNC.
* modules/fdatasync (Link): Document it.
* modules/fdatasync-tests (test_fdatasync_LDADD): Link with it.
Eric Blake [Fri, 16 Sep 2011 19:49:16 +0000 (13:49 -0600)]
fdatasync: port to MacOS X 10.7
MacOS X 10.7 added an fdatasync syscall and exports a symbol for it,
but fails to declare it anywhere. Lacking any hard evidence that this
syscall is broken, we will just provide the declaration and use it.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Check for present but not
declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Another default.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (fdatasync): Declare on MacOS.
* doc/posix-functions/fdatasync.texi (fdatasync): Document it.
Eric Blake [Fri, 16 Sep 2011 18:12:41 +0000 (12:12 -0600)]
unistd: update refs to newer POSIX
usleep only exists in POSIX 2001, but for the rest of the functions
where we pointed to online POSIX specs, we might as well point to the
latest version of the standard.
* lib/unistd.in.h: Prefer POSIX 2008 over 2001.
Suggested by Bruno Haible.