[gnu.emacs] hpux 6.2 and XWindows and gnuemacs -> panic !!

XMATROOT%DDATHD21.BITNET@MITVMA.MIT.EDU (10/28/88)

If were are running emacs-18.51 under X-Windows (A.03.02) on a
hp9000/318 (hpux 6.2) the system crashes reporting a bus error and stops.
The error accurs in routine
    init_sys_modes
at the statement
    ioctl(0, TIOCGETP, &old_gtty);

It seems to be a bug in hpux or X-Windows.
Does anybody know a fix of that bug ?

Klaus-Thomas Schleicher

Inst. Numerical Analysis
TH Darmstadt
FRG

xmatroot@ddathd21.bitnet

pnr@hupu.hut.fi (Pekka Nikander) (10/29/88)

In article <8810280957.AA08915@prep.ai.mit.edu> XMATROOT%DDATHD21.BITNET@MITVMA.MIT.EDU writes:
   If were are running emacs-18.51 under X-Windows (A.03.02) on a
   hp9000/318 (hpux 6.2) the system crashes reporting a bus error and stops.

   It seems to be a bug in hpux or X-Windows.
   Does anybody know a fix of that bug ?

A fried of mine noticed the same bug in their system a few weeks ago.
They had 6.2 and an unofficial beta release of X.11 from HP, and I am
not very sure if I am really allowed to speak about this.  However,
since we are in Finland, I have a strong feeling that their bug
reports have newer reached HP labs over there in the states.  And
obviously the bug seems to be in the official release as well.

I am not sure about all the versions of the various programs my friend
is using, but I think he is running HP-UX 6.2 on HP-9000/350 with
X11R2.  The Gnu Emacs is 18.52.  I am not sure if he has the X11
fixes, but I think so.

I was debugging the system with my friend then, but unfortunately I
don't remember the very details any more.  The bug seems to be in Unix
domain sockets.  When we tried to run Emacs under X with the DISPLAY
environment variable set to "unix:0.0" the system crashed.  However,
when we changed the DISPLAY to "<host>:0.0", everything started to
work fine.  I think this might help with You, too.

HOWEVER, there is a another bug: The HP-UX 6.2 C-compiler seems to be
a bit brain damaged.  When compiled with 6.2 compiler the emacs did
not update the cursor position properly.  This seemed to be caused by
some code in function compute_motion in file src/indent.c.  When this
file was compiled with the new 6.2 compiler, the cursor updating did
not work.  However, when compiled with the earlier 6.0 compiler,
everything seems to work fine.  The problem seems to be around the
following lines:

      if (HPOS (cpos) >= width
	  && (HPOS (cpos) > width
	      || (pos < NumCharacters
		  && CharAt (pos + 1) != '\n')))

For some reason the code generated by the new compiler clears the
uppermost bits of the cpos variable when evaluating this condition
clause.  The earlier compiler's code doesn't.

Then there is still one problem unresolved: The emacs dumps core when
collecting garbage when started under X.  Without X it works just
fine.  If you happen to have lots of free memory (my friend does), you
can just increase the value of the lisp variable "gc-cons-threshold" to
e.g. 1 million and you can work rather long before emacs collects
garbage.  This of course does not help with direct calls to
(garbage-collect), but this can be (partially) avoided by redefining
the function.  Neither my friend nor I have had time to dig up what
causes this bug; recompiling all the code with 6.0 compiler does not
help.

--Pekka Nikander
Helsinki University of Technology, Finland  Internet: <pnr@hupu.hut.fi>
Otakaari				    Bitnet: pnr@fingate.bitnet
02150 ESPOO				    UUCP: uunet!mcvax!santra!pnr