bd@hpsemc.HP.COM (bob desinger) (05/29/88)
In src/sysdep.c near line 479, sys_suspend() decides to suspend Emacs or fork a subshell depending if you're BSD or not. The code goes like this [edited a bit]: sys_suspend () { #ifdef VMS [VMS code calling LIB$ATTACH] #else #ifdef BSD /* line 479 */ killpg (getpgrp (0), SIGTSTP); #else #ifdef USG_JOBCTRL [black magic incantation for csh hack] #else /* On a system where suspending is not implemented, instead fork a subshell and let it talk directly to the terminal while we wait. */ Some System V boxes these days implement BSD job control, and due to Guy Harris and Dave Lennert's POSIX proposal for implementing BSD job control on System V there's going to be more in the future. Line 479 should be changed from #ifdef BSD to #ifdef SIGTSTP which makes it work on System V boxes that support job control like the HP 9000 Series 800. Actually, in m-hp9000s800.h you'll need a couple of lines in addition to the above fix: /* BSD's killpg() functionality is subsumed by HP-UX's kill(). */ #define killpg(p,s) kill(-(p), s) -- bd
bd@hpsemc.HP.COM (bob desinger) (05/29/88)
Another hp9000s800-related matter. First of all, thanks be to RMS for splitting out the different unexec() versions into separate files! This makes life much easier. In fact, I'm using a different version of unexec() from the one distributed with 18.51 as unexhp9k800.c. Mine doesn't drop a core file and also allows the use of the symbolic debugger on Emacs. After I've used it for a couple of weeks and it proves stable, I'll try to get permission from its author to give it to GNU. It's been fine for a week now. (The 18.51 version worked for about 10 minutes before giving up the ghost.) Anyway, the src/unexhp9ks800.c file distributed with 18.51 has a typo in two places that prevent it from compiling. Two declarations of "FILE" in column 1 have an "@" in front of them, which is evidently a holdover from someone's shar program. (It's common for shars to pad `F' in column 1 since uucp mailers tend to want to put `>' characters in front of them.) Somehow the "@" didn't get stripped out like they should have. Remove them by hand from lines 194 and 288, or apply this patch: 194c194 < @FILE *new, *a_out; --- > FILE *new, *a_out; 288c288 < @FILE *new; --- > FILE *new;
bd@hpsemc.HP.COM (bob desinger) (05/30/88)
Another m-hp9000s800.h note. Near line 171 appears the comment: > /* In hpux, for unknown reasons, S_IFLNK is defined even though > symbolic links do not exist. > Make sure our conditionals based on S_IFLNK are not confused. Then it #undefs S_IFLNK on line 178. Well, at revision 2.0 of HP-UX on the Series 800, symbolic links exist. So this undef should be commented out if you're running 2.0 or later. One way to do this semi-portably would be by imitating the scheme used in m-hp9000s300.h: allowing a #define of HPUX_1 and keeping the #undef on line 178 only if HPUX_1 was defined. I'd be satisfied with merely commenting out the #undef, and cloning the comment in m-hp9000s300.h about symlinks not existing on version 1 of HP-UX. Now you know why S_IFLNK was defined even though symlinks didn't exist. The code was in the kernel---HP-UX started from a Berkeley kernel---but was just #ifdef'ed out until there was enough demand to justify the extra resources that it would take to support it. -- bd