diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 250b327375..6e05b5e017 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +Sun Dec 3 02:28:26 2000 Andrew Cagney + + * ser-pipe.c (pipe_open): Only use vfork when available. + * fork-child.c (fork_inferior): Fix #ifdef HAVE_VFORK test. + (clone_and_follow_inferior): Ditto. + + * configure.in (AC_CHECK_FUNCS): Check for vfork. + * configure, config.in: Regenerate. + Sun Dec 3 01:54:49 2000 Andrew Cagney * ser-unix.c (wait_for): Initialize the FD_SET before every select diff --git a/gdb/config.in b/gdb/config.in index bfb15cd3ef..f6f00318b8 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -225,6 +225,9 @@ /* Define if you have the strchr function. */ #undef HAVE_STRCHR +/* Define if you have the vfork function. */ +#undef HAVE_VFORK + /* Define if you have the header file. */ #undef HAVE_ARGZ_H diff --git a/gdb/configure b/gdb/configure index f02de34d38..6786629c79 100755 --- a/gdb/configure +++ b/gdb/configure @@ -3557,7 +3557,7 @@ EOF fi -for ac_func in setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask +for ac_func in setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask vfork do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:3564: checking for $ac_func" >&5 diff --git a/gdb/configure.in b/gdb/configure.in index 2b14ac308c..eb5a11f95b 100644 --- a/gdb/configure.in +++ b/gdb/configure.in @@ -129,7 +129,7 @@ AC_HEADER_STAT AC_C_CONST -AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask) +AC_CHECK_FUNCS(setpgid sbrk sigaction isascii bzero bcopy btowc poll sigprocmask vfork) AC_FUNC_ALLOCA # See if machine/reg.h supports the %fs and %gs i386 segment registers. diff --git a/gdb/fork-child.c b/gdb/fork-child.c index 147a59fd77..e97f451bce 100644 --- a/gdb/fork-child.c +++ b/gdb/fork-child.c @@ -244,13 +244,13 @@ fork_inferior (char *exec_file, char *allargs, char **env, if (pre_trace_fun != NULL) (*pre_trace_fun) (); -#if defined(USG) && !defined(HAVE_VFORK) - pid = fork (); -#else +#ifdef HAVE_VFORK if (debug_fork) pid = fork (); else pid = vfork (); +#else + pid = fork (); #endif if (pid < 0) @@ -416,13 +416,13 @@ clone_and_follow_inferior (int child_pid, int *followed_child) error ("error getting pipe for handoff semaphore"); /* Clone the debugger. */ -#if defined(USG) && !defined(HAVE_VFORK) - debugger_pid = fork (); -#else +#ifdef HAVE_VFORK if (debug_fork) debugger_pid = fork (); else debugger_pid = vfork (); +#else + debugger_pid = fork (); #endif if (debugger_pid < 0) diff --git a/gdb/ser-pipe.c b/gdb/ser-pipe.c index a510bff8da..fd073c2e0a 100644 --- a/gdb/ser-pipe.c +++ b/gdb/ser-pipe.c @@ -64,7 +64,11 @@ pipe_open (serial_t scb, const char *name) if (socketpair (AF_UNIX, SOCK_STREAM, 0, pdes) < 0) return -1; +#ifdef HAVE_VFORK pid = vfork (); +#else + pid = fork (); +#endif /* Error. */ if (pid == -1)