diff options
author | Jim Blandy <jimb@redhat.com> | 1991-12-13 18:49:49 +0000 |
---|---|---|
committer | Jim Blandy <jimb@redhat.com> | 1991-12-13 18:49:49 +0000 |
commit | 20c428fd9d239eca0a835e3b0fe2629e789ce562 (patch) | |
tree | c9dc47c923acc0f7db3dd699bd7e38e7b20893cc /src | |
parent | 20a8832d8461fec6001e0f9d09bbb4731c585a84 (diff) | |
download | emacs-20c428fd9d239eca0a835e3b0fe2629e789ce562.tar.gz |
Initial revision
Diffstat (limited to 'src')
65 files changed, 8506 insertions, 0 deletions
diff --git a/src/m/7300.h b/src/m/7300.h new file mode 100644 index 00000000000..31606928a67 --- /dev/null +++ b/src/m/7300.h @@ -0,0 +1,91 @@ +/* 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 diff --git a/src/m/alliant.h b/src/m/alliant.h new file mode 100644 index 00000000000..17ede6119e8 --- /dev/null +++ b/src/m/alliant.h @@ -0,0 +1,147 @@ +/* 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 diff --git a/src/m/altos.h b/src/m/altos.h new file mode 100644 index 00000000000..539f79dfb28 --- /dev/null +++ b/src/m/altos.h @@ -0,0 +1,77 @@ +/* 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 diff --git a/src/m/amdahl.h b/src/m/amdahl.h new file mode 100644 index 00000000000..261d369c740 --- /dev/null +++ b/src/m/amdahl.h @@ -0,0 +1,171 @@ +/* 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 diff --git a/src/m/apollo.h b/src/m/apollo.h new file mode 100644 index 00000000000..7f2ba4c1678 --- /dev/null +++ b/src/m/apollo.h @@ -0,0 +1,101 @@ +/* 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 diff --git a/src/m/aviion.h b/src/m/aviion.h new file mode 100644 index 00000000000..fa116db1ff4 --- /dev/null +++ b/src/m/aviion.h @@ -0,0 +1,150 @@ +/* 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) (c) + +/* Define DATA_SEG_BITS if pointers need to be corrected with + a segment field. */ + +#ifdef FIX_ADDRESS +#define DATA_SEG_BITS 0xef000000 +#endif + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#ifndef m88k +#define m88k +#endif + +/* 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 / FSCALE) */ + +/* 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 +#define alloca(x) __builtin_alloca(x) + +/* 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 + +/* Use 26 bits instead of 24 for internal pointer values */ + +#define VALBITS 26 +#define GCTYPEBITS 5 + +/* Define ADDR_CORRECT(ADDR) to be a macro to correct an int which is + the bit pattern of a pointer to a byte into an int which is the + number of a byte. + + This macro has a default definition which is usually right. + This default definition is a no-op on most machines (where a + pointer looks like an int) but not on all machines. */ + +#define ADDR_CORRECT(ADDR) ((int)ADDR) + +/* Cast pointers to this type to compare them. */ + +#define PNTR_COMPARISON_TYPE void * + +/* Some machines that use COFF executables require that each section + start on a certain boundary *in the COFF file*. Such machines should + define SECTION_ALIGNMENT to a mask of the low-order bits that must be + zero on such a boundary. This mask is used to control padding between + segments in the COFF file. + + If SECTION_ALIGNMENT is not defined, the segments are written + consecutively with no attempt at alignment. This is right for + unmodified system V. */ + +#define SECTION_ALIGNMENT 0x7 + diff --git a/src/m/celerity.h b/src/m/celerity.h new file mode 100644 index 00000000000..7dced85d78e --- /dev/null +++ b/src/m/celerity.h @@ -0,0 +1,73 @@ +/* machine description file for Celerity. + 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 */ + +/* 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) + +/* celerity preprocessor defines "accel", however the following is clearer */ +#define celerity + +/* #define NO_UNION_TYPE would be preferable, + but it does not work, and the reason is not yet known. */ + +#define NO_UNION_TYPE + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +/* A machine-specific loader switch is needed. */ + +#define LD_SWITCH_MACHINE -k100000 + +/* alloca is provided by the system. */ + +#define HAVE_ALLOCA + +/* (short) negative-int doesn't sign-extend correctly */ +#define SHORT_CAST_BUG diff --git a/src/m/clipper.h b/src/m/clipper.h new file mode 100644 index 00000000000..6614f52890c --- /dev/null +++ b/src/m/clipper.h @@ -0,0 +1,117 @@ +/* machine description file for clipper + 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 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24) +/* #define SIGN_EXTEND_CHAR(c) (c) */ + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically */ + +#define clipper 1 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +/* 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 */ + +/* USG systems I know of running on Vaxes do not actually + support the load average, so disable it for them. */ + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((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 */ /* Karl Kleinpaste says this isn't needed. */ + +/* 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 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 */ + +#ifdef USG +#define TEXT_START 0 +#endif /* USG */ + +#define LD_TEXT_START_ADDR 8000 diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h new file mode 100644 index 00000000000..dcbeb3c6d35 --- /dev/null +++ b/src/m/cnvrgnt.h @@ -0,0 +1,124 @@ +/* machine description file for convergent S series. + Copyright (C) 1989 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. + 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. */ + +#define m68000 + +/* 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. + These are commented out since it is not supported by this machine. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((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. */ + +#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. */ + +#define C_ALLOCA +#undef HAVE_ALLOCA + +/* 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 + +/* Change some things to avoid bugs in compiler. */ + +#define SWITCH_ENUM_BUG + +/* fork(2) and vfork() are the same here. */ + +#define HAVE_VFORK + +/* grows towards lower addresses. */ + +#define STACK_DIRECTION -1 + +/* some errno.h's don't actually allocate the variable itself. + Cause crt0.c to define errno. */ + +#define NEED_ERRNO diff --git a/src/m/convex.h b/src/m/convex.h new file mode 100644 index 00000000000..e6bfbecd273 --- /dev/null +++ b/src/m/convex.h @@ -0,0 +1,173 @@ +/* machine description file for convex C1. + 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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-3" */ + +/* 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. + * Maybe it would be better to simply correct the code. */ + +#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. + 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. */ + +/* convex already defined... */ + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ + +#define NO_UNION_TYPE + +/* crt0.c should use the vax-bsd style of entry, with no dummy args. */ + +#define CRT0_DUMMIES + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) ((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 + +/* 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 */ + +/* Addresses on the Convex have the high bit set. */ +#define DATA_SEG_BITS (1 << (INTBITS-1)) + +/* Right shift is logical shift. + And the usual way of handling such machines, which involves + copying the number into sign_extend_temp, does not work + for reasons as yet unknown. */ + +#define XINT(a) sign_extend_lisp_int (a) + +/* Convex uses a special version of unexec. */ + +#define UNEXEC unexconvex.o + +/* you gotta define 'COFF' for post 6.1 unexec. */ + +#define COFF +#define TEXT_START 0x80001000 + +/* Posix stuff for Convex OS 8.1 and up. */ + +#define C_SWITCH_MACHINE -pcc +#define LD_SWITCH_MACHINE \ + -e__start -L /usr/lib \ + '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema' + +/* Use setsid when starting up inferiors. */ +#define HAVE_SETSID + +/* Use <dirent.h>. */ +#define SYSV_SYSTEM_DIR +#define HAVE_CLOSEDIR + +#ifdef _POSIX_SOURCE + +/* These symbols have been undefined to advance the state of the art. */ + +#define S_IFMT _S_IFMT +#define S_IFDIR _S_IFDIR + +#define S_IREAD _S_IREAD +#define S_IWRITE _S_IWRITE +#define S_IEXEC _S_IEXEC + +#endif + +/* Ptys may start below ptyp0; call a routine to hunt for where. */ + +#undef FIRST_PTY_LETTER +#define FIRST_PTY_LETTER first_pty_letter() + +#if 0 +/* + * Force a K&R compilation and libraries with the Convex V 4.0 C compiler + */ +#define C_SWITCH_MACHINE -pcc +#define LIB_STANDARD -lc_old +#define LIBS_MACHINE -lC2_old +#define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \ + -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib +#endif diff --git a/src/m/cydra5.h b/src/m/cydra5.h new file mode 100644 index 00000000000..772e9b6fcb0 --- /dev/null +++ b/src/m/cydra5.h @@ -0,0 +1,139 @@ +/* machine description file for Cydrome's CYDRA 5 mini super computer + Copyright (C) 1988 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-3" */ + +/* 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. */ + +#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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +/* 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) x + +/* 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 data space precedes text 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. */ + +#define C_ALLOCA +#undef HAVE_ALLOCA + +/* The data segment in this machine always starts at address 0x10000000. + An address of data cannot be stored correctly in a Lisp object; + we always lose the high bits. We must tell XPNTR to add them back. */ + +#define DATA_SEG_BITS 0x20000000 +#define DATA_START 0x20000000 + +/* 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 BROKEN_FIONREAD /* We son't even have it */ +#define LIBS_MACHINE -lsocket -lnsl + +/* Stack grows downward in memory. */ +#define STACK_DIRECTION -1 + +/* The data section in a coff file must be aligned in the file. */ +#define DATA_SECTION_ALIGNMENT 0xFFF + +/* Compiler won't allow switch (x) when x is an enum. */ +#define SWITCH_ENUM_BUG + + +/* Explain how pty filenames work. */ + +#define PTY_ITERATION for (i = 47; i >= 0; i--) +#define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/pty%03x", i); +#define PTY_TTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptm%03x", i); + +/* We can't do interrupt-driven input, so don't let user try. */ + +#undef SIGIO diff --git a/src/m/delta.h b/src/m/delta.h new file mode 100644 index 00000000000..8dda4fd213d --- /dev/null +++ b/src/m/delta.h @@ -0,0 +1,168 @@ +/* machine description file for the Motorola delta running System V.3. + tested on sys1147 (mvme147 - based system). + Copyright (C) 1986 Free Software Foundation, Inc. + +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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="usg5-3" */ + +/* 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. + 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 m68000 +#define NO_REMAP + +#define HAVE_SYSVIPC + +#define HAVE_PTYS +#define SYSV_PTYS + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ + +#define NO_UNION_TYPE +#define SWITCH_ENUM_BUG +/* 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 / FSCALE) */ + +/* 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 data space precedes text 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 __GNUC__ +/* easy. use builtin one. also be sure that no other ones are tried out. */ +# define alloca __builtin_alloca +# define HAVE_ALLOCA +# undef C_ALLOCA +#else +# ifdef C_ALLOCA +# define STACK_DIRECTION (-1) /* C_ALLOCA needs to know about stack. */ +# else /* C_ALLOCA */ +# ifndef HAVE_ALLOCA +# define BAT_ALLOCA /* if not in library, alloca.s needs this. */ +# endif /* HAVE_ALLOCA */ +# endif /* C_ALLOCA */ +#endif /* __GNUC__ */ + +/* The standard C library is -lcieee, not -lc. + Also use the PW library, which contains alloca. + DO NOT USE -lPW. That version of alloca is broken, at last until version + SVR3V5.1 . -riku@field.fi */ + +#define LIB_STANDARD -lc + +#define LIBS_TERMCAP -lcurses + +/* define this if you want to use X11 */ +#undef HAVE_X_WINDOWS + +#ifdef HAVE_X_WINDOWS +/* debug switches enabled because of some difficulties w/X11 */ +# define C_DEBUG_SWITCH -g +# define OBJECTS_MACHINE -lg +# define C_OPTIMIZE_SWITCH +# define CANNOT_DUMP +/*# define XDEBUG*/ +# define X11 +/* X library implements these. */ +# define BSTRING +/* X library is in 'nonstandard' location. */ +# define LD_SWITCH_MACHINE -L/usr/lib/X11/ +#else +/* No sufficient justification for this. */ +/* # define C_DEBUG_SWITCH */ +# define C_OPTIMIZE_SWITCH -O +#endif /* HAVE_X_WINDOWS */ + +/* enable batdevice-dependent code to compile. */ +#define BAT68K + +#define HAVE_SOCKETS + +/* crt0.c should use the vax-bsd style of entry, with no dummy args. */ + + +/* emacs's magic number isn't temacs's; + temacs is writeable text (the default!). */ diff --git a/src/m/dual.h b/src/m/dual.h new file mode 100644 index 00000000000..0af8db5940e --- /dev/null +++ b/src/m/dual.h @@ -0,0 +1,82 @@ +/* machine description file for Dual machines using unisoft port. + Copyright (C) 1985 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="note" + +NOTE-START +Dual running System V (-machine=dual -opsystem=usg5-2) + + As of 17.46, this works except for a few changes + needed in unexec.c. + +Dual running Uniplus (-machine=dual -opsystem=unipl5-2) + + Works, as of 17.51. +NOTE-END */ + + +/* 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 m68000 +#define m68000 +#endif + +/* Data type of load average, as read out of kmem. */ +/* These are commented out since it does not really work in uniplus */ + +/* #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) */ + +/* Change some things to avoid bugs in compiler */ + +#define SWITCH_ENUM_BUG 1 diff --git a/src/m/elxsi.h b/src/m/elxsi.h new file mode 100644 index 00000000000..9f79c7919a6 --- /dev/null +++ b/src/m/elxsi.h @@ -0,0 +1,153 @@ +/* machine description file for Elxsi machine (running enix). + Copyright (C) 1986 Free Software Foundation, Inc. + Adapted by John Salmon + +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" */ + +/* This file was modified by Matt Crawford <matt@tank.uchicago.edu> + to work under Elxsi's 12.0 release of BSD unix. */ + +/* 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) ((int)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. */ + +#ifndef elxsi +#define elxsi +#endif + +/* 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 + + +/* Name of kernel load average variable */ + +#undef LDAV_SYMBOL +#define LDAV_SYMBOL "avenrun" + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) ((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. + + The Elxsi can in principle dump, but the necessary changes to + unexec, which involve byte-swapping, were too ugly to install. + If someone submits simple code that supports dumping on the Elxsi, + it can be installed and CANNOT_DUMP can be turned off. */ + +/* #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 */ + +/* 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*/ + +/* This is a guess for an alternate solution to whatever + problem motivated defining _sobuf in sysdep,c with extern char *_sobuf. */ +#define _sobuf xsobuf + +/* Address of start of text segment as loaded. */ + +#define TEXT_START 0x800 + +/* Tell crt0.c not to define environ. */ + +#define DONT_NEED_ENVIRON + +/* The elxsi has no debugger, so might as well optimize instead + of trying to make a symbol table. */ + +#define C_DEBUG_SWITCH -O + +/* Elxsi uses COFF under both Sys V and BSD environments */ + +#define COFF + +#define ADJUST_EXEC_HEADER {\ +extern int _init_brk;\ +_init_brk = bss_start;\ +} diff --git a/src/m/gec63.h b/src/m/gec63.h new file mode 100644 index 00000000000..4f8fe4a09e0 --- /dev/null +++ b/src/m/gec63.h @@ -0,0 +1,83 @@ +/* machine description file for gec63 + Copyright (C) 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 */ + +/* GEC63 is big-endian: lowest numbered byte is 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)<<24)>>24) + +/* Say this machine is a 68000 */ + +#define gec63 + +/* Use an int to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* GEC63 has alloca in the PW/ux63 library. */ +#define LIB_STANDARD -lPW -lc +#define HAVE_ALLOCA + +/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT + since there is no /dev/kmem */ + +#undef ADDR_CORRECT(x) +#define NO_ARG_ARRAY + +#undef TERMCAP +#define TERMINFO + +/* Define sizes of portions of a Lisp_Object. */ +#define VALBITS 22 +#define GCTYPEBITS 5 + +#define VALAMASK (((1<<VALBITS) - 1)| 0xF0000000L) + +#define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK)) +#define XSETTYPE(a, b) ((a) = ((a) & VALAMASK) + ((int)(b) << VALBITS)) + +#define XPNTR(a) ((a) & VALAMASK) +#define XSETPNTR(a, b) ((a) = ((a) & ~VALAMASK) + ((b) & VALAMASK)) + +#define XSET(var, type, ptr) \ + ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALAMASK)) + +/* Move some garbage-collector flag bits to different bit positions. */ +#define ARRAY_MARK_FLAG (1 << 27) +#define DONT_COPY_FLAG (1 << 26) + +#define NO_REMAP diff --git a/src/m/gould.h b/src/m/gould.h new file mode 100644 index 00000000000..a9e675286a4 --- /dev/null +++ b/src/m/gould.h @@ -0,0 +1,208 @@ +/* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1. + (See MACHINES for older versions.) + +* NOTE: If you are running a pre-release of UTX/32 2.1 you should #define +* RELEASE2_1 in config.h. This may also be necessary with un-updated +* official releases of 2.1 + + Copyright (C) 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="note" + +NOTE-START +Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3) +(gould.h; s-bsd4-2.h or s-bsd4-3.h) + + 18.36 worked on versions 1.2 and 2.0 of the operating system. + + On UTX/32 2.0, use -opsystem=bsd4-3 + + On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling + lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the + makefile. + + UTX/32 1.3 has a bug in the bcopy library routine. Fix it by + #undef BSTRING in gould.h. + + Version 19 incorporates support for releases 2.1 and later of UTX/32. + A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h. +NOTE-END */ + +/* 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. + 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 */ + +#ifndef GOULD +#define GOULD +#endif + +/* sel is an old preprocessor name on gould machines + - it is no longer needed and interferes with a variable in xmenu.c */ +#undef sel + +/* 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 double + +/* 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 STACK_DIRECTION -1 /* grows towards lower addresses on Gould UTX/32 */ + +/* No need to extend the user stack. */ + +/* If this is a 2.1 system, COFF will be predefined by cpp. If it's */ +/* pre-2.1 COFF won't be defined, which is as it should be. */ + +#ifdef COFF + +#define HEADER_INCL_IN_TEXT +#define COFF_BSD_SYMBOLS + +/* Seems to be necessary with coff */ +#define NO_REMAP + +#ifndef GOULD_NP1 +/* gould-np1.h includes this file */ +/* keep the old value - don't skip over the headers */ +#define KEEP_OLD_TEXT_SCNPTR +#define KEEP_OLD_PADDR +#ifndef RELEASE2_1 +#define ADJUST_TEXTBASE +#endif /*RELEASE2_1*/ +#endif /* GOULD_NP1 */ + +#ifdef IN_UNEXEC +/* make Gould NP and PN COFF look like USG COFF */ +/* PN COFF */ +#define aouthdr old_exec +/* PN COFF doesn't have a data_start or a_dtbase field in its */ +/* optional header, so substitute a junk field */ +#define a_dtbase a_ccvers +/* Gould COFF */ +#define magic a_magic +#define tsize a_text +#define dsize a_data +#define bsize a_bss +#define entry a_entry +#define text_start a_txbase +#define data_start a_dtbase +#endif /* IN_UNEXEC */ + +/* Define how to search all pty names. + * This is for UTX 2.1 and greater on PN and all NP versions. It is only + * accident that this happens to correspond to the same versions of UTX + * as COFF does, but we'll take advantage of that here. + */ + +/*#define USE_PTY_PAIR*/ + +#endif /* COFF */ + +/* -g is sometimes broken on the Gould. */ + +#define C_DEBUG_SWITCH + +/* Comparing pointers as unsigned ints tickles a bug in older compilers. */ + +#define PNTR_COMPARISON_TYPE int + +/* The GOULD machine counts the a.out file header as part of the text. */ + +#define A_TEXT_OFFSET(HDR) sizeof (HDR) + +/* Machine-dependent action when about to dump an executable file. */ + +#ifndef COFF +#define ADJUST_EXEC_HEADER \ + unexec_text_start = hdr.a_txbase + sizeof (hdr); +#endif + +/* We use the system's crt0.o. Somehow it avoids losing + with `environ' the way most standard crt0.o's do. */ + +#define START_FILES pre-crt0.o /lib/crt0.o diff --git a/src/m/hp800.h b/src/m/hp800.h new file mode 100644 index 00000000000..4b068261dcf --- /dev/null +++ b/src/m/hp800.h @@ -0,0 +1,193 @@ +/* machine description file for hp9000 series 800 machines. + 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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="hpux" */ + +/* 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. */ + +#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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ +#ifndef hp9000s800 +# define hp9000s800 +#endif + +/* 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 double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) (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. */ + +#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. */ + +#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 */ + +/* the data segment on this machine always starts at address 0x40000000. */ + +#define DATA_SEG_BITS 0x40000000 + +#define VALBITS 26 +#define GCTYPEBITS 5 + +#define DATA_START 0x40000000 +#define TEXT_START 0x00000000 + +#define STACK_DIRECTION 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. */ + +#define NO_REMAP + +/* This machine requires completely different unexec code + which lives in a separate file. Specify the file name. */ + +#define UNEXEC unexhp9k800.o + +#define LIBS_MACHINE +#define LIBS_DEBUG + +/* Define NEED_BSDTTY if you have such. */ + +#define NEED_BSDTTY + +/* The standard definitions of these macros would work ok, + but these are faster because the constants are short. */ + + +#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) + +#define XSET(var, type, ptr) \ + ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) + +#define XSETINT(a, b) XSET(a, XTYPE(a), b) +#define XSETUINT(a, b) XSET(a, XTYPE(a), b) +#define XSETPNTR(a, b) XSET(a, XTYPE(a), b) +#define XMARKBIT(a) ((a) < 0) +#define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT)) + +#if 0 /* Loses when sign bit of type field is set. */ +#define XUNMARK(a) ((a) = (((a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS)) +#endif + +/* The symbol in the kernel where the load average is found + is named _avenrun. At this time there are two major flavors + of hp-ux (there is the s800 and s300 (s200) flavors). The + differences are thusly moved to the corresponding machine description file. +*/ + +/* no underscore please */ +#define LDAV_SYMBOL "avenrun" +#define CPTIME_SYMBOL "cp_time" +#define DKXFER_SYMBOL "dk_xfer" + +#if 0 /* Supposedly no longer true. */ +/* In hpux, for unknown reasons, S_IFLNK is defined even though + symbolic links do not exist. + Make sure our conditionals based on S_IFLNK are not confused. + + Here we assume that stat.h is included before config.h + so that we can override it here. */ + +#undef S_IFLNK +#endif + +/* Define the BSTRING functions in terms of the sysV functions. */ + +#define bcopy(a,b,s) memcpy (b,a,s) +#define bzero(a,s) memset (a,0,s) +#define bcmp memcmp + +/* On USG systems these have different names. */ + +#define index strchr +#define rindex strrchr + +/* Include the file bsdtty.h, since this machine has job control. */ +#define NEED_BSDTTY diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h new file mode 100644 index 00000000000..1e6c232096f --- /dev/null +++ b/src/m/hp9000s300.h @@ -0,0 +1,224 @@ +/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD. + Copyright (C) 1985 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="note" + +NOTE-START +HP 9000 series 200 or 300 (-machine=hp9000s300) + + These machines are 68000-series CPUs running HP-UX + (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah. + + If you're running HP-UX, specify `-opsystem=hpux'. + + If you're running Utah's BSD port, don't use this -machine option; + instead, specify `-machine=hp300bsd' and `-opsystem=bsd4-3'. +NOTE-END */ + +/* Define this symbol if you are running a version of HP-UX + which predates version 6.5 */ + +/* #define NOMULTIPLEJOBS */ + +/* Define this symbol if you are running a version of HP-UX + which predates version 6.01 */ + +/* #define HPUX_5 */ + +/* 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. + 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. */ + +#ifndef hp9000s300 +#define hp9000s300 +#endif + +/* 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 + +/* 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 */ + +/* For University of Utah 4.3bsd implemetation on HP300s. + The #ifndef __GNUC__ definitions are required for the "standard" cc, + a very old, brain-dead version of PCC. */ + +#ifdef BSD4_3 +/* Tell crt0.c that this is an ordinary 68020. */ +#undef hp9000s300 +#define CRT0_DUMMIES bogus_a6, + +#define HAVE_ALLOCA + +#ifndef __GNUC__ +#define LIBS_DEBUG /* don't have -lg that works */ +#define C_DEBUG_SWITCH /* don't support -g */ +#endif + +#undef LOAD_AVE_TYPE +#undef LOAD_AVE_CVT +#define LOAD_AVE_TYPE long +#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0)) + +#endif /* BSD4_3 */ + +#ifndef BSD4_3 +/* The following definitions are for HPUX only. */ + +/* The symbol in the kernel where the load average is found + is named _avenrun on this machine. */ + +#define LDAV_SYMBOL "_avenrun" + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +/* This library is needed with -g, on the 200/300 only. */ + +#if !defined(__GNUC__) || defined(__HPUX_ASM__) +#define LIBS_DEBUG /usr/lib/end.o +#endif + +/* The symbol FIONREAD is defined, but the feature does not work + on the 200/300. */ + +#define BROKEN_FIONREAD + +/* In older versions of hpux, for unknown reasons, S_IFLNK is defined + even though symbolic links do not exist. + Make sure our conditionals based on S_IFLNK are not confused. + + Here we assume that stat.h is included before config.h + so that we can override it here. + + Version 6 of HP-UX has symbolic links. */ + +#ifdef HPUX_5 +#undef S_IFLNK +#endif + +/* Define the BSTRING functions in terms of the sysV functions. + Version 6 of HP-UX supplies these in the BSD library. */ + +#ifdef HPUX_5 +#define bcopy(a,b,s) memcpy (b,a,s) +#define bzero(a,s) memset (a,0,s) +#define bcmp memcmp +#endif + +/* On USG systems these have different names. + Version 6 of HP-UX supplies these in the BSD library. */ + +#ifdef HPUX_5 +#define index strchr +#define rindex strrchr +#endif + +/* Define C_SWITCH_MACHINE to be +X if you want the s200/300 + * Emacs to run on both 68010 and 68020 based hp-ux's. + * + * Define OLD_HP_ASSEMBLER if you have an ancient assembler + * + * Define HPUX_68010 if you are using the new assembler but + * compiling for a s200 (upgraded) or s310. 68010 based + * processor without 68881. + */ + +/* These switches increase the size of some internal C compiler tables. + They are required for compiling the X11 interface files. */ + +#ifndef HPUX_5 +#ifndef __GNUC__ +#define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000 +#endif +#endif + +#endif /* not BSD4_3 */ + +/* Define NEED_BSDTTY if you have such. */ + +#ifndef NOMULTIPLEJOBS +#define NEED_BSDTTY +#endif + +#ifndef NOT_C_CODE +#ifndef NO_SHORTNAMES +#include <sys/wait.h> +#define WAITTYPE int +#endif +#define WRETCODE(w) (((w) >> 8) & 0377) +#endif diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h new file mode 100644 index 00000000000..49f06e5106f --- /dev/null +++ b/src/m/ibm370aix.h @@ -0,0 +1,174 @@ +/* ibm370.h + For IBM 3090 type systems running AIX370. + Concocted by Scott Schwartz <schwartz@cs.psu.edu> + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +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. */ + + +/* 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) (((c) & 0x80) ? ((c) | 0xffffff80) : (c)) + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ +/* high-c defines _AIX370 */ + +/* 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 double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +/* XXX */ +#define LOAD_AVE_CVT(x) (int)(((double) (x)) * 100.0 / 1.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 CANNOT_UNEXEC + +/* 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 + +#ifndef NO_SHORTNAMES +#include <alloca.h> +#include <setjmp.h> +#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 + +/* Don't try to include sioctl.h. */ +#undef NEED_SIOCTL +/* That probably means we shouldn't try ptem.h either. */ +#undef NEED_PTEM_H + +/* Note we do not define IBMAIX, since the `hft' features + don't exist on this machine. */ + +#define LIBS_DEBUG -lg +#ifndef LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM +#endif + +#define LIBS_SYSTEM -lbsd + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#undef LDAV_SYMBOL +#define LDAV_SYMBOL "_avenrun" + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ +#define MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ +#define CLASH_DETECTION + +#define BSTRING + +/* First pty name is /dev/ptyp0. */ +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h new file mode 100644 index 00000000000..1503d3e3c93 --- /dev/null +++ b/src/m/ibmps2-aix.h @@ -0,0 +1,238 @@ +/* machine description file for ibm ps/2 aix386. + Copyright (C) 1989 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="note" + +NOTE-START + Use -opsystem=usg5-3 on AIX 1.2. + -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not + work with certain new X window managers, and may be suboptimal. +NOTE-END */ + +/* 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 */ + +/* i386 is not big-endian: lowest numbered byte is least significant. */ + +/* #undef 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) ((signed char) (c)) + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#define INTEL386 +#define aix386 +#undef SYSTEM_TYPE +#define SYSTEM_TYPE "ibm-aix-386" + +#define IBMAIX + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c, if it is used, should use the i386-bsd style of entry. + with no extra dummy args. On USG and XENIX, + NO_REMAP says this isn't used. */ + +#define CRT0_DUMMIES bogus_fp, + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +/* USG systems do not actually support the load average, +so disable it for them. */ + +/* 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 addresses, macros, change some setup for dump */ + +#define NO_REMAP +#undef static + /* Since NO_REMAP, problem with statics doesn't exist */ + +#ifdef USG5_3 +#define TEXT_START 0x00000000 +#else +#define TEXT_START 0x00400000 +#define TEXT_END 0 +#define DATA_START 0x00800000 +#define DATA_END 0 + +/* The data segment in this machine always starts at address 0x00800000. + An address of data cannot be stored correctly in a Lisp object; + we always lose the high bits. We must tell XPNTR to add them back. */ + +#define DATA_SEG_BITS 0x00800000 +#endif + +#if 0 /* I refuse to promulgate a recommendation that would make + users unable to debug - RMS. */ +/* delete the following line to foil optimization, enable debugging */ +#define C_DEBUG_SWITCH -O +#endif + +#define BSTRING +#define HAVE_DUP2 +#define HAVE_GETTIMEOFDAY +#define HAVE_SELECT +#define HAVE_TIMEVAL +#define HAVE_VFORK + +/* + * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir + * library functions. Almost, but not quite the same as + * the 4.2 functions + */ +#define SYSV_SYSTEM_DIR + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ +#undef NONSYSTEM_DIR_LIBRARY + +/* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */ +#define USE_UTIME + +/* AIX defines FIONREAD, but it does not work. */ +#define BROKEN_FIONREAD + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE long /* For AIX (sysV) */ + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0) + +/* This page was added in June 1990. It may be incorrect for some versions + of aix, so delete it if it causes trouble. */ + +/* AIX has sigsetmask() */ +#undef sigsetmask + +/* AIX386 has BSD4.3 PTYs */ + +#define HAVE_PTYS + +/* AIX has IPC. It also has sockets, and either can be used for client/server. + I would suggest the client/server code be changed to use HAVE_SOCKETS rather + than BSD as the conditional if sockets provide any advantages. */ + +#define HAVE_SYSVIPC + +/* AIX has sockets */ + +#define HAVE_SOCKETS +/* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */ + +/* Specify the font for X to use. */ + +#define X_DEFAULT_FONT "8x13" + +/* AIX has a wait.h. */ + +#define HAVE_WAIT_HEADER + +/* sioctl.h should not be included, says bytheway@cs.utah.edu. */ +#undef NEED_SIOCTL +/* I'm guessing that that means it doesn't want ptem.h either. */ +#undef NEED_PTEM_H + +/* aix has `union wait' */ +#define HAVE_UNION_WAIT + +/* Here override various assumptions in ymakefile */ + +/* 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. */ + +#ifdef __GNUC__ +#define HAVE_ALLOCA +#define alloca(n) __builtin_alloca(n) +#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc +/* -g fails to work, so it is omitted. */ +/* tranle says that -fstrength-reduce does not help. */ +#define C_DEBUG_SWITCH -O -fwritable-strings +#else +#define C_ALLOCA +#define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ +#define LIBS_MACHINE -lbsd -lrts +#endif + +#define OBJECTS_MACHINE hftctl.o +#define LD_SWITCH_MACHINE -T0x00400000 -K -e start + +#ifdef USG5_3 +#define XICCC +#define HAVE_GETWD +#define HAVE_RENAME +#undef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE -T0x0 -K -e start + +/* Things defined in s-usg5-3.h that need to be overridden. */ +#undef NOMULTIPLEJOBS +#undef BROKEN_TIOCGETC +#undef LIBX10_SYSTEM +#undef LIBX11_SYSTEM +#endif diff --git a/src/m/intel386.h b/src/m/intel386.h new file mode 100644 index 00000000000..de07923f9a0 --- /dev/null +++ b/src/m/intel386.h @@ -0,0 +1,182 @@ +/* machine description file for intel 386. + 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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Intel 386 (-machine=intel386 or -machine=is386.h) + + The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3, + isc2-2, 386-ix, esix, or xenix. + + 18.58 should support a wide variety of operating systems. + Use isc2-2 for Interactive 386/ix version 2.2. + Use 386ix for prior versions. + Use esix for Esix. It isn't clear what to do on an SCO system. + + -machine=is386 is used for an Integrated Solutions 386 machine. + It may also be correct for Microport systems. + +Cubix QBx/386 (-machine=intel386 -opsystem=usg5-3) + + Changes merged in 19.1. Systems before 2/A/0 may fail to compile etags.c + due to a compiler bug. + +Prime EXL (-machine=intel386 -opsystem=usg5-3) + + Minor changes merged in 19.1. +NOTE-END */ + +/* 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 */ + +/* i386 is not big-endian: lowest numbered byte is least significant. */ + +/* #undef 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. + 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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#define INTEL386 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c, if it is used, should use the i386-bsd style of entry. + with no extra dummy args. On USG and XENIX, + NO_REMAP says this isn't used. */ + +#define CRT0_DUMMIES bogus_fp, + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +#ifdef XENIX +/* Data type of load average, as read out of kmem. */ +#define LOAD_AVE_TYPE short + +/* 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 / FSCALE)) + +#define FSCALE 256.0 /* determined by experimentation... */ +#endif + +#ifdef USG5_4 /* Older USG systems do not support the load average. */ +/* 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 */ +/* This is totally uncalibrated. */ + +#define LOAD_AVE_CVT(x) ((int) ((double) (x)) * 100.0 / FSCALE) +#define FSCALE 256.0 +*endif + +/* 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 */ + +#ifdef XENIX +#define VALBITS 26 +#define GCTYPEBITS 5 + +/* 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 STACK_DIRECTION -1 + +/* Since cannot purify, use standard Xenix 386 startup code. */ + +#define START_FILES /lib/386/Sseg.o pre-crt0.o /lib/386/Scrt0.o + +/* These really use terminfo. */ + +#define LIBS_TERMCAP /lib/386/Slibcurses.a \ + /lib/386/Slibtinfo.a /lib/386/Slibx.a + +/* Standard libraries for this machine. Since `-l' doesn't work in `ld'. */ +/* '__fltused' is unresolved w/o Slibcfp.a */ +#define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a +#else /* not XENIX */ + +#ifdef USG +#define LIB_STANDARD -lPW -lc +#define HAVE_ALLOCA +#define NO_REMAP +#define TEXT_START 0 +#endif /* USG */ +#endif /* not XENIX */ + +#ifdef BSD +#define HAVE_ALLOCA +#endif /* BSD */ + BSD */ + +/* If compiling with GCC, let GCC implement alloca. */ +#if defined(__GNUC__) && !defined(alloca) +#define alloca(n) __builtin_alloca(n) +#define HAVE_ALLOCA +#endif + +/* Search these directories just in case; I'm told they might be needed. */ +#define C_SWITCH_MACHINE -I/usr/X/include -I/usr/netinclude diff --git a/src/m/iris4d.h b/src/m/iris4d.h new file mode 100644 index 00000000000..89d022f765d --- /dev/null +++ b/src/m/iris4d.h @@ -0,0 +1,193 @@ +/* machine description file for Iris-4D machines. Use with s-iris3-6.h + 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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="irix3-3" */ + +/* 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. */ + +#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) ((signed char)(c)) + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#ifndef mips +#define mips +#endif + +#ifndef IRIS_4D +#define IRIS_4D +#endif + +/* 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 /* This doesn't quite work on the 4D */ + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int)(((double)(x)*100)/1024.0) + +/* s-iris3-6.h uses /vmunix */ + +#undef KERNEL_FILE +#define KERNEL_FILE "/unix" + +/* 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. */ + +/* #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 */ + +/* 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 + +/* This machine requires completely different unexec code + which lives in a separate file. Specify the file name. */ + +#define UNEXEC unexmips.o + +#define TEXT_START 0x400000 + +/* + * DATA_SEG_BITS forces that bit to be or'd in with any pointers which + * are trying to access pure strings (as gnu-emacs only allows 24 bits + * for the value field of a LISP_OBJECT). + */ + +#define DATA_START 0x10000000 +#define DATA_SEG_BITS 0x10000000 + +#undef LIBS_MACHINE +/* -lsun in case using Yellow Pages for passwords. */ +#define LIBS_MACHINE -lsun -lmld +#define LIBS_DEBUG + +/* Define this if you have a fairly recent system, + in which crt1.o and crt1.n should be used. */ +#define HAVE_CRTN + +#ifdef HAVE_CRTN +/* Must define START-FILES so that the linker can find /usr/lib/crt0.o. */ +#define START_FILES pre-crt0.o /usr/lib/crt1.o +#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o +#else +#define START_FILES pre-crt0.o /usr/lib/crt0.o +/* The entry-point label (start of text segment) is `start', not `__start'. */ +#define DEFAULT_ENTRY_ADDRESS start +#define LIB_STANDARD -lbsd -lc +#endif + +/* Use terminfo instead of termcap. */ + +#define TERMINFO + +/* sioctl.h should be included where appropriate. */ + +#define NEED_SIOCTL + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#undef FIRST_PTY_LETTER +#define FIRST_PTY_LETTER 'q' + +/* Define STACK_DIRECTION for alloca.c */ + +#define STACK_DIRECTION -1 + +/* The standard definitions of these macros would work ok, + but these are faster because the constants are short. */ + +#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) + +#define XSET(var, type, ptr) \ + ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) + +#define XSETINT(a, b) XSET(a, XTYPE(a), b) +#define XSETUINT(a, b) XSET(a, XTYPE(a), b) +#define XSETPNTR(a, b) XSET(a, XTYPE(a), b) + +#define XMARKBIT(a) ((a) < 0) +#define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0)) +#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS)) diff --git a/src/m/irist.h b/src/m/irist.h new file mode 100644 index 00000000000..11c58e25417 --- /dev/null +++ b/src/m/irist.h @@ -0,0 +1,155 @@ +/* machine description file for Silicon Graphics Iris 2500 Turbos; + also possibly for non-turbo Irises with system release 2.5. + 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="note" +NOTE-START +Version 18 said to work; use -opsystem=irist3-5 for system version 2.5 +and -opsystem=iris3-6 for system versions 3.6 and up. +NOTE-END */ + +#if 0 + Message-Id: <8705050653.AA20004@orville.arpa> + Subject: gnu emacs 18.41 on iris [23].5 machines + Date: 04 May 87 23:53:11 PDT (Mon) + From: raible@orville.arpa + + Aside from the SIGIOT, I know of only one bug, a real strange one: + I wrote a utimes interface, which copies elements from timevals + to utimbufs. This code is known good. The problem is that in + emacs, the utime doesn't seem to take effect (i.e. doesn't change the + dates at all) unless I call report_file_error *after* the utime returns! + + if (utime (name, &utb) < 0) + return; + else + /* XXX XXX XXX */ + /* For some reason, if this is taken out, then the utime above breaks! */ + /* (i.e. it doesn't set the time. This just makes no sense... */ + /* Eric - May 4, 1987 */ + report_file_error ("Worked just find\n", Qnil); + + Without any sort of debugger that works on emacs (I know... but I don't have + *time* right now to start with gdb), it was quite time consuming to track + it down to this. + + But since this code is only used for an optional 4th argument to one command + (copy-file), it would say that it is non-critical... +#endif /* 0 */ + +/* 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. + 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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#ifndef m68000 +#define m68000 +#endif + +/* 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 FSCALE 1.0 +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* 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 + +/* 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 */ + +/* There is an inconsistency between the sgi assembler, linker which barfs + on these. */ + +#define internal_with_output_to_temp_buffer stupid_long_name1 +#define Finsert_abbrev_table_description stupid_long_name2 diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h new file mode 100644 index 00000000000..2f30f7f2606 --- /dev/null +++ b/src/m/isi-ov.h @@ -0,0 +1,105 @@ +/* machine description file for ISI 68000's + 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="note" + +NOTE-START +Use `-opsystem=bsd4-2' or `-opsystem=bsd4-3'. +NOTE-END */ + +#define ISI68K + +/* 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 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* XINT must explicitly sign-extend */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#ifdef BSD4_3 +#define LOAD_AVE_TYPE long +#else +#define LOAD_AVE_TYPE double +#endif BSD4_3 + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#ifdef BSD4_3 +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) +#else +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) +#endif + +/* Mask for address bits within a memory segment */ + +#define SEGMENT_MASK 0x1ffff + +/* use the -20 switch to get the 68020 code */ +/* #define C_SWITCH_MACHINE -20 */ + +/* Use the version of the library for the 68020 + because the standard library requires some special hacks in crt0 + which the GNU crt0 does not have. */ + +#define LIB_STANDARD -lmc + +/* macros to make unexec work right */ + +#define A_TEXT_OFFSET(HDR) sizeof(HDR) +#define A_TEXT_SEEK(HDR) sizeof(HDR) + +/* A few changes for the newer systems. */ + +#ifdef BSD4_3 +#define HAVE_ALLOCA +/* The following line affects crt0.c. */ +#undef m68k + +#undef LIB_STANDARD +#define LIB_STANDARD -lmc -lc +#define C_DEBUG_SWITCH -20 -O -X23 +#endif diff --git a/src/m/masscomp.h b/src/m/masscomp.h new file mode 100644 index 00000000000..f0970ed4a53 --- /dev/null +++ b/src/m/masscomp.h @@ -0,0 +1,150 @@ +/* machine description file for Masscomp 5000 series running RTU, ucb universe. + Copyright (C) 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="rtu" */ + +/* 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. */ + +#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. */ +/* Masscomp predefines mc68000. */ +#define m68000 mc68000 + +/* 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. */ + +#undef EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((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. */ + +#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. */ + +/* On return from a subroutine, the 68020 compiler restores old contents of + register variables relative to sp, so alloca() screws up such routines. + The following definitions should work on all Masscomps. On the MC-5500 + (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */ +#ifdef mc500 +#undef C_ALLOCA +#define HAVE_ALLOCA +#else +#define C_ALLOCA +#undef HAVE_ALLOCA +#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. */ + +#undef NO_REMAP + +/* crt0.c should use the vax-bsd style of entry, with a dummy arg. */ + +#define CRT0_DUMMIES bogus_fp, + +/* Name of file the to look in + for the kernel symbol table (for load average) */ + +#define KERNEL_FILE "/unix" + +/* This triggers some stuff to avoid a compiler bug */ + +#define MASSC_REGISTER_BUG + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* Adjust a header field for the executable file about to be dumped. */ + +#define ADJUST_EXEC_HEADER \ + hdr.a_stamp = STAMP13; /* really want the latest stamp, whatever it is */ diff --git a/src/m/mega68.h b/src/m/mega68.h new file mode 100644 index 00000000000..976f1bf6230 --- /dev/null +++ b/src/m/mega68.h @@ -0,0 +1,61 @@ +/* machine description file for Megatest 68000's. + Copyright (C) 1985 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 + +/* 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) + +/* Say this machine is a 68000 */ + +#define m68000 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) diff --git a/src/m/mg1.h b/src/m/mg1.h new file mode 100644 index 00000000000..0ad56aeef38 --- /dev/null +++ b/src/m/mg1.h @@ -0,0 +1,126 @@ +/* machine description file for Whitechapel Computer Works MG1 (ns16000 based). + Copyright (C) 1985 Free Software Foundation, Inc. + MG-1 version by L.M.McLoughlin + +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="note" + +NOTE-START +We are in the dark about what operating system runs on the Whitechapel +systems. Consult share-lib/MACHINES for information on which +operating systems Emacs has already been ported to; one of them might +work. If you find an existing system name that works or write your +own configuration files, please let the Free Software Foundation in on +your work; we'd like to distribute this information. +NOTE-END */ + +/* 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. */ +/* ns16000 is not big-endian: lowest numbered byte is least significant. */ +#undef 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. */ +/* ns16000 call sequence used on mg1 means that &arg = the args as an array */ +#undef NO_ARG_ARRAY + +/* Define WORD_MACHINE if addresses and such have + * to be corrected before they can be used as byte counts. */ +/* ns16000 addresses are byte addresses */ +#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. */ +/* Say this machine is a 16000 and an mg1, cpp says its a 32000 */ +#define ns16000 +#define mg1 + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ +/* Not sure on mg-1 but this shouldn't hurt! */ +#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. */ +/* mg1 its an unsigned long */ +#define LOAD_AVE_TYPE unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ +#define FSCALE 1000.0 +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* 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. */ +/* ns16000's have an unexec, so should the mg-1 */ +#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. */ +/* hmmmm... not sure. copied sequent.h */ +#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. */ +/* hmmmm... again not sure. so copied sequent.h again! */ +#undef C_ALLOCA +#undef HAVE_ALLOCA + +/* 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. */ +/* mapping seems screwy */ +#define NO_REMAP + +/* Avoids a compiler bug */ +/* borrowed from sequent.h */ diff --git a/src/m/mips.h b/src/m/mips.h new file mode 100644 index 00000000000..d797540c4ca --- /dev/null +++ b/src/m/mips.h @@ -0,0 +1,213 @@ +/* machine description file for Mips machines. + Copyright (C) 1987, 1990 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="note" + +NOTE-START +Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD +world. +NOTE-END */ + +/* 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. */ + +#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) ((signed char)(c)) + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ +#ifndef mips +# define mips +#endif + +/* 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 / 256.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. */ + +#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. */ + +/* #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 */ + +/* 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 + +/* This machine requires completely different unexec code + which lives in a separate file. Specify the file name. */ + +#define UNEXEC unexmips.o + +/* Describe layout of the address space in an executing process. */ + +#define TEXT_START 0x400000 +#define DATA_START 0x800000 + +/* Alter some of the options used when linking. */ + +#ifdef BSD + +/* Supposedly the dec machine doesn't have this library. + #define LIBS_MACHINE -lmld */ + +#define LD_SWITCH_MACHINE -D 800000 +#define LIBS_DEBUG + +#else + +#define LIBS_MACHINE -lmld +#define LD_SWITCH_MACHINE -D 800000 -g3 +#define START_FILES pre-crt0.o /usr/lib/crt1.o +#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o +#define LIBS_TERMCAP -lcurses + +#define C_SWITCH_SYSTEM -I/usr/include/bsd +#define C_DEBUG_SWITCH -O -g3 + +#if defined(HAVE_X_WINDOWS) && defined(HAVE_X11) +#define HAVE_VFORK /* Graciously provided by libX.a */ +#endif +#endif + +/* The standard definitions of these macros would work ok, + but these are faster because the constants are short. */ + +#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) + +#define XSET(var, type, ptr) \ + ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) + +#define XSETINT(a, b) XSET(a, XTYPE(a), b) +#define XSETUINT(a, b) XSET(a, XTYPE(a), b) +#define XSETPNTR(a, b) XSET(a, XTYPE(a), b) + +#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS)) +#ifdef USG + +/* Cancel certain parts of standard sysV support. */ +#undef NONSYSTEM_DIR_LIBRARY +#define SYSV_SYSTEM_DIR +#undef static + +/* Don't try to use SIGIO or FIONREAD even though they are defined. */ +#undef SIGIO +#define BROKEN_FIONREAD + +/* Describe special kernel features. */ + +#define HAVE_SYSVIPC + +#define HAVE_TIMEVAL +#if defined(emacs) +#include <bsd/sys/time.h> +#endif + +/* #define HAVE_SELECT + The `select' in the system won't work for pipes, + so don't use it. */ + +#define HAVE_DUP2 +#define HAVE_GETWD +#define HAVE_GETTIMEOFDAY + +#define HAVE_PTYS +#define HAVE_SOCKETS + +#undef NOMULTIPLEJOBS +#define utimes utime /* Someone should check this. */ + +/* ??? */ +#define IRIS + +#endif + +#ifdef BSD +#define COFF +#define TERMINFO +#undef MAIL_USE_FLOCK /* Someone should check this. */ +#undef HAVE_UNION_WAIT +#endif /* BSD */ diff --git a/src/m/mips4.h b/src/m/mips4.h new file mode 100644 index 00000000000..91cda937841 --- /dev/null +++ b/src/m/mips4.h @@ -0,0 +1,33 @@ +/* machine description file for Mips running RISCOS version 4. */ + +#include "mips.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD +world. +NOTE-END */ + +/* Define MIPS2 if you have an R6000 or R4000. */ +/* #define MIPS2 */ + +#ifdef MIPS2 +#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 -mips2 +#else +#define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 +#endif + +#ifdef TERMINFO +#undef TERMINFO +#endif + +#define START_FILES pre-crt0.o /lib/crt1.o +#define LIB_STANDARD -lmld -lc /lib/crtn.o + + +#define COFF +#undef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE -systype bsd43 -g3 -D 800000 diff --git a/src/m/news.h b/src/m/news.h new file mode 100644 index 00000000000..618477c171e --- /dev/null +++ b/src/m/news.h @@ -0,0 +1,76 @@ +/* machine description file for Sony's NEWS workstations, NEWS-OS 3.0. + Copyright (C) 1985, 1986, 1989 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="note" + +NOTE-START +Use -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3. +NOTE-END */ + +/* Say this machine is a 68000 */ + +#ifndef m68000 +#define m68000 +#endif + +/* 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 + +/* One CRT0 Dummy variable */ + +#define CRT0_DUMMIES one_dummy, + +/* 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 + +/* The News machine has alloca. */ + +#define HAVE_ALLOCA + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +/* Must use the system's termcap. It does special things. */ + +#define LIBS_TERMCAP -ltermcap + diff --git a/src/m/ns16000.h b/src/m/ns16000.h new file mode 100644 index 00000000000..3aa798ddad5 --- /dev/null +++ b/src/m/ns16000.h @@ -0,0 +1,112 @@ +/* machine description file for ns16000. + Copyright (C) 1985 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="note" + +NOTE-START +For the Encore, use `-opsystem=umax'. +For a Tektronix 16000 box (a 6130, perhaps?), use `-opsystem=bsd4-2'. +Use `-machine=ns16000' for both. +NOTE-END */ + +/* 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 */ + +/* 16000 is little-endian (lowest-numbered byte is least significant) */ + +/* #define BIG_ENDIAN */ /* So don't define this. */ + +/* 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 16000 */ + +#define ns16000 1 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* Data type of load average, as read out of kmem. */ + +#ifndef USG +#define LOAD_AVE_TYPE double +#endif + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#ifndef USG +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) +#endif + +#ifdef USG + +/* Control assembler syntax used in alloca.s. */ +#define NS5 + +/* On early NS systems ulimit was buggy. If set emacs uses this value + * for the maximum sbrk value instead of getting it from ulimit. + */ +#define ULIMIT_BREAK_VALUE 0x7E0000 + +/* Early NS compilers have this bug. I believe it has been fixed in later + * releases. + */ +#define SHORT_CAST_BUG + +#define SEGMENT_MASK (NBPS - 1) + +/* Variables to get crt0.c to come out correctly */ +#define CRT0_DUMMIES bogus_fp, +#define DOT_GLOBAL_START + +/* Control how emacsclient communicates. */ +#define HAVE_SYSVIPC + +/* Set this to /bin/mail unless you have a better mail posting program */ +#define MAIL_PROGRAM_NAME "/usr/local/bin/remail" + +/* Tell sysdep.c not to define bzero, etc. */ +#undef BSTRING +#define BSTRING + +/* Macro definitions to emulate BSD functions with SysV ones */ +#undef bcopy +#undef bzero +#undef bcmp + +#define bcopy(a,b,s) memcpy(b,a,s) +#define bzero(a,s) memset(a,0,s) +#define bcmp memcmp + +/* This avoids problems with uninitialized static variables going in .data. */ +#define static + +#endif /* USG */ diff --git a/src/m/ns32000.h b/src/m/ns32000.h new file mode 100644 index 00000000000..bca1825e406 --- /dev/null +++ b/src/m/ns32000.h @@ -0,0 +1,121 @@ +/* machine description file for Netional Semiconductor 32000, running Genix. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +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. */ + + +/* 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 */ + +/* 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. + 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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +/* 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 / FSCALE) */ + +/* 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 */ + +/* 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 TEXT_START 0 + +#define STACK_DIRECTION -1 + +#define EXEC_MAGIC 0410 + +#define PURESIZE 140000 + +#define START_FILES pre-crt0.o /lib/crt0.o diff --git a/src/m/nu.h b/src/m/nu.h new file mode 100644 index 00000000000..ef12ccc2037 --- /dev/null +++ b/src/m/nu.h @@ -0,0 +1,84 @@ +/* machine description file for TI Nu machines using system V. + Copyright (C) 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 */ + +/* 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 m68000 +#define m68000 +#endif + +#ifndef NU +#define NU +#endif + +/* Data type of load average, as read out of kmem. */ +/* These are commented out since it does not really work in uniplus */ + +/* #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) */ + +/* Change some things to avoid bugs in compiler */ + +#define SWITCH_ENUM_BUG 1 + +/* The NU machine has a compiler that can handle long names. */ + +#undef SHORTNAMES + +/* Specify alignment requirement for start of text and data sections + in the executable file. */ + +#define SECTION_ALIGNMENT pagemask diff --git a/src/m/orion.h b/src/m/orion.h new file mode 100644 index 00000000000..fec8a0c2b5e --- /dev/null +++ b/src/m/orion.h @@ -0,0 +1,84 @@ +/* machine description file for HLH Orion. + Copyright (C) 1985 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 */ + +/* Define BIG_ENDIAN iff lowest-numbered byte in a word + is the most significant byte. */ + +#undef BIG_ENDIAN + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically. */ + +#ifndef orion +#define orion +#endif + +/* 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. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24) + +/* 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 */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#ifndef FSCALE +#define FSCALE 1.0 +#endif +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* It is necessary to use the portable imitation of alloca, + since a true stack-allocating one is impossible. */ + +#define C_ALLOCA diff --git a/src/m/orion105.h b/src/m/orion105.h new file mode 100644 index 00000000000..9820b6cd3b7 --- /dev/null +++ b/src/m/orion105.h @@ -0,0 +1,90 @@ +/* machine description file for HLH Orion 1/05 (Clipper). + Copyright (C) 1985 Free Software Foundation, Inc. + Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk> + +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. */ + +#undef 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 SIGN_EXTEND_CHAR(c) ((int)(c)) + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ + +#define NO_UNION_TYPE + +/* Data type of load average, as read out of kmem. */ +/* This used to be `double'. */ + +#define LOAD_AVE_TYPE long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +/* This used to be 1.0. */ +#ifndef FSCALE +#define FSCALE 256 +#endif +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* HLH have a SIGWINCH defined (but unimplemented) so we need a sigmask */ +#ifndef sigmask +#define sigmask(m) (1 << ((m) - 1)) +#endif + +#define HAVE_ALLOCA + +/* Here is where programs actually start running */ +#define TEXT_START 0x8000 +#define LD_TEXT_START_ADDR 8000 + +/* Arguments to ignore before argc in crt0.c. */ +#define DUMMIES dummy1, dummy2, + +/* dbx can't cope so what the heck - currently (July 88) eval.c causes + * the compiler to go into an infinite loop - so compile it by hand + * cc -c -Demacs eval.c + * before running make + */ +#define C_DEBUG_SWITCH -O + +/* Since not debugging don't add dbx lib */ +#define LIBS_DEBUG diff --git a/src/m/plexus.h b/src/m/plexus.h new file mode 100644 index 00000000000..327ff78a1f5 --- /dev/null +++ b/src/m/plexus.h @@ -0,0 +1,128 @@ +/* machine description file for the Plexus running System V.2. + Copyright (C) 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 */ + +/* 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. */ + +#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. */ +/* Plexus predefines m68 instead of m68000. */ +#define m68000 m68 + +/* 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. */ + +#undef EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#undef LOAD_AVE_TYPE + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#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 + +/* 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. */ + +#undef NO_REMAP + +/* Use the following on ld so we can use the gnu crt0 + The plexus ld looks for start */ +#define LD_SWITCH_MACHINE -e __start + +/* Use the PW library, which contains alloca. */ + +#define LIB_STANDARD -lPW -lc + +/* crt0.c should use the vax-bsd style of entry, with no dummy args. */ + +#define CRT0_DUMMIES zero1, zero2, + +/* This triggers some stuff to avoid a compiler bug */ + +#define TAHOE_REGISTER_BUG diff --git a/src/m/pmax.h b/src/m/pmax.h new file mode 100644 index 00000000000..393b7351a67 --- /dev/null +++ b/src/m/pmax.h @@ -0,0 +1,22 @@ +#include "mips.h" + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="bsd4-2" */ + +#undef BIG_ENDIAN +#define LIBS_DEBUG + +/* This line starts being needed with ultrix 4.0. */ +/* You may need to delete it on version 3.1. */ +#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o + +/* Supposedly the following will overcome a kernel bug. */ +#undef LD_SWITCH_MACHINE +#undef DATA_START +#define DATA_START 0x10000000 +#define DATA_SEG_BITS 0x10000000 + +/* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist + on defining malloc itself. This should avoid conflicting with it. */ +#define SYSTEM_MALLOC diff --git a/src/m/pyramid.h b/src/m/pyramid.h new file mode 100644 index 00000000000..e478eae5add --- /dev/null +++ b/src/m/pyramid.h @@ -0,0 +1,76 @@ +/* machine description file for pyramid. + 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 */ + +/* 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 __GNUC__ +#define NO_ARG_ARRAY +#endif + +/* 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) + +/* pyramid preprocessor defines "pyr", however the following is clearer */ +#define pyramid + +/* Don't use the union types any more. They were used until Emacs 17.45. */ + +#define NO_UNION_TYPE + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +/* Don't use the ordinary -g for debugging in cc */ + +#define C_DEBUG_SWITCH -gx + +/* Reenable this #define for old versions of the Pyramid system. */ + +/* #define PYRAMID_OLD */ diff --git a/src/m/sequent.h b/src/m/sequent.h new file mode 100644 index 00000000000..e760213abcc --- /dev/null +++ b/src/m/sequent.h @@ -0,0 +1,188 @@ +/* machine description file for SEQUENT BALANCE machines + 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="note" + +NOTE-START +Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems. +NOTE-END */ + +/* NOTE: this file works for DYNIX release 2.0 + (not tested on 1.3) on NS32000's */ + +/* 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. + 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. */ + +/* BTW: DYNIX defines sequent, ns32000, and ns16000 (GENIX compatibility) */ +#ifndef sequent /* pre DYNIX 2.1 releases */ +# define sequent +#endif + +/* Use type int rather than a union, to represent Lisp_Object */ +/* This is desirable for most machines. */ + +#define NO_UNION_TYPE + +/* crt0.c should use the vax-bsd style of entry, with these dummy args. */ + +#define CRT0_DUMMIES bogus_fp, + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +/* 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 unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define FSCALE 1000.0 +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* 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 + +/* Name of file the to look in + for the kernel symbol table (for load average) */ + +#undef KERNEL_FILE +#define KERNEL_FILE "/dynix" + +/* Avoids a compiler bug */ + +#define TAHOE_REGISTER_BUG + +/* Say that the text segment of a.out includes the header; + the header actually occupies the first few bytes of the text segment + and is counted in hdr.a_text. Furthermore, the value written + in the a_text in the file must have N_ADDRADJ added to it. */ + +#define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR)) + +/* This is the offset of the executable's text, from the start of the file. */ + +#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) + +/* (short) negative-int doesn't sign-extend correctly */ +#define SHORT_CAST_BUG + +/* Cause compilations to be done in parallel in ymakefile. */ +#define MAKE_PARALLEL & + +/* Say that mailer interlocking uses flock. */ +#define MAIL_USE_FLOCK + +/* On many 4.2-based systems, there's a rather tricky bug + * with the interpretation of the pid/pgrp value given to + * the F_SETOWN fcntl() call. It works as documented EXCEPT + * when applied to filedescriptors for sockets, in which case + * the sign must be reversed. If your emacs subprocesses get + * SIGIO's when they shouldn't, while running on a socket + * (e.g. under X windows), you should probably define this. + */ + +#define F_SETOWN_SOCK_NEG + +/* Some really obscure 4.2-based systems (like Sequent DYNIX) + * do not support asynchronous I/O (using SIGIO) on sockets, + * even though it works fine on tty's. If you have one of + * these systems, define the following, and then use it in + * config.h (or elsewhere) to decide when (not) to use SIGIO. + */ + +#define NO_SOCK_SIGIO + +/* Define how to search all pty names. + This is for Dynix 3.0; delete next 5 definitions for older systems. */ + +#define PTY_MAJOR "pqrstuvwPQRSTUVW" +#define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +#define PTY_ITERATION \ + register int ma, mi; \ + for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \ + for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++) +#define PTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]); +#define PTY_TTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/tty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]); diff --git a/src/m/sparc.h b/src/m/sparc.h new file mode 100644 index 00000000000..b06fa35522c --- /dev/null +++ b/src/m/sparc.h @@ -0,0 +1,119 @@ +/* machine description file for Sun 4 SPARC. + 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. */ + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="note" + +NOTE-START +Use -opsystem=sunos4 for operating system version 4, and +-opsystem=bsd4-2 for earlier versions. +NOTE-END */ + +/* 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 */ + +/* SPARC has lowest-numbered byte as most significant */ + +#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 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 sparc */ + +#ifndef sparc +#define sparc +#endif + +#ifdef __GNUC__ +# define C_OPTIMIZE_SWITCH -O +#else + /* This level of optimization is reported to work. */ +# define C_OPTIMIZE_SWITCH -O2 +#endif + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* XINT must explicitly sign-extend */ + +#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 / FSCALE) + +/* 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 HAVE_ALLOCA +#include <alloca.h> + +/* Must use the system's termcap. It does special things. */ + +#define LIBS_TERMCAP -ltermcap + +/* Mask for address bits within a memory segment */ + +#define SEGMENT_MASK (SEGSIZ - 1) + +/* Arrange to link with sun windows, if requested. */ +/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ +/* These programs require Sun UNIX 4.2 Release 3.2 or greater */ + +#ifdef HAVE_SUN_WINDOWS +#define OTHER_FILES ${etcdir}emacstool +#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect +#define OBJECTS_MACHINE sunfns.o +#define SYMS_MACHINE syms_of_sunfns () +#define PURESIZE 130000 +#endif + +/* Say that the text segment of a.out includes the header; + the header actually occupies the first few bytes of the text segment + and is counted in hdr.a_text. */ + +#define A_TEXT_OFFSET(HDR) sizeof (HDR) + +/* This is the offset of the executable's text, from the start of the file. */ + +#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) diff --git a/src/m/sps7.h b/src/m/sps7.h new file mode 100644 index 00000000000..e1583f66d7f --- /dev/null +++ b/src/m/sps7.h @@ -0,0 +1,140 @@ +/* machine description file for Bull SPS-7. + Copyright (C) 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 */ + +/* 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 */ + +#ifndef m68000 +#define m68000 +#endif + +#define sps7 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* XINT must explicitly sign-extend */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ +/* Suspect there is something wierd about this machine, so turn it off. */ + +/* #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 SMX +#define V3x + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* Have the socketpair call +*/ + +#define SKTPAIR + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* Use Berkeley style interface to nlist */ + +#define NLIST_STRUCT + +/* Define this to cause -N to be passed to ld. This is needed + * in uniplus because of its funny memory space layout. + * SMX--If you are using 32 bit (COFF) use "-N", else don't use anything. + */ + +#define LD_SWITCH_MACHINE -N -T32 -e __start + +/* If you are compiling for a 68020, then use -lc32 else use -lc */ + +#define LIB_STANDARD -lc32 + +/* Fore 16 bit, -linet, for 32 bit -linet32 (be sure you have it!). */ + +#define LIBS_MACHINE -linet32 + +/* Use -T32 for 68020, -T16 otherwise */ + +#define C_SWITCH_MACHINE -T32 + +/* + Here we assume that signal.h is included before config.h + so that we can override it here. */ + +#undef SIGIO + +/* Some additional system facilities exist. */ + +#define HAVE_DUP2 + +/* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */ + +#define ASS as32 + +#ifdef V3x +#define EXEC_MAGIC 0x10b +#define SEGMENT_MASK (NBPS-1) +#define ADJUST_EXEC_HEADER f_hdr.f_magic = SMROMAGIC;\ + f_ohdr.stsize = 0; +#endif diff --git a/src/m/stride.h b/src/m/stride.h new file mode 100644 index 00000000000..5ea57e3ac07 --- /dev/null +++ b/src/m/stride.h @@ -0,0 +1,136 @@ +/* Definitions file for GNU Emacs running on Stride Micro System-V.2.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 */ + +/* 68000 has lowest-numbered byte as most significant */ + +#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. */ + +#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, APOLLO and STRIDE + are the ones defined so far. */ + +#define m68000 /* because the SGS compiler defines "m68k" */ +#ifndef STRIDE +#define STRIDE +#endif + +/* 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 double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((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. */ + +#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 + +/* The STRIDE system is more powerful than standard USG5. */ + +#define HAVE_PTYS +#define HAVE_TIMEVAL +#define HAVE_SELECT +#define HAVE_GETTIMEOFDAY +#define BSTRING +#define SKTPAIR +#define HAVE_SOCKETS + +#define MAIL_USE_FLOCK +#undef TERMINFO +#define EXEC_MAGIC 0413 + +/* USG wins again: Foo! I can't get SIGIO to work properly on the Stride, because I'm + running a System V variant, and don't have a reliable way to block SIGIO + signals without losing them. So, I've gone back to non-SIGIO mode, so + please append this line to the file "stride.h": + */ +#undef SIGIO + +/* Specify alignment requirement for start of text and data sections + in the executable file. */ + +#define SECTION_ALIGNMENT (getpagesize() - 1) + +/* + * UniStride has this in /lib/libc.a. + */ +#undef NONSYSTEM_DIR_LIBRARY + +/* UniStride defines getwd. */ + +#define HAVE_GETWD + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT diff --git a/src/m/sun1.h b/src/m/sun1.h new file mode 100644 index 00000000000..4edf292adf3 --- /dev/null +++ b/src/m/sun1.h @@ -0,0 +1,88 @@ +/* machine description file for Sun 68000's + 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="note" + +NOTE-START +Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Whether you should use sun1, sun2 or sun3 depends on the + VERSION OF THE OPERATING SYSTEM + you have. There are three machine types for different versions of + SunOS. All are derived from Berkeley 4.2, meaning that you should + use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will + need to use sun3 on Sun 2's running SunOS release 3. + + For SunOS release 4 on a Sun 3, use -machine=sun3 and + -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve + problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* 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 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* Sun can't write competant compilers */ +#define COMPILER_REGISTER_BUG + +/* XINT must explicitly sign-extend */ + +#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 / FSCALE) + +/* Must use the system's termcap. It does special things. */ + +#define LIBS_TERMCAP -ltermcap + +/* Mask for address bits within a memory segment */ + +#define SEGMENT_MASK (SEGSIZ - 1) diff --git a/src/m/sun2.h b/src/m/sun2.h new file mode 100644 index 00000000000..717e16c27e2 --- /dev/null +++ b/src/m/sun2.h @@ -0,0 +1,109 @@ +/* machine description file for Sun 68000's OPERATING SYSTEM version 2. + Note that "sun2.h" refers to the operating system version, not the + CPU model number. See the MACHINES file for details. + 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="note" + +NOTE-START +Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3; + -opsystem=bsd4-2 or -opsystem=sunos4) + + Whether you should use sun1, sun2 or sun3 depends on the + VERSION OF THE OPERATING SYSTEM + you have. There are three machine types for different versions of + SunOS. All are derived from Berkeley 4.2, meaning that you should + use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will + need to use sun3 on Sun 2's running SunOS release 3. + + For SunOS release 4 on a Sun 3, use -machine=sun3 and + -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve + problems caused by bugs in the "export" version of SunOS 4. +NOTE-END */ + +/* 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 */ + +#ifndef m68000 +#define m68000 +#endif + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* Sun can't write competent compilers */ +#define COMPILER_REGISTER_BUG + +/* XINT must explicitly sign-extend */ + +#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 / FSCALE) + +/* Say that this is a Sun 2; must check for and maybe reinitialize + the "sky" board. */ + +#define sun2 + +/* Must use the system's termcap. It does special things. */ + +#define LIBS_TERMCAP -ltermcap + +/* Mask for address bits within a memory segment */ + +#define SEGMENT_MASK (SEGSIZ - 1) + +/* Arrange to link with sun windows, if requested. */ +/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ +/* These programs require Sun UNIX 4.2 Release 3.2 or greater */ + +#ifdef HAVE_SUN_WINDOWS +#define OTHER_FILES ${etcdir}emacstool +#define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect +#define OBJECTS_MACHINE sunfns.o +#define SYMS_MACHINE syms_of_sunfns () +#define PURESIZE 132000 +#endif diff --git a/src/m/tahoe.h b/src/m/tahoe.h new file mode 100644 index 00000000000..9c994badba2 --- /dev/null +++ b/src/m/tahoe.h @@ -0,0 +1,92 @@ +/* machine description file for tahoe. + Copyright (C) 1985 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="note" + +NOTE-START +Use -opsystem=bsd4-2 or -opsystem=bsd4-3, depending on the version of +Berkeley you are running. +NOTE-END */ + +/* 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 */ + +/* lowest-numbered byte is most significant */ + +#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) + +/* Say this machine is a tahoe */ + +#ifndef tahoe +#define tahoe +#endif /* not tahoe */ + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c should use the vax-bsd style of entry, with no dummy args. */ + +#define CRT0_DUMMIES + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +/* This triggers some stuff to avoid a compiler bug */ + +#define TAHOE_REGISTER_BUG + +/* System provides alloca. */ + +#define HAVE_ALLOCA + +/* Control header files used by loadst.c. + Some users report machines have dkstat.h while others report dk.h, + so it's hard to tell what this should say. */ + +#ifdef BSD +#define DKSTAT_HEADER_FILE +#endif diff --git a/src/m/targon31.h b/src/m/targon31.h new file mode 100644 index 00000000000..49d4eb65305 --- /dev/null +++ b/src/m/targon31.h @@ -0,0 +1,117 @@ +/* targon31 machine description file + 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-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. */ + +/* #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. + 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 m68k is defined by the Compiler */ +/* #define m68000 */ + +/* 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 double */ + +/* 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 */ + +/* 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 */ +/* Supposedly NO_REMAP is not needed with the following change. */ +#define SEGMENT_MASK 0xffff + +#define SWITCH_ENUM_BUG 1 diff --git a/src/m/tek4300.h b/src/m/tek4300.h new file mode 100644 index 00000000000..9164701b0e0 --- /dev/null +++ b/src/m/tek4300.h @@ -0,0 +1,98 @@ +/* machine description file for tek4300. + Copyright (C) 1988 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-3" */ + +/* 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 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. */ + +#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. */ + +#define tek4300 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* 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) (x) + +/* 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 C_ALLOCA if this machine does not support a true alloca + and the one written in C should be used instead. */ + +#define C_ALLOCA + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, */ + +#define _longjmp longjmp +#define _setjmp setjmp + +/* The text segment always starts at a fixed address. + This way we don't need to have a label _start defined. */ + +#define TEXT_START 0 + +/* The Tektronix exec struct for ZMAGIC files is struct zexec */ + +#define EXEC_HDR_TYPE struct zexec + +/* The entry-point label (start of text segment) is `start', not `__start'. */ + +#define DEFAULT_ENTRY_ADDRESS start diff --git a/src/m/template.h b/src/m/template.h new file mode 100644 index 00000000000..f69e0376c29 --- /dev/null +++ b/src/m/template.h @@ -0,0 +1,110 @@ +/* machine description file template. + 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="<name of system .h file here, without the s- or .h>" */ + +/* 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. + 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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +/* 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 / FSCALE) + +/* 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 + +/* 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 diff --git a/src/m/tower32.h b/src/m/tower32.h new file mode 100644 index 00000000000..8ab0b918607 --- /dev/null +++ b/src/m/tower32.h @@ -0,0 +1,134 @@ +/* machine description file for the NCR Tower 32 running System V.2. + Copyright (C) 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-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. */ + +/* #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. + 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 m68000 + +/* 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 / FSCALE) */ + +/* 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 + +/* Change some things to avoid bugs in compiler */ + +#define SWITCH_ENUM_BUG 1 + +/* The standard C library is -lcieee, not -lc. + Also use the PW library, which contains alloca. */ + +#define LIB_STANDARD -lPW -lcieee + +/* crt0.c should use the vax-bsd style of entry. Beware that if you have + OS release 2.00.00 or later, *and* change src/ymakefile so that CFLAGS + includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, you need to + uncomment CRT0_DUMMIES and C_OPTIMIZE_SWITCH below. */ + +/* With the optimizer OFF */ + +#define CRT0_DUMMIES zero, bogus_fp, + +/* With the optimizer ON */ + +/* #define CRT0_DUMMIES */ +/* #define C_OPTIMIZE_SWITCH -O2 */ + +/* emacs's magic number isn't temacs's; + temacs is writeable text (the default!). */ + +#include <asld.h> +#define EXEC_MAGIC AOUT1MAGIC +#define EXEC_PAGESIZE DATACLICK diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h new file mode 100644 index 00000000000..ca8f2878632 --- /dev/null +++ b/src/m/tower32v3.h @@ -0,0 +1,139 @@ +/* machine description file for the NCR Tower 32 running System V.3. + Copyright (C) 1986 Free Software Foundation, Inc. + +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. */ + + +/* The following line tells the configuration script what sort of + operating system this machine is likely to run. + USUAL-OPSYS="usg5-3" */ + +/* 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. + 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 m68000 + +/* 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 / FSCALE) */ + +/* 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. */ + +#ifdef __GNUC__ +#define HAVE_ALLOCA +#define alloca __builtin_alloca +#define C_OPTIMIZE_SWITCH -O -fstrength-reduce -fomit-frame-pointer +#define LIB_STANDARD -lc /lib/crtn.o +#else +/* This section is correct if you do *not* change src/ymakefile so that + CFLAGS includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH. */ +#define HAVE_ALLOCA +#define C_DEBUG_SWITCH -g -O0 +#define LIB_STANDARD -lc -lPW /lib/crtn.o +/* This section is correct if you do enable C_OPTIMIZE_SWITCH. */ +/* #define C_ALLOCA */ +/* #define STACK_DIRECTION -1 */ +/* #define C_OPTIMIZE_SWITCH -O2 */ +/* #define LIB_STANDARD -lc /lib/crtn.o */ +#endif + +/* The OS maps the data section far away from the text section. */ +#define NO_REMAP +#define TEXT_START 0 +#undef static +#define START_FILES pre-crt0.o /lib/crt1.o + +/* This is needed since many Tower models start the data/bss segment at + an address as large as 0x2000000. */ +#define VALBITS 26 +#define GCTYPEBITS 5 + +/* The OS has an implementation of symlinks that is semantically different + from BSD, but for some silly reason it partly has the same syntax. */ +#undef S_IFLNK + +/* The OS needs stream.h+ptem.h included in sysdep.c. */ +#define NO_SIOCTL_H +#define NEED_PTEM_H diff --git a/src/m/ustation.h b/src/m/ustation.h new file mode 100644 index 00000000000..a5ecb75fbd1 --- /dev/null +++ b/src/m/ustation.h @@ -0,0 +1,158 @@ +/* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30). + Copyright (C) 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-3" */ + +/* 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. */ + +#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. */ +/* Masscomp predefines mc68000. */ + +#define m68000 mc68000 + +/* 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. */ + +#undef EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((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. */ + +#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 data space precedes text 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. */ + +/* On return from a subroutine, the 68020 compiler restores old contents of + register variables relative to sp, so alloca() screws up such routines. + The following definitions should work on all Masscomps. On the MC-5500 + (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */ + +#define C_ALLOCA +#undef HAVE_ALLOCA + +/* 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. */ + +#undef NO_REMAP + +/* Name of file the to look in + for the kernel symbol table (for load average) */ + +#define KERNEL_FILE "/unix" + +/* This triggers some stuff to avoid a compiler bug */ + +#define MASSC_REGISTER_BUG + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* -lnet is not standard library */ + +#undef HAVE_SELECT +#undef LIBS_SYSTEM + +/* Compiler's bug */ + +#define SWITCH_ENUM_BUG + +/* Termcap is available */ + +#define LIBS_TERMCAP -ltermcap + +#define EXEC_PAGESIZE 1024 +#define PURESIZE 130000 + +#undef SIGIO +#undef SIGTSTP +#undef HAVE_TIMEVAL diff --git a/src/m/vax.h b/src/m/vax.h new file mode 100644 index 00000000000..488f89aa862 --- /dev/null +++ b/src/m/vax.h @@ -0,0 +1,132 @@ +/* machine description file for vax. + 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="note" + +NOTE-START +The vax (-machine=vax) runs zillions of different operating systems. + +Vax running Berkeley Unix (-opsystem=bsd4-1, -opsystem=bsd4-2 or + -opsystem=bsd4-3) + + Works. + +Vax running Ultrix (-opsystem=bsd4-2) + + Works. See under Ultrix in share-lib/MACHINES for problems using X + windows on Ultrix. + +Vax running System V rel 2 (-opsystem=usg5-2) + + 18.27 Works. + +Vax running System V rel 0 (-opsystem=usg5-0) + + Works as of 18.36. + +Vax running VMS (-opsystem=vms) + + 18.36 believed to work. Addition of features is necessary to make + this Emacs version more usable. + +NOTE-END */ + +/* 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. */ + +/* #undef 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 vax -- appears to be done automatically */ + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c should use the vax-bsd style of entry, with no dummy args. */ + +#define CRT0_DUMMIES + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +#define DOT_GLOBAL_START + +#ifdef BSD +/* USG systems I know of running on Vaxes do not actually + support the load average, so disable it for them. */ + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE double + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +#endif /* BSD */ + +#ifdef VMS + +/* Data type of load average, as read out of driver. */ + +#define LOAD_AVE_TYPE float + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) + +#endif /* VMS */ + +/* Vax sysV has alloca in the PW library. */ + +#ifdef USG +#define LIB_STANDARD -lPW -lc +#define HAVE_ALLOCA + +/* There is some bug in unexec in for usg 5.2 on a vax + which nobody who runs such a system has yet tracked down. */ +#ifndef USG5_0 +#define NO_REMAP +#endif /* USG 5_0 */ + +#define TEXT_START 0 +#endif /* USG */ + +#ifdef BSD +#define HAVE_ALLOCA +#endif /* BSD */ + +#ifdef VMS +#define C_ALLOCA +#endif diff --git a/src/m/wicat.h b/src/m/wicat.h new file mode 100644 index 00000000000..6069714647f --- /dev/null +++ b/src/m/wicat.h @@ -0,0 +1,168 @@ +/* machine description file for WICAT machines. + Copyright (C) 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 */ + +/* 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. */ + +#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 are the ones defined so far. */ + +#ifndef m68000 +#define m68000 +#endif + +/* This flag is used only in alloca.s. */ +#define WICAT + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* XINT must explicitly sign-extend */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#undef LOAD_AVE_TYPE + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#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. */ + +/* For the Wicat C compiler version 4.2, this can be removed + and the alloca in alloca.s used. */ +#define C_ALLOCA +#define STACK_DIRECTION -1 /* grows towards lower addresses on WICAT */ + +/* 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. */ + +#undef NO_REMAP + +/* For WICAT, define TAHOE_REGISTER_BUG if you have a pre-4.2 C compiler */ + +#define TAHOE_REGISTER_BUG + +/* pagesize definition */ + +#define EXEC_PAGESIZE 0x1000 + +/* Delete this for WICAT sys V releases before 2.0. */ + +#define LIB_STANDARD -lc-nofp + +/* Special magic number */ + +#define EXEC_MAGIC MC68ROMAGIC + +/* Special switches to give to ld. */ + +#define LD_SWITCH_MACHINE -e __start -N + +/* Sigh...cannot define this for WICAT cuz 0 length memcpy blows chunks */ + +#undef BSTRING + +#ifdef BSTRING +#undef bcopy +#undef bzero +#undef bcmp + +#define bcopy(a,b,s) memcpy(b,a,s) +#define bzero(a,s) memset(a,0,s) +#define bcmp memcmp +#endif + +/* + * Define optimflags if you want to optimize. + * - Set to null string for pre-4.2 C compiler + * - Set to "-O -Wopt,-O-f" for 4.2 + */ + +#define C_OPTIMIZE_SWITCH /* -O -Wopt,-O-f */ + +/* For WICAT version supporting PTYs and select (currently internal only) */ + +#ifdef HAVE_PTYS +#undef FIRST_PTY_LETTER +#define FIRST_PTY_LETTER 'q' +#endif + +/* there is a select() in libcurses.a that causes a conflict so use termlib */ +#ifdef HAVE_SELECT +#undef TERMINFO +#define LIBS_TERMCAP select.o -ltermlib +#endif diff --git a/src/m/xps100.h b/src/m/xps100.h new file mode 100644 index 00000000000..4b6fb543233 --- /dev/null +++ b/src/m/xps100.h @@ -0,0 +1,118 @@ +/* xps100.h for the Honeywell XPS100 running UNIX System V.2 + Mark J. Hewitt (mjh@uk.co.kernel) + + 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 */ + +/* 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. + 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: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +/* 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 / FSCALE) */ + +/* 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 */ + +/* 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 STACK_DIRECTION -1 +#define TERMINFO +#define SWITCH_ENUM_BUG +#define LIB_STANDARD -lc +#define LD_SWITCH_MACHINE -X +#define SECTION_ALIGNMENT (0x3ff) diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h new file mode 100644 index 00000000000..366ef832ed9 --- /dev/null +++ b/src/s/aix3-1.h @@ -0,0 +1,232 @@ +/* Definitions file for GNU Emacs running on IBM AIX version 3.1 + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ +#define USG5 + +/* Specify IBM AIX version of system */ + +#ifndef AIX +#define AIX +#endif + +/* turn off c prototypes */ +#ifndef _NO_PROTO +#define _NO_PROTO +#endif + +/* This symbol should be defined on AIX Version 3 ??????? */ +#ifndef _AIX +#define _AIX +#endif + +/* Specify "_BSD" to invoke Berkeley compatibility in header files */ +/*#ifndef _BSD +#define _BSD +#endif +*/ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "aix-v3" + + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* + * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir + * library functions. Almost, but not quite the same as + * the 4.2 functions + */ + +#define SYSV_SYSTEM_DIR + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +/* #define SHORTNAMES */ + +/* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ + +/* #define NLIST_STRUCT */ + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Special itemss needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#undef static + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +/* #define ADDR_CORRECT(x) (x) */ + +#define LD_CMD cc + +/* Prevent -lg from being used for debugging. Not needed. */ + +#define LIBS_DEBUG + +/* No need to specify -lc when linking. */ + +#define LIB_STANDARD + +/* Use terminfo instead of termcap. */ + +#define TERMINFO + +/* The following definition seems to be needed in AIX version 3.1.6.8. + It may not have been needed in certain earlier versions. */ +#define HAVE_TCATTR + +#define SYSTEM_MALLOC + + + diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h new file mode 100644 index 00000000000..e9754af045a --- /dev/null +++ b/src/s/bsd4-3.h @@ -0,0 +1,129 @@ +/* Definitions file for GNU Emacs running on bsd 4.3 + 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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#ifndef BSD4_3 +#define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */ +#endif /* BSD4_3 */ + +#ifndef BSD +#define BSD4_3 1 +#endif /* BSD */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "berkeley-unix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Do not use interrupt_input = 1 by default, because in 4.3 + we can make noninterrupt input work properly. */ + +#undef INTERRUPT_INPUT + +/* First pty name is /dev/ptyp0. */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +#define MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" diff --git a/src/s/hpux.h b/src/s/hpux.h new file mode 100644 index 00000000000..5920a1c2180 --- /dev/null +++ b/src/s/hpux.h @@ -0,0 +1,260 @@ +/* Definitions file for GNU Emacs running on HPUX release 7.0. + Based on AT&T System V.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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +#define HPUX + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "hpux" + +/* `nomultiplejobs' should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). + + On hpux this depends on the precise kind of machine in use, + so the m- file defines this symbol if appropriate. */ + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* Says to include time.h, and not include sys/time.h. */ + +#define NEED_TIME_H + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* With HAVE_TIMEVAL define, Emacs expects to use `utimes'. + But HPUX does not have one. */ + +#define MISSING_UTIMES + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. + * s800 and later versions of s300 (s200) kernels have equivilents + * of the BSTRING functions of BSD. If your s200 kernel doesn't have + * em comment out this section. + */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Say we have the SYSV style of interprocess communication. */ + +#define HAVE_SYSVIPC + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. + + Some USG systems support long names. + If yours is one, DO NOT change this file! + Do #undef SHORTNAMES in the m- file or in config.h. */ + +/* #define SHORTNAMES */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /hp-ux. */ + +#define KERNEL_FILE "/hp-ux" + +/* The symbol in the kernel where the load average is found + depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */ + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +/* HPUX has sigsetmask */ +/* #define sigsetmask(mask) / * Null expansion * / */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +/* HP-UX has _setjmp and _longjmp */ +/* +#define _setjmp setjmp +#define _longjmp longjmp +*/ + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* Use the system provided termcap(3) library */ +#define TERMINFO + +/* The 48-bit versions are more winning for Emacs. */ + +#define rand lrand48 +#define srand srand48 + +/* In hpux, the symbol SIGIO is defined, but the feature + does not really exist. + + Here we assume that signal.h is included before config.h + so that we can override it here. */ + +#undef SIGIO + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#define static + +/* Define extra libraries to load. + This should have -lBSD, but that library is said to make + `signal' fail to work. */ + +#ifdef HPUX_NET +#define LIBS_SYSTEM -ln +#else +#define LIBS_SYSTEM +#endif + +/* Some additional system facilities exist. */ + +#define HAVE_DUP2 +#define HAVE_GETTIMEOFDAY +#define HAVE_VFORK +#define HAVE_PERROR /* Delete this line for version 6. */ + +/* The following maps shared exec file to demand loaded exec. + Don't do this as demand loaded exec is broken in hpux. */ + +#if 0 + +/* Adjust a header field for the executable file about to be dumped. */ + +#define ADJUST_EXEC_HEADER \ + hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ? \ + NEWMAGIC : ohdr.a_magic); + +#endif + +/* Baud-rate values in tty status have nonstandard meanings. */ + +#define BAUD_CONVERT \ +{ 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \ + 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 } + +/* This is needed for HPUX version 6.2; it may not be needed for 6.2.1. */ +#define SHORT_CAST_BUG + +/* This is how to get the device name of the tty end of a pty. */ +#define PTY_TTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/pty/tty%c%x", c, i); + +/* This is how to get the device name of the control end of a pty. */ +#define PTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/ptym/pty%c%x", c, i); diff --git a/src/s/hpux8.h b/src/s/hpux8.h new file mode 100644 index 00000000000..ac047147295 --- /dev/null +++ b/src/s/hpux8.h @@ -0,0 +1,13 @@ +/* system description file for hpux version 8. + This contains changes that were suggested "for the hp700". + They were not needed for the 800. + Our conjecture that they are needed for hpux version 8, + which is what runs on the 700. */ + +#include "hpux.h" + +#define LIB_X11_LIB -L/usr/lib/X11R4 -lX11 +#define C_SWITCH_SYSTEM -I/usr/include/X11R4 + +/* Don't use shared libraries. unexec doesn't handle them. */ +#define LD_SWITCH_SYSTEM -a archive diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h new file mode 100644 index 00000000000..d295fe30cb4 --- /dev/null +++ b/src/s/iris3-6.h @@ -0,0 +1,193 @@ +/* Definitions file for GNU Emacs running on Silicon Graphics system 3.6. + 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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG +#define USG5 +#define IRIS + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "irix" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'a' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* `utime' system call doesn't understand timevals. */ + +#define IRIS_UTIME + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /vmunix. */ + +#define KERNEL_FILE "/vmunix" + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ +#define sigblock(x) x + +/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */ +#undef SIGIO + +#define LIBS_MACHINE -lbsd -ldbm -lPW +#define C_SWITCH_MACHINE -I/usr/include/bsd + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +/* #define static */ + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0) + +/* some errno.h's don't actually allocate the variable itself */ + +#define NEED_ERRNO + +/* This is how to get the device name of the tty end of a pty. */ +#define PTY_TTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev)); diff --git a/src/s/isc2-2.h b/src/s/isc2-2.h new file mode 100644 index 00000000000..907974abd1f --- /dev/null +++ b/src/s/isc2-2.h @@ -0,0 +1,13 @@ +/* system description file for Interactive (ISC) Unix version 2.2 on + the 386. */ + +#include "usg5-3.h" + +#define HAVE_PTYS +#define HAVE_RENAME +#define HAVE_CLOSEDIR +#define MAXNAMLEN 512 +#define LIB_STANDARD -lcposix -lc +#define O_NDELAY O_NONBLOCK +#define MEMORY_IN_STRING_H +#undef SIGTSTP diff --git a/src/s/rtu.h b/src/s/rtu.h new file mode 100644 index 00000000000..273db7a3064 --- /dev/null +++ b/src/s/rtu.h @@ -0,0 +1,172 @@ +/* Definitions file for GNU Emacs running on RTU 3.0, ucb universe. + Copyright (C) 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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define BSD4_2 +#define BSD +#define RTU + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "rtu" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvatages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. +*/ + +#undef INTERRUPT_INPUT + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'z' /* i.e. no PTY_LETTERs */ + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +#define HAVE_SELECT + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* Define this macro if system defines a type `union wait'. */ + +#define HAVE_UNION_WAIT + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +#define HAVE_SOCKETS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ +/* The system library bcopy() is broken in RTU. For one thing, it expects + the length to be less than 64k. */ +#undef BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#undef COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +#undef MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#undef CLASH_DETECTION + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The symbol in the kernel where the load average is found + is named _avenrun. */ + +#define LDAV_SYMBOL "_avenrun" + +/* Special hacks needed to make Emacs run on this system. */ + +/* On RTU systems (like USG) the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define open sys_open +#define write sys_write + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_IO + +/* The "fsync" call on RTU versions 3.0 and 3.1 is badly broken! + This hack below isn't the best solution, but without it this + program will cause the whole system to hang! !@#$#%$ Masscomp! */ + +#define fsync(x) 0 /* "Comment out" fsync calls */ + +/* RTU has IPC instead of Unix-domain sockets. */ + +#define HAVE_SYSVIPC + +/* This is how to get the device name of the tty end of a pty. */ +#define PTY_TTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/ttyp%x", i); + +/* This is how to get the device name of the control end of a pty. */ +#define PTY_NAME_SPRINTF \ + sprintf (ptyname, "/dev/pty%x", i); diff --git a/src/s/sunos4shr.h b/src/s/sunos4shr.h new file mode 100644 index 00000000000..2b665513b19 --- /dev/null +++ b/src/s/sunos4shr.h @@ -0,0 +1,30 @@ +#include "bsd4-2.h" + +/* Say that the text segment of a.out includes the header; + the header actually occupies the first few bytes of the text segment + and is counted in hdr.a_text. */ + +#define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */ + +/* In SunOS 4.1, a static function called by tzsetwall reportedly + clears the byte just past an eight byte region it mallocs, corrupting + GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */ + +#define SYSTEM_MALLOC + +/* Misleading! Actually gets loaded after crt0.o */ +#define START_FILES pre-crt0.o + +/* + * Kludge! can't get at symbol "start" in std crt0.o + * Who the #$%&* decided to remove the __ characters! + * Someone needs to fix this in sysdep.c with an #ifdef BROKEN_START in + * sysdep.c. We do not use this address so any value should do really. Still + * may need it in the future? + */ +#define BROKEN_START +#define TEXT_START 0x2020 + +#define UNEXEC unexsunos4.o +#define RUN_TIME_REMAP +#define LD_CMD cc diff --git a/src/s/template.h b/src/s/template.h new file mode 100644 index 00000000000..6cf4905db3e --- /dev/null +++ b/src/s/template.h @@ -0,0 +1,143 @@ +/* Template for system description header files. + This file describes the parameters that system description files + should define or not. + 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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +/* #define UNIPLUS */ +/* #define USG5 */ +/* #define USG */ +/* #define HPUX */ +/* #define UMAX */ +/* #define BSD4_1 */ +/* #define BSD4_2 */ +/* #define BSD4_3 */ +/* #define BSD */ +/* #define VMS */ + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "berkeley-unix" + +/* NOMULTIPLEJOBS should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +/* #define NOMULTIPLEJOBS */ + +/* Emacs can read input using SIGIO and buffering characters itself, + or using CBREAK mode and making C-g cause SIGINT. + The choice is controlled by the variable interrupt_input. + Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) + + SIGIO can be used only on systems that implement it (4.2 and 4.3). + CBREAK mode has two disadvatages + 1) At least in 4.2, it is impossible to handle the Meta key properly. + I hear that in system V this problem does not exist. + 2) Control-G causes output to be discarded. + I do not know whether this can be fixed in system V. + + Another method of doing input is planned but not implemented. + It would have Emacs fork off a separate process + to read the input and send it to the true Emacs process + through a pipe. +*/ + +#define INTERRUPT_INPUT + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'a' means it is /dev/ptya0 */ + +#define FIRST_PTY_LETTER 'a' + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +#define HAVE_TIMEVAL + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +#define HAVE_PTYS + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +#define NONSYSTEM_DIR_LIBRARY + +/* Define this symbol if your system has the functions bcopy, etc. */ + +#define BSTRING + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is generally OS dependent, and not supported + under most USG systems. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +/* #define COFF */ + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +#define MAIL_USE_FLOCK + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +#define CLASH_DETECTION + +/* Here, on a separate page, add any special hacks needed + to make Emacs work on this system. For example, + you might define certain system call names that don't + exist on your system, or that do different things on + your system and must be used only through an encapsulation + (Which you should place, by convention, in sysdep.c). */ + +/* Some compilers tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + On these systems, you must #define static as nothing to foil this. + Note that emacs carefully avoids static vars inside functions. */ + +/* #define static */ diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h new file mode 100644 index 00000000000..c54ec479e65 --- /dev/null +++ b/src/s/usg5-3.h @@ -0,0 +1,215 @@ +/* Definitions file for GNU Emacs running on AT&T's System V Release 3 + 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. */ + + +/* + * Define symbols to identify the version of Unix this is. + * Define all the symbols that apply correctly. + */ + +#define USG /* System III, System V, etc */ + +#define USG5 + +/* SYSTEM_TYPE should indicate the kind of system you are using. + It sets the Lisp variable system-type. */ + +#define SYSTEM_TYPE "usg-unix-v" + +/* nomultiplejobs should be defined if your system's shell + does not have "job control" (the ability to stop a program, + run some other program, then continue the first one). */ + +#define NOMULTIPLEJOBS + +/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ + +/* #define INTERRUPT_INPUT */ + +/* Letter to use in finding device name of first pty, + if system supports pty's. 'p' means it is /dev/ptyp0 */ + +#define FIRST_PTY_LETTER 'p' + +/* + * Define HAVE_TERMIO if the system provides sysV-style ioctls + * for terminal control. + */ + +#define HAVE_TERMIO + +/* + * Define HAVE_TIMEVAL if the system supports the BSD style clock values. + * Look in <sys/time.h> for a timeval structure. + */ + +/* #define HAVE_TIMEVAL */ + +/* + * Define HAVE_SELECT if the system supports the `select' system call. + */ + +/* #define HAVE_SELECT */ + +/* + * Define HAVE_PTYS if the system supports pty devices. + */ + +/* Some versions of V.3 have this, but not all. + #define HAVE_PTYS + #define SYSV_PTYS */ + +/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ + +/* #define HAVE_SOCKETS */ + +/* + * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate + * The 4.2 opendir, etc., library functions. + */ + +/* #define NONSYSTEM_DIR_LIBRARY */ + +/* + * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir + * library functions. Almost, but not quite the same as + * the 4.2 functions + */ +#define SYSV_SYSTEM_DIR + +/* Define this symbol if your system has the functions bcopy, etc. */ + +/* #define BSTRING */ + +/* subprocesses should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + This is supposed to work now on system V release 2. */ + +#define subprocesses + +/* If your system uses COFF (Common Object File Format) then define the + preprocessor symbol "COFF". */ + +#define COFF + +/* define MAIL_USE_FLOCK if the mailer uses flock + to interlock access to /usr/spool/mail/$USER. + The alternative is that a lock file named + /usr/spool/mail/$USER.lock. */ + +/* #define MAIL_USE_FLOCK */ + +/* Define CLASH_DETECTION if you want lock files to be written + so that Emacs can tell instantly when you try to modify + a file that someone else has modified in his Emacs. */ + +/* #define CLASH_DETECTION */ + +/* Define SHORTNAMES if the C compiler can distinguish only + short names. It means that the stuff in ../shortnames + must be run to convert the long names to short ones. */ + +/* #define SHORTNAMES */ + +/* We use the Berkeley (and usg5.2.2) interface to nlist. */ + +#define NLIST_STRUCT + +/* The file containing the kernel's symbol table is called /unix. */ + +#define KERNEL_FILE "/unix" + +/* The symbol in the kernel where the load average is found + is named avenrun. */ + +#define LDAV_SYMBOL "avenrun" + +/* Define this if system V IPC is available. */ + +#define HAVE_SYSVIPC + +/* Special hacks needed to make Emacs run on this system. */ + +/* + * Make the sigsetmask function go away. Don't know what the + * ramifications of this are, but doesn't seem possible to + * emulate it properly anyway at this point. + */ + +#define sigsetmask(mask) /* Null expansion */ + +/* setjmp and longjmp can safely replace _setjmp and _longjmp, + but they will run slower. */ + +#define _setjmp setjmp +#define _longjmp longjmp + +/* On USG systems the system calls are interruptable by signals + that the user program has elected to catch. Thus the system call + must be retried in these cases. To handle this without massive + changes in the source code, we remap the standard system call names + to names for our own functions in sysdep.c that do the system call + with retries. */ + +#define read sys_read +#define write sys_write +#define open sys_open +#define close sys_close + +#define INTERRUPTIBLE_OPEN +#define INTERRUPTIBLE_CLOSE +#define INTERRUPTIBLE_IO + +/* On USG systems these have different names */ + +#define index strchr +#define rindex strrchr + +/* USG systems tend to put everything declared static + into the initialized data area, which becomes pure after dumping Emacs. + Foil this. Emacs carefully avoids static vars inside functions. */ + +#define static + +/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ + +#define ADDR_CORRECT(x) (x) + +/* Prevent -lg from being used for debugging. Not implemented? */ + +#define LIBS_DEBUG + +/* Use terminfo instead of termcap. */ + +#define TERMINFO + +/* X needs to talk on the network, so search the network library. */ + +#define LIBX10_SYSTEM -lnsl_s +#define LIBX11_SYSTEM -lnsl_s + +/* Some variants have TIOCGETC, but the structures to go with it + are not declared. */ + +#define BROKEN_TIOCGETC + +/* Enable support for shared libraries in unexec. */ + +#define USG_SHARED_LIBRARIES diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h new file mode 100644 index 00000000000..817ff0644a8 --- /dev/null +++ b/src/s/usg5-4.h @@ -0,0 +1,163 @@ +/* Definitions file for GNU Emacs running on AT&T's System V Release 4 + Copyright (C) 1987 Free Software Foundation, Inc. + +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. */ + +/* This file written by James Van Artsdalen of Dell Computer Corporation. + * james@bigtex.cactus.org. + */ + +/* Use the SysVr3 file for at least base configuration. */ + +#include "usg5-3.h" + +#define USG5_4 + +/* We do have multiple jobs. Handle ^Z. */ + +#undef NOMULTIPLEJOBS + +/* If compiled by GNU C, we must have gnulib */ + +#ifdef __GNUC__ +#define GNULIB /usr/local/lib/gcc-gnulib +#define LIBS_DEBUG +#else +#define GNULIB +#endif + +#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o + +#define LIB_STANDARD GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o + +#define DATA_SEG_BITS 0x08000000 + +/* Use ptem.h to get structures related to windows. */ + +#define NEED_PTEM_H + +/* Undump with ELF */ + +#undef COFF + +#define UNEXEC unexelf.o + +/* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct + * tchars. But get <termio.h> first to make sure ttold.h doesn't + * interfere. And don't try to use SIGIO yet. + */ + +#ifdef emacs +#include <sys/filio.h> +#include <termio.h> +#include <sys/ttold.h> +#include <signal.h> +#undef SIGIO +#endif + +/* libc has this stuff, but not utimes. */ + +#define HAVE_RENAME +#define HAVE_SELECT +#define HAVE_TIMEVAL +#define HAVE_CLOSEDIR +#define HAVE_GETTIMEOFDAY +#define HAVE_DUP2 + +#define USE_UTIME + +/* <sys/stat.h> *defines* stat(2) as a static function. If "static" + * is blank, then many files will have a public definition for stat(2). + */ + +#undef static + +/* We need bss_end from emacs.c for undumping */ + +#ifndef USG_SHARED_LIBRARIES +#define USG_SHARED_LIBRARIES +#endif + +/* We can support this */ + +#define CLASH_DETECTION + +#define HAVE_PTYS +#define HAVE_SETSID + +/* It is possible to receive SIGCHLD when there are no children + waiting, because a previous waitsys(2) cleaned up the carcass of child + without clearing the SIGCHLD pending info. So, use a non-blocking + wait3 instead, which maps to waitpid(2) in SysVr4. */ + +#define HAVE_WAIT_HEADER +#define WAITTYPE int +#define wait3(status, options, rusage) \ + waitpid((pid_t) -1, (status), (options)) +#define WRETCODE(w) (w >> 8) + +/* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY + subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and + this is all we need. */ + +#define TIOCSIGSEND TIOCSIGNAL + +/* This change means that we don't loop through allocate_pty too many + times in the (rare) event of a failure. */ + +#undef FIRST_PTY_LETTER +#define FIRST_PTY_LETTER 'z' + +/* This sets the name of the master side of the PTY. */ + +#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); + +/* This sets the name of the slave side of the PTY. On SysVr4, + grantpt(3) forks a subprocess, so keep sigchld_handler() from + intercepting that death. If any child but grantpt's should die + within, it should be caught after sigrelse(2). */ + +#define PTY_TTY_NAME_SPRINTF \ + { \ + char *ptsname(), *ptyname; \ + \ + sighold(SIGCLD); \ + if (grantpt(fd) == -1) \ + fatal("could not grant slave pty"); \ + sigrelse(SIGCLD); \ + if (unlockpt(fd) == -1) \ + fatal("could not unlock slave pty"); \ + if (!(ptyname = ptsname(fd))) \ + fatal ("could not enable slave pty"); \ + strncpy(pty_name, ptyname, sizeof(pty_name)); \ + pty_name[sizeof(pty_name) - 1] = 0; \ + } + +/* Push various streams modules onto a PTY channel. */ + +#define SETUP_SLAVE_PTY \ + if (ioctl (xforkin, I_PUSH, "ptem") == -1) \ + fatal ("ioctl I_PUSH ptem", errno); \ + if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \ + fatal ("ioctl I_PUSH ldterm", errno); \ + if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \ + fatal ("ioctl I_PUSH ttcompat", errno); + +/* The definition of this in usg5-3.h is not needed in 5.4. */ + +#undef LIBX11_SYSTEM |