comments on building emacs-18.55

Richard Todd rmtodd at servalan.uucp
Wed Aug 15 13:59:45 AEST 1990


chet at Advansoft.COM (Chet Wood) writes:

>I just built emacs using the diffs on apple.com-- it has Dave Berry's
>name on it:
>	emacs-18.55.aux.diffs.Z

>I got it built but had to hack things around a little bit. (Guess I'm
>spoiled. On the Sun, all you have to do to make gnu things is type
>"make.")

(Well, usually you have to at least do a "config" or suchlike to setup the 
proper header files).  But anyway, there's another port of Emacs 18.55 done
by a guy in the Apple Federal Systems Group, Ron Flax.  It is (or at least
was) available for anon. ftp from afsg.apple.com.  All I had to do to get
that one to run was untar it and type make.  Could Ron Flax or Dave Berry
clarify what the differences are between the two ports?  Since my Mac isn't
directly connected to the Internet and I thus have to download everything thru
a 2400bps modem, I'm not really in a position to grab both copies of GNU
Emacs just to see what the differences are....

>I also ran into the problem someone else mentioned on the net of
>clashes between the variable PC in the term*.c and gm.h files, and
>the assembler mnemonic for the PC register. Could someone please
>explain why this occurs? I haven't used a C compiler in a long time
>that would allow such a clash. I saw the term "register prefixes" used
>in a posting but I could find no such term in the gcc documentation.

The problem is that when the compiler generates code for something like, say
"pc = 2", it produces something like 
	mov	2,pc
(possibly not quite this--I'm not a 680x0 assembler guru), and the assembler
interprets this as an instruction to put something in the PC register, instead
of into the variable labeled "pc".  This is a problem that's been biting 
compiler writers for years (I recall having to deal with it when hacking on
Small C for my TRS-80 way back when...).  The solution that John Coolidge
implemented was to change the assembler (he's using GAS, the GNU Assembler) 
so that it expects registers to be referred to by names beginning with %, e.g.
%pc, %sp, etc.  Since % can't ever appear in a variable name in C, this means
register names will never conflict with variable names.  A version of GCC and
GAS rigged to use this modified register syntax (the so-called "register
prefixes") should be  available on wuarchive.wustl.edu.  
--
Richard Todd	rmtodd at uokmax.ecn.uoknor.edu  rmtodd at chinet.chi.il.us



More information about the Comp.unix.aux mailing list