bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: msvc port: ensure pid_t is defined


From: Bastien ROUCARIES
Subject: Re: msvc port: ensure pid_t is defined
Date: Sun, 11 Sep 2011 15:24:01 +0200

On Sun, Sep 11, 2011 at 2:18 PM, Bruno Haible <address@hidden> wrote:
> On MSVC 9, the type pid_t is nowhere defined. But POSIX wants it defined in

Out of topic but interesting on this kind of subject. Did you know
that recent mscv support a limited int128 (named __int128) under
64bits (limited because it does not support divide)? It is quite
interesting in order to implement uid_t, gid because every user of a
microsoft system is guranted to be mapped in a 128bit integer.

Bastien

>
>  <fcntl.h>
>  <sched.h>
>  <signal.h>
>  <spawn.h>
>  <sys/msg.h>
>  <sys/sem.h>
>  <sys/shm.h>
>  <sys/types.h>
>  <sys/wait.h>
>  <termios.h>
>  <time.h>
>  <trace.h>
>  <unistd.h>
>  <utmpx.h>
>
> This fixes it for those headers for which we have a gnulib module.
> I'm not sure we should create a module for <sys/types.h>?
>
>
> 2011-09-11  Bruno Haible  <address@hidden>
>
>        Ensure pid_t gets defined.
>        * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_PID_T.
>        * m4/sched_h.m4 (gl_SCHED_H): Likewise.
>        * m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
>        * m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
>        * m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise.
>        * m4/termios_h.m4 (gl_TERMIOS_H): Likewise.
>        * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise.
>        * m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
>        * tests/test-fcntl-h.c: Check that pid_t is defined.
>        * tests/test-sched.c: Likewise.
>        * tests/test-termios.c: Likewise.
>        * tests/test-time.c: Likewise.
>        * doc/posix-headers/fcntl.texi: Mention lack of pid_t on MSVC platform.
>        * doc/posix-headers/signal.texi: Likewise.
>        * doc/posix-headers/sys_types.texi: Likewise.
>        * doc/posix-headers/time.texi: Likewise.
>
> --- doc/posix-headers/fcntl.texi.orig   Sun Sep 11 14:06:44 2011
> +++ doc/posix-headers/fcntl.texi        Sun Sep 11 13:57:56 2011
> @@ -8,6 +8,10 @@
>  Portability problems fixed by Gnulib:
> address@hidden
> address@hidden
> +The type @code{pid_t} is not defined on some platforms:
> +MSVC 9.
> +
> address@hidden
> address@hidden, @samp{O_DIRECTORY}, @samp{O_DSYNC}, @samp{O_NOCTTY},
> address@hidden, @samp{O_RSYNC}, @samp{O_SYNC},
>  and @samp{O_TTY_INIT} are not defined on some platforms.  Gnulib defines
> --- doc/posix-headers/signal.texi.orig  Sun Sep 11 14:06:44 2011
> +++ doc/posix-headers/signal.texi       Sun Sep 11 13:57:57 2011
> @@ -23,6 +23,9 @@
>  platforms:
>  Irix 5.3, Interix 3.5.
> address@hidden
> +The type @code{pid_t} is not defined on some platforms:
> +MSVC 9.
> address@hidden
>  The signal @code{SIGPIPE} is not defined on some platforms:
>  mingw.
> address@hidden
> --- doc/posix-headers/sys_types.texi.orig       Sun Sep 11 14:06:44 2011
> +++ doc/posix-headers/sys_types.texi    Sun Sep 11 13:57:57 2011
> @@ -11,4 +11,8 @@
>
>  Portability problems not fixed by Gnulib:
> address@hidden
> address@hidden
> +The type @code{pid_t} is not defined on some platforms:
> +MSVC 9.
> +You can use the macro @code{AC_TYPE_PID_T} to fix this.
> address@hidden itemize
> --- doc/posix-headers/time.texi.orig    Sun Sep 11 14:06:45 2011
> +++ doc/posix-headers/time.texi Sun Sep 11 13:57:57 2011
> @@ -11,6 +11,10 @@
> address@hidden timespec} is not defined on some platforms.
>
> address@hidden
> +The type @code{pid_t} is not defined on some platforms:
> +MSVC 9.
> +
> address@hidden
>  Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
>  expressions:
>  NetBSD 5.0
> --- m4/fcntl_h.m4.orig  Sun Sep 11 14:06:45 2011
> +++ m4/fcntl_h.m4       Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# serial 13
> +# serial 14
>  # Configure fcntl.h.
>  dnl Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
>  dnl This file is free software; the Free Software Foundation
> @@ -13,6 +13,9 @@
>   AC_REQUIRE([gl_FCNTL_O_FLAGS])
>   gl_NEXT_HEADERS([fcntl.h])
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_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.
> --- m4/sched_h.m4.orig  Sun Sep 11 14:06:45 2011
> +++ m4/sched_h.m4       Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# sched_h.m4 serial 4
> +# sched_h.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,
> @@ -30,6 +30,9 @@
>        [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0],
>        [#include <sched.h>])
>      AC_SUBST([HAVE_STRUCT_SCHED_PARAM])
> +
> +     dnl Ensure the type pid_t gets defined.
> +     AC_REQUIRE([AC_TYPE_PID_T])
>     ])
>   AC_SUBST([SCHED_H])
>   AM_CONDITIONAL([GL_GENERATE_SCHED_H], [test -n "$SCHED_H"])
> --- m4/signal_h.m4.orig Sun Sep 11 14:06:45 2011
> +++ m4/signal_h.m4      Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# signal_h.m4 serial 16
> +# signal_h.m4 serial 17
>  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,
> @@ -17,6 +17,9 @@
>  #include <signal.h>
>     ]])
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
> +
>   AC_REQUIRE([AC_TYPE_UID_T])
>
>   dnl Persuade glibc <signal.h> to define sighandler_t.
> --- m4/spawn_h.m4.orig  Sun Sep 11 14:06:45 2011
> +++ m4/spawn_h.m4       Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# spawn_h.m4 serial 13
> +# spawn_h.m4 serial 14
>  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,
> @@ -31,6 +31,9 @@
>   fi
>   AC_SUBST([HAVE_SPAWN_H])
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
> +
>   AC_REQUIRE([gl_HAVE_POSIX_SPAWN])
>
>   AC_REQUIRE([AC_C_RESTRICT])
> --- m4/sys_wait_h.m4.orig       Sun Sep 11 14:06:45 2011
> +++ m4/sys_wait_h.m4    Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# sys_wait_h.m4 serial 5
> +# sys_wait_h.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,
> @@ -11,6 +11,9 @@
>   dnl <sys/wait.h> is always overridden, because of GNULIB_POSIXCHECK.
>   gl_CHECK_NEXT_HEADERS([sys/wait.h])
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
> +
>   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/wait.h>]],
> --- m4/termios_h.m4.orig        Sun Sep 11 14:06:45 2011
> +++ m4/termios_h.m4     Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# termios_h.m4 serial 3
> +# termios_h.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,
> @@ -15,6 +15,9 @@
>     HAVE_TERMIOS_H=0
>   fi
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
> +
>   dnl Check for declarations of anything we want to poison if the
>   dnl corresponding gnulib module is not in use, and which is not
>   dnl guaranteed by C89.
> --- m4/time_h.m4.orig   Sun Sep 11 14:06:45 2011
> +++ m4/time_h.m4        Sun Sep 11 14:04:12 2011
> @@ -2,7 +2,7 @@
>
>  # Copyright (C) 2000-2001, 2003-2007, 2009-2011 Free Software Foundation, 
> Inc.
>
> -# serial 4
> +# serial 5
>
>  # This file is free software; the Free Software Foundation
>  # gives unlimited permission to copy and/or distribute it,
> @@ -23,6 +23,9 @@
>   AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
>   gl_NEXT_HEADERS([time.h])
>   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
> +
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
>  ])
>
>  dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
> --- m4/unistd_h.m4.orig Sun Sep 11 14:06:45 2011
> +++ m4/unistd_h.m4      Sun Sep 11 14:04:12 2011
> @@ -1,4 +1,4 @@
> -# unistd_h.m4 serial 56
> +# unistd_h.m4 serial 57
>  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,
> @@ -21,6 +21,9 @@
>   fi
>   AC_SUBST([HAVE_UNISTD_H])
>
> +  dnl Ensure the type pid_t gets defined.
> +  AC_REQUIRE([AC_TYPE_PID_T])
> +
>   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 <unistd.h>
> --- tests/test-fcntl-h.c.orig   Sun Sep 11 14:06:45 2011
> +++ tests/test-fcntl-h.c        Sun Sep 11 14:06:17 2011
> @@ -31,6 +31,9 @@
>  /* Check that the FD_* macros are defined.  */
>  int i = FD_CLOEXEC;
>
> +/* Check that the types are all defined.  */
> +pid_t t1;
> +
>  int
>  main (void)
>  {
> --- tests/test-sched.c.orig     Sun Sep 11 14:06:45 2011
> +++ tests/test-sched.c  Sun Sep 11 14:06:17 2011
> @@ -26,6 +26,9 @@
>  /* Check that the SCHED_* macros are defined and compile-time constants.  */
>  int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER };
>
> +/* Check that the types are all defined.  */
> +pid_t t1;
> +
>  static int f1;
>
>  int
> --- tests/test-termios.c.orig   Sun Sep 11 14:06:45 2011
> +++ tests/test-termios.c        Sun Sep 11 14:06:17 2011
> @@ -20,6 +20,9 @@
>
>  #include <termios.h>
>
> +/* Check that the types are all defined.  */
> +pid_t t1;
> +
>  int
>  main (void)
>  {
> --- tests/test-time.c.orig      Sun Sep 11 14:06:45 2011
> +++ tests/test-time.c   Sun Sep 11 14:06:17 2011
> @@ -22,7 +22,9 @@
>
>  #include "verify.h"
>
> -struct timespec a;
> +/* Check that the types are all defined.  */
> +struct timespec t1;
> +pid_t t2;
>
>  /* Check that NULL can be passed through varargs as a pointer type,
>    per POSIX 2008.  */
>
> --
> In memoriam Georgi Markov <http://en.wikipedia.org/wiki/Georgi_Markov>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]