🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.masscomp
Article #36

Re: GnuEmacs on Masscomp

#36
From: Steven Haflich
Date: Tue, 09 Jun 1987 16:33
55 lines
2885 bytes
[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
Technical Details
Message-ID: <3132@soma.bcm.tmc.edu>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!clyde!cbosgd!soma!masscomp-request
References: <890@fmsrl7.UUCP>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!clyde!cbosgd!soma!masscomp-request
From: smh@mit-amt.MEDIA.MIT.EDU (Steven Haflich)
Newsgroups: comp.sys.masscomp
Subject: Re: GnuEmacs on Masscomp
Message-ID: <3132@soma.bcm.tmc.edu>
Date: Tue, 9-Jun-87 12:33:55 EDT
Article-I.D.: soma.3132
Posted: Tue Jun  9 12:33:55 1987
Date-Received: Fri, 12-Jun-87 05:31:16 EDT
References: <890@fmsrl7.UUCP>
Sender: masscomp@soma.bcm.tmc.edu
Reply-To: media-lab.MEDIA.MIT.EDU!mit-amt!smh (Steven Haflich)
Distribution: world
Organization: MIT Media Lab, Cambridge MA
Lines: 55
Approved: masscomp@soma.bcm.tmc.edu