changeset 15629:f62fb3d6776f

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.
author Bruno Haible <bruno@clisp.org>
date Fri, 16 Sep 2011 23:43:21 +0200
parents e575fc472c1a
children 4c853bdac60b
files ChangeLog doc/posix-headers/fcntl.texi doc/posix-headers/sys_stat.texi doc/posix-headers/sys_types.texi m4/fcntl_h.m4 m4/spawn_h.m4 m4/sys_stat_h.m4 m4/sys_types_h.m4 tests/test-fcntl-h.c tests/test-sys_stat.c tests/test-sys_types.c
diffstat 11 files changed, 44 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+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.
--- a/doc/posix-headers/fcntl.texi
+++ b/doc/posix-headers/fcntl.texi
@@ -12,6 +12,10 @@
 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},
 and @samp{O_TTY_INIT} are not defined on some platforms.  Gnulib defines
--- a/doc/posix-headers/sys_stat.texi
+++ b/doc/posix-headers/sys_stat.texi
@@ -8,6 +8,9 @@
 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
--- a/doc/posix-headers/sys_types.texi
+++ b/doc/posix-headers/sys_types.texi
@@ -16,6 +16,9 @@
 @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:
--- a/m4/fcntl_h.m4
+++ b/m4/fcntl_h.m4
@@ -1,4 +1,4 @@
-# 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
@@ -16,6 +16,9 @@
   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.
--- a/m4/spawn_h.m4
+++ b/m4/spawn_h.m4
@@ -1,4 +1,4 @@
-# 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,
@@ -34,6 +34,9 @@
   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])
--- a/m4/sys_stat_h.m4
+++ b/m4/sys_stat_h.m4
@@ -1,4 +1,4 @@
-# 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,
@@ -19,6 +19,9 @@
 
   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], [],
--- a/m4/sys_types_h.m4
+++ b/m4/sys_types_h.m4
@@ -1,4 +1,4 @@
-# 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,
@@ -11,6 +11,9 @@
 
   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],
--- a/tests/test-fcntl-h.c
+++ b/tests/test-fcntl-h.c
@@ -34,6 +34,7 @@
 /* Check that the types are all defined.  */
 pid_t t1;
 off_t t2;
+mode_t t3;
 
 int
 main (void)
--- a/tests/test-sys_stat.c
+++ b/tests/test-sys_stat.c
@@ -314,8 +314,9 @@
 /* Check the existence of some types.  */
 nlink_t t1;
 off_t t2;
+mode_t t3;
 
-struct timespec t3;
+struct timespec st;
 
 int
 main (void)
--- a/tests/test-sys_types.c
+++ b/tests/test-sys_types.c
@@ -25,6 +25,7 @@
 size_t t2;
 ssize_t t3;
 off_t t4;
+mode_t t5;
 
 int
 main (void)