OSDN Git Service

2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Apr 2009 10:45:58 +0000 (10:45 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Apr 2009 10:45:58 +0000 (10:45 +0000)
        PR target/39397
        * pex-common.h (struct pex_obj): Store pid values as pid_t,
        not as long (members *children and (*wait))
        * pex-common.c (pex_run_in_environment): Likewise.
        * pex-win32.c (pex_win32_wait): Return pid_t and properly check
        returned pid value.
        * pex-djgpp.c (pex_djgpp_wait): Return pid_t.
        * pex-msdos.c (pex_msdos_wait): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146001 138bc75d-0d04-0410-961f-82ee72b054a4

libiberty/ChangeLog
libiberty/pex-common.c
libiberty/pex-common.h
libiberty/pex-djgpp.c
libiberty/pex-msdos.c
libiberty/pex-win32.c

index 2e0a27c..c58f635 100644 (file)
@@ -1,3 +1,14 @@
+2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
+
+        PR target/39397
+        * pex-common.h (struct pex_obj): Store pid values as pid_t,
+        not as long (members *children and (*wait))
+        * pex-common.c (pex_run_in_environment): Likewise.
+        * pex-win32.c (pex_win32_wait): Return pid_t and properly check
+        returned pid value.
+        * pex-djgpp.c (pex_djgpp_wait): Return pid_t.
+        * pex-msdos.c (pex_msdos_wait): Likewise.
+
 2009-04-07  Arnaud Patard <apatard@mandriva.com>
 
        * libiberty/configure.ac: Fix Linux/MIPS matching rule.
index 7f35536..9a9fe24 100644 (file)
@@ -160,7 +160,7 @@ pex_run_in_environment (struct pex_obj *obj, int flags, const char *executable,
   int outname_allocated;
   int p[2];
   int toclose;
-  long pid;
+  pid_t pid;
 
   in = -1;
   out = -1;
@@ -345,7 +345,7 @@ pex_run_in_environment (struct pex_obj *obj, int flags, const char *executable,
     goto error_exit;
 
   ++obj->count;
-  obj->children = XRESIZEVEC (long, obj->children, obj->count);
+  obj->children = XRESIZEVEC (pid_t, obj->children, obj->count);
   obj->children[obj->count - 1] = pid;
 
   return NULL;
index 5b7bfcc..af338e6 100644 (file)
@@ -70,7 +70,7 @@ struct pex_obj
   /* Number of child processes.  */
   int count;
   /* PIDs of child processes; array allocated using malloc.  */
-  long *children;
+  pid_t *children;
   /* Exit statuses of child processes; array allocated using malloc.  */
   int *status;
   /* Time used by child processes; array allocated using malloc.  */
@@ -126,7 +126,7 @@ struct pex_funcs
      and time in *TIME (if it is not null).  CHILD is from fork.  DONE
      is 1 if this is called via pex_free.  ERRMSG and ERR are as in
      fork.  Return 0 on success, -1 on error.  */
-  int (*wait) (struct pex_obj *, pid_t /* child */, int * /* status */,
+  pid_t (*wait) (struct pex_obj *, pid_t /* child */, int * /* status */,
                struct pex_time * /* time */, int /* done */,
                const char ** /* errmsg */, int * /* err */);
   /* Create a pipe (only called if PEX_USE_PIPES is set) storing two
index bd27938..0721139 100644 (file)
@@ -49,7 +49,7 @@ static pid_t pex_djgpp_exec_child (struct pex_obj *, int, const char *,
                                  int, int, int, int,
                                  const char **, int *);
 static int pex_djgpp_close (struct pex_obj *, int);
-static int pex_djgpp_wait (struct pex_obj *, pid_t, int *, struct pex_time *,
+static pid_t pex_djgpp_wait (struct pex_obj *, pid_t, int *, struct pex_time *,
                           int, const char **, int *);
 
 /* The list of functions we pass to the common routines.  */
@@ -276,7 +276,7 @@ pex_djgpp_exec_child (struct pex_obj *obj, int flags, const char *executable,
    has already completed, and we just need to return the exit
    status.  */
 
-static int
+static pid_t
 pex_djgpp_wait (struct pex_obj *obj, pid_t pid, int *status,
                struct pex_time *time, int done ATTRIBUTE_UNUSED,
                const char **errmsg ATTRIBUTE_UNUSED,
index ab4d736..4b77bf6 100644 (file)
@@ -59,7 +59,7 @@ static pid_t pex_msdos_exec_child (struct pex_obj *, int, const char *,
                                  int, int, int, int,
                                  int, const char **, int *);
 static int pex_msdos_close (struct pex_obj *, int);
-static int pex_msdos_wait (struct pex_obj *, pid_t, int *, struct pex_time *,
+static pid_t pex_msdos_wait (struct pex_obj *, pid_t, int *, struct pex_time *,
                           int, const char **, int *);
 static void pex_msdos_cleanup (struct pex_obj *);
 
@@ -282,7 +282,7 @@ pex_msdos_exec_child (struct pex_obj *obj, int flags, const char *executable,
    has already completed, and we just need to return the exit
    status.  */
 
-static int
+static pid_t
 pex_msdos_wait (struct pex_obj *obj, pid_t pid, int *status,
                struct pex_time *time, int done ATTRIBUTE_UNUSED,
                const char **errmsg ATTRIBUTE_UNUSED,
index 5897866..3f37751 100644 (file)
@@ -84,7 +84,7 @@ static pid_t pex_win32_exec_child (struct pex_obj *, int, const char *,
                                   int, int, int, int,
                                  const char **, int *);
 static int pex_win32_close (struct pex_obj *, int);
-static int pex_win32_wait (struct pex_obj *, pid_t, int *,
+static pid_t pex_win32_wait (struct pex_obj *, pid_t, int *,
                           struct pex_time *, int, const char **, int *);
 static int pex_win32_pipe (struct pex_obj *, int *, int);
 static FILE *pex_win32_fdopenr (struct pex_obj *, int, int);
@@ -705,7 +705,7 @@ spawn_script (const char *executable, char *const *argv,
                                     dwCreationFlags, si, pi);
                  if (executable1 != newex)
                    free ((char *) newex);
-                 if ((long) pid < 0)
+                 if (pid == (pid_t) -1)
                    {
                      newex = msys_rootify (executable1);
                      if (newex != executable1)
@@ -722,7 +722,7 @@ spawn_script (const char *executable, char *const *argv,
            }
        }
     }
-  if ((long) pid < 0)
+  if (pid == (pid_t) -1)
     errno = save_errno;
   return pid;
 }
@@ -840,7 +840,7 @@ pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
    status == 3.  We fix the status code to conform to the usual WIF*
    macros.  Note that WIFSIGNALED will never be true under CRTDLL. */
 
-static int
+static pid_t
 pex_win32_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid,
                int *status, struct pex_time *time, int done ATTRIBUTE_UNUSED,
                const char **errmsg, int *err)