Commit 20c428fd authored by Jim Blandy's avatar Jim Blandy
Browse files

Initial revision

parent 20a8832d
/* machine description file for AT&T UNIX PC model 7300
Copyright (C) 1986 Free Software Foundation, Inc.
Modified for this machine by mtxinu!rtech!gonzo!daveb
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* The following line tells the configuration script what sort of
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2" */
/* Supposedly now these machines have flexnames.
/* # define 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) */
#define SWITCH_ENUM_BUG
/* These three lines were new in 18.50. They were said to permit
a demand-paged executable, but someone else says they don't work.
Someone else says they do. They didn't work because errno was an
initialized variable in crt0.c, and because of %splimit (also therein),
both of which have been fixed now. */
#define SECTION_ALIGNMENT 0x03ff
#define SEGMENT_MASK 0xffff
#define LD_SWITCH_MACHINE -z
/* alliant.h Alliant machine running system version 2 or 3.
Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
Note that for version 1 of the Alliant system
you should use alliant1.h instead of this file.
Use alliant4.h for version 4.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* The following line tells the configuration script what sort of
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
/* 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
/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
* group of arguments and treat it as an array of the arguments. */
#ifdef ALLIANT_1
#define NO_ARG_ARRAY
#endif
/* Define WORD_MACHINE if addresses and such have
* to be corrected before they can be used as byte counts. */
#undef WORD_MACHINE
/* 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)
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
are the ones defined so far. */
#define ALLIANT
/* Use type int rather than a union, to represent Lisp_Object */
/* This is desirable for most machines. */
#define NO_UNION_TYPE
/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
the 24-bit bit field into an int. In other words, if bit fields
are always unsigned.
If you use NO_UNION_TYPE, this flag does not matter. */
/* On Alliants, bitfields are unsigned. */
#define EXPLICIT_SIGN_EXTEND
/* No load average information available for Alliants. */
#undef LOAD_AVE_TYPE
#undef LOAD_AVE_CVT
/* Define CANNOT_DUMP on machines where unexec does not work.
Then the function dump-emacs will not be defined
and temacs will do (load "loadup") automatically unless told otherwise. */
#undef CANNOT_DUMP
/* Define VIRT_ADDR_VARIES if the virtual addresses of
pure and impure space as loaded can vary, and even their
relative order cannot be relied on.
Otherwise Emacs assumes that text space precedes data space,
numerically. */
#undef VIRT_ADDR_VARIES
/* Define C_ALLOCA if this machine does not support a true alloca
and the one written in C should be used instead.
Define HAVE_ALLOCA to say that the system provides a properly
working alloca function and it should be used.
Define neither one if an assembler-language alloca
in the file alloca.s should be used. */
#undef C_ALLOCA
#define HAVE_ALLOCA
#ifdef ALLIANT_1
#define C_ALLOCA
#undef HAVE_ALLOCA
#endif /* ALLIANT_1 */
/* Define NO_REMAP if memory segmentation makes it not work well
to change the boundary between the text section and data section
when Emacs is dumped. If you define this, the preloaded Lisp
code will not be sharable; but that's better than failing completely. */
/* Actually, Alliant CONCENTRIX does paging "right":
data pages are copy-on-write, which means that the pure data areas
are shared automatically and remapping is not necessary. */
#define NO_REMAP
/* Alliant needs special crt0.o because system version is not reentrant */
#define START_FILES crt0.o
/* Alliant dependent code for dumping executing image.
See crt0.c code for alliant. */
#define ADJUST_EXEC_HEADER {\
extern int _curbrk, _setbrk;\
_setbrk = _curbrk;\
hdr.a_bss_addr = bss_start;\
unexec_text_start = hdr.a_text_addr;}
/* cc screws up on long names. Try making cpp replace them. */
#ifdef ALLIANT_1
#define Finsert_abbrev_table_description Finsert_abbrev_table_descrip
#define internal_with_output_to_temp_buffer internal_with_output_to_tem
#endif
/* "vector" is a typedef in /usr/include/machine/reg.h, so its use as
a variable name causes errors when compiling under ANSI C. */
#define vector xxvector
/* altos machine description file Altos 3068 Unix System V Release 2
Copyright (C) 1985, 1986 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* The following line tells the configuration script what sort of
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2" */
/* 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 */
/* Vax is not big-endian: lowest numbered byte is least significant,
but 68000's are. */
#define BIG_ENDIAN
/* 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)
#define EXPLICIT_SIGN_EXTEND
/* Use type int rather than a union, to represent Lisp_Object */
#define NO_UNION_TYPE
#define LIB_STANDARD -lc
#ifdef __GNUC__
#define alloca __builtin_alloca
#define HAVE_ALLOCA
#else
#define C_ALLOCA /* we have -lPW and alloca but it's broken!
<vsedev!ron> */
#endif
#define SWITCH_ENUM_BUG
#define NO_REMAP
#define STACK_DIRECTION -1
#undef TERMINFO
#undef CANNOT_DUMP
#undef SHORTNAMES
#define TERMCAP
#define LIBS_TERMCAP -ltermlib
#define PURESIZE 220000
#define ALTOS
#ifdef __GNUC__
#define COFF_ENCAPSULATE
#endif
/* amdahl machine description file
Copyright (C) 1987 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/*
This file for amdahl_uts created by modifying the template.h
by Jishnu Mukerji 3/1/87
The following line tells the configuration script what sort of
operating system this machine is likely to run.
USUAL-OPSYS="usg5-2-2"
This file works with the Amdahl uts native C compiler. The 5.2u370
compiler is so brain damaged that it is not even worth trying to use it.
*/
/* 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
/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
* group of arguments and treat it as an array of the arguments. */
#undef NO_ARG_ARRAY
/* Define WORD_MACHINE if addresses and such have
* to be corrected before they can be used as byte counts. */
#define WORD_MACHINE /* not actually used anywhere yet! */
/* 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) (((sign_extend_temp=(c)) & 0x80) \
? (sign_extend_temp | 0xFFFFFF00) \
: (sign_extend_temp))
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
are the ones defined so far. */
/* uts gets defined automatically */
/* However for clarity define amdahl_uts */
#define amdahl_uts
/* Use type int rather than a union, to represent Lisp_Object */
/* This is desirable for most machines. */
#define NO_UNION_TYPE
/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
the 24-bit bit field into an int. In other words, if bit fields
are always unsigned.
If you use NO_UNION_TYPE, this flag does not matter. */
#define EXPLICIT_SIGN_EXTEND
/* Data type of load average, as read out of kmem. */
/* #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)*/
/* Define CANNOT_DUMP on machines where unexec does not work.
Then the function dump-emacs will not be defined
and temacs will do (load "loadup") automatically unless told otherwise. */
/* #define CANNOT_DUMP
/* Define VIRT_ADDR_VARIES if the virtual addresses of
pure and impure space as loaded can vary, and even their
relative order cannot be relied on.
Otherwise Emacs assumes that text space precedes data space,
numerically. */
/* #define VIRT_ADDR_VARIES*/
/* Define C_ALLOCA if this machine does not support a true alloca
and the one written in C should be used instead.
Define HAVE_ALLOCA to say that the system provides a properly
working alloca function and it should be used.
Define neither one if an assembler-language alloca
in the file alloca.s should be used. */
#define C_ALLOCA
/*#define HAVE_ALLOCA */
#ifdef HAVE_ALLOCA
#define LIB_STANDARD -lPW -lc
#endif
/* Define NO_REMAP if memory segmentation makes it not work well
to change the boundary between the text section and data section
when Emacs is dumped. If you define this, the preloaded Lisp
code will not be sharable; but that's better than failing completely. */
/*#define NO_REMAP*/
#define TERMINFO
/* The usual definition of XINT, which involves shifting, does not
sign-extend properly on this machine. */
#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
? (sign_extend_temp | 0xFF000000) \
: (sign_extend_temp & 0x00FFFFFF))
#ifdef emacs /* Don't do this when making xmakefile! */
extern int sign_extend_temp;
#endif
/* The following needed to load the proper crt0.o and to get the
proper declaration of data_start in the #undef NO_REMAP case */
#ifndef NO_REMAP
#define START_FILES pre-crt0.o /lib/crt0.o
#endif
/* Perhaps this means that the optimizer isn't safe to use. */
#define C_OPTIMIZE_SWITCH
/* Put text and data on non-segment boundary; makes image smaller */
#define LD_SWITCH_MACHINE -N
/* When writing the 'xemacs' file, make text segment ro */
#define EXEC_MAGIC 0410
/* Mask for address bits within a memory segment */
#define SEGSIZ 0x10000 /* Should this not be defined elsewhere ? */
#define SEGMENT_MASK (SEGSIZ - 1)
/* Tell alloca.c which direction stack grows. */
#define STACK_DIRECTION -1
/* Compensate for error in signal.h. */
#if NSIG==19
#undef NSIG
#define NSIG 20
#endif
/* machine description file for Apollo machine.
Copyright (C) 1985, 1986 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* The following line tells the configuration script what sort of
operating system this machine is likely to run.
USUAL-OPSYS="bsd4-2" */
/* 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 */
/* 68000 has lowest-numbered byte as most significant */
#define BIG_ENDIAN
/* 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)
/* Say this machine is a 68000 */
/* #define m68000 */ /* Done by the C compiler */
#define APOLLO
/* Assume we use s-bsd4-3.h for system version 10. */
#ifdef BSD4_3
#define APOLLO_SR10
#endif
/* Use type int rather than a union, to represent Lisp_Object */
#define NO_UNION_TYPE
/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
since there is no /dev/kmem */
/* Define CANNOT_DUMP because it is impossible to dump. */
#define CANNOT_DUMP
/* Define VIRT_ADDR_VARIES because the virtual addresses of
pure and impure space as loaded can vary, and even their
relative order cannot be relied on. */
#define VIRT_ADDR_VARIES
/* Define HAVE_ALLOCA because we use the system's version of alloca. */
#define HAVE_ALLOCA
/* DN460 has a 28 bit virtual address space, and 26 bits are often used */
#define VALBITS 26
#define GCTYPEBITS 5
/* Prevent -lg from being used for debugging. Not needed. */
#define LIBS_DEBUG
/* Must use the system's termcap. It does special things. */
#define LIBS_TERMCAP -ltermcap
/* Must use the system's malloc and alloca. */
#define SYSTEM_MALLOC
/* No crt0 is needed, but control where environ is allocated. */
#define START_FILES pre-crt0.o
/* Apollo's bcopy said to lose on more than 16k bytes in SR9.5. */
#ifndef APOLLO_SR10
#undef BSTRING
#endif
/* machine description file for Data General AViiON.
Copyright (C) 1985, 1986, 1991 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* 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
/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
* group of arguments and treat it as an array of the arguments. */
#define NO_ARG_ARRAY
/* Define WORD_MACHINE if addresses and such have
* to be corrected before they can be used as byte counts. */
#define WORD_MACHINE
/* Define how to take a char and sign-extend into an int.