*BSD News Article 18831


Return to BSD News archive

Newsgroups: comp.os.386bsd.bugs
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!wupost!gumby!destroyer!cs.ubc.ca!uw-beaver!newsfeed.rice.edu!rice!news.Rice.edu!rich
From: rich@Rice.edu (Richard Murphey)
Subject: Re: More problems with GNU Emacs 19.16
In-Reply-To: karn@unix.ka9q.ampr.org's message of Fri, 23 Jul 1993 08:22:49 GMT
Message-ID: <RICH.93Jul23235220@kappa.Rice.edu>
Lines: 139
Sender: news@rice.edu (News)
Reply-To: Rich-Murphey@Rice.edu
Organization: Department of Electrical and Computer Engineering, Rice
	University
References: <1993Jul23.082249.26633@qualcomm.com>
Date: Sat, 24 Jul 1993 05:52:20 GMT

>>>>> In article <1993Jul23.082249.26633@qualcomm.com>, karn@unix.ka9q.ampr.org (Phil Karn) writes:
Phil> Thanks to Nate Williams and Sean Fagan for pointers on fixing the
Phil> copy-on-write problems I have been seeing with Gnu Emacs 19.16.
...
Phil> Before I dig further into this, has anyone else encountered the same
Phil> problem and hopefully fixed it? At this point I'm not sure who is at
Phil> fault, Mail for not setting the signal actions properly before execing
Phil> emacs, or emacs for not catching them. I'd like to fix the right
Phil> program.


The process group code needs a patch.  The next-to-last patch below
fixes job control in shell buffers - perhaps that will help you.  If
not please let me know!  Rich



To build emacs 19.16 apply the patches below and type:

configure i386-free-386bsd --with-x11 --x-includes=/usr/X386/include --x-libraries=/usr/X386/lib --prefix=/usr/gnu
make

The first two patches resolve conflicts in the declaration of
getpwuid().

diff -rcb t/emacs-19.16/src/filelock.c emacs-19.16/src/filelock.c
*** t/emacs-19.16/src/filelock.c	Thu Jun 10 01:18:13 1993
--- emacs-19.16/src/filelock.c	Thu Jul  8 07:26:47 1993
***************
*** 140,146 ****
--- 140,150 ----
  {
    struct stat s;
    struct passwd *the_pw;
+ #if defined(__bsdi__) || defined (__386BSD__)
+   extern struct passwd *getpwuid (uid_t);
+ #else
    extern struct passwd *getpwuid ();
+ #endif
  
    if (lstat (lfname, &s) == 0)
      the_pw = getpwuid (s.st_uid);

diff -rcb t/emacs-19.16/src/xrdb.c emacs-19.16/src/xrdb.c
*** t/emacs-19.16/src/xrdb.c	Mon Jun 21 22:42:58 1993
--- emacs-19.16/src/xrdb.c	Thu Jul  8 07:23:25 1993
***************
*** 63,69 ****
  				   default to `int' anyway.  */
  #endif
  
! #ifdef __bsdi__
  extern struct passwd *getpwuid (uid_t);
  extern struct passwd *getpwnam (const char *);
  #else
--- 63,69 ----
  				   default to `int' anyway.  */
  #endif
  
! #if defined(__bsdi__) || defined (__386BSD__)
  extern struct passwd *getpwuid (uid_t);
  extern struct passwd *getpwnam (const char *);
  #else

----------------
If your libc has been modified to call things like abort(), etc.,
which are in gnulib, you must add gnulib last on the command line when
linking temacs.

diff -rcb t/emacs-19.16/src/ymakefile emacs-19.16/src/ymakefile
*** t/emacs-19.16/src/ymakefile	Tue Jul  6 11:26:19 1993
--- emacs-19.16/src/ymakefile	Fri Jul 16 00:50:08 1993
***************
*** 482,488 ****
     Note that SunOS needs -lm to come before -lc; otherwise, you get
     duplicated symbols.  */
  LIBES = $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
!    LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD
  
  /* Enable recompilation of certain other files depending on system type.  */
  
--- 482,488 ----
     Note that SunOS needs -lm to come before -lc; otherwise, you get
     duplicated symbols.  */
  LIBES = $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
!    LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
  
  /* Enable recompilation of certain other files depending on system type.  */


The patch below makes ^C work in shell buffers (i.e. job control for
sub-processes).

*** emacs-19.16/src/s/386bsd.h~	Wed Jun  9 04:33:24 1993
--- emacs-19.16/src/s/386bsd.h	Thu Jul 22 13:39:30 1993
***************
*** 16,18 ****
--- 16,20 ----
  
  /* For mem-limits.h.  */
  #define BSD4_2
+ 
+ #define HAVE_SETSID

The following patch fixes the time-of-day display.  If you compile
without this patch and change /etc/localtime, the emacs binary will
display the time in the old timezone rather than recognize the change.

*** emacs-19.16/src/emacs.c.orig	Thu Jul 22 15:13:04 1993
--- emacs-19.16/src/emacs.c	Thu Jul 22 15:13:43 1993
***************
*** 600,612 ****
  			    Fcons (build_string ("loadup.el"), Qnil));
  #endif /* CANNOT_DUMP */
      }
  
    initialized = 1;
  
! #ifdef sun
    /* sun's localtime() has a bug.  it caches the value of the time
       zone rather than looking it up every time.  Since localtime() is
       called to bolt the undumping time into the undumped emacs, this
       results in localtime() ignoring the TZ environment variable.
       This flushes the new TZ value into localtime(). */
    tzset();
--- 600,612 ----
  			    Fcons (build_string ("loadup.el"), Qnil));
  #endif /* CANNOT_DUMP */
      }
  
    initialized = 1;
  
! #if defined(sun) || defined(__386BSD__)
    /* sun's localtime() has a bug.  it caches the value of the time
       zone rather than looking it up every time.  Since localtime() is
       called to bolt the undumping time into the undumped emacs, this
       results in localtime() ignoring the TZ environment variable.
       This flushes the new TZ value into localtime(). */
    tzset();