[comp.sys.masscomp] GNU EMACS on Masscomp

smh@mit-amt.MEDIA.MIT.EDU (Steven Haflich) (06/09/87)

[It has been reported that current Gnu Emacs fails on Masscomp RTU.]

I have successfully brought up Gnu 18.44 on Masscomp 3.1 RTU with both
the 1.1 and 1.2 versions of the C compiler.  There are a couple
necessary bug workarounds, and I am in the process of submitting bug
reports to Masscomp.  Meanwhile, here's what you have to do:

There is a bug regarding register variables and alloca that is hard to
work around because the compiler tries to be so clever.  [I defer
describing it here.]  This causes the failure of regex searching
during inc-vers, as you described.  One way to workaround would be to
change the *name* of the Gnu-provided fake alloca routine, but I
solved it expediently (if inelegantly) by removing all register
variables.  Put this line in m-masscomp.h:

	#define register

This effectively removes all register declarations.  When you recompile
there will be several modules in the source that contain register
declarations without type specifier, i.e.:

	register foo;

When the compile reports these errors, just change the source to the
equivalent:

	register int foo;

This fixes the problem, and a single-user 68020 is so fast you won't
notice the lack of register variables.

There are two other fixes you might want to make while you are at it.

The current C compiler proprocessor doesn't predefine the variable
MASSCOMP, but some Gnu code conditionalizes on it.  Add to s-rtu.h:

	#define MASSCOMP

There is apparently a bug in Masscomp's implementation of the fsync(2)
system call.  I haven't isolated the bug completely but suspect that
if an inode to be fsync'd is in the same disk block as another `dirty'
inode (or maybe the parant directory) then the entire file system
locks up, requiring reboot.  This can happen when Gnu first writes any
particular file.  The fix is simply to conditionalize out the fcntl in
fileio.c, which is no big deal since fcntl doesn't do anything
detectable to user code in the first place.

With these three changes (and the minor include file hacking you
mentioned) Gnu 18.44 comes up and runs with no problems.

Steve Haflich
smh@ems.mit.edu
Experimental Music Studio, MIT Media Lab
(617)893-8863

vonn@beaver.cs.washington.edu (Vonn Marsch) (02/11/88)

Does *ANYONE* have Gnu Emacs working on a Masscomp 5600?

Does anyone *KNOW* someone who does?

Does anyone have the mearest *CLUE* as to how to get around the compiler
bugs? (Already tried the "#define register" trick.)

*ANY* info, hints, pointers, pointers to info, pointers to pointers, etc,
would be appreciated.

TIA,
Vonn Marsch (vonn%entropy.ms@beaver.cs)