emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: 21.1 on Solaris 2.5.1 (sparc), on terminal, core dum


From: Paul Eggert
Subject: Re: address@hidden: 21.1 on Solaris 2.5.1 (sparc), on terminal, core dump]
Date: Thu, 6 Dec 2001 22:21:22 -0800 (PST)

> Date: Thu, 6 Dec 2001 08:03:01 -0700 (MST)
> From: Richard Stallman <address@hidden>
> 
> It seems that you understand this in great detail, and since you are
> interested in fixing this completely, please go ahead.

OK, done.  It took me a while to do this on the trunk, as 'make
bootstrap' doesn't work on Solaris 2.5.1, but that is due
to a separate issue that I haven't had time to investigate.

Here is the patch I installed on the trunk.  I've tested it on Solaris 2.5.1.

I'll turn to the 21.1 branch next, as I think the current state is
unstable there on funky vfork hosts (other than Solaris 2.5 or later),
and a similar patch is needed there (albeit one that works with older
autoconf versions).  It'll take me a day or two to test the 21.1
cleanup on Solaris, though.

[in ChangeLog]
2001-12-06  Paul Eggert  <address@hidden>

        * configure.in (AC_PREREQ): Bump from 2.50 to 2.51; needed for vfork.
        (AC_FUNC_VFORK): Remove.
        (AC_FUNC_FORK): Add.
        (HAVE_DES_H, HAVE_KRB5_H): Properly quote args of AC_CHECK_HEADERS;
        this is required by recent Autoconf versions.

[in src/ChangeLog]
2001-12-06  Paul Eggert  <address@hidden>

        * config.in (HAVE_WORKING_VFORK): New #undefs.
        * process.c (create_process):
        Use HAVE_WORKING_VFORK, not HAVE_VFORK.
        * m/cnvrgnt.h (HAVE_VFORK): Remove #define.
        * m/ibm370aix.h (HAVE_VFORK): Remove #undef.
        * m/ibmps2-aix.h (HAVE_VFORK): Remove #define.
        * m/intel386.h (HAVE_VFORK): Likewise.
        * m/mips-siemens.h (HAVE_VFORK): Likewise.
        * m/mips.h (HAVE_VFORK): Likewise.
        * s/freebsd.h (vfork): Remove #define.
        * s/lynxos.h (HAVE_VFORK): Remove #undef.
        * s/usg5-4-2.h: Fix comment about vfork.

diff -pru emacs-built/configure.in emacs-built-vfork/configure.in
--- emacs-built/configure.in    Tue Dec  4 11:37:39 2001
+++ emacs-built-vfork/configure.in      Wed Dec  5 22:46:20 2001
@@ -23,7 +23,7 @@ dnl  along with GNU Emacs; see the file 
 dnl  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 dnl  Boston, MA 02111-1307, USA.
 
-AC_PREREQ(2.50)dnl
+AC_PREREQ(2.51)dnl
 AC_INIT(src/lisp.h)
 AC_CONFIG_HEADER(src/config.h:src/config.in)
 
@@ -2014,11 +2014,11 @@ if test "${with_kerberos+set}" = set; th
     AC_CHECK_HEADERS(krb5.h)
   else
     AC_CHECK_HEADERS(des.h,,
-                    AC_CHECK_HEADERS(kerberosIV/des.h,,
-                                     AC_CHECK_HEADERS(kerberos/des.h)))
+                    [AC_CHECK_HEADERS(kerberosIV/des.h,,
+                                      [AC_CHECK_HEADERS(kerberos/des.h)])])
     AC_CHECK_HEADERS(krb.h,,
-                    AC_CHECK_HEADERS(kerberosIV/krb.h,,
-                                     AC_CHECK_HEADERS(kerberos/krb.h)))
+                    [AC_CHECK_HEADERS(kerberosIV/krb.h,,
+                                      [AC_CHECK_HEADERS(kerberos/krb.h)])])
   fi
   AC_CHECK_HEADERS(com_err.h)
 fi
@@ -2148,7 +2148,7 @@ else
   AC_MSG_RESULT(no)
 fi
 
-AC_FUNC_VFORK
+AC_FUNC_FORK
 
 # Fixme: This should be replaced when we have autoconf 2.14.
 AC_SIZE_T
diff -pru emacs-built/src/config.in emacs-built-vfork/src/config.in
--- emacs-built/src/config.in   Wed Nov 28 15:43:57 2001
+++ emacs-built-vfork/src/config.in     Wed Dec  5 13:36:46 2001
@@ -314,6 +314,7 @@ Boston, MA 02111-1307, USA.  */
 
 #undef HAVE_AIX_SMT_EXP
 
+#undef HAVE_WORKING_VFORK
 #undef vfork
 #undef size_t
 
diff -pru emacs-built/src/m/cnvrgnt.h emacs-built-vfork/src/m/cnvrgnt.h
--- emacs-built/src/m/cnvrgnt.h Mon Jan 15 01:15:02 1996
+++ emacs-built-vfork/src/m/cnvrgnt.h   Wed Dec  5 13:36:46 2001
@@ -97,10 +97,6 @@ Boston, MA 02111-1307, USA.  */
 
 #define SWITCH_ENUM_BUG
 
-/* fork(2) and vfork() are the same here.  */
-
-#define HAVE_VFORK
-
 /* grows towards lower addresses.  */
 
 #define        STACK_DIRECTION -1
diff -pru emacs-built/src/m/ibm370aix.h emacs-built-vfork/src/m/ibm370aix.h
--- emacs-built/src/m/ibm370aix.h       Tue Feb 20 05:03:56 2001
+++ emacs-built-vfork/src/m/ibm370aix.h Wed Dec  5 13:36:46 2001
@@ -50,7 +50,6 @@ Boston, MA 02111-1307, USA.  */
 
 #undef LIBS_MACHINE
 #define LIBS_MACHINE 
-#undef HAVE_VFORK
 
 #undef LD_SWITCH_MACHINE
 #define LD_SWITCH_MACHINE -xa
diff -pru emacs-built/src/m/ibmps2-aix.h emacs-built-vfork/src/m/ibmps2-aix.h
--- emacs-built/src/m/ibmps2-aix.h      Tue Jun 20 07:04:09 2000
+++ emacs-built-vfork/src/m/ibmps2-aix.h        Wed Dec  5 13:36:47 2001
@@ -114,7 +114,6 @@ so disable it for them.  */
 #endif
 
 #define BSTRING
-#define HAVE_VFORK
 #undef  HAVE_TERMIO
 #define HAVE_TERMIOS
 
diff -pru emacs-built/src/m/intel386.h emacs-built-vfork/src/m/intel386.h
--- emacs-built/src/m/intel386.h        Sat Aug 30 00:18:39 1997
+++ emacs-built-vfork/src/m/intel386.h  Wed Dec  5 13:36:47 2001
@@ -112,9 +112,6 @@ NOTE-END */
 #ifndef SOLARIS2_4
 /* address@hidden says Solaris 2.1 on the X86 has FSCALE defined in a
    system header. */
-
-#define HAVE_VFORK
-
 #else /* SOLARIS2_4 */
 #ifndef __GNUC__
 #if 0 /* address@hidden says this screws up cpp */
diff -pru emacs-built/src/m/mips-siemens.h 
emacs-built-vfork/src/m/mips-siemens.h
--- emacs-built/src/m/mips-siemens.h    Thu Mar  2 02:23:26 2000
+++ emacs-built-vfork/src/m/mips-siemens.h      Wed Dec  5 13:36:47 2001
@@ -160,10 +160,6 @@ NOTE-END  */
 #define LD_SWITCH_MACHINE
 #endif
 
-#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
-#define HAVE_VFORK             /* Graciously provided by libX.a */
-#endif
-
 
 /* The standard definitions of these macros would work ok,
    but these are faster because the constants are short.  */
diff -pru emacs-built/src/m/mips.h emacs-built-vfork/src/m/mips.h
--- emacs-built/src/m/mips.h    Tue Jun 20 07:05:56 2000
+++ emacs-built-vfork/src/m/mips.h      Wed Dec  5 13:36:47 2001
@@ -169,10 +169,6 @@ NOTE-END  */
 #define C_SWITCH_MACHINE -I/usr/include/bsd
 #define C_DEBUG_SWITCH -O -g3
 
-#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11)
-#define HAVE_VFORK             /* Graciously provided by libX.a */
-#endif
-
 #endif /* not BSD_SYSTEM */
 #endif /* not NEWSOS5 && not __linux__ */
 
diff -pru emacs-built/src/process.c emacs-built-vfork/src/process.c
--- emacs-built/src/process.c   Fri Nov  2 12:32:44 2001
+++ emacs-built-vfork/src/process.c     Wed Dec  5 13:36:47 2001
@@ -1428,7 +1428,7 @@ create_process (process, new_argv, curre
 #ifdef SIGCHLD
   sigaddset (&blocked, SIGCHLD);
 #endif
-#ifdef HAVE_VFORK
+#ifdef HAVE_WORKING_VFORK
   /* On many hosts (e.g. Solaris 2.4), if a vforked child calls `signal',
      this sets the parent's signal handlers as well as the child's.
      So delay all interrupts whose handlers the child might munge,
@@ -1438,7 +1438,7 @@ create_process (process, new_argv, curre
 #ifdef AIX
   sigaddset (&blocked, SIGHUP );  sigaction (SIGHUP , 0, &sighup_action );
 #endif
-#endif /* HAVE_VFORK */
+#endif /* HAVE_WORKING_VFORK */
   sigprocmask (SIG_BLOCK, &blocked, &procmask);
 #else /* !POSIX_SIGNALS */
 #ifdef SIGCHLD
@@ -1696,14 +1696,14 @@ create_process (process, new_argv, curre
   /* Restore the signal state whether vfork succeeded or not.
      (We will signal an error, below, if it failed.)  */
 #ifdef POSIX_SIGNALS
-#ifdef HAVE_VFORK
+#ifdef HAVE_WORKING_VFORK
   /* Restore the parent's signal handlers.  */
   sigaction (SIGINT, &sigint_action, 0);
   sigaction (SIGQUIT, &sigquit_action, 0);
 #ifdef AIX
   sigaction (SIGHUP, &sighup_action, 0);
 #endif
-#endif /* HAVE_VFORK */
+#endif /* HAVE_WORKING_VFORK */
   /* Stop blocking signals in the parent.  */
   sigprocmask (SIG_SETMASK, &procmask, 0);
 #else /* !POSIX_SIGNALS */
diff -pru emacs-built/src/s/freebsd.h emacs-built-vfork/src/s/freebsd.h
--- emacs-built/src/s/freebsd.h Tue Feb 20 02:52:17 2001
+++ emacs-built-vfork/src/s/freebsd.h   Wed Dec  5 13:36:47 2001
@@ -154,10 +154,6 @@ Boston, MA 02111-1307, USA.  */
 #define WRETCODE(w) (_W_INT(w) >> 8)
 #endif
 
-/* Needed to avoid hanging when child process writes an error message
-   and exits -- enami tsugutomo <address@hidden>.  */
-#define vfork fork
-
 /* Don't close pty in process.c to make it as controlling terminal.
    It is already a controlling terminal of subprocess, because we did
    ioctl TIOCSCTTY.  */
diff -pru emacs-built/src/s/lynxos.h emacs-built-vfork/src/s/lynxos.h
--- emacs-built/src/s/lynxos.h  Wed Jun 14 06:35:15 2000
+++ emacs-built-vfork/src/s/lynxos.h    Wed Dec  5 13:36:47 2001
@@ -33,8 +33,6 @@ Boston, MA 02111-1307, USA.  */
 #define KERNEL_FILE "/lynx.os"
 #undef LDAV_SYMBOL
 #define LDAV_SYMBOL "load_average"
-/* LynxOS doesn't have vfork */
-#undef HAVE_VFORK 
 
 /* misc defines */
 #define GETPGRP_NO_ARG
diff -pru emacs-built/src/s/usg5-4-2.h emacs-built-vfork/src/s/usg5-4-2.h
--- emacs-built/src/s/usg5-4-2.h        Tue Jun 20 06:36:13 2000
+++ emacs-built-vfork/src/s/usg5-4-2.h  Wed Dec  5 13:36:47 2001
@@ -2,8 +2,6 @@
 
 #include "usg5-4.h"
 
-/* address@hidden says this is useless since fork does copy-on-write
-   #define HAVE_VFORK */
 /* address@hidden says these exist.  */
 #define HAVE_TCATTR
 #if 0 /* autoconf should take care of this.  */




reply via email to

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