* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Likewise.
* tests/test-fcntl-h.c: Check that mode_t is defined.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_types.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention the missing mode_t problem.
* doc/posix-headers/sys_stat.texi: Likewise.
* doc/posix-headers/sys_types.texi: Likewise.
+2011-09-15 Bruno Haible <bruno@clisp.org>
+
+ Support for MSVC compiler: Ensure mode_t gets defined.
+ * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T.
+ * m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
+ * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
+ * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Likewise.
+ * tests/test-fcntl-h.c: Check that mode_t is defined.
+ * tests/test-sys_stat.c: Likewise.
+ * tests/test-sys_types.c: Likewise.
+ * doc/posix-headers/fcntl.texi: Mention the missing mode_t problem.
+ * doc/posix-headers/sys_stat.texi: Likewise.
+ * doc/posix-headers/sys_types.texi: Likewise.
+
2011-09-16 Bruno Haible <bruno@clisp.org>
sys_stat: Support for MSVC.
The type @code{pid_t} is not defined on some platforms:
MSVC 9.
+@item
+The type @code{mode_t} is not defined on some platforms:
+MSVC 9.
+
@item
@samp{O_CLOEXEC}, @samp{O_DIRECTORY}, @samp{O_DSYNC}, @samp{O_NOCTTY},
@samp{O_NOFOLLOW}, @samp{O_RSYNC}, @samp{O_SYNC},
Portability problems fixed by Gnulib:
@itemize
@item
+The type @code{mode_t} is not defined on some platforms:
+MSVC 9.
+@item
Some macros, such as @code{S_IFMT} or @code{S_IFIFO}, are missing on some
platforms.
@item
@item
The type @code{ssize_t} is not defined on some platforms:
MSVC 9.
+@item
+The type @code{mode_t} is not defined on some platforms:
+MSVC 9.
@end itemize
Portability problems not fixed by Gnulib:
-# serial 14
+# serial 15
# Configure fcntl.h.
dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl Ensure the type pid_t gets defined.
AC_REQUIRE([AC_TYPE_PID_T])
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
dnl Check for declarations of anything we want to poison if the
dnl corresponding gnulib module is not in use, if it is not common
dnl enough to be declared everywhere.
-# spawn_h.m4 serial 14
+# spawn_h.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,
dnl Ensure the type pid_t gets defined.
AC_REQUIRE([AC_TYPE_PID_T])
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
AC_REQUIRE([gl_HAVE_POSIX_SPAWN])
AC_REQUIRE([AC_C_RESTRICT])
-# sys_stat_h.m4 serial 24 -*- Autoconf -*-
+# sys_stat_h.m4 serial 25 -*- Autoconf -*-
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,
gl_CHECK_NEXT_HEADERS([sys/stat.h])
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
dnl Define types that are supposed to be defined in <sys/types.h> or
dnl <sys/stat.h>.
AC_CHECK_TYPE([nlink_t], [],
-# sys_types_h.m4 serial 1
+# sys_types_h.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 Ensure the type pid_t gets defined.
AC_REQUIRE([AC_TYPE_PID_T])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
])
AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS],
/* Check that the types are all defined. */
pid_t t1;
off_t t2;
+mode_t t3;
int
main (void)
/* Check the existence of some types. */
nlink_t t1;
off_t t2;
+mode_t t3;
-struct timespec t3;
+struct timespec st;
int
main (void)
size_t t2;
ssize_t t3;
off_t t4;
+mode_t t5;
int
main (void)