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();