Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!gatech!hubcap!ncrcae!ncr-sd!hp-sdd!hplabs!hpda!hpcuhb!hp-ses!hpcea!hpnmdla!darrylo From: darrylo@hpnmdla.HP.COM (Darryl Okahata) Newsgroups: comp.sys.hp Subject: Re: HPUX 6.5 problems (long) Message-ID: <430003@hpnmdla.HP.COM> Date: 24 Apr 89 16:46:03 GMT References: <1725@Portia.Stanford.EDU> Organization: HP Network Measurements Div, Santa Rosa, CA Lines: 224 In comp.sys.hp, ruf@Portia.Stanford.EDU (Erik Ruf) writes: > As far as the missing symbols are concerned, we get them when > compiling gnuemacs18.51 for X10. The symbols "flag_68010" and > "flag_fpa" (and 2 or 3 others I can't remember) are not found. The > only references to these symbols are in libc.a (not our applications) > so it must be a bug. How could a system with undefined symbols get > released? Doesn't HP do any integrity checking? ******************************************************************************* ***** DISCLAIMER: THE FOLLOWING IS THE AUTHOR'S PERSONAL OPINION AND ***** DOES NOT REFLECT THE OPINION OR POLICY OF THE HEWLETT-PACKARD ***** COMPANY. ALSO, EVERYTHING CONTAINED WITHIN THIS MESSAGE, ***** INCLUDING, BUT NOT LIMITED TO, ANY ANSWERS OR PORTIONS OF COMPUTER ***** PROGRAMS, IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR SUPPORT ***** WHATSOEVER. NEITHER THE AUTHOR NOR THE HEWLETT-PACKARD COMPANY ***** ACCEPT ANY RESPONSIBILITY FOR THE USE OF THE INFORMATION ***** CONTAINED WITHIN THE FOLLOWING MESSAGE. ******************************************************************************* Now that we've just disclaimed that the sun even rises ... :-) To get GNU Emacs running on HP-UX 6.5, get a copy of GNU Emacs V18.53, and apply the patches at the end of this message. This *should* properly configure GNU Emacs V18.53 for use with HP-UX 6.5 (i.e., Emacs should compile without any problems and job control should work properly). With luck, I have not left out anything. This is being provided because I care about HP's customers. Although this is being done on my own time, I am willing to answer any questions about running GNU Emacs on HP-UX. Just send Email. -- Darryl ("shoot the lawyers") Okahata Hewlett-Packard, Network Measurements Division INTERNET: darrylo%hpnmd@hpcea.HP.COM UUCP: { hpfcla, hplabs }!hpcea!hpnmd!darrylo ********************************************* ***** THE FOLLOWING IS UNSUPPORTED CODE ***** ********************************************* =============================================================================== *** dist-18.53/src/alloca.s Fri Jul 15 00:16:04 1988 --- Emacs/src/alloca.s Mon Apr 17 08:39:01 1989 *************** *** 79,85 */ text set PROBE,-128 # safety for C frame temporaries ! set MAXREG,10 # d2-d7, a2-a5 may have been saved global _alloca _alloca: mov.l (%sp)+,%a0 # return addess --- 79,85 ----- */ text set PROBE,-128 # safety for C frame temporaries ! set MAXREG,22 # d2-d7, a2-a5, fp0-fp7 may have been saved global _alloca _alloca: mov.l (%sp)+,%a0 # return addess *** dist-18.53/src/crt0.c Tue Aug 30 23:48:46 1988 --- Emacs/src/crt0.c Wed Apr 12 18:55:03 1989 *************** *** 446,451 #else /* new hp assembler */ asm(" text"); asm(" global __start"); asm(" global _exit"); asm(" global _main"); --- 446,455 ----- #else /* new hp assembler */ asm(" text"); + asm(" set float_loc,0xFFFFB000"); + asm(" set fpa_loc,0xFFF08000"); + asm(" global float_loc"); + asm(" global fpa_loc"); asm(" global __start"); asm(" global _exit"); asm(" global _main"); *************** *** 461,466 asm("skip_float:"); asm(" subx.w %d1,%d1"); asm(" mov.w %d1,flag_68010"); asm(" mov.l 4(%a7),%d0"); asm(" beq.b skip_1"); asm(" mov.l %d0,%a0"); --- 465,473 ----- asm("skip_float:"); asm(" subx.w %d1,%d1"); asm(" mov.w %d1,flag_68010"); + asm(" add.l %d0,%d0"); + asm(" subx.w %d1,%d1"); + asm(" mov.w %d1,flag_fpa"); asm(" mov.l 4(%a7),%d0"); asm(" beq.b skip_1"); asm(" mov.l %d0,%a0"); *************** *** 492,497 asm(" comm float_soft, 4"); asm(" comm flag_68881, 4"); asm(" comm flag_68010, 4"); #endif /* new hp assembler */ #endif /* hp9000s300 */ --- 499,505 ----- asm(" comm float_soft, 4"); asm(" comm flag_68881, 4"); asm(" comm flag_68010, 4"); + asm(" comm flag_fpa, 4"); #endif /* new hp assembler */ #endif /* hp9000s300 */ *** dist-18.53/src/m-hp9000s300.h Fri Jun 10 05:09:19 1988 --- Emacs/src/xxx Mon Apr 24 09:14:18 1989 *************** *** 166,168 #define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000 #endif #endif --- 166,176 ----- #define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000 #endif #endif + + /* If HPUX job control exists, define the following. */ + + #define HPUX_JOB_CONTROL + + /* Define NEED_BSDTTY if you have such. */ + + #define NEED_BSDTTY *** dist-18.53/src/sysdep.c Tue Mar 21 18:40:19 1989 --- Emacs/src/sysdep.c Sat Apr 22 00:02:13 1989 *************** *** 505,510 killpg (getpgrp (0), SIGTSTP); #else #ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */ ptrace (0, 0, 0, 0); /* set for ptrace - caught by csh */ kill (getpid (), SIGQUIT); --- 505,518 ----- killpg (getpgrp (0), SIGTSTP); #else + #ifdef HPUX_JOB_CONTROL + int pgrp; + + if ((pgrp = getpgrp()) > 0) { + /* We send SIGTSTP to every process in the current process group */ + kill(-pgrp, SIGTSTP); + } + #else /* not HPUX_JOB_CONTROL */ #ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */ ptrace (0, 0, 0, 0); /* set for ptrace - caught by csh */ kill (getpid (), SIGQUIT); *************** *** 577,582 signal (SIGIO, sigio); #endif /* SIGIO */ #endif /* no USG_JOBCTRL */ #endif /* no SIGTSTP */ #endif /* not VMS */ } --- 585,591 ----- signal (SIGIO, sigio); #endif /* SIGIO */ #endif /* no USG_JOBCTRL */ + #endif /* not HPUX_JOB_CONTROL */ #endif /* no SIGTSTP */ #endif /* not VMS */ } *************** *** 1758,1763 #endif BSD4_1 #ifdef USG /* * The BSD random(3) returns numbers in the range of * 0 to 2e31 - 1. The USG rand(3C) returns numbers in the --- 1767,1773 ----- #endif BSD4_1 #ifdef USG + #ifndef hpux /* * The BSD random(3) returns numbers in the range of * 0 to 2e31 - 1. The USG rand(3C) returns numbers in the *************** *** 1778,1783 srand (arg); } #endif /* USG */ --- 1788,1794 ----- srand (arg); } + #endif /* hpux */ #endif /* USG */ ===============================================================================