[comp.emacs] Gnu-Emacs port to Unix PC?

wjc@ho7cad.UUCP (06/20/87)

In article <1362@super.upenn.edu.upenn.edu>, brant@linc.cis.upenn.edu.UUCP writes:
> Does anyone out there regularly port the latest distribution of
> GNU Emacs (currently 18.46) to the PC 7300/3B1?  Has anyone ever
> tried it?  Is it hard or easy?  If no one's done it, I'll probably
> try.

I compiled  18.41 (using the UNIXpc  3.5 compiler, etc) and  it worked
without  a hitch (there is a  7300.h, but it seems  to be  for the old
pre3.5 software).  (1MB RAM, don't know if it matters.)

When I say it worked fine, I mean without the  "unexec()" option.  So,
all that lisp gets loaded up each  time.  Takes about  2 minutes.  I'm
sure glad that GNUemacs is  a program you stay in  for a while, but it
makes it useless  as an   escape  editor for   mailers and the    like
(obviously,  you can solve the  mail  problems by  using GNUemacs mail
stuff, but the more general problem continues).

Anyhow, I asked a couple weeks ago in comp.emacs  if anyone had gotten
GNUemacs  to run on  the 7300  with the preloading.   No response.   I
fiddled with  it for a  couple days  and gave up.   Not interested  in
learning 68010 assembler just now.  If anyone has gotten this to work,
I'd like to hear about it.

Also, if anyone is interested, I'd be happy to pass along the modified
congifuation headers, although it's pretty easy to do.

	Bill Carpenter
	(AT&T gateways)!ho5cad!wjc
	HO 1L-410, (201)949-8392

wjc@ho5cad.ATT.COM (06/20/87)

In article <175@ho7cad.ATT.COM>, wjc@ho5cad.ATT.COM writes:
> 
> I compiled  18.41 (using the UNIXpc  3.5 compiler, etc) and  it worked
> without  a hitch (there is a  7300.h, but it seems  to be  for the old
> pre3.5 software).  (1MB RAM, don't know if it matters.)

Sorry, I meant ___2 MB RAM___.  I don't know  if it even runs in less,
was my point.   BTW, after you  throw away nonessentials, compress the
source  (C and lisp), etc, it  costs about 5 MB  to keep  this on your
machine.  I guess you could recover another meg if you  got rid of the
stuff you compressed.

	Bill Carpenter
	(AT&T gateways)!ho5cad!wjc
	HO 1L-410, (201)949-8392

jkw@mtung.ATT.COM (Kevin Wanner) (06/22/87)

	You can can get unexec to work correctly by including the
-N option to the LD_MACHINE_SWITCH in m-7300.h  This forces the
loader to load the data right after text, which is what unexec
expects, e.g. the last three lines of my m-7300.h file are:

#define LIBS_TERMCAP -lcurses -ltermcap
#define LD_MACHINE_SWITCH -s -N
#undef TERMINFO

Good Luck!
Kevin Wanner
[ihnp4|allegra|akgua]!mtung!jkw
(201)957-2704

Karl.Kleinpaste@cbstr1.att.com (06/23/87)

Posting-Front-End: GNU Emacs 18.47.3 of Sat Jun 20 1987 on cbstr1 (usg-unix-v)


jkw@mtung.ATT.COM writes:
> #define LD_MACHINE_SWITCH -s -N

Be aware that use of -N causes SysV's ld(1) to create the binary as a
single, writable (hence unshared) segment.  On a 7300, where (one
hopes) you are all alone by yourself with only a single emacs running,
that's OK, but as soon as you need a second simultaneous incarnation
of emacs, you're going to find yourself in deep performance trouble.

Karl

wjc@ho5cad.ATT.COM (06/24/87)

Posting-Front-End: GNU Emacs 18.41.6 of Tue Jun 16 1987 on ho5cad (usg-unix-v)


In article <961@mtung.ATT.COM> jkw@mtung.ATT.COM (Kevin Wanner) writes:

>	 You can can get unexec to work correctly by including the
> -N option to the LD_MACHINE_SWITCH in m-7300.h  This forces the
> loader to load the data right after text, which is what unexec
> expects, e.g. the last three lines of my m-7300.h file are:
>
> #define LIBS_TERMCAP -lcurses -ltermcap
> #define LD_MACHINE_SWITCH -s -N
> #undef TERMINFO
>
> Good Luck!
> Kevin Wanner
> [ihnp4|allegra|akgua]!mtung!jkw
> (201)957-2704
>

Well,  that's finally answered for  me.  Thanks!  BTW,  the #define is
actually LD_SWITCH_MACHINE rather than the vice versa shown above.

The "m-7300.h" file is set up  for the pre3.5, preflexname development
environemnt on the UNIXpc.  If you have the 3.5 development utilities,
you might be interested in these changes I made in "config.h":

	#include "s-usg5-0.h"
	#undef ADDR_CORRECT   /* simply to suppress "redefined" msg */

	#include "m-7300.h"
	#undef SHORTNAMES                 /* 3.5 has flexnames */
	#define LD_SWITCH_MACHINE -s -N   /* as seen above */
	#define TERMINFO                  /* 3.5 has true terminfo */
	#define SWITCH_ENUM_BUG           /* Some "bug"! */