Xref: utzoo gnu.emacs.bug:1813 comp.sys.hp:4782 Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!pt.cs.cmu.edu!zog.cs.cmu.edu!tgl From: tgl@zog.cs.cmu.edu (Tom Lane) Newsgroups: gnu.emacs.bug,comp.sys.hp Subject: GNU Emacs 18.55 on HPUX 7.0 Summary: a couple of bugs found and fixed Message-ID: <8807@pt.cs.cmu.edu> Date: 10 Apr 90 18:22:29 GMT Organization: Carnegie-Mellon University, CS/RI Lines: 85 Herewith an installation report on bringing up GNU Emacs 18.55 under HPUX 7.0. I had had it running under 6.2, but encountered a couple of snafus in rebuilding after the upgrade. The environment here is vanilla HPUX 7.0 and Emacs 18.55 pretty much out-of-the-box: src/config.h selects s-hpux.h and m-hp9000s300.h, and defines HAVE_X_WINDOWS and X11. I also modify src/ymakefile to specify +O1 in place of -g. (-O draws warning messages...) The first problem you'll run into when building is a compiler complaint about the stub "perror()" routine in src/sysdep.c. Since HPUX has perror() I don't see the value in this stub; I just flushed it. (No diff for this: just change #ifdef HPUX to #if 0.) After that it should build and install without error. A couple of people have reported problems with interrupts to subjobs not working under HPUX 7.0: typing C-c C-c doesn't seem to do anything, and typing C-c C-\ kills Emacs itself. I've tracked down the problem and enclose diffs for a possible fix. The problem is that under HPUX 7.0 you can't do TIOCGPGRP on the master side of a pty (don't ask me why not -- it worked under 6.2). The code below avoids TIOCGPGRP entirely in favor of TIOCSIGSEND, which sends the signal directly. This should work OK in HPUX 6.2 also, but I am not about to reinstall 6.2 to try it. I don't know how widespread TIOCSIGSEND is (CMU's BSD 4.3 machines don't seem to have it); making the change conditional on TIOCSIGSEND being defined may be the wrong thing to do. This code will not work if the connection is via pipe or socket rather than pty, but I don't believe the old code would have either. At least I give an error message... *** src/process.c.old Fri Mar 16 12:13:22 1990 --- src/process.c Tue Apr 10 11:35:17 1990 *************** *** 1771,1776 **** --- 1771,1780 ---- error ("Process %s is not active", XSTRING (p->name)->data); + #ifdef TIOCSIGSEND + if (NULL (current_group)) + gid = - XFASTINT (p->pid); + #else /* don't have TIOCSIGSEND */ #ifdef TIOCGPGRP /* Not sure about this! (fnf) */ /* If we are using pgrps, get a pgrp number and make it negative. */ if (!NULL (current_group)) *************** *** 1785,1790 **** --- 1789,1795 ---- the child itself heads the pgrp. */ gid = - XFASTINT (p->pid); #endif /* not using pgrps */ + #endif /* TIOCSIGSEND */ switch (signo) { *************** *** 1800,1805 **** --- 1805,1820 ---- flush_pending_output (XFASTINT (p->infd)); break; } + + #ifdef TIOCSIGSEND + if (!NULL (current_group)) + { + if (ioctl (XFASTINT (p->infd), TIOCSIGSEND, signo) == -1) + error ("Failed to signal process %s", + XSTRING (p->name)->data); + } + else + #endif /* TIOCSIGSEND */ /* gid may be a pid, or minus a pgrp's number */ #ifdef BSD /* On bsd, [man says] kill does not accept a negative number to kill a pgrp. -- tom lane Internet: tgl@cs.cmu.edu UUCP: !cs.cmu.edu!tgl BITNET: tgl%cs.cmu.edu@cmuccvma CompuServe: >internet:tgl@cs.cmu.edu