* utils.c (internal_vproblem): Guard call to fork with
authorMark Mitchell <mark@codesourcery.com>
Wed, 16 Mar 2005 15:58:41 +0000 (15:58 +0000)
committerMark Mitchell <mark@codesourcery.com>
Wed, 16 Mar 2005 15:58:41 +0000 (15:58 +0000)
HAVE_WORKING_FORK.
* cli/cli-cmds.c (shell_escape): Guard call to vfork with
HAVE_WORKING_VFORK and HAVE_WORKING_FORK.

* remote-fileo.c (remote_fileio_mode_to_host): Accomodate lack of
S_IRGRP and related macros.
(remote_fileio_mode_to_target): Likewise.

gdb/ChangeLog
gdb/cli/cli-cmds.c
gdb/remote-fileio.c
gdb/utils.c

index 07d7fb8..fc9f632 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-15  Mark Mitchell  <mark@codesourcery.com>
+
+       * utils.c (internal_vproblem): Guard call to fork with 
+       HAVE_WORKING_FORK.
+       * cli/cli-cmds.c (shell_escape): Guard call to vfork with
+       HAVE_WORKING_VFORK and HAVE_WORKING_FORK. 
+
+       * remote-fileo.c (remote_fileio_mode_to_host): Accomodate lack of
+       S_IRGRP and related macros.
+       (remote_fileio_mode_to_target): Likewise.
+
 2005-03-14  Ben Elliston  <bje@au.ibm.com>
 
        * Makefile.in (CLIBS): Link libbfd after libopcodes, as it is a
index 49da474..3c091fe 100644 (file)
@@ -1,6 +1,6 @@
 /* GDB CLI commands.
 
-   Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -484,7 +484,8 @@ echo_command (char *text, int from_tty)
 static void
 shell_escape (char *arg, int from_tty)
 {
-#ifdef CANT_FORK
+#if defined(CANT_FORK) || \
+      (!defined(HAVE_WORKING_VFORK) && !defined(HAVE_WORKING_FORK))
   /* If ARG is NULL, they want an inferior shell, but `system' just
      reports if the shell is available when passed a NULL arg.  */
   int rc = system (arg ? arg : "");
index d2090e6..7d8744d 100644 (file)
@@ -1,6 +1,6 @@
 /* Remote File-I/O communications
 
-   Copyright 2003 Free Software Foundation, Inc.
+   Copyright 2003, 2005 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -162,18 +162,28 @@ remote_fileio_mode_to_host (long mode, int open_call)
     hmode |= S_IWUSR;
   if (mode & FILEIO_S_IXUSR)
     hmode |= S_IXUSR;
+#ifdef S_IRGRP
   if (mode & FILEIO_S_IRGRP)
     hmode |= S_IRGRP;
+#endif
+#ifdef S_IWGRP
   if (mode & FILEIO_S_IWGRP)
     hmode |= S_IWGRP;
+#endif
+#ifdef S_IXGRP
   if (mode & FILEIO_S_IXGRP)
     hmode |= S_IXGRP;
+#endif
   if (mode & FILEIO_S_IROTH)
     hmode |= S_IROTH;
+#ifdef S_IWOTH
   if (mode & FILEIO_S_IWOTH)
     hmode |= S_IWOTH;
+#endif
+#ifdef S_IXOTH
   if (mode & FILEIO_S_IXOTH)
     hmode |= S_IXOTH;
+#endif
   return hmode;
 }
 
@@ -194,18 +204,28 @@ remote_fileio_mode_to_target (mode_t mode)
     tmode |= FILEIO_S_IWUSR;
   if (mode & S_IXUSR)
     tmode |= FILEIO_S_IXUSR;
+#ifdef S_IRGRP
   if (mode & S_IRGRP)
     tmode |= FILEIO_S_IRGRP;
+#endif
+#ifdef S_IWRGRP
   if (mode & S_IWGRP)
     tmode |= FILEIO_S_IWGRP;
+#endif
+#ifdef S_IXGRP
   if (mode & S_IXGRP)
     tmode |= FILEIO_S_IXGRP;
+#endif
   if (mode & S_IROTH)
     tmode |= FILEIO_S_IROTH;
+#ifdef S_IWOTH
   if (mode & S_IWOTH)
     tmode |= FILEIO_S_IWOTH;
+#endif
+#ifdef S_IXOTH
   if (mode & S_IXOTH)
     tmode |= FILEIO_S_IXOTH;
+#endif
   return tmode;
 }
 
index 690158b..7ee2061 100644 (file)
@@ -789,8 +789,10 @@ further debugging may prove unreliable.", file, line, problem->name, msg);
     {
       if (dump_core_p)
        {
+#ifdef HAVE_WORKING_FORK
          if (fork () == 0)
            abort ();           /* NOTE: GDB has only three calls to abort().  */
+#endif
        }
     }