Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!usc!samsung!munnari.oz.au!uokmax!servalan!rmtodd From: rmtodd@servalan.uucp (Richard Todd) Newsgroups: comp.unix.aux Subject: Re: comments on building emacs-18.55 Message-ID: <1990Aug15.035945.589@servalan.uucp> Date: 15 Aug 90 03:59:45 GMT References: Distribution: comp Organization: Ministry of Silly Walks Lines: 43 chet@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@uokmax.ecn.uoknor.edu rmtodd@chinet.chi.il.us