HP02) Why do some callbacks cause "Illegal Instruction" on hpux9pa (using v5.0 of the compiler)?
Description
This article is from the FAQ, by with numerous contributions by
others.
HP02) Why do some callbacks cause "Illegal Instruction" on hpux9pa (using v5.0 of the compiler)?
If the following program is compiled and run on an hpux9pa (HP series 700
HPPA, HP-UX 9.x) using the BETA compiler version v5.0), it displays a window
with the text "Timer" in it, prints a random number of 7'digits on the
screen, and then dies with "Illegal Instruction":
ORIGIN '~beta/Xt/v1.8/awenv';
--- program: descriptor ---
AwEnv
(# l: @Command
(# init:: (# do 'Timer'->label #)#);
t: @Timer
(# timeOut:: (# do 10->start; '7'->Put; #) #);
do l.init;
10->t.start;
#)
The reason for this, is that in v2.6 of the hpux9pa runtime system for BETA
there is an error, which occurs if a callback is called very soon after it
is installed. In this case it is called ~10 ms after being installed, and
almost no other code has been executed in this period of time. In this
situation an HPPA cache should have been flushed to ensure the correct
behaviour, but there was an error in the runtime system delivered with
release 3.0 of the Mjolner System. The solution is to acquire a patched
runtime system from Mjolner Informatics.
 
Continue to: