[comp.emacs] Fixed m-7300.h file for Unix PC

brant@linc.cis.upenn.edu (Brant Cheikes) (08/22/87)

By popular demand, I have sent a copy of the fixed m-7300.h file
to the Gnu Emacs group.  That file, in conjunction with s-usg5-2.h,
has yielded a healthy Gnu Emacs 18.47 under versions 3.5/3.51 of
the Unix PC foundation set.
-----------------------------------------------------------------------------
Brant Cheikes                                      University of Pennsylvania
ARPA: brant@linc.cis.upenn.edu               Computer and Information Science
=============================================================================

krishna@athena.mit.edu ( ???) (08/23/87)

I sure hope this fixes the problem I had with getting 'too much
defining' in remap.h in shortnames and config.h in src.  When the
makefile cd'd to shortnames and tried making there, I got from line
1272 to the end of remap, a message saying

../shortnames/: remap.h:  xxxx: Too much defining
and then
./config.h : xxx: Too much defining.

I wonder if this is a memory size problem (I have 1 meg internal as
per last letter).  Anyway, the gnu people don't seem to have
incorporated the new changes, could you send me a copy of your fixed
m-7300 file?  I would otherwise be patient, but I really need it
_now_.

Krishna Sethuraman
krishna@athena.mit.edu, krishna@msudoc.egr.msu.edu, krishna@cemux1.cem.msu.edu

brant@linc.cis.upenn.edu (Brant Cheikes) (08/24/87)

Ok, enough.  I have been inundated with mail about getting Gnu Emacs 18.47
running on the AT&T Unix PC (PC7300 or 3B1).  I don't understand this, since
several weeks ago I posted something to comp.sys.att about Unix PC Gnu,
offering to help people get it running, and got no response whatsoever.  But
no mind.

First, I am appending to this article a copy of the fixed m-7300.h file.
Use this instead of the one supplied in the current Gnu Emacs distribution,
but only if you're using version 3.5 or 3.51 of the Unix PC system.  I
have sent this file to the Gnu group; it should be incorporated into future
releases.

The s- file I use is s-usg5-2.h, not s-usg5-0.h.  Note that versions 3.5/3.51
support flexnames, so you should not be using the shortnames stuff.  That's
taken care of in m-7300.h by undefining SHORTNAMES.

Also, you need the -N switch in LD_SWITCH_MACHINE if you expect to get
Emacs running, which is also handled in m-7300.h.  By the way, don't expect
to use the shared library.  First you'll have to rehack the way Emacs uses
curses and use tam instead, and you'll probably have to diddle with undump
or unexec will break.

As far as my experience goes, if you use this m-7300.h file along with
the usg5-2 file, and follow all the directions in INSTALL, you'll be
able to successfully build a Gnu Emacs.  

Finally, all you Unix PC owners should minimally read comp.sys.att, and
get yourselves a feed on the unix-pc subnet.

---------- CUT HERE ----------
/* m- file for AT&T UNIX PC model 7300
   Copyright (C) 1986 Free Software Foundation, Inc.
   Modified for this machine by mtxinu!rtech!gonzo!daveb
   Rehacked by brant@linc.cis.upenn.edu for version 3.5+ support.
   Use this file with s-usg5-2.h

This file is part of GNU Emacs.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY.  No author or distributor
accepts responsibility to anyone for the consequences of using it
or for whether it serves any particular purpose or works at all,
unless he says so in writing.  Refer to the GNU Emacs General Public
License for full details.

Everyone is granted permission to copy, modify and redistribute
GNU Emacs, but only under the conditions described in the
GNU Emacs General Public License.   A copy of this license is
supposed to have been given to you along with GNU Emacs so you
can know your rights and responsibilities.  It should be in a
file named COPYING.  Among other things, the copyright notice
and this notice must be preserved on all copies.  */


/* In Release 3.5, flexnames are supported, so #undef SHORTNAMES.
   For prior releases, #define SHORTNAMES. */

#undef SHORTNAMES

/* The following three symbols give information on
 the size of various data types.  */

#define SHORTBITS 16		/* Number of bits in a short */

#define INTBITS 32		/* Number of bits in an int */

#define LONGBITS 32		/* Number of bits in a long */

/* Define BIG_ENDIAN iff lowest-numbered byte in a word
   is the most significant byte.  */

#define BIG_ENDIAN

/* XINT must explicitly sign-extend */

#define EXPLICIT_SIGN_EXTEND

/* Define how to take a char and sign-extend into an int.
   On machines where char is signed, this is a no-op.  */

#define SIGN_EXTEND_CHAR(c) (c)

/* Use type int rather than a union, to represent Lisp_Object */

#define NO_UNION_TYPE

/* Now define a symbol for the cpu type, if your compiler
   does not define it automatically:
   vax, m68000, ns16000 are the ones defined so far.  */

# ifndef mc68k
# define mc68k
# endif
#ifndef m68k
#define m68k
#endif

/* Cause crt0.c to define errno.  */

#define NEED_ERRNO

/* Data type of load average, as read out of kmem.  */
/* These are commented out since it is not supported by this machine.  */
  
/* #define LOAD_AVE_TYPE long */

/* Convert that into an integer that is 100 for a load average of 1.0  */

/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */

/* we need this next line in order for emacs to run at all */
#define LD_SWITCH_MACHINE -s -N

/* fix this bug */
#define SWITCH_ENUM_BUG
-----------------------------------------------------------------------------
Brant Cheikes                                      University of Pennsylvania
ARPA: brant@linc.cis.upenn.edu               Computer and Information Science
=============================================================================