diff options
| author | Jim Blandy | 1991-12-13 18:49:49 +0000 |
|---|---|---|
| committer | Jim Blandy | 1991-12-13 18:49:49 +0000 |
| commit | 20c428fd9d239eca0a835e3b0fe2629e789ce562 (patch) | |
| tree | c9dc47c923acc0f7db3dd699bd7e38e7b20893cc /src | |
| parent | 20a8832d8461fec6001e0f9d09bbb4731c585a84 (diff) | |
| download | emacs-20c428fd9d239eca0a835e3b0fe2629e789ce562.tar.gz emacs-20c428fd9d239eca0a835e3b0fe2629e789ce562.zip | |
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 @@ | |||
| 1 | /* machine description file for AT&T UNIX PC model 7300 | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | Modified for this machine by mtxinu!rtech!gonzo!daveb | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="usg5-2-2" */ | ||
| 25 | |||
| 26 | /* Supposedly now these machines have flexnames. | ||
| 27 | |||
| 28 | /* # define SHORTNAMES */ | ||
| 29 | |||
| 30 | |||
| 31 | /* The following three symbols give information on | ||
| 32 | the size of various data types. */ | ||
| 33 | |||
| 34 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 35 | |||
| 36 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 37 | |||
| 38 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 39 | |||
| 40 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 41 | is the most significant byte. */ | ||
| 42 | |||
| 43 | #define BIG_ENDIAN | ||
| 44 | |||
| 45 | /* XINT must explicitly sign-extend */ | ||
| 46 | |||
| 47 | #define EXPLICIT_SIGN_EXTEND | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 55 | |||
| 56 | #define NO_UNION_TYPE | ||
| 57 | |||
| 58 | /* Now define a symbol for the cpu type, if your compiler | ||
| 59 | does not define it automatically: | ||
| 60 | vax, m68000, ns16000 are the ones defined so far. */ | ||
| 61 | |||
| 62 | # ifndef mc68k | ||
| 63 | # define mc68k | ||
| 64 | # endif | ||
| 65 | #ifndef m68k | ||
| 66 | #define m68k | ||
| 67 | #endif | ||
| 68 | |||
| 69 | /* Cause crt0.c to define errno. */ | ||
| 70 | |||
| 71 | #define NEED_ERRNO | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | /* These are commented out since it is not supported by this machine. */ | ||
| 75 | |||
| 76 | /* #define LOAD_AVE_TYPE long */ | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */ | ||
| 81 | |||
| 82 | #define SWITCH_ENUM_BUG | ||
| 83 | |||
| 84 | /* These three lines were new in 18.50. They were said to permit | ||
| 85 | a demand-paged executable, but someone else says they don't work. | ||
| 86 | Someone else says they do. They didn't work because errno was an | ||
| 87 | initialized variable in crt0.c, and because of %splimit (also therein), | ||
| 88 | both of which have been fixed now. */ | ||
| 89 | #define SECTION_ALIGNMENT 0x03ff | ||
| 90 | #define SEGMENT_MASK 0xffff | ||
| 91 | #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 @@ | |||
| 1 | /* alliant.h Alliant machine running system version 2 or 3. | ||
| 2 | Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc. | ||
| 3 | Note that for version 1 of the Alliant system | ||
| 4 | you should use alliant1.h instead of this file. | ||
| 5 | Use alliant4.h for version 4. | ||
| 6 | |||
| 7 | This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 10 | it under the terms of the GNU General Public License as published by | ||
| 11 | the Free Software Foundation; either version 1, or (at your option) | ||
| 12 | any later version. | ||
| 13 | |||
| 14 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | GNU General Public License for more details. | ||
| 18 | |||
| 19 | You should have received a copy of the GNU General Public License | ||
| 20 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 21 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 22 | |||
| 23 | /* The following line tells the configuration script what sort of | ||
| 24 | operating system this machine is likely to run. | ||
| 25 | USUAL-OPSYS="bsd4-2" */ | ||
| 26 | |||
| 27 | /* The following three symbols give information on | ||
| 28 | the size of various data types. */ | ||
| 29 | |||
| 30 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 31 | |||
| 32 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 33 | |||
| 34 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 35 | |||
| 36 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 37 | is the most significant byte. */ | ||
| 38 | |||
| 39 | #define BIG_ENDIAN | ||
| 40 | |||
| 41 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 42 | * group of arguments and treat it as an array of the arguments. */ | ||
| 43 | |||
| 44 | #ifdef ALLIANT_1 | ||
| 45 | #define NO_ARG_ARRAY | ||
| 46 | #endif | ||
| 47 | |||
| 48 | /* Define WORD_MACHINE if addresses and such have | ||
| 49 | * to be corrected before they can be used as byte counts. */ | ||
| 50 | |||
| 51 | #undef WORD_MACHINE | ||
| 52 | |||
| 53 | /* Define how to take a char and sign-extend into an int. | ||
| 54 | On machines where char is signed, this is a no-op. */ | ||
| 55 | |||
| 56 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 57 | |||
| 58 | /* Now define a symbol for the cpu type, if your compiler | ||
| 59 | does not define it automatically: | ||
| 60 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 61 | are the ones defined so far. */ | ||
| 62 | |||
| 63 | #define ALLIANT | ||
| 64 | |||
| 65 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 66 | /* This is desirable for most machines. */ | ||
| 67 | |||
| 68 | #define NO_UNION_TYPE | ||
| 69 | |||
| 70 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 71 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 72 | are always unsigned. | ||
| 73 | |||
| 74 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 75 | /* On Alliants, bitfields are unsigned. */ | ||
| 76 | |||
| 77 | #define EXPLICIT_SIGN_EXTEND | ||
| 78 | |||
| 79 | /* No load average information available for Alliants. */ | ||
| 80 | |||
| 81 | #undef LOAD_AVE_TYPE | ||
| 82 | #undef LOAD_AVE_CVT | ||
| 83 | |||
| 84 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 85 | Then the function dump-emacs will not be defined | ||
| 86 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 87 | |||
| 88 | #undef CANNOT_DUMP | ||
| 89 | |||
| 90 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 91 | pure and impure space as loaded can vary, and even their | ||
| 92 | relative order cannot be relied on. | ||
| 93 | |||
| 94 | Otherwise Emacs assumes that text space precedes data space, | ||
| 95 | numerically. */ | ||
| 96 | |||
| 97 | #undef VIRT_ADDR_VARIES | ||
| 98 | |||
| 99 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 100 | and the one written in C should be used instead. | ||
| 101 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 102 | working alloca function and it should be used. | ||
| 103 | Define neither one if an assembler-language alloca | ||
| 104 | in the file alloca.s should be used. */ | ||
| 105 | |||
| 106 | #undef C_ALLOCA | ||
| 107 | #define HAVE_ALLOCA | ||
| 108 | |||
| 109 | #ifdef ALLIANT_1 | ||
| 110 | #define C_ALLOCA | ||
| 111 | #undef HAVE_ALLOCA | ||
| 112 | #endif /* ALLIANT_1 */ | ||
| 113 | |||
| 114 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 115 | to change the boundary between the text section and data section | ||
| 116 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 117 | code will not be sharable; but that's better than failing completely. */ | ||
| 118 | /* Actually, Alliant CONCENTRIX does paging "right": | ||
| 119 | data pages are copy-on-write, which means that the pure data areas | ||
| 120 | are shared automatically and remapping is not necessary. */ | ||
| 121 | |||
| 122 | #define NO_REMAP | ||
| 123 | |||
| 124 | /* Alliant needs special crt0.o because system version is not reentrant */ | ||
| 125 | |||
| 126 | #define START_FILES crt0.o | ||
| 127 | |||
| 128 | /* Alliant dependent code for dumping executing image. | ||
| 129 | See crt0.c code for alliant. */ | ||
| 130 | |||
| 131 | #define ADJUST_EXEC_HEADER {\ | ||
| 132 | extern int _curbrk, _setbrk;\ | ||
| 133 | _setbrk = _curbrk;\ | ||
| 134 | hdr.a_bss_addr = bss_start;\ | ||
| 135 | unexec_text_start = hdr.a_text_addr;} | ||
| 136 | |||
| 137 | /* cc screws up on long names. Try making cpp replace them. */ | ||
| 138 | |||
| 139 | #ifdef ALLIANT_1 | ||
| 140 | #define Finsert_abbrev_table_description Finsert_abbrev_table_descrip | ||
| 141 | #define internal_with_output_to_temp_buffer internal_with_output_to_tem | ||
| 142 | #endif | ||
| 143 | |||
| 144 | /* "vector" is a typedef in /usr/include/machine/reg.h, so its use as | ||
| 145 | a variable name causes errors when compiling under ANSI C. */ | ||
| 146 | |||
| 147 | #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 @@ | |||
| 1 | /* altos machine description file Altos 3068 Unix System V Release 2 | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Vax is not big-endian: lowest numbered byte is least significant, | ||
| 35 | but 68000's are. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define how to take a char and sign-extend into an int. | ||
| 40 | On machines where char is signed, this is a no-op. */ | ||
| 41 | |||
| 42 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 43 | |||
| 44 | #define EXPLICIT_SIGN_EXTEND | ||
| 45 | |||
| 46 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 47 | |||
| 48 | #define NO_UNION_TYPE | ||
| 49 | |||
| 50 | #define LIB_STANDARD -lc | ||
| 51 | |||
| 52 | #ifdef __GNUC__ | ||
| 53 | #define alloca __builtin_alloca | ||
| 54 | #define HAVE_ALLOCA | ||
| 55 | #else | ||
| 56 | #define C_ALLOCA /* we have -lPW and alloca but it's broken! | ||
| 57 | <vsedev!ron> */ | ||
| 58 | #endif | ||
| 59 | |||
| 60 | #define SWITCH_ENUM_BUG | ||
| 61 | |||
| 62 | #define NO_REMAP | ||
| 63 | #define STACK_DIRECTION -1 | ||
| 64 | |||
| 65 | #undef TERMINFO | ||
| 66 | |||
| 67 | #undef CANNOT_DUMP | ||
| 68 | #undef SHORTNAMES | ||
| 69 | #define TERMCAP | ||
| 70 | |||
| 71 | #define LIBS_TERMCAP -ltermlib | ||
| 72 | #define PURESIZE 220000 | ||
| 73 | #define ALTOS | ||
| 74 | |||
| 75 | #ifdef __GNUC__ | ||
| 76 | #define COFF_ENCAPSULATE | ||
| 77 | #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 @@ | |||
| 1 | /* amdahl machine description file | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | /* | ||
| 21 | This file for amdahl_uts created by modifying the template.h | ||
| 22 | by Jishnu Mukerji 3/1/87 | ||
| 23 | |||
| 24 | The following line tells the configuration script what sort of | ||
| 25 | operating system this machine is likely to run. | ||
| 26 | USUAL-OPSYS="usg5-2-2" | ||
| 27 | |||
| 28 | This file works with the Amdahl uts native C compiler. The 5.2u370 | ||
| 29 | compiler is so brain damaged that it is not even worth trying to use it. | ||
| 30 | */ | ||
| 31 | |||
| 32 | /* The following three symbols give information on | ||
| 33 | the size of various data types. */ | ||
| 34 | |||
| 35 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 36 | |||
| 37 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 38 | |||
| 39 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 40 | |||
| 41 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 42 | is the most significant byte. */ | ||
| 43 | |||
| 44 | #define BIG_ENDIAN | ||
| 45 | |||
| 46 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 47 | * group of arguments and treat it as an array of the arguments. */ | ||
| 48 | |||
| 49 | #undef NO_ARG_ARRAY | ||
| 50 | |||
| 51 | /* Define WORD_MACHINE if addresses and such have | ||
| 52 | * to be corrected before they can be used as byte counts. */ | ||
| 53 | |||
| 54 | #define WORD_MACHINE /* not actually used anywhere yet! */ | ||
| 55 | |||
| 56 | /* Define how to take a char and sign-extend into an int. | ||
| 57 | On machines where char is signed, this is a no-op. */ | ||
| 58 | |||
| 59 | #define SIGN_EXTEND_CHAR(c) (((sign_extend_temp=(c)) & 0x80) \ | ||
| 60 | ? (sign_extend_temp | 0xFFFFFF00) \ | ||
| 61 | : (sign_extend_temp)) | ||
| 62 | |||
| 63 | /* Now define a symbol for the cpu type, if your compiler | ||
| 64 | does not define it automatically: | ||
| 65 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 66 | are the ones defined so far. */ | ||
| 67 | |||
| 68 | /* uts gets defined automatically */ | ||
| 69 | /* However for clarity define amdahl_uts */ | ||
| 70 | #define amdahl_uts | ||
| 71 | |||
| 72 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 73 | /* This is desirable for most machines. */ | ||
| 74 | |||
| 75 | #define NO_UNION_TYPE | ||
| 76 | |||
| 77 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 78 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 79 | are always unsigned. | ||
| 80 | |||
| 81 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 82 | |||
| 83 | #define EXPLICIT_SIGN_EXTEND | ||
| 84 | |||
| 85 | /* Data type of load average, as read out of kmem. */ | ||
| 86 | |||
| 87 | /* #define LOAD_AVE_TYPE long*/ | ||
| 88 | |||
| 89 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 90 | |||
| 91 | /*#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)*/ | ||
| 92 | |||
| 93 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 94 | Then the function dump-emacs will not be defined | ||
| 95 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 96 | |||
| 97 | /* #define CANNOT_DUMP | ||
| 98 | |||
| 99 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 100 | pure and impure space as loaded can vary, and even their | ||
| 101 | relative order cannot be relied on. | ||
| 102 | |||
| 103 | Otherwise Emacs assumes that text space precedes data space, | ||
| 104 | numerically. */ | ||
| 105 | |||
| 106 | /* #define VIRT_ADDR_VARIES*/ | ||
| 107 | |||
| 108 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 109 | and the one written in C should be used instead. | ||
| 110 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 111 | working alloca function and it should be used. | ||
| 112 | Define neither one if an assembler-language alloca | ||
| 113 | in the file alloca.s should be used. */ | ||
| 114 | |||
| 115 | #define C_ALLOCA | ||
| 116 | /*#define HAVE_ALLOCA */ | ||
| 117 | |||
| 118 | #ifdef HAVE_ALLOCA | ||
| 119 | #define LIB_STANDARD -lPW -lc | ||
| 120 | #endif | ||
| 121 | |||
| 122 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 123 | to change the boundary between the text section and data section | ||
| 124 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 125 | code will not be sharable; but that's better than failing completely. */ | ||
| 126 | |||
| 127 | /*#define NO_REMAP*/ | ||
| 128 | |||
| 129 | #define TERMINFO | ||
| 130 | |||
| 131 | /* The usual definition of XINT, which involves shifting, does not | ||
| 132 | sign-extend properly on this machine. */ | ||
| 133 | |||
| 134 | #define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \ | ||
| 135 | ? (sign_extend_temp | 0xFF000000) \ | ||
| 136 | : (sign_extend_temp & 0x00FFFFFF)) | ||
| 137 | |||
| 138 | #ifdef emacs /* Don't do this when making xmakefile! */ | ||
| 139 | extern int sign_extend_temp; | ||
| 140 | #endif | ||
| 141 | |||
| 142 | /* The following needed to load the proper crt0.o and to get the | ||
| 143 | proper declaration of data_start in the #undef NO_REMAP case */ | ||
| 144 | |||
| 145 | #ifndef NO_REMAP | ||
| 146 | #define START_FILES pre-crt0.o /lib/crt0.o | ||
| 147 | #endif | ||
| 148 | |||
| 149 | /* Perhaps this means that the optimizer isn't safe to use. */ | ||
| 150 | |||
| 151 | #define C_OPTIMIZE_SWITCH | ||
| 152 | |||
| 153 | /* Put text and data on non-segment boundary; makes image smaller */ | ||
| 154 | |||
| 155 | #define LD_SWITCH_MACHINE -N | ||
| 156 | |||
| 157 | /* When writing the 'xemacs' file, make text segment ro */ | ||
| 158 | #define EXEC_MAGIC 0410 | ||
| 159 | |||
| 160 | /* Mask for address bits within a memory segment */ | ||
| 161 | #define SEGSIZ 0x10000 /* Should this not be defined elsewhere ? */ | ||
| 162 | #define SEGMENT_MASK (SEGSIZ - 1) | ||
| 163 | |||
| 164 | /* Tell alloca.c which direction stack grows. */ | ||
| 165 | #define STACK_DIRECTION -1 | ||
| 166 | |||
| 167 | /* Compensate for error in signal.h. */ | ||
| 168 | #if NSIG==19 | ||
| 169 | #undef NSIG | ||
| 170 | #define NSIG 20 | ||
| 171 | #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 @@ | |||
| 1 | /* machine description file for Apollo machine. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define how to take a char and sign-extend into an int. | ||
| 39 | On machines where char is signed, this is a no-op. */ | ||
| 40 | |||
| 41 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 42 | |||
| 43 | /* Say this machine is a 68000 */ | ||
| 44 | |||
| 45 | /* #define m68000 */ /* Done by the C compiler */ | ||
| 46 | |||
| 47 | #define APOLLO | ||
| 48 | |||
| 49 | /* Assume we use s-bsd4-3.h for system version 10. */ | ||
| 50 | |||
| 51 | #ifdef BSD4_3 | ||
| 52 | #define APOLLO_SR10 | ||
| 53 | #endif | ||
| 54 | |||
| 55 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 56 | |||
| 57 | #define NO_UNION_TYPE | ||
| 58 | |||
| 59 | /* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT | ||
| 60 | since there is no /dev/kmem */ | ||
| 61 | |||
| 62 | /* Define CANNOT_DUMP because it is impossible to dump. */ | ||
| 63 | |||
| 64 | #define CANNOT_DUMP | ||
| 65 | |||
| 66 | /* Define VIRT_ADDR_VARIES because the virtual addresses of | ||
| 67 | pure and impure space as loaded can vary, and even their | ||
| 68 | relative order cannot be relied on. */ | ||
| 69 | |||
| 70 | #define VIRT_ADDR_VARIES | ||
| 71 | |||
| 72 | /* Define HAVE_ALLOCA because we use the system's version of alloca. */ | ||
| 73 | |||
| 74 | #define HAVE_ALLOCA | ||
| 75 | |||
| 76 | /* DN460 has a 28 bit virtual address space, and 26 bits are often used */ | ||
| 77 | |||
| 78 | #define VALBITS 26 | ||
| 79 | #define GCTYPEBITS 5 | ||
| 80 | |||
| 81 | /* Prevent -lg from being used for debugging. Not needed. */ | ||
| 82 | |||
| 83 | #define LIBS_DEBUG | ||
| 84 | |||
| 85 | /* Must use the system's termcap. It does special things. */ | ||
| 86 | |||
| 87 | #define LIBS_TERMCAP -ltermcap | ||
| 88 | |||
| 89 | /* Must use the system's malloc and alloca. */ | ||
| 90 | |||
| 91 | #define SYSTEM_MALLOC | ||
| 92 | |||
| 93 | /* No crt0 is needed, but control where environ is allocated. */ | ||
| 94 | |||
| 95 | #define START_FILES pre-crt0.o | ||
| 96 | |||
| 97 | /* Apollo's bcopy said to lose on more than 16k bytes in SR9.5. */ | ||
| 98 | |||
| 99 | #ifndef APOLLO_SR10 | ||
| 100 | #undef BSTRING | ||
| 101 | #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 @@ | |||
| 1 | /* machine description file for Data General AViiON. | ||
| 2 | Copyright (C) 1985, 1986, 1991 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following three symbols give information on | ||
| 22 | the size of various data types. */ | ||
| 23 | |||
| 24 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 25 | |||
| 26 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 27 | |||
| 28 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 29 | |||
| 30 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 31 | is the most significant byte. */ | ||
| 32 | |||
| 33 | #define BIG_ENDIAN | ||
| 34 | |||
| 35 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 36 | * group of arguments and treat it as an array of the arguments. */ | ||
| 37 | |||
| 38 | #define NO_ARG_ARRAY | ||
| 39 | |||
| 40 | /* Define WORD_MACHINE if addresses and such have | ||
| 41 | * to be corrected before they can be used as byte counts. */ | ||
| 42 | |||
| 43 | #define WORD_MACHINE | ||
| 44 | |||
| 45 | /* Define how to take a char and sign-extend into an int. | ||
| 46 | On machines where char is signed, this is a no-op. */ | ||
| 47 | |||
| 48 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 49 | |||
| 50 | /* Define DATA_SEG_BITS if pointers need to be corrected with | ||
| 51 | a segment field. */ | ||
| 52 | |||
| 53 | #ifdef FIX_ADDRESS | ||
| 54 | #define DATA_SEG_BITS 0xef000000 | ||
| 55 | #endif | ||
| 56 | |||
| 57 | /* Now define a symbol for the cpu type, if your compiler | ||
| 58 | does not define it automatically: | ||
| 59 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 60 | orion, tahoe, APOLLO and many others */ | ||
| 61 | |||
| 62 | #ifndef m88k | ||
| 63 | #define m88k | ||
| 64 | #endif | ||
| 65 | |||
| 66 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 67 | /* This is desirable for most machines. */ | ||
| 68 | |||
| 69 | #define NO_UNION_TYPE | ||
| 70 | |||
| 71 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 72 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 73 | are always unsigned. | ||
| 74 | |||
| 75 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 76 | |||
| 77 | #define EXPLICIT_SIGN_EXTEND | ||
| 78 | |||
| 79 | /* Data type of load average, as read out of kmem. */ | ||
| 80 | |||
| 81 | /* #define LOAD_AVE_TYPE long */ | ||
| 82 | |||
| 83 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 84 | |||
| 85 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 86 | |||
| 87 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 88 | Then the function dump-emacs will not be defined | ||
| 89 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 90 | |||
| 91 | /* #define CANNOT_DUMP */ | ||
| 92 | |||
| 93 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 94 | pure and impure space as loaded can vary, and even their | ||
| 95 | relative order cannot be relied on. | ||
| 96 | |||
| 97 | Otherwise Emacs assumes that text space precedes data space, | ||
| 98 | numerically. */ | ||
| 99 | |||
| 100 | /* #define VIRT_ADDR_VARIES */ | ||
| 101 | |||
| 102 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 103 | and the one written in C should be used instead. | ||
| 104 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 105 | working alloca function and it should be used. | ||
| 106 | Define neither one if an assembler-language alloca | ||
| 107 | in the file alloca.s should be used. */ | ||
| 108 | |||
| 109 | /* #define C_ALLOCA */ | ||
| 110 | #define HAVE_ALLOCA | ||
| 111 | #define alloca(x) __builtin_alloca(x) | ||
| 112 | |||
| 113 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 114 | to change the boundary between the text section and data section | ||
| 115 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 116 | code will not be sharable; but that's better than failing completely. */ | ||
| 117 | |||
| 118 | #define NO_REMAP | ||
| 119 | |||
| 120 | /* Use 26 bits instead of 24 for internal pointer values */ | ||
| 121 | |||
| 122 | #define VALBITS 26 | ||
| 123 | #define GCTYPEBITS 5 | ||
| 124 | |||
| 125 | /* Define ADDR_CORRECT(ADDR) to be a macro to correct an int which is | ||
| 126 | the bit pattern of a pointer to a byte into an int which is the | ||
| 127 | number of a byte. | ||
| 128 | |||
| 129 | This macro has a default definition which is usually right. | ||
| 130 | This default definition is a no-op on most machines (where a | ||
| 131 | pointer looks like an int) but not on all machines. */ | ||
| 132 | |||
| 133 | #define ADDR_CORRECT(ADDR) ((int)ADDR) | ||
| 134 | |||
| 135 | /* Cast pointers to this type to compare them. */ | ||
| 136 | |||
| 137 | #define PNTR_COMPARISON_TYPE void * | ||
| 138 | |||
| 139 | /* Some machines that use COFF executables require that each section | ||
| 140 | start on a certain boundary *in the COFF file*. Such machines should | ||
| 141 | define SECTION_ALIGNMENT to a mask of the low-order bits that must be | ||
| 142 | zero on such a boundary. This mask is used to control padding between | ||
| 143 | segments in the COFF file. | ||
| 144 | |||
| 145 | If SECTION_ALIGNMENT is not defined, the segments are written | ||
| 146 | consecutively with no attempt at alignment. This is right for | ||
| 147 | unmodified system V. */ | ||
| 148 | |||
| 149 | #define SECTION_ALIGNMENT 0x7 | ||
| 150 | |||
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 @@ | |||
| 1 | /* machine description file for Celerity. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* XINT must explicitly sign extend */ | ||
| 40 | |||
| 41 | #define EXPLICIT_SIGN_EXTEND | ||
| 42 | |||
| 43 | /* Define how to take a char and sign-extend into an int. | ||
| 44 | On machines where char is signed, this is a no-op. */ | ||
| 45 | |||
| 46 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 47 | |||
| 48 | /* celerity preprocessor defines "accel", however the following is clearer */ | ||
| 49 | #define celerity | ||
| 50 | |||
| 51 | /* #define NO_UNION_TYPE would be preferable, | ||
| 52 | but it does not work, and the reason is not yet known. */ | ||
| 53 | |||
| 54 | #define NO_UNION_TYPE | ||
| 55 | |||
| 56 | /* Data type of load average, as read out of kmem. */ | ||
| 57 | |||
| 58 | #define LOAD_AVE_TYPE double | ||
| 59 | |||
| 60 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 61 | |||
| 62 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 63 | |||
| 64 | /* A machine-specific loader switch is needed. */ | ||
| 65 | |||
| 66 | #define LD_SWITCH_MACHINE -k100000 | ||
| 67 | |||
| 68 | /* alloca is provided by the system. */ | ||
| 69 | |||
| 70 | #define HAVE_ALLOCA | ||
| 71 | |||
| 72 | /* (short) negative-int doesn't sign-extend correctly */ | ||
| 73 | #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 @@ | |||
| 1 | /* machine description file for clipper | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following three symbols give information on | ||
| 22 | the size of various data types. */ | ||
| 23 | |||
| 24 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 25 | |||
| 26 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 27 | |||
| 28 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 29 | |||
| 30 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 31 | is the most significant byte. */ | ||
| 32 | |||
| 33 | /* #define BIG_ENDIAN */ | ||
| 34 | |||
| 35 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 36 | * group of arguments and treat it as an array of the arguments. */ | ||
| 37 | |||
| 38 | #define NO_ARG_ARRAY | ||
| 39 | |||
| 40 | /* Define WORD_MACHINE if addresses and such have | ||
| 41 | * to be corrected before they can be used as byte counts. */ | ||
| 42 | |||
| 43 | /* #define WORD_MACHINE */ | ||
| 44 | |||
| 45 | /* Define how to take a char and sign-extend into an int. | ||
| 46 | On machines where char is signed, this is a no-op. */ | ||
| 47 | |||
| 48 | #define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24) | ||
| 49 | /* #define SIGN_EXTEND_CHAR(c) (c) */ | ||
| 50 | |||
| 51 | /* Now define a symbol for the cpu type, if your compiler | ||
| 52 | does not define it automatically */ | ||
| 53 | |||
| 54 | #define clipper 1 | ||
| 55 | |||
| 56 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 57 | |||
| 58 | #define NO_UNION_TYPE | ||
| 59 | |||
| 60 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 61 | |||
| 62 | #define DOT_GLOBAL_START | ||
| 63 | |||
| 64 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 65 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 66 | are always unsigned. | ||
| 67 | |||
| 68 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 69 | |||
| 70 | /* #define EXPLICIT_SIGN_EXTEND */ | ||
| 71 | |||
| 72 | /* USG systems I know of running on Vaxes do not actually | ||
| 73 | support the load average, so disable it for them. */ | ||
| 74 | |||
| 75 | /* Data type of load average, as read out of kmem. */ | ||
| 76 | |||
| 77 | #define LOAD_AVE_TYPE double | ||
| 78 | |||
| 79 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 80 | |||
| 81 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 82 | |||
| 83 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 84 | Then the function dump-emacs will not be defined | ||
| 85 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 86 | /* #define CANNOT_DUMP */ | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | /* #define VIRT_ADDR_VARIES */ /* Karl Kleinpaste says this isn't needed. */ | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | #define C_ALLOCA | ||
| 105 | |||
| 106 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 107 | to change the boundary between the text section and data section | ||
| 108 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 109 | code will not be sharable; but that's better than failing completely. */ | ||
| 110 | |||
| 111 | /* #define NO_REMAP */ | ||
| 112 | |||
| 113 | #ifdef USG | ||
| 114 | #define TEXT_START 0 | ||
| 115 | #endif /* USG */ | ||
| 116 | |||
| 117 | #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 @@ | |||
| 1 | /* machine description file for convergent S series. | ||
| 2 | Copyright (C) 1989 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following three symbols give information on | ||
| 22 | the size of various data types. */ | ||
| 23 | |||
| 24 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 25 | |||
| 26 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 27 | |||
| 28 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 29 | |||
| 30 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 31 | is the most significant byte. */ | ||
| 32 | |||
| 33 | #define BIG_ENDIAN | ||
| 34 | |||
| 35 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 36 | * group of arguments and treat it as an array of the arguments. */ | ||
| 37 | |||
| 38 | /* #define NO_ARG_ARRAY */ | ||
| 39 | |||
| 40 | /* Define WORD_MACHINE if addresses and such have | ||
| 41 | * to be corrected before they can be used as byte counts. */ | ||
| 42 | |||
| 43 | /* #define WORD_MACHINE */ | ||
| 44 | |||
| 45 | /* Define how to take a char and sign-extend into an int. | ||
| 46 | On machines where char is signed, this is a no-op. */ | ||
| 47 | |||
| 48 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 49 | |||
| 50 | /* Now define a symbol for the cpu type, if your compiler | ||
| 51 | does not define it automatically. */ | ||
| 52 | |||
| 53 | #define m68000 | ||
| 54 | |||
| 55 | /* Use type int rather than a union, to represent Lisp_Object. | ||
| 56 | This is desirable for most machines. */ | ||
| 57 | |||
| 58 | #define NO_UNION_TYPE | ||
| 59 | |||
| 60 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 61 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 62 | are always unsigned. | ||
| 63 | |||
| 64 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 65 | |||
| 66 | #define EXPLICIT_SIGN_EXTEND | ||
| 67 | |||
| 68 | /* Data type of load average, as read out of kmem. | ||
| 69 | These are commented out since it is not supported by this machine. */ | ||
| 70 | |||
| 71 | #define LOAD_AVE_TYPE double | ||
| 72 | |||
| 73 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 74 | |||
| 75 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 76 | |||
| 77 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 78 | Then the function dump-emacs will not be defined | ||
| 79 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 80 | |||
| 81 | /* #define CANNOT_DUMP */ | ||
| 82 | |||
| 83 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 84 | pure and impure space as loaded can vary, and even their | ||
| 85 | relative order cannot be relied on. | ||
| 86 | |||
| 87 | Otherwise Emacs assumes that text space precedes data space, | ||
| 88 | numerically. */ | ||
| 89 | |||
| 90 | #undef VIRT_ADDR_VARIES | ||
| 91 | |||
| 92 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 93 | and the one written in C should be used instead. | ||
| 94 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 95 | working alloca function and it should be used. | ||
| 96 | Define neither one if an assembler-language alloca | ||
| 97 | in the file alloca.s should be used. */ | ||
| 98 | |||
| 99 | #define C_ALLOCA | ||
| 100 | #undef HAVE_ALLOCA | ||
| 101 | |||
| 102 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 103 | to change the boundary between the text section and data section | ||
| 104 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 105 | code will not be sharable; but that's better than failing completely. */ | ||
| 106 | |||
| 107 | #define NO_REMAP | ||
| 108 | |||
| 109 | /* Change some things to avoid bugs in compiler. */ | ||
| 110 | |||
| 111 | #define SWITCH_ENUM_BUG | ||
| 112 | |||
| 113 | /* fork(2) and vfork() are the same here. */ | ||
| 114 | |||
| 115 | #define HAVE_VFORK | ||
| 116 | |||
| 117 | /* grows towards lower addresses. */ | ||
| 118 | |||
| 119 | #define STACK_DIRECTION -1 | ||
| 120 | |||
| 121 | /* some errno.h's don't actually allocate the variable itself. | ||
| 122 | Cause crt0.c to define errno. */ | ||
| 123 | |||
| 124 | #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 @@ | |||
| 1 | /* machine description file for convex C1. | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-3" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. | ||
| 41 | * Maybe it would be better to simply correct the code. */ | ||
| 42 | |||
| 43 | #define NO_ARG_ARRAY | ||
| 44 | |||
| 45 | /* Define WORD_MACHINE if addresses and such have | ||
| 46 | * to be corrected before they can be used as byte counts. */ | ||
| 47 | |||
| 48 | /* #define WORD_MACHINE */ | ||
| 49 | |||
| 50 | /* Define how to take a char and sign-extend into an int. | ||
| 51 | On machines where char is signed, this is a no-op. */ | ||
| 52 | |||
| 53 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 54 | |||
| 55 | /* Now define a symbol for the cpu type, if your compiler | ||
| 56 | does not define it automatically. */ | ||
| 57 | |||
| 58 | /* convex already defined... */ | ||
| 59 | |||
| 60 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 61 | /* This is desirable for most machines. */ | ||
| 62 | |||
| 63 | #define NO_UNION_TYPE | ||
| 64 | |||
| 65 | /* crt0.c should use the vax-bsd style of entry, with no dummy args. */ | ||
| 66 | |||
| 67 | #define CRT0_DUMMIES | ||
| 68 | |||
| 69 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 70 | |||
| 71 | #define DOT_GLOBAL_START | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | #define LOAD_AVE_TYPE double | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | #define LOAD_AVE_CVT(x) (int) ((x) * 100.0) | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | /* #define CANNOT_DUMP */ | ||
| 86 | |||
| 87 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 88 | pure and impure space as loaded can vary, and even their | ||
| 89 | relative order cannot be relied on. | ||
| 90 | |||
| 91 | Otherwise Emacs assumes that text space precedes data space, | ||
| 92 | numerically. */ | ||
| 93 | |||
| 94 | /*#define VIRT_ADDR_VARIES*/ | ||
| 95 | |||
| 96 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 97 | and the one written in C should be used instead. | ||
| 98 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 99 | working alloca function and it should be used. | ||
| 100 | Define neither one if an assembler-language alloca | ||
| 101 | in the file alloca.s should be used. */ | ||
| 102 | |||
| 103 | /*#define C_ALLOCA*/ | ||
| 104 | #define HAVE_ALLOCA | ||
| 105 | |||
| 106 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 107 | to change the boundary between the text section and data section | ||
| 108 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 109 | code will not be sharable; but that's better than failing completely. */ | ||
| 110 | |||
| 111 | /* #define NO_REMAP */ | ||
| 112 | |||
| 113 | /* Addresses on the Convex have the high bit set. */ | ||
| 114 | #define DATA_SEG_BITS (1 << (INTBITS-1)) | ||
| 115 | |||
| 116 | /* Right shift is logical shift. | ||
| 117 | And the usual way of handling such machines, which involves | ||
| 118 | copying the number into sign_extend_temp, does not work | ||
| 119 | for reasons as yet unknown. */ | ||
| 120 | |||
| 121 | #define XINT(a) sign_extend_lisp_int (a) | ||
| 122 | |||
| 123 | /* Convex uses a special version of unexec. */ | ||
| 124 | |||
| 125 | #define UNEXEC unexconvex.o | ||
| 126 | |||
| 127 | /* you gotta define 'COFF' for post 6.1 unexec. */ | ||
| 128 | |||
| 129 | #define COFF | ||
| 130 | #define TEXT_START 0x80001000 | ||
| 131 | |||
| 132 | /* Posix stuff for Convex OS 8.1 and up. */ | ||
| 133 | |||
| 134 | #define C_SWITCH_MACHINE -pcc | ||
| 135 | #define LD_SWITCH_MACHINE \ | ||
| 136 | -e__start -L /usr/lib \ | ||
| 137 | '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema' | ||
| 138 | |||
| 139 | /* Use setsid when starting up inferiors. */ | ||
| 140 | #define HAVE_SETSID | ||
| 141 | |||
| 142 | /* Use <dirent.h>. */ | ||
| 143 | #define SYSV_SYSTEM_DIR | ||
| 144 | #define HAVE_CLOSEDIR | ||
| 145 | |||
| 146 | #ifdef _POSIX_SOURCE | ||
| 147 | |||
| 148 | /* These symbols have been undefined to advance the state of the art. */ | ||
| 149 | |||
| 150 | #define S_IFMT _S_IFMT | ||
| 151 | #define S_IFDIR _S_IFDIR | ||
| 152 | |||
| 153 | #define S_IREAD _S_IREAD | ||
| 154 | #define S_IWRITE _S_IWRITE | ||
| 155 | #define S_IEXEC _S_IEXEC | ||
| 156 | |||
| 157 | #endif | ||
| 158 | |||
| 159 | /* Ptys may start below ptyp0; call a routine to hunt for where. */ | ||
| 160 | |||
| 161 | #undef FIRST_PTY_LETTER | ||
| 162 | #define FIRST_PTY_LETTER first_pty_letter() | ||
| 163 | |||
| 164 | #if 0 | ||
| 165 | /* | ||
| 166 | * Force a K&R compilation and libraries with the Convex V 4.0 C compiler | ||
| 167 | */ | ||
| 168 | #define C_SWITCH_MACHINE -pcc | ||
| 169 | #define LIB_STANDARD -lc_old | ||
| 170 | #define LIBS_MACHINE -lC2_old | ||
| 171 | #define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \ | ||
| 172 | -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib | ||
| 173 | #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 @@ | |||
| 1 | /* machine description file for Cydrome's CYDRA 5 mini super computer | ||
| 2 | Copyright (C) 1988 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-3" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #undef NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 57 | orion, tahoe, APOLLO and many others */ | ||
| 58 | |||
| 59 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 60 | /* This is desirable for most machines. */ | ||
| 61 | |||
| 62 | #define NO_UNION_TYPE | ||
| 63 | |||
| 64 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 65 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 66 | are always unsigned. | ||
| 67 | |||
| 68 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 69 | |||
| 70 | #define EXPLICIT_SIGN_EXTEND | ||
| 71 | |||
| 72 | /* Data type of load average, as read out of kmem. */ | ||
| 73 | |||
| 74 | #define LOAD_AVE_TYPE long | ||
| 75 | |||
| 76 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 77 | |||
| 78 | #define LOAD_AVE_CVT(x) x | ||
| 79 | |||
| 80 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 81 | Then the function dump-emacs will not be defined | ||
| 82 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 83 | |||
| 84 | /*#define CANNOT_DUMP*/ | ||
| 85 | |||
| 86 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 87 | pure and impure space as loaded can vary, and even their | ||
| 88 | relative order cannot be relied on. | ||
| 89 | |||
| 90 | Otherwise Emacs assumes that data space precedes text space, | ||
| 91 | numerically. */ | ||
| 92 | |||
| 93 | #undef VIRT_ADDR_VARIES | ||
| 94 | |||
| 95 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 96 | and the one written in C should be used instead. | ||
| 97 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 98 | working alloca function and it should be used. | ||
| 99 | Define neither one if an assembler-language alloca | ||
| 100 | in the file alloca.s should be used. */ | ||
| 101 | |||
| 102 | #define C_ALLOCA | ||
| 103 | #undef HAVE_ALLOCA | ||
| 104 | |||
| 105 | /* The data segment in this machine always starts at address 0x10000000. | ||
| 106 | An address of data cannot be stored correctly in a Lisp object; | ||
| 107 | we always lose the high bits. We must tell XPNTR to add them back. */ | ||
| 108 | |||
| 109 | #define DATA_SEG_BITS 0x20000000 | ||
| 110 | #define DATA_START 0x20000000 | ||
| 111 | |||
| 112 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 113 | to change the boundary between the text section and data section | ||
| 114 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 115 | code will not be sharable; but that's better than failing completely. */ | ||
| 116 | |||
| 117 | #define NO_REMAP | ||
| 118 | #define BROKEN_FIONREAD /* We son't even have it */ | ||
| 119 | #define LIBS_MACHINE -lsocket -lnsl | ||
| 120 | |||
| 121 | /* Stack grows downward in memory. */ | ||
| 122 | #define STACK_DIRECTION -1 | ||
| 123 | |||
| 124 | /* The data section in a coff file must be aligned in the file. */ | ||
| 125 | #define DATA_SECTION_ALIGNMENT 0xFFF | ||
| 126 | |||
| 127 | /* Compiler won't allow switch (x) when x is an enum. */ | ||
| 128 | #define SWITCH_ENUM_BUG | ||
| 129 | |||
| 130 | |||
| 131 | /* Explain how pty filenames work. */ | ||
| 132 | |||
| 133 | #define PTY_ITERATION for (i = 47; i >= 0; i--) | ||
| 134 | #define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/pty%03x", i); | ||
| 135 | #define PTY_TTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptm%03x", i); | ||
| 136 | |||
| 137 | /* We can't do interrupt-driven input, so don't let user try. */ | ||
| 138 | |||
| 139 | #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 @@ | |||
| 1 | /* machine description file for the Motorola delta running System V.3. | ||
| 2 | tested on sys1147 (mvme147 - based system). | ||
| 3 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 8 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 9 | accepts responsibility to anyone for the consequences of using it | ||
| 10 | or for whether it serves any particular purpose or works at all, | ||
| 11 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 12 | License for full details. | ||
| 13 | |||
| 14 | Everyone is granted permission to copy, modify and redistribute | ||
| 15 | GNU Emacs, but only under the conditions described in the | ||
| 16 | GNU Emacs General Public License. A copy of this license is | ||
| 17 | supposed to have been given to you along with GNU Emacs so you | ||
| 18 | can know your rights and responsibilities. It should be in a | ||
| 19 | file named COPYING. Among other things, the copyright notice | ||
| 20 | and this notice must be preserved on all copies. */ | ||
| 21 | |||
| 22 | |||
| 23 | /* The following line tells the configuration script what sort of | ||
| 24 | operating system this machine is likely to run. | ||
| 25 | USUAL-OPSYS="usg5-3" */ | ||
| 26 | |||
| 27 | /* The following three symbols give information on | ||
| 28 | the size of various data types. */ | ||
| 29 | |||
| 30 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 31 | |||
| 32 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 33 | |||
| 34 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 35 | |||
| 36 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 37 | is the most significant byte. */ | ||
| 38 | |||
| 39 | #define BIG_ENDIAN | ||
| 40 | |||
| 41 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 42 | * group of arguments and treat it as an array of the arguments. */ | ||
| 43 | |||
| 44 | /* #define NO_ARG_ARRAY */ | ||
| 45 | |||
| 46 | /* Define WORD_MACHINE if addresses and such have | ||
| 47 | * to be corrected before they can be used as byte counts. */ | ||
| 48 | |||
| 49 | /* #define WORD_MACHINE */ | ||
| 50 | |||
| 51 | /* Define how to take a char and sign-extend into an int. | ||
| 52 | On machines where char is signed, this is a no-op. */ | ||
| 53 | |||
| 54 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 55 | |||
| 56 | /* Now define a symbol for the cpu type, if your compiler | ||
| 57 | does not define it automatically: | ||
| 58 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 59 | are the ones defined so far. */ | ||
| 60 | #define m68000 | ||
| 61 | #define NO_REMAP | ||
| 62 | |||
| 63 | #define HAVE_SYSVIPC | ||
| 64 | |||
| 65 | #define HAVE_PTYS | ||
| 66 | #define SYSV_PTYS | ||
| 67 | |||
| 68 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 69 | /* This is desirable for most machines. */ | ||
| 70 | |||
| 71 | #define NO_UNION_TYPE | ||
| 72 | #define SWITCH_ENUM_BUG | ||
| 73 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 74 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 75 | are always unsigned. | ||
| 76 | |||
| 77 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 78 | |||
| 79 | #define EXPLICIT_SIGN_EXTEND | ||
| 80 | |||
| 81 | /* Data type of load average, as read out of kmem. */ | ||
| 82 | |||
| 83 | /* #define LOAD_AVE_TYPE long */ | ||
| 84 | |||
| 85 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 86 | |||
| 87 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 88 | |||
| 89 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 90 | Then the function dump-emacs will not be defined | ||
| 91 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 92 | |||
| 93 | /* #define CANNOT_DUMP */ | ||
| 94 | |||
| 95 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 96 | pure and impure space as loaded can vary, and even their | ||
| 97 | relative order cannot be relied on. | ||
| 98 | |||
| 99 | Otherwise Emacs assumes that data space precedes text space, | ||
| 100 | numerically. */ | ||
| 101 | |||
| 102 | /* #define VIRT_ADDR_VARIES */ | ||
| 103 | |||
| 104 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 105 | and the one written in C should be used instead. | ||
| 106 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 107 | working alloca function and it should be used. | ||
| 108 | Define neither one if an assembler-language alloca | ||
| 109 | in the file alloca.s should be used. */ | ||
| 110 | |||
| 111 | /*#define C_ALLOCA */ | ||
| 112 | /*#define HAVE_ALLOCA */ | ||
| 113 | |||
| 114 | #ifdef __GNUC__ | ||
| 115 | /* easy. use builtin one. also be sure that no other ones are tried out. */ | ||
| 116 | # define alloca __builtin_alloca | ||
| 117 | # define HAVE_ALLOCA | ||
| 118 | # undef C_ALLOCA | ||
| 119 | #else | ||
| 120 | # ifdef C_ALLOCA | ||
| 121 | # define STACK_DIRECTION (-1) /* C_ALLOCA needs to know about stack. */ | ||
| 122 | # else /* C_ALLOCA */ | ||
| 123 | # ifndef HAVE_ALLOCA | ||
| 124 | # define BAT_ALLOCA /* if not in library, alloca.s needs this. */ | ||
| 125 | # endif /* HAVE_ALLOCA */ | ||
| 126 | # endif /* C_ALLOCA */ | ||
| 127 | #endif /* __GNUC__ */ | ||
| 128 | |||
| 129 | /* The standard C library is -lcieee, not -lc. | ||
| 130 | Also use the PW library, which contains alloca. | ||
| 131 | DO NOT USE -lPW. That version of alloca is broken, at last until version | ||
| 132 | SVR3V5.1 . -riku@field.fi */ | ||
| 133 | |||
| 134 | #define LIB_STANDARD -lc | ||
| 135 | |||
| 136 | #define LIBS_TERMCAP -lcurses | ||
| 137 | |||
| 138 | /* define this if you want to use X11 */ | ||
| 139 | #undef HAVE_X_WINDOWS | ||
| 140 | |||
| 141 | #ifdef HAVE_X_WINDOWS | ||
| 142 | /* debug switches enabled because of some difficulties w/X11 */ | ||
| 143 | # define C_DEBUG_SWITCH -g | ||
| 144 | # define OBJECTS_MACHINE -lg | ||
| 145 | # define C_OPTIMIZE_SWITCH | ||
| 146 | # define CANNOT_DUMP | ||
| 147 | /*# define XDEBUG*/ | ||
| 148 | # define X11 | ||
| 149 | /* X library implements these. */ | ||
| 150 | # define BSTRING | ||
| 151 | /* X library is in 'nonstandard' location. */ | ||
| 152 | # define LD_SWITCH_MACHINE -L/usr/lib/X11/ | ||
| 153 | #else | ||
| 154 | /* No sufficient justification for this. */ | ||
| 155 | /* # define C_DEBUG_SWITCH */ | ||
| 156 | # define C_OPTIMIZE_SWITCH -O | ||
| 157 | #endif /* HAVE_X_WINDOWS */ | ||
| 158 | |||
| 159 | /* enable batdevice-dependent code to compile. */ | ||
| 160 | #define BAT68K | ||
| 161 | |||
| 162 | #define HAVE_SOCKETS | ||
| 163 | |||
| 164 | /* crt0.c should use the vax-bsd style of entry, with no dummy args. */ | ||
| 165 | |||
| 166 | |||
| 167 | /* emacs's magic number isn't temacs's; | ||
| 168 | 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 @@ | |||
| 1 | /* machine description file for Dual machines using unisoft port. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | /* The following line tells the configuration script what sort of | ||
| 21 | operating system this machine is likely to run. | ||
| 22 | USUAL-OPSYS="note" | ||
| 23 | |||
| 24 | NOTE-START | ||
| 25 | Dual running System V (-machine=dual -opsystem=usg5-2) | ||
| 26 | |||
| 27 | As of 17.46, this works except for a few changes | ||
| 28 | needed in unexec.c. | ||
| 29 | |||
| 30 | Dual running Uniplus (-machine=dual -opsystem=unipl5-2) | ||
| 31 | |||
| 32 | Works, as of 17.51. | ||
| 33 | NOTE-END */ | ||
| 34 | |||
| 35 | |||
| 36 | /* The following three symbols give information on | ||
| 37 | the size of various data types. */ | ||
| 38 | |||
| 39 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 40 | |||
| 41 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 42 | |||
| 43 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 44 | |||
| 45 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 46 | is the most significant byte. */ | ||
| 47 | |||
| 48 | #define BIG_ENDIAN | ||
| 49 | |||
| 50 | /* XINT must explicitly sign-extend */ | ||
| 51 | |||
| 52 | #define EXPLICIT_SIGN_EXTEND | ||
| 53 | |||
| 54 | /* Define how to take a char and sign-extend into an int. | ||
| 55 | On machines where char is signed, this is a no-op. */ | ||
| 56 | |||
| 57 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 58 | |||
| 59 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 60 | |||
| 61 | #define NO_UNION_TYPE | ||
| 62 | |||
| 63 | /* Now define a symbol for the cpu type, if your compiler | ||
| 64 | does not define it automatically: | ||
| 65 | vax, m68000, ns16000 are the ones defined so far. */ | ||
| 66 | |||
| 67 | #ifndef m68000 | ||
| 68 | #define m68000 | ||
| 69 | #endif | ||
| 70 | |||
| 71 | /* Data type of load average, as read out of kmem. */ | ||
| 72 | /* These are commented out since it does not really work in uniplus */ | ||
| 73 | |||
| 74 | /* #define LOAD_AVE_TYPE long */ | ||
| 75 | |||
| 76 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 77 | |||
| 78 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */ | ||
| 79 | |||
| 80 | /* Change some things to avoid bugs in compiler */ | ||
| 81 | |||
| 82 | #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 @@ | |||
| 1 | /* machine description file for Elxsi machine (running enix). | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | Adapted by John Salmon | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* This file was modified by Matt Crawford <matt@tank.uchicago.edu> | ||
| 26 | to work under Elxsi's 12.0 release of BSD unix. */ | ||
| 27 | |||
| 28 | /* The following three symbols give information on | ||
| 29 | the size of various data types. */ | ||
| 30 | |||
| 31 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 32 | |||
| 33 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 34 | |||
| 35 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 36 | |||
| 37 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 38 | is the most significant byte. */ | ||
| 39 | |||
| 40 | /*#define BIG_ENDIAN*/ | ||
| 41 | |||
| 42 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 43 | * group of arguments and treat it as an array of the arguments. */ | ||
| 44 | |||
| 45 | /*#define NO_ARG_ARRAY */ | ||
| 46 | |||
| 47 | /* Define WORD_MACHINE if addresses and such have | ||
| 48 | * to be corrected before they can be used as byte counts. */ | ||
| 49 | |||
| 50 | /*#define WORD_MACHINE */ | ||
| 51 | |||
| 52 | /* Define how to take a char and sign-extend into an int. | ||
| 53 | On machines where char is signed, this is a no-op. */ | ||
| 54 | |||
| 55 | #define SIGN_EXTEND_CHAR(c) ((int)c) | ||
| 56 | |||
| 57 | /* Now define a symbol for the cpu type, if your compiler | ||
| 58 | does not define it automatically: | ||
| 59 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 60 | are the ones defined so far. */ | ||
| 61 | |||
| 62 | #ifndef elxsi | ||
| 63 | #define elxsi | ||
| 64 | #endif | ||
| 65 | |||
| 66 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 67 | /* This is desirable for most machines. */ | ||
| 68 | |||
| 69 | #define NO_UNION_TYPE | ||
| 70 | |||
| 71 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 72 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 73 | are always unsigned. | ||
| 74 | |||
| 75 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 76 | |||
| 77 | #define EXPLICIT_SIGN_EXTEND | ||
| 78 | |||
| 79 | |||
| 80 | /* Name of kernel load average variable */ | ||
| 81 | |||
| 82 | #undef LDAV_SYMBOL | ||
| 83 | #define LDAV_SYMBOL "avenrun" | ||
| 84 | |||
| 85 | /* Data type of load average, as read out of kmem. */ | ||
| 86 | |||
| 87 | #define LOAD_AVE_TYPE double | ||
| 88 | |||
| 89 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 90 | |||
| 91 | #define LOAD_AVE_CVT(x) (int) ((x) * 100.0) | ||
| 92 | |||
| 93 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 94 | Then the function dump-emacs will not be defined | ||
| 95 | and temacs will do (load "loadup") automatically unless told otherwise. | ||
| 96 | |||
| 97 | The Elxsi can in principle dump, but the necessary changes to | ||
| 98 | unexec, which involve byte-swapping, were too ugly to install. | ||
| 99 | If someone submits simple code that supports dumping on the Elxsi, | ||
| 100 | it can be installed and CANNOT_DUMP can be turned off. */ | ||
| 101 | |||
| 102 | /* #define CANNOT_DUMP */ | ||
| 103 | |||
| 104 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 105 | pure and impure space as loaded can vary, and even their | ||
| 106 | relative order cannot be relied on. | ||
| 107 | |||
| 108 | Otherwise Emacs assumes that text space precedes data space, | ||
| 109 | numerically. */ | ||
| 110 | |||
| 111 | /* #define VIRT_ADDR_VARIES */ | ||
| 112 | |||
| 113 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 114 | and the one written in C should be used instead. | ||
| 115 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 116 | working alloca function and it should be used. | ||
| 117 | Define neither one if an assembler-language alloca | ||
| 118 | in the file alloca.s should be used. */ | ||
| 119 | |||
| 120 | #define C_ALLOCA | ||
| 121 | /*#define HAVE_ALLOCA */ | ||
| 122 | |||
| 123 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 124 | to change the boundary between the text section and data section | ||
| 125 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 126 | code will not be sharable; but that's better than failing completely. */ | ||
| 127 | /*#define NO_REMAP*/ | ||
| 128 | |||
| 129 | /* This is a guess for an alternate solution to whatever | ||
| 130 | problem motivated defining _sobuf in sysdep,c with extern char *_sobuf. */ | ||
| 131 | #define _sobuf xsobuf | ||
| 132 | |||
| 133 | /* Address of start of text segment as loaded. */ | ||
| 134 | |||
| 135 | #define TEXT_START 0x800 | ||
| 136 | |||
| 137 | /* Tell crt0.c not to define environ. */ | ||
| 138 | |||
| 139 | #define DONT_NEED_ENVIRON | ||
| 140 | |||
| 141 | /* The elxsi has no debugger, so might as well optimize instead | ||
| 142 | of trying to make a symbol table. */ | ||
| 143 | |||
| 144 | #define C_DEBUG_SWITCH -O | ||
| 145 | |||
| 146 | /* Elxsi uses COFF under both Sys V and BSD environments */ | ||
| 147 | |||
| 148 | #define COFF | ||
| 149 | |||
| 150 | #define ADJUST_EXEC_HEADER {\ | ||
| 151 | extern int _init_brk;\ | ||
| 152 | _init_brk = bss_start;\ | ||
| 153 | } | ||
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 @@ | |||
| 1 | /* machine description file for gec63 | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* GEC63 is big-endian: lowest numbered byte is most significant. */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define how to take a char and sign-extend into an int. | ||
| 39 | On machines where char is signed, this is a no-op. */ | ||
| 40 | |||
| 41 | #define SIGN_EXTEND_CHAR(c) (((c)<<24)>>24) | ||
| 42 | |||
| 43 | /* Say this machine is a 68000 */ | ||
| 44 | |||
| 45 | #define gec63 | ||
| 46 | |||
| 47 | /* Use an int to represent Lisp_Object */ | ||
| 48 | |||
| 49 | #define NO_UNION_TYPE | ||
| 50 | |||
| 51 | /* GEC63 has alloca in the PW/ux63 library. */ | ||
| 52 | #define LIB_STANDARD -lPW -lc | ||
| 53 | #define HAVE_ALLOCA | ||
| 54 | |||
| 55 | /* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT | ||
| 56 | since there is no /dev/kmem */ | ||
| 57 | |||
| 58 | #undef ADDR_CORRECT(x) | ||
| 59 | #define NO_ARG_ARRAY | ||
| 60 | |||
| 61 | #undef TERMCAP | ||
| 62 | #define TERMINFO | ||
| 63 | |||
| 64 | /* Define sizes of portions of a Lisp_Object. */ | ||
| 65 | #define VALBITS 22 | ||
| 66 | #define GCTYPEBITS 5 | ||
| 67 | |||
| 68 | #define VALAMASK (((1<<VALBITS) - 1)| 0xF0000000L) | ||
| 69 | |||
| 70 | #define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK)) | ||
| 71 | #define XSETTYPE(a, b) ((a) = ((a) & VALAMASK) + ((int)(b) << VALBITS)) | ||
| 72 | |||
| 73 | #define XPNTR(a) ((a) & VALAMASK) | ||
| 74 | #define XSETPNTR(a, b) ((a) = ((a) & ~VALAMASK) + ((b) & VALAMASK)) | ||
| 75 | |||
| 76 | #define XSET(var, type, ptr) \ | ||
| 77 | ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALAMASK)) | ||
| 78 | |||
| 79 | /* Move some garbage-collector flag bits to different bit positions. */ | ||
| 80 | #define ARRAY_MARK_FLAG (1 << 27) | ||
| 81 | #define DONT_COPY_FLAG (1 << 26) | ||
| 82 | |||
| 83 | #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 @@ | |||
| 1 | /* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1. | ||
| 2 | (See MACHINES for older versions.) | ||
| 3 | |||
| 4 | * NOTE: If you are running a pre-release of UTX/32 2.1 you should #define | ||
| 5 | * RELEASE2_1 in config.h. This may also be necessary with un-updated | ||
| 6 | * official releases of 2.1 | ||
| 7 | |||
| 8 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 9 | |||
| 10 | This file is part of GNU Emacs. | ||
| 11 | |||
| 12 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 13 | it under the terms of the GNU General Public License as published by | ||
| 14 | the Free Software Foundation; either version 1, or (at your option) | ||
| 15 | any later version. | ||
| 16 | |||
| 17 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 20 | GNU General Public License for more details. | ||
| 21 | |||
| 22 | You should have received a copy of the GNU General Public License | ||
| 23 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 24 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 25 | |||
| 26 | |||
| 27 | /* The following line tells the configuration script what sort of | ||
| 28 | operating system this machine is likely to run. | ||
| 29 | USUAL-OPSYS="note" | ||
| 30 | |||
| 31 | NOTE-START | ||
| 32 | Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3) | ||
| 33 | (gould.h; s-bsd4-2.h or s-bsd4-3.h) | ||
| 34 | |||
| 35 | 18.36 worked on versions 1.2 and 2.0 of the operating system. | ||
| 36 | |||
| 37 | On UTX/32 2.0, use -opsystem=bsd4-3 | ||
| 38 | |||
| 39 | On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling | ||
| 40 | lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the | ||
| 41 | makefile. | ||
| 42 | |||
| 43 | UTX/32 1.3 has a bug in the bcopy library routine. Fix it by | ||
| 44 | #undef BSTRING in gould.h. | ||
| 45 | |||
| 46 | Version 19 incorporates support for releases 2.1 and later of UTX/32. | ||
| 47 | A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h. | ||
| 48 | NOTE-END */ | ||
| 49 | |||
| 50 | /* The following three symbols give information on | ||
| 51 | the size of various data types. */ | ||
| 52 | |||
| 53 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 54 | |||
| 55 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 56 | |||
| 57 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 58 | |||
| 59 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 60 | is the most significant byte. */ | ||
| 61 | |||
| 62 | #define BIG_ENDIAN | ||
| 63 | |||
| 64 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 65 | * group of arguments and treat it as an array of the arguments. */ | ||
| 66 | |||
| 67 | #define NO_ARG_ARRAY | ||
| 68 | |||
| 69 | /* Define WORD_MACHINE if addresses and such have | ||
| 70 | * to be corrected before they can be used as byte counts. */ | ||
| 71 | |||
| 72 | /* #define WORD_MACHINE */ | ||
| 73 | |||
| 74 | /* Define how to take a char and sign-extend into an int. | ||
| 75 | On machines where char is signed, this is a no-op. */ | ||
| 76 | |||
| 77 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 78 | |||
| 79 | /* Now define a symbol for the cpu type, if your compiler | ||
| 80 | does not define it automatically */ | ||
| 81 | |||
| 82 | #ifndef GOULD | ||
| 83 | #define GOULD | ||
| 84 | #endif | ||
| 85 | |||
| 86 | /* sel is an old preprocessor name on gould machines | ||
| 87 | - it is no longer needed and interferes with a variable in xmenu.c */ | ||
| 88 | #undef sel | ||
| 89 | |||
| 90 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 91 | /* This is desirable for most machines. */ | ||
| 92 | |||
| 93 | #define NO_UNION_TYPE | ||
| 94 | |||
| 95 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 96 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 97 | are always unsigned. | ||
| 98 | |||
| 99 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 100 | |||
| 101 | #define EXPLICIT_SIGN_EXTEND | ||
| 102 | |||
| 103 | /* Data type of load average, as read out of kmem. */ | ||
| 104 | |||
| 105 | #define LOAD_AVE_TYPE double | ||
| 106 | |||
| 107 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 108 | |||
| 109 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) | ||
| 110 | |||
| 111 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 112 | Then the function dump-emacs will not be defined | ||
| 113 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 114 | |||
| 115 | /* #define CANNOT_DUMP */ | ||
| 116 | |||
| 117 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 118 | pure and impure space as loaded can vary, and even their | ||
| 119 | relative order cannot be relied on. | ||
| 120 | |||
| 121 | Otherwise Emacs assumes that text space precedes data space, | ||
| 122 | numerically. */ | ||
| 123 | |||
| 124 | #define VIRT_ADDR_VARIES | ||
| 125 | |||
| 126 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 127 | and the one written in C should be used instead. | ||
| 128 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 129 | working alloca function and it should be used. | ||
| 130 | Define neither one if an assembler-language alloca | ||
| 131 | in the file alloca.s should be used. */ | ||
| 132 | |||
| 133 | #define C_ALLOCA | ||
| 134 | #define STACK_DIRECTION -1 /* grows towards lower addresses on Gould UTX/32 */ | ||
| 135 | |||
| 136 | /* No need to extend the user stack. */ | ||
| 137 | |||
| 138 | /* If this is a 2.1 system, COFF will be predefined by cpp. If it's */ | ||
| 139 | /* pre-2.1 COFF won't be defined, which is as it should be. */ | ||
| 140 | |||
| 141 | #ifdef COFF | ||
| 142 | |||
| 143 | #define HEADER_INCL_IN_TEXT | ||
| 144 | #define COFF_BSD_SYMBOLS | ||
| 145 | |||
| 146 | /* Seems to be necessary with coff */ | ||
| 147 | #define NO_REMAP | ||
| 148 | |||
| 149 | #ifndef GOULD_NP1 | ||
| 150 | /* gould-np1.h includes this file */ | ||
| 151 | /* keep the old value - don't skip over the headers */ | ||
| 152 | #define KEEP_OLD_TEXT_SCNPTR | ||
| 153 | #define KEEP_OLD_PADDR | ||
| 154 | #ifndef RELEASE2_1 | ||
| 155 | #define ADJUST_TEXTBASE | ||
| 156 | #endif /*RELEASE2_1*/ | ||
| 157 | #endif /* GOULD_NP1 */ | ||
| 158 | |||
| 159 | #ifdef IN_UNEXEC | ||
| 160 | /* make Gould NP and PN COFF look like USG COFF */ | ||
| 161 | /* PN COFF */ | ||
| 162 | #define aouthdr old_exec | ||
| 163 | /* PN COFF doesn't have a data_start or a_dtbase field in its */ | ||
| 164 | /* optional header, so substitute a junk field */ | ||
| 165 | #define a_dtbase a_ccvers | ||
| 166 | /* Gould COFF */ | ||
| 167 | #define magic a_magic | ||
| 168 | #define tsize a_text | ||
| 169 | #define dsize a_data | ||
| 170 | #define bsize a_bss | ||
| 171 | #define entry a_entry | ||
| 172 | #define text_start a_txbase | ||
| 173 | #define data_start a_dtbase | ||
| 174 | #endif /* IN_UNEXEC */ | ||
| 175 | |||
| 176 | /* Define how to search all pty names. | ||
| 177 | * This is for UTX 2.1 and greater on PN and all NP versions. It is only | ||
| 178 | * accident that this happens to correspond to the same versions of UTX | ||
| 179 | * as COFF does, but we'll take advantage of that here. | ||
| 180 | */ | ||
| 181 | |||
| 182 | /*#define USE_PTY_PAIR*/ | ||
| 183 | |||
| 184 | #endif /* COFF */ | ||
| 185 | |||
| 186 | /* -g is sometimes broken on the Gould. */ | ||
| 187 | |||
| 188 | #define C_DEBUG_SWITCH | ||
| 189 | |||
| 190 | /* Comparing pointers as unsigned ints tickles a bug in older compilers. */ | ||
| 191 | |||
| 192 | #define PNTR_COMPARISON_TYPE int | ||
| 193 | |||
| 194 | /* The GOULD machine counts the a.out file header as part of the text. */ | ||
| 195 | |||
| 196 | #define A_TEXT_OFFSET(HDR) sizeof (HDR) | ||
| 197 | |||
| 198 | /* Machine-dependent action when about to dump an executable file. */ | ||
| 199 | |||
| 200 | #ifndef COFF | ||
| 201 | #define ADJUST_EXEC_HEADER \ | ||
| 202 | unexec_text_start = hdr.a_txbase + sizeof (hdr); | ||
| 203 | #endif | ||
| 204 | |||
| 205 | /* We use the system's crt0.o. Somehow it avoids losing | ||
| 206 | with `environ' the way most standard crt0.o's do. */ | ||
| 207 | |||
| 208 | #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 @@ | |||
| 1 | /* machine description file for hp9000 series 800 machines. | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="hpux" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 57 | orion, tahoe, APOLLO and many others */ | ||
| 58 | #ifndef hp9000s800 | ||
| 59 | # define hp9000s800 | ||
| 60 | #endif | ||
| 61 | |||
| 62 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 63 | /* This is desirable for most machines. */ | ||
| 64 | |||
| 65 | #define NO_UNION_TYPE | ||
| 66 | |||
| 67 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 68 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 69 | are always unsigned. | ||
| 70 | |||
| 71 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 72 | |||
| 73 | #define EXPLICIT_SIGN_EXTEND | ||
| 74 | |||
| 75 | /* Data type of load average, as read out of kmem. */ | ||
| 76 | |||
| 77 | #define LOAD_AVE_TYPE double | ||
| 78 | |||
| 79 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 80 | |||
| 81 | #define LOAD_AVE_CVT(x) ((int) (x * 100.0)) | ||
| 82 | |||
| 83 | |||
| 84 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 85 | Then the function dump-emacs will not be defined | ||
| 86 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 87 | |||
| 88 | #undef CANNOT_DUMP | ||
| 89 | |||
| 90 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 91 | pure and impure space as loaded can vary, and even their | ||
| 92 | relative order cannot be relied on. | ||
| 93 | |||
| 94 | Otherwise Emacs assumes that text space precedes data space, | ||
| 95 | numerically. */ | ||
| 96 | |||
| 97 | #define VIRT_ADDR_VARIES | ||
| 98 | |||
| 99 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 100 | and the one written in C should be used instead. | ||
| 101 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 102 | working alloca function and it should be used. | ||
| 103 | Define neither one if an assembler-language alloca | ||
| 104 | in the file alloca.s should be used. */ | ||
| 105 | |||
| 106 | #define C_ALLOCA | ||
| 107 | /* #define HAVE_ALLOCA */ | ||
| 108 | |||
| 109 | /* the data segment on this machine always starts at address 0x40000000. */ | ||
| 110 | |||
| 111 | #define DATA_SEG_BITS 0x40000000 | ||
| 112 | |||
| 113 | #define VALBITS 26 | ||
| 114 | #define GCTYPEBITS 5 | ||
| 115 | |||
| 116 | #define DATA_START 0x40000000 | ||
| 117 | #define TEXT_START 0x00000000 | ||
| 118 | |||
| 119 | #define STACK_DIRECTION 1 | ||
| 120 | |||
| 121 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 122 | to change the boundary between the text section and data section | ||
| 123 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 124 | code will not be sharable; but that's better than failing completely. */ | ||
| 125 | |||
| 126 | #define NO_REMAP | ||
| 127 | |||
| 128 | /* This machine requires completely different unexec code | ||
| 129 | which lives in a separate file. Specify the file name. */ | ||
| 130 | |||
| 131 | #define UNEXEC unexhp9k800.o | ||
| 132 | |||
| 133 | #define LIBS_MACHINE | ||
| 134 | #define LIBS_DEBUG | ||
| 135 | |||
| 136 | /* Define NEED_BSDTTY if you have such. */ | ||
| 137 | |||
| 138 | #define NEED_BSDTTY | ||
| 139 | |||
| 140 | /* The standard definitions of these macros would work ok, | ||
| 141 | but these are faster because the constants are short. */ | ||
| 142 | |||
| 143 | |||
| 144 | #define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) | ||
| 145 | |||
| 146 | #define XSET(var, type, ptr) \ | ||
| 147 | ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) | ||
| 148 | |||
| 149 | #define XSETINT(a, b) XSET(a, XTYPE(a), b) | ||
| 150 | #define XSETUINT(a, b) XSET(a, XTYPE(a), b) | ||
| 151 | #define XSETPNTR(a, b) XSET(a, XTYPE(a), b) | ||
| 152 | #define XMARKBIT(a) ((a) < 0) | ||
| 153 | #define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT)) | ||
| 154 | |||
| 155 | #if 0 /* Loses when sign bit of type field is set. */ | ||
| 156 | #define XUNMARK(a) ((a) = (((a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS)) | ||
| 157 | #endif | ||
| 158 | |||
| 159 | /* The symbol in the kernel where the load average is found | ||
| 160 | is named _avenrun. At this time there are two major flavors | ||
| 161 | of hp-ux (there is the s800 and s300 (s200) flavors). The | ||
| 162 | differences are thusly moved to the corresponding machine description file. | ||
| 163 | */ | ||
| 164 | |||
| 165 | /* no underscore please */ | ||
| 166 | #define LDAV_SYMBOL "avenrun" | ||
| 167 | #define CPTIME_SYMBOL "cp_time" | ||
| 168 | #define DKXFER_SYMBOL "dk_xfer" | ||
| 169 | |||
| 170 | #if 0 /* Supposedly no longer true. */ | ||
| 171 | /* In hpux, for unknown reasons, S_IFLNK is defined even though | ||
| 172 | symbolic links do not exist. | ||
| 173 | Make sure our conditionals based on S_IFLNK are not confused. | ||
| 174 | |||
| 175 | Here we assume that stat.h is included before config.h | ||
| 176 | so that we can override it here. */ | ||
| 177 | |||
| 178 | #undef S_IFLNK | ||
| 179 | #endif | ||
| 180 | |||
| 181 | /* Define the BSTRING functions in terms of the sysV functions. */ | ||
| 182 | |||
| 183 | #define bcopy(a,b,s) memcpy (b,a,s) | ||
| 184 | #define bzero(a,s) memset (a,0,s) | ||
| 185 | #define bcmp memcmp | ||
| 186 | |||
| 187 | /* On USG systems these have different names. */ | ||
| 188 | |||
| 189 | #define index strchr | ||
| 190 | #define rindex strrchr | ||
| 191 | |||
| 192 | /* Include the file bsdtty.h, since this machine has job control. */ | ||
| 193 | #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 @@ | |||
| 1 | /* machine description file for hp9000 series 200 or 300 on either HPUX or BSD. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | HP 9000 series 200 or 300 (-machine=hp9000s300) | ||
| 27 | |||
| 28 | These machines are 68000-series CPUs running HP-UX | ||
| 29 | (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah. | ||
| 30 | |||
| 31 | If you're running HP-UX, specify `-opsystem=hpux'. | ||
| 32 | |||
| 33 | If you're running Utah's BSD port, don't use this -machine option; | ||
| 34 | instead, specify `-machine=hp300bsd' and `-opsystem=bsd4-3'. | ||
| 35 | NOTE-END */ | ||
| 36 | |||
| 37 | /* Define this symbol if you are running a version of HP-UX | ||
| 38 | which predates version 6.5 */ | ||
| 39 | |||
| 40 | /* #define NOMULTIPLEJOBS */ | ||
| 41 | |||
| 42 | /* Define this symbol if you are running a version of HP-UX | ||
| 43 | which predates version 6.01 */ | ||
| 44 | |||
| 45 | /* #define HPUX_5 */ | ||
| 46 | |||
| 47 | /* The following three symbols give information on | ||
| 48 | the size of various data types. */ | ||
| 49 | |||
| 50 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 51 | |||
| 52 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 53 | |||
| 54 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 55 | |||
| 56 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 57 | is the most significant byte. */ | ||
| 58 | |||
| 59 | #define BIG_ENDIAN | ||
| 60 | |||
| 61 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 62 | * group of arguments and treat it as an array of the arguments. */ | ||
| 63 | |||
| 64 | /* #define NO_ARG_ARRAY */ | ||
| 65 | |||
| 66 | /* Define WORD_MACHINE if addresses and such have | ||
| 67 | * to be corrected before they can be used as byte counts. */ | ||
| 68 | |||
| 69 | /* #define WORD_MACHINE */ | ||
| 70 | |||
| 71 | /* Define how to take a char and sign-extend into an int. | ||
| 72 | On machines where char is signed, this is a no-op. */ | ||
| 73 | |||
| 74 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 75 | |||
| 76 | /* Now define a symbol for the cpu type, if your compiler | ||
| 77 | does not define it automatically. */ | ||
| 78 | |||
| 79 | #ifndef hp9000s300 | ||
| 80 | #define hp9000s300 | ||
| 81 | #endif | ||
| 82 | |||
| 83 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 84 | /* This is desirable for most machines. */ | ||
| 85 | |||
| 86 | #define NO_UNION_TYPE | ||
| 87 | |||
| 88 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 89 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 90 | are always unsigned. | ||
| 91 | |||
| 92 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 93 | |||
| 94 | #define EXPLICIT_SIGN_EXTEND | ||
| 95 | |||
| 96 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 97 | Then the function dump-emacs will not be defined | ||
| 98 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 99 | |||
| 100 | /* #define CANNOT_DUMP */ | ||
| 101 | |||
| 102 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 103 | pure and impure space as loaded can vary, and even their | ||
| 104 | relative order cannot be relied on. | ||
| 105 | |||
| 106 | Otherwise Emacs assumes that text space precedes data space, | ||
| 107 | numerically. */ | ||
| 108 | |||
| 109 | /* #define VIRT_ADDR_VARIES */ | ||
| 110 | |||
| 111 | /* For University of Utah 4.3bsd implemetation on HP300s. | ||
| 112 | The #ifndef __GNUC__ definitions are required for the "standard" cc, | ||
| 113 | a very old, brain-dead version of PCC. */ | ||
| 114 | |||
| 115 | #ifdef BSD4_3 | ||
| 116 | /* Tell crt0.c that this is an ordinary 68020. */ | ||
| 117 | #undef hp9000s300 | ||
| 118 | #define CRT0_DUMMIES bogus_a6, | ||
| 119 | |||
| 120 | #define HAVE_ALLOCA | ||
| 121 | |||
| 122 | #ifndef __GNUC__ | ||
| 123 | #define LIBS_DEBUG /* don't have -lg that works */ | ||
| 124 | #define C_DEBUG_SWITCH /* don't support -g */ | ||
| 125 | #endif | ||
| 126 | |||
| 127 | #undef LOAD_AVE_TYPE | ||
| 128 | #undef LOAD_AVE_CVT | ||
| 129 | #define LOAD_AVE_TYPE long | ||
| 130 | #define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0)) | ||
| 131 | |||
| 132 | #endif /* BSD4_3 */ | ||
| 133 | |||
| 134 | #ifndef BSD4_3 | ||
| 135 | /* The following definitions are for HPUX only. */ | ||
| 136 | |||
| 137 | /* The symbol in the kernel where the load average is found | ||
| 138 | is named _avenrun on this machine. */ | ||
| 139 | |||
| 140 | #define LDAV_SYMBOL "_avenrun" | ||
| 141 | |||
| 142 | /* Data type of load average, as read out of kmem. */ | ||
| 143 | |||
| 144 | #define LOAD_AVE_TYPE double | ||
| 145 | |||
| 146 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 147 | |||
| 148 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 149 | |||
| 150 | /* This library is needed with -g, on the 200/300 only. */ | ||
| 151 | |||
| 152 | #if !defined(__GNUC__) || defined(__HPUX_ASM__) | ||
| 153 | #define LIBS_DEBUG /usr/lib/end.o | ||
| 154 | #endif | ||
| 155 | |||
| 156 | /* The symbol FIONREAD is defined, but the feature does not work | ||
| 157 | on the 200/300. */ | ||
| 158 | |||
| 159 | #define BROKEN_FIONREAD | ||
| 160 | |||
| 161 | /* In older versions of hpux, for unknown reasons, S_IFLNK is defined | ||
| 162 | even though symbolic links do not exist. | ||
| 163 | Make sure our conditionals based on S_IFLNK are not confused. | ||
| 164 | |||
| 165 | Here we assume that stat.h is included before config.h | ||
| 166 | so that we can override it here. | ||
| 167 | |||
| 168 | Version 6 of HP-UX has symbolic links. */ | ||
| 169 | |||
| 170 | #ifdef HPUX_5 | ||
| 171 | #undef S_IFLNK | ||
| 172 | #endif | ||
| 173 | |||
| 174 | /* Define the BSTRING functions in terms of the sysV functions. | ||
| 175 | Version 6 of HP-UX supplies these in the BSD library. */ | ||
| 176 | |||
| 177 | #ifdef HPUX_5 | ||
| 178 | #define bcopy(a,b,s) memcpy (b,a,s) | ||
| 179 | #define bzero(a,s) memset (a,0,s) | ||
| 180 | #define bcmp memcmp | ||
| 181 | #endif | ||
| 182 | |||
| 183 | /* On USG systems these have different names. | ||
| 184 | Version 6 of HP-UX supplies these in the BSD library. */ | ||
| 185 | |||
| 186 | #ifdef HPUX_5 | ||
| 187 | #define index strchr | ||
| 188 | #define rindex strrchr | ||
| 189 | #endif | ||
| 190 | |||
| 191 | /* Define C_SWITCH_MACHINE to be +X if you want the s200/300 | ||
| 192 | * Emacs to run on both 68010 and 68020 based hp-ux's. | ||
| 193 | * | ||
| 194 | * Define OLD_HP_ASSEMBLER if you have an ancient assembler | ||
| 195 | * | ||
| 196 | * Define HPUX_68010 if you are using the new assembler but | ||
| 197 | * compiling for a s200 (upgraded) or s310. 68010 based | ||
| 198 | * processor without 68881. | ||
| 199 | */ | ||
| 200 | |||
| 201 | /* These switches increase the size of some internal C compiler tables. | ||
| 202 | They are required for compiling the X11 interface files. */ | ||
| 203 | |||
| 204 | #ifndef HPUX_5 | ||
| 205 | #ifndef __GNUC__ | ||
| 206 | #define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000 | ||
| 207 | #endif | ||
| 208 | #endif | ||
| 209 | |||
| 210 | #endif /* not BSD4_3 */ | ||
| 211 | |||
| 212 | /* Define NEED_BSDTTY if you have such. */ | ||
| 213 | |||
| 214 | #ifndef NOMULTIPLEJOBS | ||
| 215 | #define NEED_BSDTTY | ||
| 216 | #endif | ||
| 217 | |||
| 218 | #ifndef NOT_C_CODE | ||
| 219 | #ifndef NO_SHORTNAMES | ||
| 220 | #include <sys/wait.h> | ||
| 221 | #define WAITTYPE int | ||
| 222 | #endif | ||
| 223 | #define WRETCODE(w) (((w) >> 8) & 0377) | ||
| 224 | #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 @@ | |||
| 1 | /* ibm370.h | ||
| 2 | For IBM 3090 type systems running AIX370. | ||
| 3 | Concocted by Scott Schwartz <schwartz@cs.psu.edu> | ||
| 4 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 9 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 10 | accepts responsibility to anyone for the consequences of using it | ||
| 11 | or for whether it serves any particular purpose or works at all, | ||
| 12 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 13 | License for full details. | ||
| 14 | |||
| 15 | Everyone is granted permission to copy, modify and redistribute | ||
| 16 | GNU Emacs, but only under the conditions described in the | ||
| 17 | GNU Emacs General Public License. A copy of this license is | ||
| 18 | supposed to have been given to you along with GNU Emacs so you | ||
| 19 | can know your rights and responsibilities. It should be in a | ||
| 20 | file named COPYING. Among other things, the copyright notice | ||
| 21 | and this notice must be preserved on all copies. */ | ||
| 22 | |||
| 23 | |||
| 24 | /* The following three symbols give information on | ||
| 25 | the size of various data types. */ | ||
| 26 | |||
| 27 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 28 | |||
| 29 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 30 | |||
| 31 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 32 | |||
| 33 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 34 | is the most significant byte. */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 39 | * group of arguments and treat it as an array of the arguments. */ | ||
| 40 | |||
| 41 | #define NO_ARG_ARRAY | ||
| 42 | |||
| 43 | /* Define WORD_MACHINE if addresses and such have | ||
| 44 | * to be corrected before they can be used as byte counts. */ | ||
| 45 | |||
| 46 | /* #define WORD_MACHINE */ | ||
| 47 | |||
| 48 | /* Define how to take a char and sign-extend into an int. | ||
| 49 | On machines where char is signed, this is a no-op. */ | ||
| 50 | |||
| 51 | #define SIGN_EXTEND_CHAR(c) (((c) & 0x80) ? ((c) | 0xffffff80) : (c)) | ||
| 52 | |||
| 53 | /* Now define a symbol for the cpu type, if your compiler | ||
| 54 | does not define it automatically: | ||
| 55 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 56 | orion, tahoe, APOLLO and many others */ | ||
| 57 | /* high-c defines _AIX370 */ | ||
| 58 | |||
| 59 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 60 | /* This is desirable for most machines. */ | ||
| 61 | |||
| 62 | #define NO_UNION_TYPE | ||
| 63 | |||
| 64 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 65 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 66 | are always unsigned. | ||
| 67 | |||
| 68 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 69 | |||
| 70 | #define EXPLICIT_SIGN_EXTEND | ||
| 71 | |||
| 72 | /* Data type of load average, as read out of kmem. */ | ||
| 73 | |||
| 74 | #define LOAD_AVE_TYPE double | ||
| 75 | |||
| 76 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 77 | |||
| 78 | /* XXX */ | ||
| 79 | #define LOAD_AVE_CVT(x) (int)(((double) (x)) * 100.0 / 1.0) | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | #define CANNOT_DUMP | ||
| 86 | #define CANNOT_UNEXEC | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | #define VIRT_ADDR_VARIES | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | /* #define C_ALLOCA */ | ||
| 105 | #define HAVE_ALLOCA | ||
| 106 | |||
| 107 | #ifndef NO_SHORTNAMES | ||
| 108 | #include <alloca.h> | ||
| 109 | #include <setjmp.h> | ||
| 110 | #endif | ||
| 111 | |||
| 112 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 113 | to change the boundary between the text section and data section | ||
| 114 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 115 | code will not be sharable; but that's better than failing completely. */ | ||
| 116 | |||
| 117 | #define NO_REMAP | ||
| 118 | |||
| 119 | /* Don't try to include sioctl.h. */ | ||
| 120 | #undef NEED_SIOCTL | ||
| 121 | /* That probably means we shouldn't try ptem.h either. */ | ||
| 122 | #undef NEED_PTEM_H | ||
| 123 | |||
| 124 | /* Note we do not define IBMAIX, since the `hft' features | ||
| 125 | don't exist on this machine. */ | ||
| 126 | |||
| 127 | #define LIBS_DEBUG -lg | ||
| 128 | #ifndef LD_SWITCH_SYSTEM | ||
| 129 | #define LD_SWITCH_SYSTEM | ||
| 130 | #endif | ||
| 131 | |||
| 132 | #define LIBS_SYSTEM -lbsd | ||
| 133 | |||
| 134 | /* The symbol in the kernel where the load average is found | ||
| 135 | is named _avenrun. */ | ||
| 136 | |||
| 137 | #undef LDAV_SYMBOL | ||
| 138 | #define LDAV_SYMBOL "_avenrun" | ||
| 139 | |||
| 140 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 141 | to interlock access to /usr/spool/mail/$USER. | ||
| 142 | The alternative is that a lock file named | ||
| 143 | /usr/spool/mail/$USER.lock. */ | ||
| 144 | #define MAIL_USE_FLOCK | ||
| 145 | |||
| 146 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 147 | so that Emacs can tell instantly when you try to modify | ||
| 148 | a file that someone else has modified in his Emacs. */ | ||
| 149 | #define CLASH_DETECTION | ||
| 150 | |||
| 151 | #define BSTRING | ||
| 152 | |||
| 153 | /* First pty name is /dev/ptyp0. */ | ||
| 154 | #define FIRST_PTY_LETTER 'p' | ||
| 155 | |||
| 156 | /* | ||
| 157 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 158 | * Look in <sys/time.h> for a timeval structure. | ||
| 159 | */ | ||
| 160 | #define HAVE_TIMEVAL | ||
| 161 | |||
| 162 | /* | ||
| 163 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 164 | */ | ||
| 165 | #define HAVE_SELECT | ||
| 166 | |||
| 167 | /* | ||
| 168 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 169 | */ | ||
| 170 | #define HAVE_PTYS | ||
| 171 | |||
| 172 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 173 | |||
| 174 | #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 @@ | |||
| 1 | /* machine description file for ibm ps/2 aix386. | ||
| 2 | Copyright (C) 1989 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use -opsystem=usg5-3 on AIX 1.2. | ||
| 27 | -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not | ||
| 28 | work with certain new X window managers, and may be suboptimal. | ||
| 29 | NOTE-END */ | ||
| 30 | |||
| 31 | /* The following three symbols give information on | ||
| 32 | the size of various data types. */ | ||
| 33 | |||
| 34 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 35 | |||
| 36 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 37 | |||
| 38 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 39 | |||
| 40 | /* i386 is not big-endian: lowest numbered byte is least significant. */ | ||
| 41 | |||
| 42 | /* #undef BIG_ENDIAN */ | ||
| 43 | |||
| 44 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 45 | * group of arguments and treat it as an array of the arguments. */ | ||
| 46 | |||
| 47 | /* #define NO_ARG_ARRAY */ | ||
| 48 | |||
| 49 | /* Define WORD_MACHINE if addresses and such have | ||
| 50 | * to be corrected before they can be used as byte counts. */ | ||
| 51 | |||
| 52 | /* #define WORD_MACHINE */ | ||
| 53 | |||
| 54 | /* Define how to take a char and sign-extend into an int. | ||
| 55 | On machines where char is signed, this is a no-op. */ | ||
| 56 | |||
| 57 | #define SIGN_EXTEND_CHAR(c) ((signed char) (c)) | ||
| 58 | |||
| 59 | /* Now define a symbol for the cpu type, if your compiler | ||
| 60 | does not define it automatically: | ||
| 61 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 62 | orion, tahoe, APOLLO and many others */ | ||
| 63 | |||
| 64 | #define INTEL386 | ||
| 65 | #define aix386 | ||
| 66 | #undef SYSTEM_TYPE | ||
| 67 | #define SYSTEM_TYPE "ibm-aix-386" | ||
| 68 | |||
| 69 | #define IBMAIX | ||
| 70 | |||
| 71 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 72 | |||
| 73 | #define NO_UNION_TYPE | ||
| 74 | |||
| 75 | /* crt0.c, if it is used, should use the i386-bsd style of entry. | ||
| 76 | with no extra dummy args. On USG and XENIX, | ||
| 77 | NO_REMAP says this isn't used. */ | ||
| 78 | |||
| 79 | #define CRT0_DUMMIES bogus_fp, | ||
| 80 | |||
| 81 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 82 | |||
| 83 | #define DOT_GLOBAL_START | ||
| 84 | |||
| 85 | /* USG systems do not actually support the load average, | ||
| 86 | so disable it for them. */ | ||
| 87 | |||
| 88 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 89 | Then the function dump-emacs will not be defined | ||
| 90 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 91 | |||
| 92 | /* #define CANNOT_DUMP */ | ||
| 93 | |||
| 94 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 95 | pure and impure space as loaded can vary, and even their | ||
| 96 | relative order cannot be relied on. | ||
| 97 | |||
| 98 | Otherwise Emacs assumes that text space precedes data space, | ||
| 99 | numerically. */ | ||
| 100 | |||
| 101 | /* #define VIRT_ADDR_VARIES */ | ||
| 102 | |||
| 103 | /* Define addresses, macros, change some setup for dump */ | ||
| 104 | |||
| 105 | #define NO_REMAP | ||
| 106 | #undef static | ||
| 107 | /* Since NO_REMAP, problem with statics doesn't exist */ | ||
| 108 | |||
| 109 | #ifdef USG5_3 | ||
| 110 | #define TEXT_START 0x00000000 | ||
| 111 | #else | ||
| 112 | #define TEXT_START 0x00400000 | ||
| 113 | #define TEXT_END 0 | ||
| 114 | #define DATA_START 0x00800000 | ||
| 115 | #define DATA_END 0 | ||
| 116 | |||
| 117 | /* The data segment in this machine always starts at address 0x00800000. | ||
| 118 | An address of data cannot be stored correctly in a Lisp object; | ||
| 119 | we always lose the high bits. We must tell XPNTR to add them back. */ | ||
| 120 | |||
| 121 | #define DATA_SEG_BITS 0x00800000 | ||
| 122 | #endif | ||
| 123 | |||
| 124 | #if 0 /* I refuse to promulgate a recommendation that would make | ||
| 125 | users unable to debug - RMS. */ | ||
| 126 | /* delete the following line to foil optimization, enable debugging */ | ||
| 127 | #define C_DEBUG_SWITCH -O | ||
| 128 | #endif | ||
| 129 | |||
| 130 | #define BSTRING | ||
| 131 | #define HAVE_DUP2 | ||
| 132 | #define HAVE_GETTIMEOFDAY | ||
| 133 | #define HAVE_SELECT | ||
| 134 | #define HAVE_TIMEVAL | ||
| 135 | #define HAVE_VFORK | ||
| 136 | |||
| 137 | /* | ||
| 138 | * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir | ||
| 139 | * library functions. Almost, but not quite the same as | ||
| 140 | * the 4.2 functions | ||
| 141 | */ | ||
| 142 | #define SYSV_SYSTEM_DIR | ||
| 143 | |||
| 144 | /* | ||
| 145 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 146 | * The 4.2 opendir, etc., library functions. | ||
| 147 | */ | ||
| 148 | #undef NONSYSTEM_DIR_LIBRARY | ||
| 149 | |||
| 150 | /* But don't use utimes() -- it causes SIGSEGV! Use utime() instead. */ | ||
| 151 | #define USE_UTIME | ||
| 152 | |||
| 153 | /* AIX defines FIONREAD, but it does not work. */ | ||
| 154 | #define BROKEN_FIONREAD | ||
| 155 | |||
| 156 | /* Data type of load average, as read out of kmem. */ | ||
| 157 | |||
| 158 | #define LOAD_AVE_TYPE long /* For AIX (sysV) */ | ||
| 159 | |||
| 160 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 161 | |||
| 162 | #define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0) | ||
| 163 | |||
| 164 | /* This page was added in June 1990. It may be incorrect for some versions | ||
| 165 | of aix, so delete it if it causes trouble. */ | ||
| 166 | |||
| 167 | /* AIX has sigsetmask() */ | ||
| 168 | #undef sigsetmask | ||
| 169 | |||
| 170 | /* AIX386 has BSD4.3 PTYs */ | ||
| 171 | |||
| 172 | #define HAVE_PTYS | ||
| 173 | |||
| 174 | /* AIX has IPC. It also has sockets, and either can be used for client/server. | ||
| 175 | I would suggest the client/server code be changed to use HAVE_SOCKETS rather | ||
| 176 | than BSD as the conditional if sockets provide any advantages. */ | ||
| 177 | |||
| 178 | #define HAVE_SYSVIPC | ||
| 179 | |||
| 180 | /* AIX has sockets */ | ||
| 181 | |||
| 182 | #define HAVE_SOCKETS | ||
| 183 | /* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */ | ||
| 184 | |||
| 185 | /* Specify the font for X to use. */ | ||
| 186 | |||
| 187 | #define X_DEFAULT_FONT "8x13" | ||
| 188 | |||
| 189 | /* AIX has a wait.h. */ | ||
| 190 | |||
| 191 | #define HAVE_WAIT_HEADER | ||
| 192 | |||
| 193 | /* sioctl.h should not be included, says bytheway@cs.utah.edu. */ | ||
| 194 | #undef NEED_SIOCTL | ||
| 195 | /* I'm guessing that that means it doesn't want ptem.h either. */ | ||
| 196 | #undef NEED_PTEM_H | ||
| 197 | |||
| 198 | /* aix has `union wait' */ | ||
| 199 | #define HAVE_UNION_WAIT | ||
| 200 | |||
| 201 | /* Here override various assumptions in ymakefile */ | ||
| 202 | |||
| 203 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 204 | and the one written in C should be used instead. | ||
| 205 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 206 | working alloca function and it should be used. | ||
| 207 | Define neither one if an assembler-language alloca | ||
| 208 | in the file alloca.s should be used. */ | ||
| 209 | |||
| 210 | #ifdef __GNUC__ | ||
| 211 | #define HAVE_ALLOCA | ||
| 212 | #define alloca(n) __builtin_alloca(n) | ||
| 213 | #define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc | ||
| 214 | /* -g fails to work, so it is omitted. */ | ||
| 215 | /* tranle says that -fstrength-reduce does not help. */ | ||
| 216 | #define C_DEBUG_SWITCH -O -fwritable-strings | ||
| 217 | #else | ||
| 218 | #define C_ALLOCA | ||
| 219 | #define STACK_DIRECTION -1 /* tell alloca.c which way it grows */ | ||
| 220 | #define LIBS_MACHINE -lbsd -lrts | ||
| 221 | #endif | ||
| 222 | |||
| 223 | #define OBJECTS_MACHINE hftctl.o | ||
| 224 | #define LD_SWITCH_MACHINE -T0x00400000 -K -e start | ||
| 225 | |||
| 226 | #ifdef USG5_3 | ||
| 227 | #define XICCC | ||
| 228 | #define HAVE_GETWD | ||
| 229 | #define HAVE_RENAME | ||
| 230 | #undef LD_SWITCH_MACHINE | ||
| 231 | #define LD_SWITCH_MACHINE -T0x0 -K -e start | ||
| 232 | |||
| 233 | /* Things defined in s-usg5-3.h that need to be overridden. */ | ||
| 234 | #undef NOMULTIPLEJOBS | ||
| 235 | #undef BROKEN_TIOCGETC | ||
| 236 | #undef LIBX10_SYSTEM | ||
| 237 | #undef LIBX11_SYSTEM | ||
| 238 | #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 @@ | |||
| 1 | /* machine description file for intel 386. | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Intel 386 (-machine=intel386 or -machine=is386.h) | ||
| 27 | |||
| 28 | The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3, | ||
| 29 | isc2-2, 386-ix, esix, or xenix. | ||
| 30 | |||
| 31 | 18.58 should support a wide variety of operating systems. | ||
| 32 | Use isc2-2 for Interactive 386/ix version 2.2. | ||
| 33 | Use 386ix for prior versions. | ||
| 34 | Use esix for Esix. It isn't clear what to do on an SCO system. | ||
| 35 | |||
| 36 | -machine=is386 is used for an Integrated Solutions 386 machine. | ||
| 37 | It may also be correct for Microport systems. | ||
| 38 | |||
| 39 | Cubix QBx/386 (-machine=intel386 -opsystem=usg5-3) | ||
| 40 | |||
| 41 | Changes merged in 19.1. Systems before 2/A/0 may fail to compile etags.c | ||
| 42 | due to a compiler bug. | ||
| 43 | |||
| 44 | Prime EXL (-machine=intel386 -opsystem=usg5-3) | ||
| 45 | |||
| 46 | Minor changes merged in 19.1. | ||
| 47 | NOTE-END */ | ||
| 48 | |||
| 49 | /* The following three symbols give information on | ||
| 50 | the size of various data types. */ | ||
| 51 | |||
| 52 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 53 | |||
| 54 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 55 | |||
| 56 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 57 | |||
| 58 | /* i386 is not big-endian: lowest numbered byte is least significant. */ | ||
| 59 | |||
| 60 | /* #undef BIG_ENDIAN */ | ||
| 61 | |||
| 62 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 63 | * group of arguments and treat it as an array of the arguments. */ | ||
| 64 | |||
| 65 | /* #define NO_ARG_ARRAY */ | ||
| 66 | |||
| 67 | /* Define WORD_MACHINE if addresses and such have | ||
| 68 | * to be corrected before they can be used as byte counts. */ | ||
| 69 | |||
| 70 | /* #define WORD_MACHINE */ | ||
| 71 | |||
| 72 | /* Define how to take a char and sign-extend into an int. | ||
| 73 | On machines where char is signed, this is a no-op. */ | ||
| 74 | |||
| 75 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 76 | |||
| 77 | /* Now define a symbol for the cpu type, if your compiler | ||
| 78 | does not define it automatically: | ||
| 79 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 80 | orion, tahoe, APOLLO and many others */ | ||
| 81 | |||
| 82 | #define INTEL386 | ||
| 83 | |||
| 84 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 85 | |||
| 86 | #define NO_UNION_TYPE | ||
| 87 | |||
| 88 | /* crt0.c, if it is used, should use the i386-bsd style of entry. | ||
| 89 | with no extra dummy args. On USG and XENIX, | ||
| 90 | NO_REMAP says this isn't used. */ | ||
| 91 | |||
| 92 | #define CRT0_DUMMIES bogus_fp, | ||
| 93 | |||
| 94 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 95 | |||
| 96 | #define DOT_GLOBAL_START | ||
| 97 | |||
| 98 | #ifdef XENIX | ||
| 99 | /* Data type of load average, as read out of kmem. */ | ||
| 100 | #define LOAD_AVE_TYPE short | ||
| 101 | |||
| 102 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 103 | #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE)) | ||
| 104 | |||
| 105 | #define FSCALE 256.0 /* determined by experimentation... */ | ||
| 106 | #endif | ||
| 107 | |||
| 108 | #ifdef USG5_4 /* Older USG systems do not support the load average. */ | ||
| 109 | /* Data type of load average, as read out of kmem. */ | ||
| 110 | |||
| 111 | #define LOAD_AVE_TYPE long | ||
| 112 | |||
| 113 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 114 | /* This is totally uncalibrated. */ | ||
| 115 | |||
| 116 | #define LOAD_AVE_CVT(x) ((int) ((double) (x)) * 100.0 / FSCALE) | ||
| 117 | #define FSCALE 256.0 | ||
| 118 | *endif | ||
| 119 | |||
| 120 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 121 | Then the function dump-emacs will not be defined | ||
| 122 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 123 | |||
| 124 | /* #define CANNOT_DUMP */ | ||
| 125 | |||
| 126 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 127 | pure and impure space as loaded can vary, and even their | ||
| 128 | relative order cannot be relied on. | ||
| 129 | |||
| 130 | Otherwise Emacs assumes that text space precedes data space, | ||
| 131 | numerically. */ | ||
| 132 | |||
| 133 | /* #define VIRT_ADDR_VARIES */ | ||
| 134 | |||
| 135 | #ifdef XENIX | ||
| 136 | #define VALBITS 26 | ||
| 137 | #define GCTYPEBITS 5 | ||
| 138 | |||
| 139 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 140 | to change the boundary between the text section and data section | ||
| 141 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 142 | code will not be sharable; but that's better than failing completely. */ | ||
| 143 | |||
| 144 | #define NO_REMAP | ||
| 145 | |||
| 146 | #define STACK_DIRECTION -1 | ||
| 147 | |||
| 148 | /* Since cannot purify, use standard Xenix 386 startup code. */ | ||
| 149 | |||
| 150 | #define START_FILES /lib/386/Sseg.o pre-crt0.o /lib/386/Scrt0.o | ||
| 151 | |||
| 152 | /* These really use terminfo. */ | ||
| 153 | |||
| 154 | #define LIBS_TERMCAP /lib/386/Slibcurses.a \ | ||
| 155 | /lib/386/Slibtinfo.a /lib/386/Slibx.a | ||
| 156 | |||
| 157 | /* Standard libraries for this machine. Since `-l' doesn't work in `ld'. */ | ||
| 158 | /* '__fltused' is unresolved w/o Slibcfp.a */ | ||
| 159 | #define LIB_STANDARD /lib/386/Slibcfp.a /lib/386/Slibc.a | ||
| 160 | #else /* not XENIX */ | ||
| 161 | |||
| 162 | #ifdef USG | ||
| 163 | #define LIB_STANDARD -lPW -lc | ||
| 164 | #define HAVE_ALLOCA | ||
| 165 | #define NO_REMAP | ||
| 166 | #define TEXT_START 0 | ||
| 167 | #endif /* USG */ | ||
| 168 | #endif /* not XENIX */ | ||
| 169 | |||
| 170 | #ifdef BSD | ||
| 171 | #define HAVE_ALLOCA | ||
| 172 | #endif /* BSD */ | ||
| 173 | BSD */ | ||
| 174 | |||
| 175 | /* If compiling with GCC, let GCC implement alloca. */ | ||
| 176 | #if defined(__GNUC__) && !defined(alloca) | ||
| 177 | #define alloca(n) __builtin_alloca(n) | ||
| 178 | #define HAVE_ALLOCA | ||
| 179 | #endif | ||
| 180 | |||
| 181 | /* Search these directories just in case; I'm told they might be needed. */ | ||
| 182 | #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 @@ | |||
| 1 | /* machine description file for Iris-4D machines. Use with s-iris3-6.h | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="irix3-3" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 57 | orion, tahoe, APOLLO and many others */ | ||
| 58 | |||
| 59 | #ifndef mips | ||
| 60 | #define mips | ||
| 61 | #endif | ||
| 62 | |||
| 63 | #ifndef IRIS_4D | ||
| 64 | #define IRIS_4D | ||
| 65 | #endif | ||
| 66 | |||
| 67 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 68 | /* This is desirable for most machines. */ | ||
| 69 | |||
| 70 | #define NO_UNION_TYPE | ||
| 71 | |||
| 72 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 73 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 74 | are always unsigned. | ||
| 75 | |||
| 76 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 77 | |||
| 78 | #define EXPLICIT_SIGN_EXTEND | ||
| 79 | |||
| 80 | /* Data type of load average, as read out of kmem. */ | ||
| 81 | |||
| 82 | #define LOAD_AVE_TYPE long /* This doesn't quite work on the 4D */ | ||
| 83 | |||
| 84 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 85 | |||
| 86 | #define LOAD_AVE_CVT(x) (int)(((double)(x)*100)/1024.0) | ||
| 87 | |||
| 88 | /* s-iris3-6.h uses /vmunix */ | ||
| 89 | |||
| 90 | #undef KERNEL_FILE | ||
| 91 | #define KERNEL_FILE "/unix" | ||
| 92 | |||
| 93 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 94 | Then the function dump-emacs will not be defined | ||
| 95 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 96 | |||
| 97 | #undef CANNOT_DUMP | ||
| 98 | |||
| 99 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 100 | pure and impure space as loaded can vary, and even their | ||
| 101 | relative order cannot be relied on. | ||
| 102 | |||
| 103 | Otherwise Emacs assumes that text space precedes data space, | ||
| 104 | numerically. */ | ||
| 105 | |||
| 106 | /* #define VIRT_ADDR_VARIES */ | ||
| 107 | |||
| 108 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 109 | and the one written in C should be used instead. | ||
| 110 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 111 | working alloca function and it should be used. | ||
| 112 | Define neither one if an assembler-language alloca | ||
| 113 | in the file alloca.s should be used. */ | ||
| 114 | |||
| 115 | #define C_ALLOCA | ||
| 116 | /* #define HAVE_ALLOCA */ | ||
| 117 | |||
| 118 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 119 | to change the boundary between the text section and data section | ||
| 120 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 121 | code will not be sharable; but that's better than failing completely. */ | ||
| 122 | |||
| 123 | #define NO_REMAP | ||
| 124 | |||
| 125 | /* This machine requires completely different unexec code | ||
| 126 | which lives in a separate file. Specify the file name. */ | ||
| 127 | |||
| 128 | #define UNEXEC unexmips.o | ||
| 129 | |||
| 130 | #define TEXT_START 0x400000 | ||
| 131 | |||
| 132 | /* | ||
| 133 | * DATA_SEG_BITS forces that bit to be or'd in with any pointers which | ||
| 134 | * are trying to access pure strings (as gnu-emacs only allows 24 bits | ||
| 135 | * for the value field of a LISP_OBJECT). | ||
| 136 | */ | ||
| 137 | |||
| 138 | #define DATA_START 0x10000000 | ||
| 139 | #define DATA_SEG_BITS 0x10000000 | ||
| 140 | |||
| 141 | #undef LIBS_MACHINE | ||
| 142 | /* -lsun in case using Yellow Pages for passwords. */ | ||
| 143 | #define LIBS_MACHINE -lsun -lmld | ||
| 144 | #define LIBS_DEBUG | ||
| 145 | |||
| 146 | /* Define this if you have a fairly recent system, | ||
| 147 | in which crt1.o and crt1.n should be used. */ | ||
| 148 | #define HAVE_CRTN | ||
| 149 | |||
| 150 | #ifdef HAVE_CRTN | ||
| 151 | /* Must define START-FILES so that the linker can find /usr/lib/crt0.o. */ | ||
| 152 | #define START_FILES pre-crt0.o /usr/lib/crt1.o | ||
| 153 | #define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o | ||
| 154 | #else | ||
| 155 | #define START_FILES pre-crt0.o /usr/lib/crt0.o | ||
| 156 | /* The entry-point label (start of text segment) is `start', not `__start'. */ | ||
| 157 | #define DEFAULT_ENTRY_ADDRESS start | ||
| 158 | #define LIB_STANDARD -lbsd -lc | ||
| 159 | #endif | ||
| 160 | |||
| 161 | /* Use terminfo instead of termcap. */ | ||
| 162 | |||
| 163 | #define TERMINFO | ||
| 164 | |||
| 165 | /* sioctl.h should be included where appropriate. */ | ||
| 166 | |||
| 167 | #define NEED_SIOCTL | ||
| 168 | |||
| 169 | /* Letter to use in finding device name of first pty, | ||
| 170 | if system supports pty's. 'a' means it is /dev/ptya0 */ | ||
| 171 | |||
| 172 | #undef FIRST_PTY_LETTER | ||
| 173 | #define FIRST_PTY_LETTER 'q' | ||
| 174 | |||
| 175 | /* Define STACK_DIRECTION for alloca.c */ | ||
| 176 | |||
| 177 | #define STACK_DIRECTION -1 | ||
| 178 | |||
| 179 | /* The standard definitions of these macros would work ok, | ||
| 180 | but these are faster because the constants are short. */ | ||
| 181 | |||
| 182 | #define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) | ||
| 183 | |||
| 184 | #define XSET(var, type, ptr) \ | ||
| 185 | ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) | ||
| 186 | |||
| 187 | #define XSETINT(a, b) XSET(a, XTYPE(a), b) | ||
| 188 | #define XSETUINT(a, b) XSET(a, XTYPE(a), b) | ||
| 189 | #define XSETPNTR(a, b) XSET(a, XTYPE(a), b) | ||
| 190 | |||
| 191 | #define XMARKBIT(a) ((a) < 0) | ||
| 192 | #define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0)) | ||
| 193 | #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 @@ | |||
| 1 | /* machine description file for Silicon Graphics Iris 2500 Turbos; | ||
| 2 | also possibly for non-turbo Irises with system release 2.5. | ||
| 3 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="note" | ||
| 25 | NOTE-START | ||
| 26 | Version 18 said to work; use -opsystem=irist3-5 for system version 2.5 | ||
| 27 | and -opsystem=iris3-6 for system versions 3.6 and up. | ||
| 28 | NOTE-END */ | ||
| 29 | |||
| 30 | #if 0 | ||
| 31 | Message-Id: <8705050653.AA20004@orville.arpa> | ||
| 32 | Subject: gnu emacs 18.41 on iris [23].5 machines | ||
| 33 | Date: 04 May 87 23:53:11 PDT (Mon) | ||
| 34 | From: raible@orville.arpa | ||
| 35 | |||
| 36 | Aside from the SIGIOT, I know of only one bug, a real strange one: | ||
| 37 | I wrote a utimes interface, which copies elements from timevals | ||
| 38 | to utimbufs. This code is known good. The problem is that in | ||
| 39 | emacs, the utime doesn't seem to take effect (i.e. doesn't change the | ||
| 40 | dates at all) unless I call report_file_error *after* the utime returns! | ||
| 41 | |||
| 42 | if (utime (name, &utb) < 0) | ||
| 43 | return; | ||
| 44 | else | ||
| 45 | /* XXX XXX XXX */ | ||
| 46 | /* For some reason, if this is taken out, then the utime above breaks! */ | ||
| 47 | /* (i.e. it doesn't set the time. This just makes no sense... */ | ||
| 48 | /* Eric - May 4, 1987 */ | ||
| 49 | report_file_error ("Worked just find\n", Qnil); | ||
| 50 | |||
| 51 | Without any sort of debugger that works on emacs (I know... but I don't have | ||
| 52 | *time* right now to start with gdb), it was quite time consuming to track | ||
| 53 | it down to this. | ||
| 54 | |||
| 55 | But since this code is only used for an optional 4th argument to one command | ||
| 56 | (copy-file), it would say that it is non-critical... | ||
| 57 | #endif /* 0 */ | ||
| 58 | |||
| 59 | /* The following three symbols give information on | ||
| 60 | the size of various data types. */ | ||
| 61 | |||
| 62 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 63 | |||
| 64 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 65 | |||
| 66 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 67 | |||
| 68 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 69 | is the most significant byte. */ | ||
| 70 | |||
| 71 | #define BIG_ENDIAN | ||
| 72 | |||
| 73 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 74 | * group of arguments and treat it as an array of the arguments. */ | ||
| 75 | |||
| 76 | /* #define NO_ARG_ARRAY */ | ||
| 77 | |||
| 78 | /* Define WORD_MACHINE if addresses and such have | ||
| 79 | * to be corrected before they can be used as byte counts. */ | ||
| 80 | |||
| 81 | /* #define WORD_MACHINE */ | ||
| 82 | |||
| 83 | /* Define how to take a char and sign-extend into an int. | ||
| 84 | On machines where char is signed, this is a no-op. */ | ||
| 85 | |||
| 86 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 87 | |||
| 88 | /* Now define a symbol for the cpu type, if your compiler | ||
| 89 | does not define it automatically: | ||
| 90 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 91 | orion, tahoe, APOLLO and many others */ | ||
| 92 | |||
| 93 | #ifndef m68000 | ||
| 94 | #define m68000 | ||
| 95 | #endif | ||
| 96 | |||
| 97 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 98 | /* This is desirable for most machines. */ | ||
| 99 | |||
| 100 | #define NO_UNION_TYPE | ||
| 101 | |||
| 102 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 103 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 104 | are always unsigned. | ||
| 105 | |||
| 106 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 107 | |||
| 108 | #define EXPLICIT_SIGN_EXTEND | ||
| 109 | |||
| 110 | /* Data type of load average, as read out of kmem. */ | ||
| 111 | |||
| 112 | #define LOAD_AVE_TYPE long | ||
| 113 | |||
| 114 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 115 | |||
| 116 | #define FSCALE 1.0 | ||
| 117 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 118 | |||
| 119 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 120 | Then the function dump-emacs will not be defined | ||
| 121 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 122 | |||
| 123 | /* #define CANNOT_DUMP */ | ||
| 124 | |||
| 125 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 126 | pure and impure space as loaded can vary, and even their | ||
| 127 | relative order cannot be relied on. | ||
| 128 | |||
| 129 | Otherwise Emacs assumes that text space precedes data space, | ||
| 130 | numerically. */ | ||
| 131 | |||
| 132 | /* #define VIRT_ADDR_VARIES */ | ||
| 133 | |||
| 134 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 135 | and the one written in C should be used instead. | ||
| 136 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 137 | working alloca function and it should be used. | ||
| 138 | Define neither one if an assembler-language alloca | ||
| 139 | in the file alloca.s should be used. */ | ||
| 140 | |||
| 141 | /* #define C_ALLOCA */ | ||
| 142 | #define HAVE_ALLOCA | ||
| 143 | |||
| 144 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 145 | to change the boundary between the text section and data section | ||
| 146 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 147 | code will not be sharable; but that's better than failing completely. */ | ||
| 148 | |||
| 149 | /* #define NO_REMAP */ | ||
| 150 | |||
| 151 | /* There is an inconsistency between the sgi assembler, linker which barfs | ||
| 152 | on these. */ | ||
| 153 | |||
| 154 | #define internal_with_output_to_temp_buffer stupid_long_name1 | ||
| 155 | #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 @@ | |||
| 1 | /* machine description file for ISI 68000's | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use `-opsystem=bsd4-2' or `-opsystem=bsd4-3'. | ||
| 27 | NOTE-END */ | ||
| 28 | |||
| 29 | #define ISI68K | ||
| 30 | |||
| 31 | /* The following three symbols give information on | ||
| 32 | the size of various data types. */ | ||
| 33 | |||
| 34 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 35 | |||
| 36 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 37 | |||
| 38 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 39 | |||
| 40 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 41 | |||
| 42 | #define BIG_ENDIAN | ||
| 43 | |||
| 44 | /* Define how to take a char and sign-extend into an int. | ||
| 45 | On machines where char is signed, this is a no-op. */ | ||
| 46 | |||
| 47 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 48 | |||
| 49 | /* Say this machine is a 68000 */ | ||
| 50 | |||
| 51 | #define m68000 | ||
| 52 | |||
| 53 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 54 | |||
| 55 | #define NO_UNION_TYPE | ||
| 56 | |||
| 57 | /* XINT must explicitly sign-extend */ | ||
| 58 | |||
| 59 | #define EXPLICIT_SIGN_EXTEND | ||
| 60 | |||
| 61 | /* Data type of load average, as read out of kmem. */ | ||
| 62 | |||
| 63 | #ifdef BSD4_3 | ||
| 64 | #define LOAD_AVE_TYPE long | ||
| 65 | #else | ||
| 66 | #define LOAD_AVE_TYPE double | ||
| 67 | #endif BSD4_3 | ||
| 68 | |||
| 69 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 70 | |||
| 71 | #ifdef BSD4_3 | ||
| 72 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 73 | #else | ||
| 74 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 75 | #endif | ||
| 76 | |||
| 77 | /* Mask for address bits within a memory segment */ | ||
| 78 | |||
| 79 | #define SEGMENT_MASK 0x1ffff | ||
| 80 | |||
| 81 | /* use the -20 switch to get the 68020 code */ | ||
| 82 | /* #define C_SWITCH_MACHINE -20 */ | ||
| 83 | |||
| 84 | /* Use the version of the library for the 68020 | ||
| 85 | because the standard library requires some special hacks in crt0 | ||
| 86 | which the GNU crt0 does not have. */ | ||
| 87 | |||
| 88 | #define LIB_STANDARD -lmc | ||
| 89 | |||
| 90 | /* macros to make unexec work right */ | ||
| 91 | |||
| 92 | #define A_TEXT_OFFSET(HDR) sizeof(HDR) | ||
| 93 | #define A_TEXT_SEEK(HDR) sizeof(HDR) | ||
| 94 | |||
| 95 | /* A few changes for the newer systems. */ | ||
| 96 | |||
| 97 | #ifdef BSD4_3 | ||
| 98 | #define HAVE_ALLOCA | ||
| 99 | /* The following line affects crt0.c. */ | ||
| 100 | #undef m68k | ||
| 101 | |||
| 102 | #undef LIB_STANDARD | ||
| 103 | #define LIB_STANDARD -lmc -lc | ||
| 104 | #define C_DEBUG_SWITCH -20 -O -X23 | ||
| 105 | #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 @@ | |||
| 1 | /* machine description file for Masscomp 5000 series running RTU, ucb universe. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="rtu" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #undef NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 57 | are the ones defined so far. */ | ||
| 58 | /* Masscomp predefines mc68000. */ | ||
| 59 | #define m68000 mc68000 | ||
| 60 | |||
| 61 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 62 | /* This is desirable for most machines. */ | ||
| 63 | |||
| 64 | #define NO_UNION_TYPE | ||
| 65 | |||
| 66 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 67 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 68 | are always unsigned. | ||
| 69 | |||
| 70 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 71 | |||
| 72 | #undef EXPLICIT_SIGN_EXTEND | ||
| 73 | |||
| 74 | /* Data type of load average, as read out of kmem. */ | ||
| 75 | |||
| 76 | #define LOAD_AVE_TYPE double | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 81 | |||
| 82 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 83 | Then the function dump-emacs will not be defined | ||
| 84 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 85 | |||
| 86 | #undef CANNOT_DUMP | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | #undef VIRT_ADDR_VARIES | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | /* On return from a subroutine, the 68020 compiler restores old contents of | ||
| 105 | register variables relative to sp, so alloca() screws up such routines. | ||
| 106 | The following definitions should work on all Masscomps. On the MC-5500 | ||
| 107 | (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */ | ||
| 108 | #ifdef mc500 | ||
| 109 | #undef C_ALLOCA | ||
| 110 | #define HAVE_ALLOCA | ||
| 111 | #else | ||
| 112 | #define C_ALLOCA | ||
| 113 | #undef HAVE_ALLOCA | ||
| 114 | #endif | ||
| 115 | |||
| 116 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 117 | to change the boundary between the text section and data section | ||
| 118 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 119 | code will not be sharable; but that's better than failing completely. */ | ||
| 120 | |||
| 121 | #undef NO_REMAP | ||
| 122 | |||
| 123 | /* crt0.c should use the vax-bsd style of entry, with a dummy arg. */ | ||
| 124 | |||
| 125 | #define CRT0_DUMMIES bogus_fp, | ||
| 126 | |||
| 127 | /* Name of file the to look in | ||
| 128 | for the kernel symbol table (for load average) */ | ||
| 129 | |||
| 130 | #define KERNEL_FILE "/unix" | ||
| 131 | |||
| 132 | /* This triggers some stuff to avoid a compiler bug */ | ||
| 133 | |||
| 134 | #define MASSC_REGISTER_BUG | ||
| 135 | |||
| 136 | /* Prevent -lg from being used for debugging. Not implemented? */ | ||
| 137 | |||
| 138 | #define LIBS_DEBUG | ||
| 139 | |||
| 140 | /* | ||
| 141 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 142 | * for terminal control. | ||
| 143 | */ | ||
| 144 | |||
| 145 | #define HAVE_TERMIO | ||
| 146 | |||
| 147 | /* Adjust a header field for the executable file about to be dumped. */ | ||
| 148 | |||
| 149 | #define ADJUST_EXEC_HEADER \ | ||
| 150 | 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 @@ | |||
| 1 | /* machine description file for Megatest 68000's. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* XINT must explicitly sign-extend */ | ||
| 39 | |||
| 40 | #define EXPLICIT_SIGN_EXTEND | ||
| 41 | |||
| 42 | /* Define how to take a char and sign-extend into an int. | ||
| 43 | On machines where char is signed, this is a no-op. */ | ||
| 44 | |||
| 45 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 46 | |||
| 47 | /* Say this machine is a 68000 */ | ||
| 48 | |||
| 49 | #define m68000 | ||
| 50 | |||
| 51 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 52 | |||
| 53 | #define NO_UNION_TYPE | ||
| 54 | |||
| 55 | /* Data type of load average, as read out of kmem. */ | ||
| 56 | |||
| 57 | #define LOAD_AVE_TYPE double | ||
| 58 | |||
| 59 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 60 | |||
| 61 | #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 @@ | |||
| 1 | /* machine description file for Whitechapel Computer Works MG1 (ns16000 based). | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | MG-1 version by L.M.McLoughlin | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="note" | ||
| 25 | |||
| 26 | NOTE-START | ||
| 27 | We are in the dark about what operating system runs on the Whitechapel | ||
| 28 | systems. Consult share-lib/MACHINES for information on which | ||
| 29 | operating systems Emacs has already been ported to; one of them might | ||
| 30 | work. If you find an existing system name that works or write your | ||
| 31 | own configuration files, please let the Free Software Foundation in on | ||
| 32 | your work; we'd like to distribute this information. | ||
| 33 | NOTE-END */ | ||
| 34 | |||
| 35 | /* The following three symbols give information on | ||
| 36 | the size of various data types. */ | ||
| 37 | |||
| 38 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 39 | |||
| 40 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 41 | |||
| 42 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 43 | |||
| 44 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 45 | is the most significant byte. */ | ||
| 46 | /* ns16000 is not big-endian: lowest numbered byte is least significant. */ | ||
| 47 | #undef BIG_ENDIAN | ||
| 48 | |||
| 49 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 50 | * group of arguments and treat it as an array of the arguments. */ | ||
| 51 | /* ns16000 call sequence used on mg1 means that &arg = the args as an array */ | ||
| 52 | #undef NO_ARG_ARRAY | ||
| 53 | |||
| 54 | /* Define WORD_MACHINE if addresses and such have | ||
| 55 | * to be corrected before they can be used as byte counts. */ | ||
| 56 | /* ns16000 addresses are byte addresses */ | ||
| 57 | #undef WORD_MACHINE | ||
| 58 | |||
| 59 | /* Define how to take a char and sign-extend into an int. | ||
| 60 | On machines where char is signed, this is a no-op. */ | ||
| 61 | |||
| 62 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 63 | |||
| 64 | /* Now define a symbol for the cpu type, if your compiler | ||
| 65 | does not define it automatically: | ||
| 66 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 67 | are the ones defined so far. */ | ||
| 68 | /* Say this machine is a 16000 and an mg1, cpp says its a 32000 */ | ||
| 69 | #define ns16000 | ||
| 70 | #define mg1 | ||
| 71 | |||
| 72 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 73 | /* This is desirable for most machines. */ | ||
| 74 | /* Not sure on mg-1 but this shouldn't hurt! */ | ||
| 75 | #define NO_UNION_TYPE | ||
| 76 | |||
| 77 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 78 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 79 | are always unsigned. | ||
| 80 | |||
| 81 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 82 | |||
| 83 | #define EXPLICIT_SIGN_EXTEND | ||
| 84 | |||
| 85 | /* Data type of load average, as read out of kmem. */ | ||
| 86 | /* mg1 its an unsigned long */ | ||
| 87 | #define LOAD_AVE_TYPE unsigned long | ||
| 88 | |||
| 89 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 90 | #define FSCALE 1000.0 | ||
| 91 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 92 | |||
| 93 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 94 | Then the function dump-emacs will not be defined | ||
| 95 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 96 | /* ns16000's have an unexec, so should the mg-1 */ | ||
| 97 | #undef CANNOT_DUMP | ||
| 98 | |||
| 99 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 100 | pure and impure space as loaded can vary, and even their | ||
| 101 | relative order cannot be relied on. | ||
| 102 | |||
| 103 | Otherwise Emacs assumes that text space precedes data space, | ||
| 104 | numerically. */ | ||
| 105 | /* hmmmm... not sure. copied sequent.h */ | ||
| 106 | #undef VIRT_ADDR_VARIES | ||
| 107 | |||
| 108 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 109 | and the one written in C should be used instead. | ||
| 110 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 111 | working alloca function and it should be used. | ||
| 112 | Define neither one if an assembler-language alloca | ||
| 113 | in the file alloca.s should be used. */ | ||
| 114 | /* hmmmm... again not sure. so copied sequent.h again! */ | ||
| 115 | #undef C_ALLOCA | ||
| 116 | #undef HAVE_ALLOCA | ||
| 117 | |||
| 118 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 119 | to change the boundary between the text section and data section | ||
| 120 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 121 | code will not be sharable; but that's better than failing completely. */ | ||
| 122 | /* mapping seems screwy */ | ||
| 123 | #define NO_REMAP | ||
| 124 | |||
| 125 | /* Avoids a compiler bug */ | ||
| 126 | /* 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 @@ | |||
| 1 | /* machine description file for Mips machines. | ||
| 2 | Copyright (C) 1987, 1990 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD | ||
| 27 | world. | ||
| 28 | NOTE-END */ | ||
| 29 | |||
| 30 | /* The following three symbols give information on | ||
| 31 | the size of various data types. */ | ||
| 32 | |||
| 33 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 34 | |||
| 35 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 36 | |||
| 37 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 38 | |||
| 39 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 40 | is the most significant byte. */ | ||
| 41 | |||
| 42 | #define BIG_ENDIAN | ||
| 43 | |||
| 44 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 45 | * group of arguments and treat it as an array of the arguments. */ | ||
| 46 | |||
| 47 | #define NO_ARG_ARRAY | ||
| 48 | |||
| 49 | /* Define WORD_MACHINE if addresses and such have | ||
| 50 | * to be corrected before they can be used as byte counts. */ | ||
| 51 | |||
| 52 | #undef WORD_MACHINE | ||
| 53 | |||
| 54 | /* Define how to take a char and sign-extend into an int. | ||
| 55 | On machines where char is signed, this is a no-op. */ | ||
| 56 | |||
| 57 | #define SIGN_EXTEND_CHAR(c) ((signed char)(c)) | ||
| 58 | |||
| 59 | /* Now define a symbol for the cpu type, if your compiler | ||
| 60 | does not define it automatically: | ||
| 61 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 62 | orion, tahoe, APOLLO and many others */ | ||
| 63 | #ifndef mips | ||
| 64 | # define mips | ||
| 65 | #endif | ||
| 66 | |||
| 67 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 68 | /* This is desirable for most machines. */ | ||
| 69 | |||
| 70 | #define NO_UNION_TYPE | ||
| 71 | |||
| 72 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 73 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 74 | are always unsigned. | ||
| 75 | |||
| 76 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 77 | |||
| 78 | #define EXPLICIT_SIGN_EXTEND | ||
| 79 | |||
| 80 | /* Data type of load average, as read out of kmem. */ | ||
| 81 | |||
| 82 | #define LOAD_AVE_TYPE long | ||
| 83 | |||
| 84 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 85 | |||
| 86 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0) | ||
| 87 | |||
| 88 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 89 | Then the function dump-emacs will not be defined | ||
| 90 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 91 | |||
| 92 | #undef CANNOT_DUMP | ||
| 93 | |||
| 94 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 95 | pure and impure space as loaded can vary, and even their | ||
| 96 | relative order cannot be relied on. | ||
| 97 | |||
| 98 | Otherwise Emacs assumes that text space precedes data space, | ||
| 99 | numerically. */ | ||
| 100 | |||
| 101 | /* #define VIRT_ADDR_VARIES */ | ||
| 102 | |||
| 103 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 104 | and the one written in C should be used instead. | ||
| 105 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 106 | working alloca function and it should be used. | ||
| 107 | Define neither one if an assembler-language alloca | ||
| 108 | in the file alloca.s should be used. */ | ||
| 109 | |||
| 110 | #define C_ALLOCA | ||
| 111 | /* #define HAVE_ALLOCA */ | ||
| 112 | |||
| 113 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 114 | to change the boundary between the text section and data section | ||
| 115 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 116 | code will not be sharable; but that's better than failing completely. */ | ||
| 117 | |||
| 118 | #define NO_REMAP | ||
| 119 | |||
| 120 | /* This machine requires completely different unexec code | ||
| 121 | which lives in a separate file. Specify the file name. */ | ||
| 122 | |||
| 123 | #define UNEXEC unexmips.o | ||
| 124 | |||
| 125 | /* Describe layout of the address space in an executing process. */ | ||
| 126 | |||
| 127 | #define TEXT_START 0x400000 | ||
| 128 | #define DATA_START 0x800000 | ||
| 129 | |||
| 130 | /* Alter some of the options used when linking. */ | ||
| 131 | |||
| 132 | #ifdef BSD | ||
| 133 | |||
| 134 | /* Supposedly the dec machine doesn't have this library. | ||
| 135 | #define LIBS_MACHINE -lmld */ | ||
| 136 | |||
| 137 | #define LD_SWITCH_MACHINE -D 800000 | ||
| 138 | #define LIBS_DEBUG | ||
| 139 | |||
| 140 | #else | ||
| 141 | |||
| 142 | #define LIBS_MACHINE -lmld | ||
| 143 | #define LD_SWITCH_MACHINE -D 800000 -g3 | ||
| 144 | #define START_FILES pre-crt0.o /usr/lib/crt1.o | ||
| 145 | #define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o | ||
| 146 | #define LIBS_TERMCAP -lcurses | ||
| 147 | |||
| 148 | #define C_SWITCH_SYSTEM -I/usr/include/bsd | ||
| 149 | #define C_DEBUG_SWITCH -O -g3 | ||
| 150 | |||
| 151 | #if defined(HAVE_X_WINDOWS) && defined(HAVE_X11) | ||
| 152 | #define HAVE_VFORK /* Graciously provided by libX.a */ | ||
| 153 | #endif | ||
| 154 | #endif | ||
| 155 | |||
| 156 | /* The standard definitions of these macros would work ok, | ||
| 157 | but these are faster because the constants are short. */ | ||
| 158 | |||
| 159 | #define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS) | ||
| 160 | |||
| 161 | #define XSET(var, type, ptr) \ | ||
| 162 | ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS)) | ||
| 163 | |||
| 164 | #define XSETINT(a, b) XSET(a, XTYPE(a), b) | ||
| 165 | #define XSETUINT(a, b) XSET(a, XTYPE(a), b) | ||
| 166 | #define XSETPNTR(a, b) XSET(a, XTYPE(a), b) | ||
| 167 | |||
| 168 | #define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS)) | ||
| 169 | #ifdef USG | ||
| 170 | |||
| 171 | /* Cancel certain parts of standard sysV support. */ | ||
| 172 | #undef NONSYSTEM_DIR_LIBRARY | ||
| 173 | #define SYSV_SYSTEM_DIR | ||
| 174 | #undef static | ||
| 175 | |||
| 176 | /* Don't try to use SIGIO or FIONREAD even though they are defined. */ | ||
| 177 | #undef SIGIO | ||
| 178 | #define BROKEN_FIONREAD | ||
| 179 | |||
| 180 | /* Describe special kernel features. */ | ||
| 181 | |||
| 182 | #define HAVE_SYSVIPC | ||
| 183 | |||
| 184 | #define HAVE_TIMEVAL | ||
| 185 | #if defined(emacs) | ||
| 186 | #include <bsd/sys/time.h> | ||
| 187 | #endif | ||
| 188 | |||
| 189 | /* #define HAVE_SELECT | ||
| 190 | The `select' in the system won't work for pipes, | ||
| 191 | so don't use it. */ | ||
| 192 | |||
| 193 | #define HAVE_DUP2 | ||
| 194 | #define HAVE_GETWD | ||
| 195 | #define HAVE_GETTIMEOFDAY | ||
| 196 | |||
| 197 | #define HAVE_PTYS | ||
| 198 | #define HAVE_SOCKETS | ||
| 199 | |||
| 200 | #undef NOMULTIPLEJOBS | ||
| 201 | #define utimes utime /* Someone should check this. */ | ||
| 202 | |||
| 203 | /* ??? */ | ||
| 204 | #define IRIS | ||
| 205 | |||
| 206 | #endif | ||
| 207 | |||
| 208 | #ifdef BSD | ||
| 209 | #define COFF | ||
| 210 | #define TERMINFO | ||
| 211 | #undef MAIL_USE_FLOCK /* Someone should check this. */ | ||
| 212 | #undef HAVE_UNION_WAIT | ||
| 213 | #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 @@ | |||
| 1 | /* machine description file for Mips running RISCOS version 4. */ | ||
| 2 | |||
| 3 | #include "mips.h" | ||
| 4 | |||
| 5 | /* The following line tells the configuration script what sort of | ||
| 6 | operating system this machine is likely to run. | ||
| 7 | USUAL-OPSYS="note" | ||
| 8 | |||
| 9 | NOTE-START | ||
| 10 | Use -opsystem=usg5-2-2 normally, or -opsystem=bsd4-3 with the BSD | ||
| 11 | world. | ||
| 12 | NOTE-END */ | ||
| 13 | |||
| 14 | /* Define MIPS2 if you have an R6000 or R4000. */ | ||
| 15 | /* #define MIPS2 */ | ||
| 16 | |||
| 17 | #ifdef MIPS2 | ||
| 18 | #define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 -mips2 | ||
| 19 | #else | ||
| 20 | #define C_DEBUG_SWITCH -systype bsd43 -O -Olimit 791 -g3 | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #ifdef TERMINFO | ||
| 24 | #undef TERMINFO | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #define START_FILES pre-crt0.o /lib/crt1.o | ||
| 28 | #define LIB_STANDARD -lmld -lc /lib/crtn.o | ||
| 29 | |||
| 30 | |||
| 31 | #define COFF | ||
| 32 | #undef LD_SWITCH_MACHINE | ||
| 33 | #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 @@ | |||
| 1 | /* machine description file for Sony's NEWS workstations, NEWS-OS 3.0. | ||
| 2 | Copyright (C) 1985, 1986, 1989 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3. | ||
| 27 | NOTE-END */ | ||
| 28 | |||
| 29 | /* Say this machine is a 68000 */ | ||
| 30 | |||
| 31 | #ifndef m68000 | ||
| 32 | #define m68000 | ||
| 33 | #endif | ||
| 34 | |||
| 35 | /* The following three symbols give information on | ||
| 36 | the size of various data types. */ | ||
| 37 | |||
| 38 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 39 | |||
| 40 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 41 | |||
| 42 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 43 | |||
| 44 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 45 | |||
| 46 | #define BIG_ENDIAN | ||
| 47 | |||
| 48 | /* One CRT0 Dummy variable */ | ||
| 49 | |||
| 50 | #define CRT0_DUMMIES one_dummy, | ||
| 51 | |||
| 52 | /* Define how to take a char and sign-extend into an int. | ||
| 53 | On machines where char is signed, this is a no-op. */ | ||
| 54 | |||
| 55 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 56 | |||
| 57 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 58 | |||
| 59 | #define NO_UNION_TYPE | ||
| 60 | |||
| 61 | /* The News machine has alloca. */ | ||
| 62 | |||
| 63 | #define HAVE_ALLOCA | ||
| 64 | |||
| 65 | /* Data type of load average, as read out of kmem. */ | ||
| 66 | |||
| 67 | #define LOAD_AVE_TYPE double | ||
| 68 | |||
| 69 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 70 | |||
| 71 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 72 | |||
| 73 | /* Must use the system's termcap. It does special things. */ | ||
| 74 | |||
| 75 | #define LIBS_TERMCAP -ltermcap | ||
| 76 | |||
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 @@ | |||
| 1 | /* machine description file for ns16000. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | For the Encore, use `-opsystem=umax'. | ||
| 27 | For a Tektronix 16000 box (a 6130, perhaps?), use `-opsystem=bsd4-2'. | ||
| 28 | Use `-machine=ns16000' for both. | ||
| 29 | NOTE-END */ | ||
| 30 | |||
| 31 | /* The following three symbols give information on | ||
| 32 | the size of various data types. */ | ||
| 33 | |||
| 34 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 35 | |||
| 36 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 37 | |||
| 38 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 39 | |||
| 40 | /* 16000 is little-endian (lowest-numbered byte is least significant) */ | ||
| 41 | |||
| 42 | /* #define BIG_ENDIAN */ /* So don't define this. */ | ||
| 43 | |||
| 44 | /* Define how to take a char and sign-extend into an int. | ||
| 45 | On machines where char is signed, this is a no-op. */ | ||
| 46 | |||
| 47 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 48 | |||
| 49 | /* Say this machine is a 16000 */ | ||
| 50 | |||
| 51 | #define ns16000 1 | ||
| 52 | |||
| 53 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 54 | |||
| 55 | #define NO_UNION_TYPE | ||
| 56 | |||
| 57 | /* Data type of load average, as read out of kmem. */ | ||
| 58 | |||
| 59 | #ifndef USG | ||
| 60 | #define LOAD_AVE_TYPE double | ||
| 61 | #endif | ||
| 62 | |||
| 63 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 64 | |||
| 65 | #ifndef USG | ||
| 66 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 67 | #endif | ||
| 68 | |||
| 69 | #ifdef USG | ||
| 70 | |||
| 71 | /* Control assembler syntax used in alloca.s. */ | ||
| 72 | #define NS5 | ||
| 73 | |||
| 74 | /* On early NS systems ulimit was buggy. If set emacs uses this value | ||
| 75 | * for the maximum sbrk value instead of getting it from ulimit. | ||
| 76 | */ | ||
| 77 | #define ULIMIT_BREAK_VALUE 0x7E0000 | ||
| 78 | |||
| 79 | /* Early NS compilers have this bug. I believe it has been fixed in later | ||
| 80 | * releases. | ||
| 81 | */ | ||
| 82 | #define SHORT_CAST_BUG | ||
| 83 | |||
| 84 | #define SEGMENT_MASK (NBPS - 1) | ||
| 85 | |||
| 86 | /* Variables to get crt0.c to come out correctly */ | ||
| 87 | #define CRT0_DUMMIES bogus_fp, | ||
| 88 | #define DOT_GLOBAL_START | ||
| 89 | |||
| 90 | /* Control how emacsclient communicates. */ | ||
| 91 | #define HAVE_SYSVIPC | ||
| 92 | |||
| 93 | /* Set this to /bin/mail unless you have a better mail posting program */ | ||
| 94 | #define MAIL_PROGRAM_NAME "/usr/local/bin/remail" | ||
| 95 | |||
| 96 | /* Tell sysdep.c not to define bzero, etc. */ | ||
| 97 | #undef BSTRING | ||
| 98 | #define BSTRING | ||
| 99 | |||
| 100 | /* Macro definitions to emulate BSD functions with SysV ones */ | ||
| 101 | #undef bcopy | ||
| 102 | #undef bzero | ||
| 103 | #undef bcmp | ||
| 104 | |||
| 105 | #define bcopy(a,b,s) memcpy(b,a,s) | ||
| 106 | #define bzero(a,s) memset(a,0,s) | ||
| 107 | #define bcmp memcmp | ||
| 108 | |||
| 109 | /* This avoids problems with uninitialized static variables going in .data. */ | ||
| 110 | #define static | ||
| 111 | |||
| 112 | #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 @@ | |||
| 1 | /* machine description file for Netional Semiconductor 32000, running Genix. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 7 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 8 | accepts responsibility to anyone for the consequences of using it | ||
| 9 | or for whether it serves any particular purpose or works at all, | ||
| 10 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 11 | License for full details. | ||
| 12 | |||
| 13 | Everyone is granted permission to copy, modify and redistribute | ||
| 14 | GNU Emacs, but only under the conditions described in the | ||
| 15 | GNU Emacs General Public License. A copy of this license is | ||
| 16 | supposed to have been given to you along with GNU Emacs so you | ||
| 17 | can know your rights and responsibilities. It should be in a | ||
| 18 | file named COPYING. Among other things, the copyright notice | ||
| 19 | and this notice must be preserved on all copies. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="usg5-2" */ | ||
| 25 | |||
| 26 | /* The following three symbols give information on | ||
| 27 | the size of various data types. */ | ||
| 28 | |||
| 29 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 30 | |||
| 31 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 32 | |||
| 33 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 34 | |||
| 35 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 36 | is the most significant byte. */ | ||
| 37 | |||
| 38 | /* #define BIG_ENDIAN */ | ||
| 39 | |||
| 40 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 41 | * group of arguments and treat it as an array of the arguments. */ | ||
| 42 | |||
| 43 | /* #define NO_ARG_ARRAY */ | ||
| 44 | |||
| 45 | /* Define WORD_MACHINE if addresses and such have | ||
| 46 | * to be corrected before they can be used as byte counts. */ | ||
| 47 | |||
| 48 | /* #define WORD_MACHINE */ | ||
| 49 | |||
| 50 | /* Define how to take a char and sign-extend into an int. | ||
| 51 | On machines where char is signed, this is a no-op. */ | ||
| 52 | |||
| 53 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 54 | |||
| 55 | /* Now define a symbol for the cpu type, if your compiler | ||
| 56 | does not define it automatically: | ||
| 57 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 58 | orion, tahoe, APOLLO and many others */ | ||
| 59 | |||
| 60 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 61 | /* This is desirable for most machines. */ | ||
| 62 | |||
| 63 | #define NO_UNION_TYPE | ||
| 64 | |||
| 65 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 66 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 67 | are always unsigned. | ||
| 68 | |||
| 69 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 70 | |||
| 71 | #define EXPLICIT_SIGN_EXTEND | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | /* #define LOAD_AVE_TYPE long */ | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | /* #define CANNOT_DUMP */ | ||
| 86 | |||
| 87 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 88 | pure and impure space as loaded can vary, and even their | ||
| 89 | relative order cannot be relied on. | ||
| 90 | |||
| 91 | Otherwise Emacs assumes that text space precedes data space, | ||
| 92 | numerically. */ | ||
| 93 | |||
| 94 | /* #define VIRT_ADDR_VARIES */ | ||
| 95 | |||
| 96 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 97 | and the one written in C should be used instead. | ||
| 98 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 99 | working alloca function and it should be used. | ||
| 100 | Define neither one if an assembler-language alloca | ||
| 101 | in the file alloca.s should be used. */ | ||
| 102 | |||
| 103 | /* #define C_ALLOCA */ | ||
| 104 | /* #define HAVE_ALLOCA */ | ||
| 105 | |||
| 106 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 107 | to change the boundary between the text section and data section | ||
| 108 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 109 | code will not be sharable; but that's better than failing completely. */ | ||
| 110 | |||
| 111 | /* #define NO_REMAP */ | ||
| 112 | |||
| 113 | #define TEXT_START 0 | ||
| 114 | |||
| 115 | #define STACK_DIRECTION -1 | ||
| 116 | |||
| 117 | #define EXEC_MAGIC 0410 | ||
| 118 | |||
| 119 | #define PURESIZE 140000 | ||
| 120 | |||
| 121 | #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 @@ | |||
| 1 | /* machine description file for TI Nu machines using system V. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* XINT must explicitly sign-extend */ | ||
| 40 | |||
| 41 | #define EXPLICIT_SIGN_EXTEND | ||
| 42 | |||
| 43 | /* Define how to take a char and sign-extend into an int. | ||
| 44 | On machines where char is signed, this is a no-op. */ | ||
| 45 | |||
| 46 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 47 | |||
| 48 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 49 | |||
| 50 | #define NO_UNION_TYPE | ||
| 51 | |||
| 52 | /* Now define a symbol for the cpu type, if your compiler | ||
| 53 | does not define it automatically: | ||
| 54 | vax, m68000, ns16000 are the ones defined so far. */ | ||
| 55 | |||
| 56 | #ifndef m68000 | ||
| 57 | #define m68000 | ||
| 58 | #endif | ||
| 59 | |||
| 60 | #ifndef NU | ||
| 61 | #define NU | ||
| 62 | #endif | ||
| 63 | |||
| 64 | /* Data type of load average, as read out of kmem. */ | ||
| 65 | /* These are commented out since it does not really work in uniplus */ | ||
| 66 | |||
| 67 | /* #define LOAD_AVE_TYPE long */ | ||
| 68 | |||
| 69 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 70 | |||
| 71 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */ | ||
| 72 | |||
| 73 | /* Change some things to avoid bugs in compiler */ | ||
| 74 | |||
| 75 | #define SWITCH_ENUM_BUG 1 | ||
| 76 | |||
| 77 | /* The NU machine has a compiler that can handle long names. */ | ||
| 78 | |||
| 79 | #undef SHORTNAMES | ||
| 80 | |||
| 81 | /* Specify alignment requirement for start of text and data sections | ||
| 82 | in the executable file. */ | ||
| 83 | |||
| 84 | #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 @@ | |||
| 1 | /* machine description file for HLH Orion. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #undef BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Now define a symbol for the cpu type, if your compiler | ||
| 40 | does not define it automatically. */ | ||
| 41 | |||
| 42 | #ifndef orion | ||
| 43 | #define orion | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 47 | * group of arguments and treat it as an array of the arguments. */ | ||
| 48 | |||
| 49 | #define NO_ARG_ARRAY | ||
| 50 | |||
| 51 | /* Define WORD_MACHINE if addresses and such have | ||
| 52 | * to be corrected before they can be used as byte counts. */ | ||
| 53 | |||
| 54 | #define WORD_MACHINE | ||
| 55 | |||
| 56 | /* Define how to take a char and sign-extend into an int. | ||
| 57 | On machines where char is signed, this is a no-op. */ | ||
| 58 | |||
| 59 | #define SIGN_EXTEND_CHAR(c) ((((int) (c)) << 24) >> 24) | ||
| 60 | |||
| 61 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 62 | /* This is desirable for most machines. */ | ||
| 63 | |||
| 64 | #define NO_UNION_TYPE | ||
| 65 | |||
| 66 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */ | ||
| 67 | |||
| 68 | #define EXPLICIT_SIGN_EXTEND | ||
| 69 | |||
| 70 | /* Data type of load average, as read out of kmem. */ | ||
| 71 | |||
| 72 | #define LOAD_AVE_TYPE double | ||
| 73 | |||
| 74 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 75 | |||
| 76 | #ifndef FSCALE | ||
| 77 | #define FSCALE 1.0 | ||
| 78 | #endif | ||
| 79 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 80 | |||
| 81 | /* It is necessary to use the portable imitation of alloca, | ||
| 82 | since a true stack-allocating one is impossible. */ | ||
| 83 | |||
| 84 | #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 @@ | |||
| 1 | /* machine description file for HLH Orion 1/05 (Clipper). | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk> | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="bsd4-2" */ | ||
| 25 | |||
| 26 | /* The following three symbols give information on | ||
| 27 | the size of various data types. */ | ||
| 28 | |||
| 29 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 30 | |||
| 31 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 32 | |||
| 33 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 34 | |||
| 35 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 36 | is the most significant byte. */ | ||
| 37 | |||
| 38 | #undef BIG_ENDIAN | ||
| 39 | |||
| 40 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 41 | * group of arguments and treat it as an array of the arguments. */ | ||
| 42 | |||
| 43 | #define NO_ARG_ARRAY | ||
| 44 | |||
| 45 | /* Define WORD_MACHINE if addresses and such have | ||
| 46 | * to be corrected before they can be used as byte counts. */ | ||
| 47 | |||
| 48 | #define SIGN_EXTEND_CHAR(c) ((int)(c)) | ||
| 49 | |||
| 50 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 51 | /* This is desirable for most machines. */ | ||
| 52 | |||
| 53 | #define NO_UNION_TYPE | ||
| 54 | |||
| 55 | /* Data type of load average, as read out of kmem. */ | ||
| 56 | /* This used to be `double'. */ | ||
| 57 | |||
| 58 | #define LOAD_AVE_TYPE long | ||
| 59 | |||
| 60 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 61 | |||
| 62 | /* This used to be 1.0. */ | ||
| 63 | #ifndef FSCALE | ||
| 64 | #define FSCALE 256 | ||
| 65 | #endif | ||
| 66 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 67 | |||
| 68 | /* HLH have a SIGWINCH defined (but unimplemented) so we need a sigmask */ | ||
| 69 | #ifndef sigmask | ||
| 70 | #define sigmask(m) (1 << ((m) - 1)) | ||
| 71 | #endif | ||
| 72 | |||
| 73 | #define HAVE_ALLOCA | ||
| 74 | |||
| 75 | /* Here is where programs actually start running */ | ||
| 76 | #define TEXT_START 0x8000 | ||
| 77 | #define LD_TEXT_START_ADDR 8000 | ||
| 78 | |||
| 79 | /* Arguments to ignore before argc in crt0.c. */ | ||
| 80 | #define DUMMIES dummy1, dummy2, | ||
| 81 | |||
| 82 | /* dbx can't cope so what the heck - currently (July 88) eval.c causes | ||
| 83 | * the compiler to go into an infinite loop - so compile it by hand | ||
| 84 | * cc -c -Demacs eval.c | ||
| 85 | * before running make | ||
| 86 | */ | ||
| 87 | #define C_DEBUG_SWITCH -O | ||
| 88 | |||
| 89 | /* Since not debugging don't add dbx lib */ | ||
| 90 | #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 @@ | |||
| 1 | /* machine description file for the Plexus running System V.2. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #undef NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 57 | are the ones defined so far. */ | ||
| 58 | /* Plexus predefines m68 instead of m68000. */ | ||
| 59 | #define m68000 m68 | ||
| 60 | |||
| 61 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 62 | /* This is desirable for most machines. */ | ||
| 63 | |||
| 64 | #define NO_UNION_TYPE | ||
| 65 | |||
| 66 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 67 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 68 | are always unsigned. | ||
| 69 | |||
| 70 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 71 | |||
| 72 | #undef EXPLICIT_SIGN_EXTEND | ||
| 73 | |||
| 74 | /* Data type of load average, as read out of kmem. */ | ||
| 75 | |||
| 76 | #undef LOAD_AVE_TYPE | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | #undef LOAD_AVE_CVT | ||
| 81 | |||
| 82 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 83 | Then the function dump-emacs will not be defined | ||
| 84 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 85 | |||
| 86 | #undef CANNOT_DUMP | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | #undef VIRT_ADDR_VARIES | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | #undef C_ALLOCA | ||
| 105 | #define HAVE_ALLOCA | ||
| 106 | |||
| 107 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 108 | to change the boundary between the text section and data section | ||
| 109 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 110 | code will not be sharable; but that's better than failing completely. */ | ||
| 111 | |||
| 112 | #undef NO_REMAP | ||
| 113 | |||
| 114 | /* Use the following on ld so we can use the gnu crt0 | ||
| 115 | The plexus ld looks for start */ | ||
| 116 | #define LD_SWITCH_MACHINE -e __start | ||
| 117 | |||
| 118 | /* Use the PW library, which contains alloca. */ | ||
| 119 | |||
| 120 | #define LIB_STANDARD -lPW -lc | ||
| 121 | |||
| 122 | /* crt0.c should use the vax-bsd style of entry, with no dummy args. */ | ||
| 123 | |||
| 124 | #define CRT0_DUMMIES zero1, zero2, | ||
| 125 | |||
| 126 | /* This triggers some stuff to avoid a compiler bug */ | ||
| 127 | |||
| 128 | #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 @@ | |||
| 1 | #include "mips.h" | ||
| 2 | |||
| 3 | /* The following line tells the configuration script what sort of | ||
| 4 | operating system this machine is likely to run. | ||
| 5 | USUAL-OPSYS="bsd4-2" */ | ||
| 6 | |||
| 7 | #undef BIG_ENDIAN | ||
| 8 | #define LIBS_DEBUG | ||
| 9 | |||
| 10 | /* This line starts being needed with ultrix 4.0. */ | ||
| 11 | /* You may need to delete it on version 3.1. */ | ||
| 12 | #define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o | ||
| 13 | |||
| 14 | /* Supposedly the following will overcome a kernel bug. */ | ||
| 15 | #undef LD_SWITCH_MACHINE | ||
| 16 | #undef DATA_START | ||
| 17 | #define DATA_START 0x10000000 | ||
| 18 | #define DATA_SEG_BITS 0x10000000 | ||
| 19 | |||
| 20 | /* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist | ||
| 21 | on defining malloc itself. This should avoid conflicting with it. */ | ||
| 22 | #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 @@ | |||
| 1 | /* machine description file for pyramid. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #ifdef __GNUC__ | ||
| 43 | #define NO_ARG_ARRAY | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* XINT must explicitly sign extend */ | ||
| 47 | |||
| 48 | #define EXPLICIT_SIGN_EXTEND | ||
| 49 | |||
| 50 | /* Define how to take a char and sign-extend into an int. | ||
| 51 | On machines where char is signed, this is a no-op. */ | ||
| 52 | |||
| 53 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 54 | |||
| 55 | /* pyramid preprocessor defines "pyr", however the following is clearer */ | ||
| 56 | #define pyramid | ||
| 57 | |||
| 58 | /* Don't use the union types any more. They were used until Emacs 17.45. */ | ||
| 59 | |||
| 60 | #define NO_UNION_TYPE | ||
| 61 | |||
| 62 | /* Data type of load average, as read out of kmem. */ | ||
| 63 | |||
| 64 | #define LOAD_AVE_TYPE double | ||
| 65 | |||
| 66 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 67 | |||
| 68 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 69 | |||
| 70 | /* Don't use the ordinary -g for debugging in cc */ | ||
| 71 | |||
| 72 | #define C_DEBUG_SWITCH -gx | ||
| 73 | |||
| 74 | /* Reenable this #define for old versions of the Pyramid system. */ | ||
| 75 | |||
| 76 | /* #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 @@ | |||
| 1 | /* machine description file for SEQUENT BALANCE machines | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems. | ||
| 27 | NOTE-END */ | ||
| 28 | |||
| 29 | /* NOTE: this file works for DYNIX release 2.0 | ||
| 30 | (not tested on 1.3) on NS32000's */ | ||
| 31 | |||
| 32 | /* The following three symbols give information on | ||
| 33 | the size of various data types. */ | ||
| 34 | |||
| 35 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 36 | |||
| 37 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 38 | |||
| 39 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 40 | |||
| 41 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 42 | is the most significant byte. */ | ||
| 43 | |||
| 44 | /* #define BIG_ENDIAN */ | ||
| 45 | |||
| 46 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 47 | * group of arguments and treat it as an array of the arguments. */ | ||
| 48 | |||
| 49 | /* #define NO_ARG_ARRAY */ | ||
| 50 | |||
| 51 | /* Define WORD_MACHINE if addresses and such have | ||
| 52 | * to be corrected before they can be used as byte counts. */ | ||
| 53 | |||
| 54 | /* #define WORD_MACHINE */ | ||
| 55 | |||
| 56 | /* Define how to take a char and sign-extend into an int. | ||
| 57 | On machines where char is signed, this is a no-op. */ | ||
| 58 | |||
| 59 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 60 | |||
| 61 | /* Now define a symbol for the cpu type, if your compiler | ||
| 62 | does not define it automatically: | ||
| 63 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 64 | are the ones defined so far. */ | ||
| 65 | |||
| 66 | /* BTW: DYNIX defines sequent, ns32000, and ns16000 (GENIX compatibility) */ | ||
| 67 | #ifndef sequent /* pre DYNIX 2.1 releases */ | ||
| 68 | # define sequent | ||
| 69 | #endif | ||
| 70 | |||
| 71 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 72 | /* This is desirable for most machines. */ | ||
| 73 | |||
| 74 | #define NO_UNION_TYPE | ||
| 75 | |||
| 76 | /* crt0.c should use the vax-bsd style of entry, with these dummy args. */ | ||
| 77 | |||
| 78 | #define CRT0_DUMMIES bogus_fp, | ||
| 79 | |||
| 80 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 81 | |||
| 82 | #define DOT_GLOBAL_START | ||
| 83 | |||
| 84 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 85 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 86 | are always unsigned. | ||
| 87 | |||
| 88 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 89 | |||
| 90 | #define EXPLICIT_SIGN_EXTEND | ||
| 91 | |||
| 92 | /* Data type of load average, as read out of kmem. */ | ||
| 93 | |||
| 94 | #define LOAD_AVE_TYPE unsigned long | ||
| 95 | |||
| 96 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 97 | |||
| 98 | #define FSCALE 1000.0 | ||
| 99 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 100 | |||
| 101 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 102 | Then the function dump-emacs will not be defined | ||
| 103 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 104 | |||
| 105 | /* #define CANNOT_DUMP */ | ||
| 106 | |||
| 107 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 108 | pure and impure space as loaded can vary, and even their | ||
| 109 | relative order cannot be relied on. | ||
| 110 | |||
| 111 | Otherwise Emacs assumes that text space precedes data space, | ||
| 112 | numerically. */ | ||
| 113 | |||
| 114 | /* #define VIRT_ADDR_VARIES */ | ||
| 115 | |||
| 116 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 117 | and the one written in C should be used instead. | ||
| 118 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 119 | working alloca function and it should be used. | ||
| 120 | Define neither one if an assembler-language alloca | ||
| 121 | in the file alloca.s should be used. */ | ||
| 122 | |||
| 123 | /* #define C_ALLOCA */ | ||
| 124 | #define HAVE_ALLOCA | ||
| 125 | |||
| 126 | /* Name of file the to look in | ||
| 127 | for the kernel symbol table (for load average) */ | ||
| 128 | |||
| 129 | #undef KERNEL_FILE | ||
| 130 | #define KERNEL_FILE "/dynix" | ||
| 131 | |||
| 132 | /* Avoids a compiler bug */ | ||
| 133 | |||
| 134 | #define TAHOE_REGISTER_BUG | ||
| 135 | |||
| 136 | /* Say that the text segment of a.out includes the header; | ||
| 137 | the header actually occupies the first few bytes of the text segment | ||
| 138 | and is counted in hdr.a_text. Furthermore, the value written | ||
| 139 | in the a_text in the file must have N_ADDRADJ added to it. */ | ||
| 140 | |||
| 141 | #define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR)) | ||
| 142 | |||
| 143 | /* This is the offset of the executable's text, from the start of the file. */ | ||
| 144 | |||
| 145 | #define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr)) | ||
| 146 | |||
| 147 | /* (short) negative-int doesn't sign-extend correctly */ | ||
| 148 | #define SHORT_CAST_BUG | ||
| 149 | |||
| 150 | /* Cause compilations to be done in parallel in ymakefile. */ | ||
| 151 | #define MAKE_PARALLEL & | ||
| 152 | |||
| 153 | /* Say that mailer interlocking uses flock. */ | ||
| 154 | #define MAIL_USE_FLOCK | ||
| 155 | |||
| 156 | /* On many 4.2-based systems, there's a rather tricky bug | ||
| 157 | * with the interpretation of the pid/pgrp value given to | ||
| 158 | * the F_SETOWN fcntl() call. It works as documented EXCEPT | ||
| 159 | * when applied to filedescriptors for sockets, in which case | ||
| 160 | * the sign must be reversed. If your emacs subprocesses get | ||
| 161 | * SIGIO's when they shouldn't, while running on a socket | ||
| 162 | * (e.g. under X windows), you should probably define this. | ||
| 163 | */ | ||
| 164 | |||
| 165 | #define F_SETOWN_SOCK_NEG | ||
| 166 | |||
| 167 | /* Some really obscure 4.2-based systems (like Sequent DYNIX) | ||
| 168 | * do not support asynchronous I/O (using SIGIO) on sockets, | ||
| 169 | * even though it works fine on tty's. If you have one of | ||
| 170 | * these systems, define the following, and then use it in | ||
| 171 | * config.h (or elsewhere) to decide when (not) to use SIGIO. | ||
| 172 | */ | ||
| 173 | |||
| 174 | #define NO_SOCK_SIGIO | ||
| 175 | |||
| 176 | /* Define how to search all pty names. | ||
| 177 | This is for Dynix 3.0; delete next 5 definitions for older systems. */ | ||
| 178 | |||
| 179 | #define PTY_MAJOR "pqrstuvwPQRSTUVW" | ||
| 180 | #define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | ||
| 181 | #define PTY_ITERATION \ | ||
| 182 | register int ma, mi; \ | ||
| 183 | for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \ | ||
| 184 | for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++) | ||
| 185 | #define PTY_NAME_SPRINTF \ | ||
| 186 | sprintf (ptyname, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]); | ||
| 187 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 188 | 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 @@ | |||
| 1 | /* machine description file for Sun 4 SPARC. | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | /* The following line tells the configuration script what sort of | ||
| 21 | operating system this machine is likely to run. | ||
| 22 | USUAL-OPSYS="note" | ||
| 23 | |||
| 24 | NOTE-START | ||
| 25 | Use -opsystem=sunos4 for operating system version 4, and | ||
| 26 | -opsystem=bsd4-2 for earlier versions. | ||
| 27 | NOTE-END */ | ||
| 28 | |||
| 29 | /* The following three symbols give information on | ||
| 30 | the size of various data types. */ | ||
| 31 | |||
| 32 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 33 | |||
| 34 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 35 | |||
| 36 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 37 | |||
| 38 | /* SPARC has lowest-numbered byte as most significant */ | ||
| 39 | |||
| 40 | #define BIG_ENDIAN | ||
| 41 | |||
| 42 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 43 | * group of arguments and treat it as an array of the arguments. */ | ||
| 44 | |||
| 45 | #define NO_ARG_ARRAY | ||
| 46 | |||
| 47 | /* Define how to take a char and sign-extend into an int. | ||
| 48 | On machines where char is signed, this is a no-op. */ | ||
| 49 | |||
| 50 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 51 | |||
| 52 | /* Say this machine is a sparc */ | ||
| 53 | |||
| 54 | #ifndef sparc | ||
| 55 | #define sparc | ||
| 56 | #endif | ||
| 57 | |||
| 58 | #ifdef __GNUC__ | ||
| 59 | # define C_OPTIMIZE_SWITCH -O | ||
| 60 | #else | ||
| 61 | /* This level of optimization is reported to work. */ | ||
| 62 | # define C_OPTIMIZE_SWITCH -O2 | ||
| 63 | #endif | ||
| 64 | |||
| 65 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 66 | |||
| 67 | #define NO_UNION_TYPE | ||
| 68 | |||
| 69 | /* XINT must explicitly sign-extend */ | ||
| 70 | |||
| 71 | #define EXPLICIT_SIGN_EXTEND | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | #define LOAD_AVE_TYPE long | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 80 | |||
| 81 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 82 | and the one written in C should be used instead. | ||
| 83 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 84 | working alloca function and it should be used. | ||
| 85 | Define neither one if an assembler-language alloca | ||
| 86 | in the file alloca.s should be used. */ | ||
| 87 | |||
| 88 | #define HAVE_ALLOCA | ||
| 89 | #include <alloca.h> | ||
| 90 | |||
| 91 | /* Must use the system's termcap. It does special things. */ | ||
| 92 | |||
| 93 | #define LIBS_TERMCAP -ltermcap | ||
| 94 | |||
| 95 | /* Mask for address bits within a memory segment */ | ||
| 96 | |||
| 97 | #define SEGMENT_MASK (SEGSIZ - 1) | ||
| 98 | |||
| 99 | /* Arrange to link with sun windows, if requested. */ | ||
| 100 | /* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ | ||
| 101 | /* These programs require Sun UNIX 4.2 Release 3.2 or greater */ | ||
| 102 | |||
| 103 | #ifdef HAVE_SUN_WINDOWS | ||
| 104 | #define OTHER_FILES ${etcdir}emacstool | ||
| 105 | #define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect | ||
| 106 | #define OBJECTS_MACHINE sunfns.o | ||
| 107 | #define SYMS_MACHINE syms_of_sunfns () | ||
| 108 | #define PURESIZE 130000 | ||
| 109 | #endif | ||
| 110 | |||
| 111 | /* Say that the text segment of a.out includes the header; | ||
| 112 | the header actually occupies the first few bytes of the text segment | ||
| 113 | and is counted in hdr.a_text. */ | ||
| 114 | |||
| 115 | #define A_TEXT_OFFSET(HDR) sizeof (HDR) | ||
| 116 | |||
| 117 | /* This is the offset of the executable's text, from the start of the file. */ | ||
| 118 | |||
| 119 | #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 @@ | |||
| 1 | /* machine description file for Bull SPS-7. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define how to take a char and sign-extend into an int. | ||
| 39 | On machines where char is signed, this is a no-op. */ | ||
| 40 | |||
| 41 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 42 | |||
| 43 | /* Say this machine is a 68000 */ | ||
| 44 | |||
| 45 | #ifndef m68000 | ||
| 46 | #define m68000 | ||
| 47 | #endif | ||
| 48 | |||
| 49 | #define sps7 | ||
| 50 | |||
| 51 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 52 | |||
| 53 | #define NO_UNION_TYPE | ||
| 54 | |||
| 55 | /* XINT must explicitly sign-extend */ | ||
| 56 | |||
| 57 | #define EXPLICIT_SIGN_EXTEND | ||
| 58 | |||
| 59 | /* Data type of load average, as read out of kmem. */ | ||
| 60 | /* Suspect there is something wierd about this machine, so turn it off. */ | ||
| 61 | |||
| 62 | /* #define LOAD_AVE_TYPE long */ | ||
| 63 | |||
| 64 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 65 | |||
| 66 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */ | ||
| 67 | |||
| 68 | #define SMX | ||
| 69 | #define V3x | ||
| 70 | |||
| 71 | /* | ||
| 72 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 73 | */ | ||
| 74 | |||
| 75 | #define HAVE_SELECT | ||
| 76 | |||
| 77 | /* | ||
| 78 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 79 | */ | ||
| 80 | |||
| 81 | #define HAVE_PTYS | ||
| 82 | |||
| 83 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 84 | |||
| 85 | #define HAVE_SOCKETS | ||
| 86 | |||
| 87 | /* Have the socketpair call | ||
| 88 | */ | ||
| 89 | |||
| 90 | #define SKTPAIR | ||
| 91 | |||
| 92 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 93 | so that Emacs can tell instantly when you try to modify | ||
| 94 | a file that someone else has modified in his Emacs. */ | ||
| 95 | |||
| 96 | #define CLASH_DETECTION | ||
| 97 | |||
| 98 | /* Use Berkeley style interface to nlist */ | ||
| 99 | |||
| 100 | #define NLIST_STRUCT | ||
| 101 | |||
| 102 | /* Define this to cause -N to be passed to ld. This is needed | ||
| 103 | * in uniplus because of its funny memory space layout. | ||
| 104 | * SMX--If you are using 32 bit (COFF) use "-N", else don't use anything. | ||
| 105 | */ | ||
| 106 | |||
| 107 | #define LD_SWITCH_MACHINE -N -T32 -e __start | ||
| 108 | |||
| 109 | /* If you are compiling for a 68020, then use -lc32 else use -lc */ | ||
| 110 | |||
| 111 | #define LIB_STANDARD -lc32 | ||
| 112 | |||
| 113 | /* Fore 16 bit, -linet, for 32 bit -linet32 (be sure you have it!). */ | ||
| 114 | |||
| 115 | #define LIBS_MACHINE -linet32 | ||
| 116 | |||
| 117 | /* Use -T32 for 68020, -T16 otherwise */ | ||
| 118 | |||
| 119 | #define C_SWITCH_MACHINE -T32 | ||
| 120 | |||
| 121 | /* | ||
| 122 | Here we assume that signal.h is included before config.h | ||
| 123 | so that we can override it here. */ | ||
| 124 | |||
| 125 | #undef SIGIO | ||
| 126 | |||
| 127 | /* Some additional system facilities exist. */ | ||
| 128 | |||
| 129 | #define HAVE_DUP2 | ||
| 130 | |||
| 131 | /* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */ | ||
| 132 | |||
| 133 | #define ASS as32 | ||
| 134 | |||
| 135 | #ifdef V3x | ||
| 136 | #define EXEC_MAGIC 0x10b | ||
| 137 | #define SEGMENT_MASK (NBPS-1) | ||
| 138 | #define ADJUST_EXEC_HEADER f_hdr.f_magic = SMROMAGIC;\ | ||
| 139 | f_ohdr.stsize = 0; | ||
| 140 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on Stride Micro System-V.2.2 | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 39 | * group of arguments and treat it as an array of the arguments. */ | ||
| 40 | |||
| 41 | #undef NO_ARG_ARRAY | ||
| 42 | |||
| 43 | /* Define WORD_MACHINE if addresses and such have | ||
| 44 | * to be corrected before they can be used as byte counts. */ | ||
| 45 | |||
| 46 | #undef WORD_MACHINE | ||
| 47 | |||
| 48 | /* Define how to take a char and sign-extend into an int. | ||
| 49 | On machines where char is signed, this is a no-op. */ | ||
| 50 | |||
| 51 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 52 | |||
| 53 | /* Now define a symbol for the cpu type, if your compiler | ||
| 54 | does not define it automatically: | ||
| 55 | vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE | ||
| 56 | are the ones defined so far. */ | ||
| 57 | |||
| 58 | #define m68000 /* because the SGS compiler defines "m68k" */ | ||
| 59 | #ifndef STRIDE | ||
| 60 | #define STRIDE | ||
| 61 | #endif | ||
| 62 | |||
| 63 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 64 | /* This is desirable for most machines. */ | ||
| 65 | |||
| 66 | #define NO_UNION_TYPE | ||
| 67 | |||
| 68 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 69 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 70 | are always unsigned. | ||
| 71 | |||
| 72 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 73 | |||
| 74 | #define EXPLICIT_SIGN_EXTEND | ||
| 75 | |||
| 76 | /* Data type of load average, as read out of kmem. */ | ||
| 77 | |||
| 78 | #define LOAD_AVE_TYPE double | ||
| 79 | |||
| 80 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 81 | |||
| 82 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 83 | |||
| 84 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 85 | Then the function dump-emacs will not be defined | ||
| 86 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 87 | |||
| 88 | #undef CANNOT_DUMP | ||
| 89 | |||
| 90 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 91 | pure and impure space as loaded can vary, and even their | ||
| 92 | relative order cannot be relied on. | ||
| 93 | |||
| 94 | Otherwise Emacs assumes that text space precedes data space, | ||
| 95 | numerically. */ | ||
| 96 | |||
| 97 | #undef VIRT_ADDR_VARIES | ||
| 98 | |||
| 99 | /* The STRIDE system is more powerful than standard USG5. */ | ||
| 100 | |||
| 101 | #define HAVE_PTYS | ||
| 102 | #define HAVE_TIMEVAL | ||
| 103 | #define HAVE_SELECT | ||
| 104 | #define HAVE_GETTIMEOFDAY | ||
| 105 | #define BSTRING | ||
| 106 | #define SKTPAIR | ||
| 107 | #define HAVE_SOCKETS | ||
| 108 | |||
| 109 | #define MAIL_USE_FLOCK | ||
| 110 | #undef TERMINFO | ||
| 111 | #define EXEC_MAGIC 0413 | ||
| 112 | |||
| 113 | /* USG wins again: Foo! I can't get SIGIO to work properly on the Stride, because I'm | ||
| 114 | running a System V variant, and don't have a reliable way to block SIGIO | ||
| 115 | signals without losing them. So, I've gone back to non-SIGIO mode, so | ||
| 116 | please append this line to the file "stride.h": | ||
| 117 | */ | ||
| 118 | #undef SIGIO | ||
| 119 | |||
| 120 | /* Specify alignment requirement for start of text and data sections | ||
| 121 | in the executable file. */ | ||
| 122 | |||
| 123 | #define SECTION_ALIGNMENT (getpagesize() - 1) | ||
| 124 | |||
| 125 | /* | ||
| 126 | * UniStride has this in /lib/libc.a. | ||
| 127 | */ | ||
| 128 | #undef NONSYSTEM_DIR_LIBRARY | ||
| 129 | |||
| 130 | /* UniStride defines getwd. */ | ||
| 131 | |||
| 132 | #define HAVE_GETWD | ||
| 133 | |||
| 134 | /* Define this macro if system defines a type `union wait'. */ | ||
| 135 | |||
| 136 | #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 @@ | |||
| 1 | /* machine description file for Sun 68000's | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3; | ||
| 27 | -opsystem=bsd4-2 or -opsystem=sunos4) | ||
| 28 | |||
| 29 | Whether you should use sun1, sun2 or sun3 depends on the | ||
| 30 | VERSION OF THE OPERATING SYSTEM | ||
| 31 | you have. There are three machine types for different versions of | ||
| 32 | SunOS. All are derived from Berkeley 4.2, meaning that you should | ||
| 33 | use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will | ||
| 34 | need to use sun3 on Sun 2's running SunOS release 3. | ||
| 35 | |||
| 36 | For SunOS release 4 on a Sun 3, use -machine=sun3 and | ||
| 37 | -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve | ||
| 38 | problems caused by bugs in the "export" version of SunOS 4. | ||
| 39 | NOTE-END */ | ||
| 40 | |||
| 41 | /* The following three symbols give information on | ||
| 42 | the size of various data types. */ | ||
| 43 | |||
| 44 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 45 | |||
| 46 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 47 | |||
| 48 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 49 | |||
| 50 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 51 | |||
| 52 | #define BIG_ENDIAN | ||
| 53 | |||
| 54 | /* Define how to take a char and sign-extend into an int. | ||
| 55 | On machines where char is signed, this is a no-op. */ | ||
| 56 | |||
| 57 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 58 | |||
| 59 | /* Say this machine is a 68000 */ | ||
| 60 | |||
| 61 | #define m68000 | ||
| 62 | |||
| 63 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 64 | |||
| 65 | #define NO_UNION_TYPE | ||
| 66 | |||
| 67 | /* Sun can't write competant compilers */ | ||
| 68 | #define COMPILER_REGISTER_BUG | ||
| 69 | |||
| 70 | /* XINT must explicitly sign-extend */ | ||
| 71 | |||
| 72 | #define EXPLICIT_SIGN_EXTEND | ||
| 73 | |||
| 74 | /* Data type of load average, as read out of kmem. */ | ||
| 75 | |||
| 76 | #define LOAD_AVE_TYPE long | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 81 | |||
| 82 | /* Must use the system's termcap. It does special things. */ | ||
| 83 | |||
| 84 | #define LIBS_TERMCAP -ltermcap | ||
| 85 | |||
| 86 | /* Mask for address bits within a memory segment */ | ||
| 87 | |||
| 88 | #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 @@ | |||
| 1 | /* machine description file for Sun 68000's OPERATING SYSTEM version 2. | ||
| 2 | Note that "sun2.h" refers to the operating system version, not the | ||
| 3 | CPU model number. See the MACHINES file for details. | ||
| 4 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 9 | it under the terms of the GNU General Public License as published by | ||
| 10 | the Free Software Foundation; either version 1, or (at your option) | ||
| 11 | any later version. | ||
| 12 | |||
| 13 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | GNU General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 20 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 21 | |||
| 22 | |||
| 23 | /* The following line tells the configuration script what sort of | ||
| 24 | operating system this machine is likely to run. | ||
| 25 | USUAL-OPSYS="note" | ||
| 26 | |||
| 27 | NOTE-START | ||
| 28 | Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3; | ||
| 29 | -opsystem=bsd4-2 or -opsystem=sunos4) | ||
| 30 | |||
| 31 | Whether you should use sun1, sun2 or sun3 depends on the | ||
| 32 | VERSION OF THE OPERATING SYSTEM | ||
| 33 | you have. There are three machine types for different versions of | ||
| 34 | SunOS. All are derived from Berkeley 4.2, meaning that you should | ||
| 35 | use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will | ||
| 36 | need to use sun3 on Sun 2's running SunOS release 3. | ||
| 37 | |||
| 38 | For SunOS release 4 on a Sun 3, use -machine=sun3 and | ||
| 39 | -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve | ||
| 40 | problems caused by bugs in the "export" version of SunOS 4. | ||
| 41 | NOTE-END */ | ||
| 42 | |||
| 43 | /* The following three symbols give information on | ||
| 44 | the size of various data types. */ | ||
| 45 | |||
| 46 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 47 | |||
| 48 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 49 | |||
| 50 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 51 | |||
| 52 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 53 | |||
| 54 | #define BIG_ENDIAN | ||
| 55 | |||
| 56 | /* Define how to take a char and sign-extend into an int. | ||
| 57 | On machines where char is signed, this is a no-op. */ | ||
| 58 | |||
| 59 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 60 | |||
| 61 | /* Say this machine is a 68000 */ | ||
| 62 | |||
| 63 | #ifndef m68000 | ||
| 64 | #define m68000 | ||
| 65 | #endif | ||
| 66 | |||
| 67 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 68 | |||
| 69 | #define NO_UNION_TYPE | ||
| 70 | |||
| 71 | /* Sun can't write competent compilers */ | ||
| 72 | #define COMPILER_REGISTER_BUG | ||
| 73 | |||
| 74 | /* XINT must explicitly sign-extend */ | ||
| 75 | |||
| 76 | #define EXPLICIT_SIGN_EXTEND | ||
| 77 | |||
| 78 | /* Data type of load average, as read out of kmem. */ | ||
| 79 | |||
| 80 | #define LOAD_AVE_TYPE long | ||
| 81 | |||
| 82 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 83 | |||
| 84 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 85 | |||
| 86 | /* Say that this is a Sun 2; must check for and maybe reinitialize | ||
| 87 | the "sky" board. */ | ||
| 88 | |||
| 89 | #define sun2 | ||
| 90 | |||
| 91 | /* Must use the system's termcap. It does special things. */ | ||
| 92 | |||
| 93 | #define LIBS_TERMCAP -ltermcap | ||
| 94 | |||
| 95 | /* Mask for address bits within a memory segment */ | ||
| 96 | |||
| 97 | #define SEGMENT_MASK (SEGSIZ - 1) | ||
| 98 | |||
| 99 | /* Arrange to link with sun windows, if requested. */ | ||
| 100 | /* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ | ||
| 101 | /* These programs require Sun UNIX 4.2 Release 3.2 or greater */ | ||
| 102 | |||
| 103 | #ifdef HAVE_SUN_WINDOWS | ||
| 104 | #define OTHER_FILES ${etcdir}emacstool | ||
| 105 | #define LIBS_MACHINE -lsuntool -lsunwindow -lpixrect | ||
| 106 | #define OBJECTS_MACHINE sunfns.o | ||
| 107 | #define SYMS_MACHINE syms_of_sunfns () | ||
| 108 | #define PURESIZE 132000 | ||
| 109 | #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 @@ | |||
| 1 | /* machine description file for tahoe. | ||
| 2 | Copyright (C) 1985 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | Use -opsystem=bsd4-2 or -opsystem=bsd4-3, depending on the version of | ||
| 27 | Berkeley you are running. | ||
| 28 | NOTE-END */ | ||
| 29 | |||
| 30 | /* The following three symbols give information on | ||
| 31 | the size of various data types. */ | ||
| 32 | |||
| 33 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 34 | |||
| 35 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 36 | |||
| 37 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 38 | |||
| 39 | /* lowest-numbered byte is most significant */ | ||
| 40 | |||
| 41 | #define BIG_ENDIAN | ||
| 42 | |||
| 43 | /* XINT must explicitly sign-extend */ | ||
| 44 | |||
| 45 | #define EXPLICIT_SIGN_EXTEND | ||
| 46 | |||
| 47 | /* Define how to take a char and sign-extend into an int. | ||
| 48 | On machines where char is signed, this is a no-op. */ | ||
| 49 | |||
| 50 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 51 | |||
| 52 | /* Say this machine is a tahoe */ | ||
| 53 | |||
| 54 | #ifndef tahoe | ||
| 55 | #define tahoe | ||
| 56 | #endif /* not tahoe */ | ||
| 57 | |||
| 58 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 59 | |||
| 60 | #define NO_UNION_TYPE | ||
| 61 | |||
| 62 | /* crt0.c should use the vax-bsd style of entry, with no dummy args. */ | ||
| 63 | |||
| 64 | #define CRT0_DUMMIES | ||
| 65 | |||
| 66 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 67 | |||
| 68 | #define DOT_GLOBAL_START | ||
| 69 | |||
| 70 | /* Data type of load average, as read out of kmem. */ | ||
| 71 | |||
| 72 | #define LOAD_AVE_TYPE double | ||
| 73 | |||
| 74 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 75 | |||
| 76 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 77 | |||
| 78 | /* This triggers some stuff to avoid a compiler bug */ | ||
| 79 | |||
| 80 | #define TAHOE_REGISTER_BUG | ||
| 81 | |||
| 82 | /* System provides alloca. */ | ||
| 83 | |||
| 84 | #define HAVE_ALLOCA | ||
| 85 | |||
| 86 | /* Control header files used by loadst.c. | ||
| 87 | Some users report machines have dkstat.h while others report dk.h, | ||
| 88 | so it's hard to tell what this should say. */ | ||
| 89 | |||
| 90 | #ifdef BSD | ||
| 91 | #define DKSTAT_HEADER_FILE | ||
| 92 | #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 @@ | |||
| 1 | /* targon31 machine description file | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | /* #define NO_ARG_ARRAY */ | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #define WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 57 | are the ones defined so far. */ | ||
| 58 | |||
| 59 | /* #define m68k is defined by the Compiler */ | ||
| 60 | /* #define m68000 */ | ||
| 61 | |||
| 62 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 63 | /* This is desirable for most machines. */ | ||
| 64 | |||
| 65 | #define NO_UNION_TYPE | ||
| 66 | |||
| 67 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 68 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 69 | are always unsigned. | ||
| 70 | |||
| 71 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 72 | |||
| 73 | #define EXPLICIT_SIGN_EXTEND | ||
| 74 | |||
| 75 | /* Data type of load average, as read out of kmem. */ | ||
| 76 | |||
| 77 | /* #define LOAD_AVE_TYPE double */ | ||
| 78 | |||
| 79 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 80 | |||
| 81 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) | ||
| 82 | |||
| 83 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 84 | Then the function dump-emacs will not be defined | ||
| 85 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 86 | |||
| 87 | /* #define CANNOT_DUMP */ | ||
| 88 | |||
| 89 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 90 | pure and impure space as loaded can vary, and even their | ||
| 91 | relative order cannot be relied on. | ||
| 92 | |||
| 93 | Otherwise Emacs assumes that text space precedes data space, | ||
| 94 | numerically. */ | ||
| 95 | |||
| 96 | /* #define VIRT_ADDR_VARIES */ | ||
| 97 | |||
| 98 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 99 | and the one written in C should be used instead. | ||
| 100 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 101 | working alloca function and it should be used. | ||
| 102 | Define neither one if an assembler-language alloca | ||
| 103 | in the file alloca.s should be used. */ | ||
| 104 | |||
| 105 | /* #define C_ALLOCA */ | ||
| 106 | /* #define HAVE_ALLOCA */ | ||
| 107 | |||
| 108 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 109 | to change the boundary between the text section and data section | ||
| 110 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 111 | code will not be sharable; but that's better than failing completely. */ | ||
| 112 | |||
| 113 | /* #define NO_REMAP */ | ||
| 114 | /* Supposedly NO_REMAP is not needed with the following change. */ | ||
| 115 | #define SEGMENT_MASK 0xffff | ||
| 116 | |||
| 117 | #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 @@ | |||
| 1 | /* machine description file for tek4300. | ||
| 2 | Copyright (C) 1988 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="bsd4-3" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* 68000 has lowest-numbered byte as most significant */ | ||
| 35 | |||
| 36 | #define BIG_ENDIAN | ||
| 37 | |||
| 38 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 39 | * group of arguments and treat it as an array of the arguments. */ | ||
| 40 | |||
| 41 | #undef NO_ARG_ARRAY | ||
| 42 | |||
| 43 | /* Define WORD_MACHINE if addresses and such have | ||
| 44 | * to be corrected before they can be used as byte counts. */ | ||
| 45 | |||
| 46 | #undef WORD_MACHINE | ||
| 47 | |||
| 48 | /* Define how to take a char and sign-extend into an int. | ||
| 49 | On machines where char is signed, this is a no-op. */ | ||
| 50 | |||
| 51 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 52 | |||
| 53 | /* Now define a symbol for the cpu type, if your compiler | ||
| 54 | does not define it automatically. */ | ||
| 55 | |||
| 56 | #define tek4300 | ||
| 57 | |||
| 58 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 59 | |||
| 60 | #define NO_UNION_TYPE | ||
| 61 | |||
| 62 | /* Data type of load average, as read out of kmem. */ | ||
| 63 | |||
| 64 | #define LOAD_AVE_TYPE long | ||
| 65 | |||
| 66 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 67 | |||
| 68 | #define LOAD_AVE_CVT(x) (x) | ||
| 69 | |||
| 70 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 71 | to change the boundary between the text section and data section | ||
| 72 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 73 | code will not be sharable; but that's better than failing completely. */ | ||
| 74 | |||
| 75 | #define NO_REMAP | ||
| 76 | |||
| 77 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 78 | and the one written in C should be used instead. */ | ||
| 79 | |||
| 80 | #define C_ALLOCA | ||
| 81 | |||
| 82 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, */ | ||
| 83 | |||
| 84 | #define _longjmp longjmp | ||
| 85 | #define _setjmp setjmp | ||
| 86 | |||
| 87 | /* The text segment always starts at a fixed address. | ||
| 88 | This way we don't need to have a label _start defined. */ | ||
| 89 | |||
| 90 | #define TEXT_START 0 | ||
| 91 | |||
| 92 | /* The Tektronix exec struct for ZMAGIC files is struct zexec */ | ||
| 93 | |||
| 94 | #define EXEC_HDR_TYPE struct zexec | ||
| 95 | |||
| 96 | /* The entry-point label (start of text segment) is `start', not `__start'. */ | ||
| 97 | |||
| 98 | #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 @@ | |||
| 1 | /* machine description file template. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #define NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #define WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 57 | orion, tahoe, APOLLO and many others */ | ||
| 58 | |||
| 59 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 60 | /* This is desirable for most machines. */ | ||
| 61 | |||
| 62 | #define NO_UNION_TYPE | ||
| 63 | |||
| 64 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 65 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 66 | are always unsigned. | ||
| 67 | |||
| 68 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 69 | |||
| 70 | #define EXPLICIT_SIGN_EXTEND | ||
| 71 | |||
| 72 | /* Data type of load average, as read out of kmem. */ | ||
| 73 | |||
| 74 | #define LOAD_AVE_TYPE long | ||
| 75 | |||
| 76 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 77 | |||
| 78 | #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | ||
| 79 | |||
| 80 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 81 | Then the function dump-emacs will not be defined | ||
| 82 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 83 | |||
| 84 | #define CANNOT_DUMP | ||
| 85 | |||
| 86 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 87 | pure and impure space as loaded can vary, and even their | ||
| 88 | relative order cannot be relied on. | ||
| 89 | |||
| 90 | Otherwise Emacs assumes that text space precedes data space, | ||
| 91 | numerically. */ | ||
| 92 | |||
| 93 | #define VIRT_ADDR_VARIES | ||
| 94 | |||
| 95 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 96 | and the one written in C should be used instead. | ||
| 97 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 98 | working alloca function and it should be used. | ||
| 99 | Define neither one if an assembler-language alloca | ||
| 100 | in the file alloca.s should be used. */ | ||
| 101 | |||
| 102 | #define C_ALLOCA | ||
| 103 | #define HAVE_ALLOCA | ||
| 104 | |||
| 105 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 106 | to change the boundary between the text section and data section | ||
| 107 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 108 | code will not be sharable; but that's better than failing completely. */ | ||
| 109 | |||
| 110 | #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 @@ | |||
| 1 | /* machine description file for the NCR Tower 32 running System V.2. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | /* #define NO_ARG_ARRAY */ | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | /* #define WORD_MACHINE */ | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 57 | are the ones defined so far. */ | ||
| 58 | #define m68000 | ||
| 59 | |||
| 60 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 61 | /* This is desirable for most machines. */ | ||
| 62 | |||
| 63 | #define NO_UNION_TYPE | ||
| 64 | |||
| 65 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 66 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 67 | are always unsigned. | ||
| 68 | |||
| 69 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 70 | |||
| 71 | #define EXPLICIT_SIGN_EXTEND | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | /* #define LOAD_AVE_TYPE long */ | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | /* #define CANNOT_DUMP */ | ||
| 86 | |||
| 87 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 88 | pure and impure space as loaded can vary, and even their | ||
| 89 | relative order cannot be relied on. | ||
| 90 | |||
| 91 | Otherwise Emacs assumes that text space precedes data space, | ||
| 92 | numerically. */ | ||
| 93 | |||
| 94 | /* #define VIRT_ADDR_VARIES */ | ||
| 95 | |||
| 96 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 97 | and the one written in C should be used instead. | ||
| 98 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 99 | working alloca function and it should be used. | ||
| 100 | Define neither one if an assembler-language alloca | ||
| 101 | in the file alloca.s should be used. */ | ||
| 102 | |||
| 103 | /* #define C_ALLOCA */ | ||
| 104 | #define HAVE_ALLOCA | ||
| 105 | |||
| 106 | /* Change some things to avoid bugs in compiler */ | ||
| 107 | |||
| 108 | #define SWITCH_ENUM_BUG 1 | ||
| 109 | |||
| 110 | /* The standard C library is -lcieee, not -lc. | ||
| 111 | Also use the PW library, which contains alloca. */ | ||
| 112 | |||
| 113 | #define LIB_STANDARD -lPW -lcieee | ||
| 114 | |||
| 115 | /* crt0.c should use the vax-bsd style of entry. Beware that if you have | ||
| 116 | OS release 2.00.00 or later, *and* change src/ymakefile so that CFLAGS | ||
| 117 | includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, you need to | ||
| 118 | uncomment CRT0_DUMMIES and C_OPTIMIZE_SWITCH below. */ | ||
| 119 | |||
| 120 | /* With the optimizer OFF */ | ||
| 121 | |||
| 122 | #define CRT0_DUMMIES zero, bogus_fp, | ||
| 123 | |||
| 124 | /* With the optimizer ON */ | ||
| 125 | |||
| 126 | /* #define CRT0_DUMMIES */ | ||
| 127 | /* #define C_OPTIMIZE_SWITCH -O2 */ | ||
| 128 | |||
| 129 | /* emacs's magic number isn't temacs's; | ||
| 130 | temacs is writeable text (the default!). */ | ||
| 131 | |||
| 132 | #include <asld.h> | ||
| 133 | #define EXEC_MAGIC AOUT1MAGIC | ||
| 134 | #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 @@ | |||
| 1 | /* machine description file for the NCR Tower 32 running System V.3. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 7 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 8 | accepts responsibility to anyone for the consequences of using it | ||
| 9 | or for whether it serves any particular purpose or works at all, | ||
| 10 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 11 | License for full details. | ||
| 12 | |||
| 13 | Everyone is granted permission to copy, modify and redistribute | ||
| 14 | GNU Emacs, but only under the conditions described in the | ||
| 15 | GNU Emacs General Public License. A copy of this license is | ||
| 16 | supposed to have been given to you along with GNU Emacs so you | ||
| 17 | can know your rights and responsibilities. It should be in a | ||
| 18 | file named COPYING. Among other things, the copyright notice | ||
| 19 | and this notice must be preserved on all copies. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* The following line tells the configuration script what sort of | ||
| 23 | operating system this machine is likely to run. | ||
| 24 | USUAL-OPSYS="usg5-3" */ | ||
| 25 | |||
| 26 | /* The following three symbols give information on | ||
| 27 | the size of various data types. */ | ||
| 28 | |||
| 29 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 30 | |||
| 31 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 32 | |||
| 33 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 34 | |||
| 35 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 36 | is the most significant byte. */ | ||
| 37 | |||
| 38 | #define BIG_ENDIAN | ||
| 39 | |||
| 40 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 41 | * group of arguments and treat it as an array of the arguments. */ | ||
| 42 | |||
| 43 | /* #define NO_ARG_ARRAY */ | ||
| 44 | |||
| 45 | /* Define WORD_MACHINE if addresses and such have | ||
| 46 | * to be corrected before they can be used as byte counts. */ | ||
| 47 | |||
| 48 | /* #define WORD_MACHINE */ | ||
| 49 | |||
| 50 | /* Define how to take a char and sign-extend into an int. | ||
| 51 | On machines where char is signed, this is a no-op. */ | ||
| 52 | |||
| 53 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 54 | |||
| 55 | /* Now define a symbol for the cpu type, if your compiler | ||
| 56 | does not define it automatically: | ||
| 57 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 58 | are the ones defined so far. */ | ||
| 59 | #define m68000 | ||
| 60 | |||
| 61 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 62 | /* This is desirable for most machines. */ | ||
| 63 | |||
| 64 | #define NO_UNION_TYPE | ||
| 65 | |||
| 66 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 67 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 68 | are always unsigned. | ||
| 69 | |||
| 70 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 71 | |||
| 72 | #define EXPLICIT_SIGN_EXTEND | ||
| 73 | |||
| 74 | /* Data type of load average, as read out of kmem. */ | ||
| 75 | |||
| 76 | /* #define LOAD_AVE_TYPE long */ | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 81 | |||
| 82 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 83 | Then the function dump-emacs will not be defined | ||
| 84 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 85 | |||
| 86 | /* #define CANNOT_DUMP */ | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | /* #define VIRT_ADDR_VARIES */ | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | #ifdef __GNUC__ | ||
| 105 | #define HAVE_ALLOCA | ||
| 106 | #define alloca __builtin_alloca | ||
| 107 | #define C_OPTIMIZE_SWITCH -O -fstrength-reduce -fomit-frame-pointer | ||
| 108 | #define LIB_STANDARD -lc /lib/crtn.o | ||
| 109 | #else | ||
| 110 | /* This section is correct if you do *not* change src/ymakefile so that | ||
| 111 | CFLAGS includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH. */ | ||
| 112 | #define HAVE_ALLOCA | ||
| 113 | #define C_DEBUG_SWITCH -g -O0 | ||
| 114 | #define LIB_STANDARD -lc -lPW /lib/crtn.o | ||
| 115 | /* This section is correct if you do enable C_OPTIMIZE_SWITCH. */ | ||
| 116 | /* #define C_ALLOCA */ | ||
| 117 | /* #define STACK_DIRECTION -1 */ | ||
| 118 | /* #define C_OPTIMIZE_SWITCH -O2 */ | ||
| 119 | /* #define LIB_STANDARD -lc /lib/crtn.o */ | ||
| 120 | #endif | ||
| 121 | |||
| 122 | /* The OS maps the data section far away from the text section. */ | ||
| 123 | #define NO_REMAP | ||
| 124 | #define TEXT_START 0 | ||
| 125 | #undef static | ||
| 126 | #define START_FILES pre-crt0.o /lib/crt1.o | ||
| 127 | |||
| 128 | /* This is needed since many Tower models start the data/bss segment at | ||
| 129 | an address as large as 0x2000000. */ | ||
| 130 | #define VALBITS 26 | ||
| 131 | #define GCTYPEBITS 5 | ||
| 132 | |||
| 133 | /* The OS has an implementation of symlinks that is semantically different | ||
| 134 | from BSD, but for some silly reason it partly has the same syntax. */ | ||
| 135 | #undef S_IFLNK | ||
| 136 | |||
| 137 | /* The OS needs stream.h+ptem.h included in sysdep.c. */ | ||
| 138 | #define NO_SIOCTL_H | ||
| 139 | #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 @@ | |||
| 1 | /* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30). | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-3" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #undef NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO | ||
| 57 | are the ones defined so far. */ | ||
| 58 | /* Masscomp predefines mc68000. */ | ||
| 59 | |||
| 60 | #define m68000 mc68000 | ||
| 61 | |||
| 62 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 63 | /* This is desirable for most machines. */ | ||
| 64 | |||
| 65 | #define NO_UNION_TYPE | ||
| 66 | |||
| 67 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 68 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 69 | are always unsigned. | ||
| 70 | |||
| 71 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 72 | |||
| 73 | #undef EXPLICIT_SIGN_EXTEND | ||
| 74 | |||
| 75 | /* Data type of load average, as read out of kmem. */ | ||
| 76 | |||
| 77 | #define LOAD_AVE_TYPE double | ||
| 78 | |||
| 79 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 80 | |||
| 81 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 82 | |||
| 83 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 84 | Then the function dump-emacs will not be defined | ||
| 85 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 86 | |||
| 87 | #undef CANNOT_DUMP | ||
| 88 | |||
| 89 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 90 | pure and impure space as loaded can vary, and even their | ||
| 91 | relative order cannot be relied on. | ||
| 92 | |||
| 93 | Otherwise Emacs assumes that data space precedes text space, | ||
| 94 | numerically. */ | ||
| 95 | |||
| 96 | #undef VIRT_ADDR_VARIES | ||
| 97 | |||
| 98 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 99 | and the one written in C should be used instead. | ||
| 100 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 101 | working alloca function and it should be used. | ||
| 102 | Define neither one if an assembler-language alloca | ||
| 103 | in the file alloca.s should be used. */ | ||
| 104 | |||
| 105 | /* On return from a subroutine, the 68020 compiler restores old contents of | ||
| 106 | register variables relative to sp, so alloca() screws up such routines. | ||
| 107 | The following definitions should work on all Masscomps. On the MC-5500 | ||
| 108 | (a 68000) one can #undef C_ALLOCA and #define HAVE_ALLOCA. */ | ||
| 109 | |||
| 110 | #define C_ALLOCA | ||
| 111 | #undef HAVE_ALLOCA | ||
| 112 | |||
| 113 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 114 | to change the boundary between the text section and data section | ||
| 115 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 116 | code will not be sharable; but that's better than failing completely. */ | ||
| 117 | |||
| 118 | #undef NO_REMAP | ||
| 119 | |||
| 120 | /* Name of file the to look in | ||
| 121 | for the kernel symbol table (for load average) */ | ||
| 122 | |||
| 123 | #define KERNEL_FILE "/unix" | ||
| 124 | |||
| 125 | /* This triggers some stuff to avoid a compiler bug */ | ||
| 126 | |||
| 127 | #define MASSC_REGISTER_BUG | ||
| 128 | |||
| 129 | /* Prevent -lg from being used for debugging. Not implemented? */ | ||
| 130 | |||
| 131 | #define LIBS_DEBUG | ||
| 132 | |||
| 133 | /* | ||
| 134 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 135 | * for terminal control. | ||
| 136 | */ | ||
| 137 | |||
| 138 | #define HAVE_TERMIO | ||
| 139 | |||
| 140 | /* -lnet is not standard library */ | ||
| 141 | |||
| 142 | #undef HAVE_SELECT | ||
| 143 | #undef LIBS_SYSTEM | ||
| 144 | |||
| 145 | /* Compiler's bug */ | ||
| 146 | |||
| 147 | #define SWITCH_ENUM_BUG | ||
| 148 | |||
| 149 | /* Termcap is available */ | ||
| 150 | |||
| 151 | #define LIBS_TERMCAP -ltermcap | ||
| 152 | |||
| 153 | #define EXEC_PAGESIZE 1024 | ||
| 154 | #define PURESIZE 130000 | ||
| 155 | |||
| 156 | #undef SIGIO | ||
| 157 | #undef SIGTSTP | ||
| 158 | #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 @@ | |||
| 1 | /* machine description file for vax. | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="note" | ||
| 24 | |||
| 25 | NOTE-START | ||
| 26 | The vax (-machine=vax) runs zillions of different operating systems. | ||
| 27 | |||
| 28 | Vax running Berkeley Unix (-opsystem=bsd4-1, -opsystem=bsd4-2 or | ||
| 29 | -opsystem=bsd4-3) | ||
| 30 | |||
| 31 | Works. | ||
| 32 | |||
| 33 | Vax running Ultrix (-opsystem=bsd4-2) | ||
| 34 | |||
| 35 | Works. See under Ultrix in share-lib/MACHINES for problems using X | ||
| 36 | windows on Ultrix. | ||
| 37 | |||
| 38 | Vax running System V rel 2 (-opsystem=usg5-2) | ||
| 39 | |||
| 40 | 18.27 Works. | ||
| 41 | |||
| 42 | Vax running System V rel 0 (-opsystem=usg5-0) | ||
| 43 | |||
| 44 | Works as of 18.36. | ||
| 45 | |||
| 46 | Vax running VMS (-opsystem=vms) | ||
| 47 | |||
| 48 | 18.36 believed to work. Addition of features is necessary to make | ||
| 49 | this Emacs version more usable. | ||
| 50 | |||
| 51 | NOTE-END */ | ||
| 52 | |||
| 53 | /* The following three symbols give information on | ||
| 54 | the size of various data types. */ | ||
| 55 | |||
| 56 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 57 | |||
| 58 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 59 | |||
| 60 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 61 | |||
| 62 | /* Vax is not big-endian: lowest numbered byte is least significant. */ | ||
| 63 | |||
| 64 | /* #undef BIG_ENDIAN */ | ||
| 65 | |||
| 66 | /* Define how to take a char and sign-extend into an int. | ||
| 67 | On machines where char is signed, this is a no-op. */ | ||
| 68 | |||
| 69 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 70 | |||
| 71 | /* #define vax -- appears to be done automatically */ | ||
| 72 | |||
| 73 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 74 | |||
| 75 | #define NO_UNION_TYPE | ||
| 76 | |||
| 77 | /* crt0.c should use the vax-bsd style of entry, with no dummy args. */ | ||
| 78 | |||
| 79 | #define CRT0_DUMMIES | ||
| 80 | |||
| 81 | /* crt0.c should define a symbol `start' and do .globl with a dot. */ | ||
| 82 | |||
| 83 | #define DOT_GLOBAL_START | ||
| 84 | |||
| 85 | #ifdef BSD | ||
| 86 | /* USG systems I know of running on Vaxes do not actually | ||
| 87 | support the load average, so disable it for them. */ | ||
| 88 | |||
| 89 | /* Data type of load average, as read out of kmem. */ | ||
| 90 | |||
| 91 | #define LOAD_AVE_TYPE double | ||
| 92 | |||
| 93 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 94 | |||
| 95 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 96 | |||
| 97 | #endif /* BSD */ | ||
| 98 | |||
| 99 | #ifdef VMS | ||
| 100 | |||
| 101 | /* Data type of load average, as read out of driver. */ | ||
| 102 | |||
| 103 | #define LOAD_AVE_TYPE float | ||
| 104 | |||
| 105 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 106 | |||
| 107 | #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) | ||
| 108 | |||
| 109 | #endif /* VMS */ | ||
| 110 | |||
| 111 | /* Vax sysV has alloca in the PW library. */ | ||
| 112 | |||
| 113 | #ifdef USG | ||
| 114 | #define LIB_STANDARD -lPW -lc | ||
| 115 | #define HAVE_ALLOCA | ||
| 116 | |||
| 117 | /* There is some bug in unexec in for usg 5.2 on a vax | ||
| 118 | which nobody who runs such a system has yet tracked down. */ | ||
| 119 | #ifndef USG5_0 | ||
| 120 | #define NO_REMAP | ||
| 121 | #endif /* USG 5_0 */ | ||
| 122 | |||
| 123 | #define TEXT_START 0 | ||
| 124 | #endif /* USG */ | ||
| 125 | |||
| 126 | #ifdef BSD | ||
| 127 | #define HAVE_ALLOCA | ||
| 128 | #endif /* BSD */ | ||
| 129 | |||
| 130 | #ifdef VMS | ||
| 131 | #define C_ALLOCA | ||
| 132 | #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 @@ | |||
| 1 | /* machine description file for WICAT machines. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* The following line tells the configuration script what sort of | ||
| 22 | operating system this machine is likely to run. | ||
| 23 | USUAL-OPSYS="usg5-2" */ | ||
| 24 | |||
| 25 | /* The following three symbols give information on | ||
| 26 | the size of various data types. */ | ||
| 27 | |||
| 28 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 29 | |||
| 30 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 31 | |||
| 32 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 33 | |||
| 34 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 35 | is the most significant byte. */ | ||
| 36 | |||
| 37 | #define BIG_ENDIAN | ||
| 38 | |||
| 39 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 40 | * group of arguments and treat it as an array of the arguments. */ | ||
| 41 | |||
| 42 | #undef NO_ARG_ARRAY | ||
| 43 | |||
| 44 | /* Define WORD_MACHINE if addresses and such have | ||
| 45 | * to be corrected before they can be used as byte counts. */ | ||
| 46 | |||
| 47 | #undef WORD_MACHINE | ||
| 48 | |||
| 49 | /* Define how to take a char and sign-extend into an int. | ||
| 50 | On machines where char is signed, this is a no-op. */ | ||
| 51 | |||
| 52 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 53 | |||
| 54 | /* Now define a symbol for the cpu type, if your compiler | ||
| 55 | does not define it automatically: | ||
| 56 | vax, m68000, ns16000 are the ones defined so far. */ | ||
| 57 | |||
| 58 | #ifndef m68000 | ||
| 59 | #define m68000 | ||
| 60 | #endif | ||
| 61 | |||
| 62 | /* This flag is used only in alloca.s. */ | ||
| 63 | #define WICAT | ||
| 64 | |||
| 65 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 66 | |||
| 67 | #define NO_UNION_TYPE | ||
| 68 | |||
| 69 | /* XINT must explicitly sign-extend */ | ||
| 70 | |||
| 71 | #define EXPLICIT_SIGN_EXTEND | ||
| 72 | |||
| 73 | /* Data type of load average, as read out of kmem. */ | ||
| 74 | |||
| 75 | #undef LOAD_AVE_TYPE | ||
| 76 | |||
| 77 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 78 | |||
| 79 | #undef LOAD_AVE_CVT | ||
| 80 | |||
| 81 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 82 | Then the function dump-emacs will not be defined | ||
| 83 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 84 | |||
| 85 | #undef CANNOT_DUMP | ||
| 86 | |||
| 87 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 88 | pure and impure space as loaded can vary, and even their | ||
| 89 | relative order cannot be relied on. | ||
| 90 | |||
| 91 | Otherwise Emacs assumes that text space precedes data space, | ||
| 92 | numerically. */ | ||
| 93 | |||
| 94 | #undef VIRT_ADDR_VARIES | ||
| 95 | |||
| 96 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 97 | and the one written in C should be used instead. | ||
| 98 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 99 | working alloca function and it should be used. | ||
| 100 | Define neither one if an assembler-language alloca | ||
| 101 | in the file alloca.s should be used. */ | ||
| 102 | |||
| 103 | /* For the Wicat C compiler version 4.2, this can be removed | ||
| 104 | and the alloca in alloca.s used. */ | ||
| 105 | #define C_ALLOCA | ||
| 106 | #define STACK_DIRECTION -1 /* grows towards lower addresses on WICAT */ | ||
| 107 | |||
| 108 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 109 | to change the boundary between the text section and data section | ||
| 110 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 111 | code will not be sharable; but that's better than failing completely. */ | ||
| 112 | |||
| 113 | #undef NO_REMAP | ||
| 114 | |||
| 115 | /* For WICAT, define TAHOE_REGISTER_BUG if you have a pre-4.2 C compiler */ | ||
| 116 | |||
| 117 | #define TAHOE_REGISTER_BUG | ||
| 118 | |||
| 119 | /* pagesize definition */ | ||
| 120 | |||
| 121 | #define EXEC_PAGESIZE 0x1000 | ||
| 122 | |||
| 123 | /* Delete this for WICAT sys V releases before 2.0. */ | ||
| 124 | |||
| 125 | #define LIB_STANDARD -lc-nofp | ||
| 126 | |||
| 127 | /* Special magic number */ | ||
| 128 | |||
| 129 | #define EXEC_MAGIC MC68ROMAGIC | ||
| 130 | |||
| 131 | /* Special switches to give to ld. */ | ||
| 132 | |||
| 133 | #define LD_SWITCH_MACHINE -e __start -N | ||
| 134 | |||
| 135 | /* Sigh...cannot define this for WICAT cuz 0 length memcpy blows chunks */ | ||
| 136 | |||
| 137 | #undef BSTRING | ||
| 138 | |||
| 139 | #ifdef BSTRING | ||
| 140 | #undef bcopy | ||
| 141 | #undef bzero | ||
| 142 | #undef bcmp | ||
| 143 | |||
| 144 | #define bcopy(a,b,s) memcpy(b,a,s) | ||
| 145 | #define bzero(a,s) memset(a,0,s) | ||
| 146 | #define bcmp memcmp | ||
| 147 | #endif | ||
| 148 | |||
| 149 | /* | ||
| 150 | * Define optimflags if you want to optimize. | ||
| 151 | * - Set to null string for pre-4.2 C compiler | ||
| 152 | * - Set to "-O -Wopt,-O-f" for 4.2 | ||
| 153 | */ | ||
| 154 | |||
| 155 | #define C_OPTIMIZE_SWITCH /* -O -Wopt,-O-f */ | ||
| 156 | |||
| 157 | /* For WICAT version supporting PTYs and select (currently internal only) */ | ||
| 158 | |||
| 159 | #ifdef HAVE_PTYS | ||
| 160 | #undef FIRST_PTY_LETTER | ||
| 161 | #define FIRST_PTY_LETTER 'q' | ||
| 162 | #endif | ||
| 163 | |||
| 164 | /* there is a select() in libcurses.a that causes a conflict so use termlib */ | ||
| 165 | #ifdef HAVE_SELECT | ||
| 166 | #undef TERMINFO | ||
| 167 | #define LIBS_TERMCAP select.o -ltermlib | ||
| 168 | #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 @@ | |||
| 1 | /* xps100.h for the Honeywell XPS100 running UNIX System V.2 | ||
| 2 | Mark J. Hewitt (mjh@uk.co.kernel) | ||
| 3 | |||
| 4 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 9 | it under the terms of the GNU General Public License as published by | ||
| 10 | the Free Software Foundation; either version 1, or (at your option) | ||
| 11 | any later version. | ||
| 12 | |||
| 13 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | GNU General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 20 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 21 | |||
| 22 | |||
| 23 | /* The following line tells the configuration script what sort of | ||
| 24 | operating system this machine is likely to run. | ||
| 25 | USUAL-OPSYS="usg5-2" */ | ||
| 26 | |||
| 27 | /* The following three symbols give information on | ||
| 28 | the size of various data types. */ | ||
| 29 | |||
| 30 | #define SHORTBITS 16 /* Number of bits in a short */ | ||
| 31 | |||
| 32 | #define INTBITS 32 /* Number of bits in an int */ | ||
| 33 | |||
| 34 | #define LONGBITS 32 /* Number of bits in a long */ | ||
| 35 | |||
| 36 | /* Define BIG_ENDIAN iff lowest-numbered byte in a word | ||
| 37 | is the most significant byte. */ | ||
| 38 | |||
| 39 | #define BIG_ENDIAN | ||
| 40 | |||
| 41 | /* Define NO_ARG_ARRAY if you cannot take the address of the first of a | ||
| 42 | * group of arguments and treat it as an array of the arguments. */ | ||
| 43 | |||
| 44 | /* #define NO_ARG_ARRAY */ | ||
| 45 | |||
| 46 | /* Define WORD_MACHINE if addresses and such have | ||
| 47 | * to be corrected before they can be used as byte counts. */ | ||
| 48 | |||
| 49 | /* #define WORD_MACHINE */ | ||
| 50 | |||
| 51 | /* Define how to take a char and sign-extend into an int. | ||
| 52 | On machines where char is signed, this is a no-op. */ | ||
| 53 | |||
| 54 | #define SIGN_EXTEND_CHAR(c) (c) | ||
| 55 | |||
| 56 | /* Now define a symbol for the cpu type, if your compiler | ||
| 57 | does not define it automatically: | ||
| 58 | Ones defined so far include vax, m68000, ns16000, pyramid, | ||
| 59 | orion, tahoe, APOLLO and many others */ | ||
| 60 | |||
| 61 | /* Use type int rather than a union, to represent Lisp_Object */ | ||
| 62 | /* This is desirable for most machines. */ | ||
| 63 | |||
| 64 | #define NO_UNION_TYPE | ||
| 65 | |||
| 66 | /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | ||
| 67 | the 24-bit bit field into an int. In other words, if bit fields | ||
| 68 | are always unsigned. | ||
| 69 | |||
| 70 | If you use NO_UNION_TYPE, this flag does not matter. */ | ||
| 71 | |||
| 72 | #define EXPLICIT_SIGN_EXTEND | ||
| 73 | |||
| 74 | /* Data type of load average, as read out of kmem. */ | ||
| 75 | |||
| 76 | /* #define LOAD_AVE_TYPE long */ | ||
| 77 | |||
| 78 | /* Convert that into an integer that is 100 for a load average of 1.0 */ | ||
| 79 | |||
| 80 | /* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */ | ||
| 81 | |||
| 82 | /* Define CANNOT_DUMP on machines where unexec does not work. | ||
| 83 | Then the function dump-emacs will not be defined | ||
| 84 | and temacs will do (load "loadup") automatically unless told otherwise. */ | ||
| 85 | |||
| 86 | /* #define CANNOT_DUMP */ | ||
| 87 | |||
| 88 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 89 | pure and impure space as loaded can vary, and even their | ||
| 90 | relative order cannot be relied on. | ||
| 91 | |||
| 92 | Otherwise Emacs assumes that text space precedes data space, | ||
| 93 | numerically. */ | ||
| 94 | |||
| 95 | /* #define VIRT_ADDR_VARIES */ | ||
| 96 | |||
| 97 | /* Define C_ALLOCA if this machine does not support a true alloca | ||
| 98 | and the one written in C should be used instead. | ||
| 99 | Define HAVE_ALLOCA to say that the system provides a properly | ||
| 100 | working alloca function and it should be used. | ||
| 101 | Define neither one if an assembler-language alloca | ||
| 102 | in the file alloca.s should be used. */ | ||
| 103 | |||
| 104 | #define C_ALLOCA | ||
| 105 | /* #define HAVE_ALLOCA */ | ||
| 106 | |||
| 107 | /* Define NO_REMAP if memory segmentation makes it not work well | ||
| 108 | to change the boundary between the text section and data section | ||
| 109 | when Emacs is dumped. If you define this, the preloaded Lisp | ||
| 110 | code will not be sharable; but that's better than failing completely. */ | ||
| 111 | |||
| 112 | #define NO_REMAP | ||
| 113 | #define STACK_DIRECTION -1 | ||
| 114 | #define TERMINFO | ||
| 115 | #define SWITCH_ENUM_BUG | ||
| 116 | #define LIB_STANDARD -lc | ||
| 117 | #define LD_SWITCH_MACHINE -X | ||
| 118 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on IBM AIX version 3.1 | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 7 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 8 | accepts responsibility to anyone for the consequences of using it | ||
| 9 | or for whether it serves any particular purpose or works at all, | ||
| 10 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 11 | License for full details. | ||
| 12 | |||
| 13 | Everyone is granted permission to copy, modify and redistribute | ||
| 14 | GNU Emacs, but only under the conditions described in the | ||
| 15 | GNU Emacs General Public License. A copy of this license is | ||
| 16 | supposed to have been given to you along with GNU Emacs so you | ||
| 17 | can know your rights and responsibilities. It should be in a | ||
| 18 | file named COPYING. Among other things, the copyright notice | ||
| 19 | and this notice must be preserved on all copies. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* | ||
| 23 | * Define symbols to identify the version of Unix this is. | ||
| 24 | * Define all the symbols that apply correctly. | ||
| 25 | */ | ||
| 26 | |||
| 27 | #define USG /* System III, System V, etc */ | ||
| 28 | #define USG5 | ||
| 29 | |||
| 30 | /* Specify IBM AIX version of system */ | ||
| 31 | |||
| 32 | #ifndef AIX | ||
| 33 | #define AIX | ||
| 34 | #endif | ||
| 35 | |||
| 36 | /* turn off c prototypes */ | ||
| 37 | #ifndef _NO_PROTO | ||
| 38 | #define _NO_PROTO | ||
| 39 | #endif | ||
| 40 | |||
| 41 | /* This symbol should be defined on AIX Version 3 ??????? */ | ||
| 42 | #ifndef _AIX | ||
| 43 | #define _AIX | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* Specify "_BSD" to invoke Berkeley compatibility in header files */ | ||
| 47 | /*#ifndef _BSD | ||
| 48 | #define _BSD | ||
| 49 | #endif | ||
| 50 | */ | ||
| 51 | |||
| 52 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 53 | It sets the Lisp variable system-type. */ | ||
| 54 | |||
| 55 | #define SYSTEM_TYPE "aix-v3" | ||
| 56 | |||
| 57 | |||
| 58 | /* nomultiplejobs should be defined if your system's shell | ||
| 59 | does not have "job control" (the ability to stop a program, | ||
| 60 | run some other program, then continue the first one). */ | ||
| 61 | |||
| 62 | /* #define NOMULTIPLEJOBS */ | ||
| 63 | |||
| 64 | /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ | ||
| 65 | |||
| 66 | /* #define INTERRUPT_INPUT */ | ||
| 67 | |||
| 68 | /* Letter to use in finding device name of first pty, | ||
| 69 | if system supports pty's. 'p' means it is /dev/ptyp0 */ | ||
| 70 | |||
| 71 | #define FIRST_PTY_LETTER 'p' | ||
| 72 | |||
| 73 | /* | ||
| 74 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 75 | * for terminal control. | ||
| 76 | */ | ||
| 77 | |||
| 78 | #define HAVE_TERMIO | ||
| 79 | |||
| 80 | /* | ||
| 81 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 82 | * Look in <sys/time.h> for a timeval structure. | ||
| 83 | */ | ||
| 84 | |||
| 85 | #define HAVE_TIMEVAL | ||
| 86 | |||
| 87 | /* | ||
| 88 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 89 | */ | ||
| 90 | |||
| 91 | #define HAVE_SELECT | ||
| 92 | |||
| 93 | /* | ||
| 94 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 95 | */ | ||
| 96 | |||
| 97 | #define HAVE_PTYS | ||
| 98 | |||
| 99 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 100 | |||
| 101 | #define HAVE_SOCKETS | ||
| 102 | |||
| 103 | /* | ||
| 104 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 105 | * The 4.2 opendir, etc., library functions. | ||
| 106 | */ | ||
| 107 | |||
| 108 | /* #define NONSYSTEM_DIR_LIBRARY */ | ||
| 109 | |||
| 110 | /* | ||
| 111 | * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir | ||
| 112 | * library functions. Almost, but not quite the same as | ||
| 113 | * the 4.2 functions | ||
| 114 | */ | ||
| 115 | |||
| 116 | #define SYSV_SYSTEM_DIR | ||
| 117 | |||
| 118 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 119 | |||
| 120 | #define BSTRING | ||
| 121 | |||
| 122 | /* subprocesses should be defined if you want to | ||
| 123 | have code for asynchronous subprocesses | ||
| 124 | (as used in M-x compile and M-x shell). | ||
| 125 | This is supposed to work now on system V release 2. */ | ||
| 126 | |||
| 127 | #define subprocesses | ||
| 128 | |||
| 129 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 130 | preprocessor symbol "COFF". */ | ||
| 131 | |||
| 132 | /* #define COFF */ | ||
| 133 | |||
| 134 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 135 | to interlock access to /usr/spool/mail/$USER. | ||
| 136 | The alternative is that a lock file named | ||
| 137 | /usr/spool/mail/$USER.lock. */ | ||
| 138 | |||
| 139 | /* #define MAIL_USE_FLOCK */ | ||
| 140 | |||
| 141 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 142 | so that Emacs can tell instantly when you try to modify | ||
| 143 | a file that someone else has modified in his Emacs. */ | ||
| 144 | |||
| 145 | /* #define CLASH_DETECTION */ | ||
| 146 | |||
| 147 | /* Define SHORTNAMES if the C compiler can distinguish only | ||
| 148 | short names. It means that the stuff in ../shortnames | ||
| 149 | must be run to convert the long names to short ones. */ | ||
| 150 | |||
| 151 | /* #define SHORTNAMES */ | ||
| 152 | |||
| 153 | /* We do NOT use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 154 | |||
| 155 | /* #define NLIST_STRUCT */ | ||
| 156 | |||
| 157 | /* The file containing the kernel's symbol table is called /unix. */ | ||
| 158 | |||
| 159 | #define KERNEL_FILE "/unix" | ||
| 160 | |||
| 161 | /* The symbol in the kernel where the load average is found | ||
| 162 | is named avenrun. */ | ||
| 163 | |||
| 164 | #define LDAV_SYMBOL "avenrun" | ||
| 165 | |||
| 166 | /* Special itemss needed to make Emacs run on this system. */ | ||
| 167 | |||
| 168 | /* | ||
| 169 | * Make the sigsetmask function go away. Don't know what the | ||
| 170 | * ramifications of this are, but doesn't seem possible to | ||
| 171 | * emulate it properly anyway at this point. | ||
| 172 | */ | ||
| 173 | |||
| 174 | #define sigsetmask(mask) /* Null expansion */ | ||
| 175 | |||
| 176 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, | ||
| 177 | but they will run slower. */ | ||
| 178 | |||
| 179 | #define _setjmp setjmp | ||
| 180 | #define _longjmp longjmp | ||
| 181 | |||
| 182 | /* On USG systems the system calls are interruptable by signals | ||
| 183 | that the user program has elected to catch. Thus the system call | ||
| 184 | must be retried in these cases. To handle this without massive | ||
| 185 | changes in the source code, we remap the standard system call names | ||
| 186 | to names for our own functions in sysdep.c that do the system call | ||
| 187 | with retries. */ | ||
| 188 | |||
| 189 | #define read sys_read | ||
| 190 | #define open sys_open | ||
| 191 | #define write sys_write | ||
| 192 | |||
| 193 | #define INTERRUPTIBLE_OPEN | ||
| 194 | #define INTERRUPTIBLE_IO | ||
| 195 | |||
| 196 | /* On USG systems these have different names */ | ||
| 197 | |||
| 198 | #define index strchr | ||
| 199 | #define rindex strrchr | ||
| 200 | |||
| 201 | /* USG systems tend to put everything declared static | ||
| 202 | into the initialized data area, which becomes pure after dumping Emacs. | ||
| 203 | Foil this. Emacs carefully avoids static vars inside functions. */ | ||
| 204 | |||
| 205 | #undef static | ||
| 206 | |||
| 207 | /* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ | ||
| 208 | |||
| 209 | /* #define ADDR_CORRECT(x) (x) */ | ||
| 210 | |||
| 211 | #define LD_CMD cc | ||
| 212 | |||
| 213 | /* Prevent -lg from being used for debugging. Not needed. */ | ||
| 214 | |||
| 215 | #define LIBS_DEBUG | ||
| 216 | |||
| 217 | /* No need to specify -lc when linking. */ | ||
| 218 | |||
| 219 | #define LIB_STANDARD | ||
| 220 | |||
| 221 | /* Use terminfo instead of termcap. */ | ||
| 222 | |||
| 223 | #define TERMINFO | ||
| 224 | |||
| 225 | /* The following definition seems to be needed in AIX version 3.1.6.8. | ||
| 226 | It may not have been needed in certain earlier versions. */ | ||
| 227 | #define HAVE_TCATTR | ||
| 228 | |||
| 229 | #define SYSTEM_MALLOC | ||
| 230 | |||
| 231 | |||
| 232 | |||
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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on bsd 4.3 | ||
| 2 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* | ||
| 22 | * Define symbols to identify the version of Unix this is. | ||
| 23 | * Define all the symbols that apply correctly. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #ifndef BSD4_3 | ||
| 27 | #define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */ | ||
| 28 | #endif /* BSD4_3 */ | ||
| 29 | |||
| 30 | #ifndef BSD | ||
| 31 | #define BSD4_3 1 | ||
| 32 | #endif /* BSD */ | ||
| 33 | |||
| 34 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 35 | It sets the Lisp variable system-type. */ | ||
| 36 | |||
| 37 | #define SYSTEM_TYPE "berkeley-unix" | ||
| 38 | |||
| 39 | /* nomultiplejobs should be defined if your system's shell | ||
| 40 | does not have "job control" (the ability to stop a program, | ||
| 41 | run some other program, then continue the first one). */ | ||
| 42 | |||
| 43 | /* #define NOMULTIPLEJOBS */ | ||
| 44 | |||
| 45 | /* Do not use interrupt_input = 1 by default, because in 4.3 | ||
| 46 | we can make noninterrupt input work properly. */ | ||
| 47 | |||
| 48 | #undef INTERRUPT_INPUT | ||
| 49 | |||
| 50 | /* First pty name is /dev/ptyp0. */ | ||
| 51 | |||
| 52 | #define FIRST_PTY_LETTER 'p' | ||
| 53 | |||
| 54 | /* | ||
| 55 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 56 | * Look in <sys/time.h> for a timeval structure. | ||
| 57 | */ | ||
| 58 | |||
| 59 | #define HAVE_TIMEVAL | ||
| 60 | |||
| 61 | /* | ||
| 62 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 63 | */ | ||
| 64 | |||
| 65 | #define HAVE_SELECT | ||
| 66 | |||
| 67 | /* | ||
| 68 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 69 | */ | ||
| 70 | |||
| 71 | #define HAVE_PTYS | ||
| 72 | |||
| 73 | /* Define this macro if system defines a type `union wait'. */ | ||
| 74 | |||
| 75 | #define HAVE_UNION_WAIT | ||
| 76 | |||
| 77 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 78 | |||
| 79 | #define HAVE_SOCKETS | ||
| 80 | |||
| 81 | /* | ||
| 82 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 83 | * The 4.2 opendir, etc., library functions. | ||
| 84 | */ | ||
| 85 | |||
| 86 | /* #define NONSYSTEM_DIR_LIBRARY */ | ||
| 87 | |||
| 88 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 89 | |||
| 90 | #define BSTRING | ||
| 91 | |||
| 92 | /* subprocesses should be defined if you want to | ||
| 93 | have code for asynchronous subprocesses | ||
| 94 | (as used in M-x compile and M-x shell). | ||
| 95 | This is generally OS dependent, and not supported | ||
| 96 | under most USG systems. */ | ||
| 97 | |||
| 98 | #define subprocesses | ||
| 99 | |||
| 100 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 101 | preprocessor symbol "COFF". */ | ||
| 102 | |||
| 103 | /* #define COFF */ | ||
| 104 | |||
| 105 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 106 | to interlock access to /usr/spool/mail/$USER. | ||
| 107 | The alternative is that a lock file named | ||
| 108 | /usr/spool/mail/$USER.lock. */ | ||
| 109 | |||
| 110 | #define MAIL_USE_FLOCK | ||
| 111 | |||
| 112 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 113 | so that Emacs can tell instantly when you try to modify | ||
| 114 | a file that someone else has modified in his Emacs. */ | ||
| 115 | |||
| 116 | #define CLASH_DETECTION | ||
| 117 | |||
| 118 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 119 | |||
| 120 | #define NLIST_STRUCT | ||
| 121 | |||
| 122 | /* The file containing the kernel's symbol table is called /vmunix. */ | ||
| 123 | |||
| 124 | #define KERNEL_FILE "/vmunix" | ||
| 125 | |||
| 126 | /* The symbol in the kernel where the load average is found | ||
| 127 | is named _avenrun. */ | ||
| 128 | |||
| 129 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on HPUX release 7.0. | ||
| 2 | Based on AT&T System V.2. | ||
| 3 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation; either version 1, or (at your option) | ||
| 10 | any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 19 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 20 | |||
| 21 | |||
| 22 | /* | ||
| 23 | * Define symbols to identify the version of Unix this is. | ||
| 24 | * Define all the symbols that apply correctly. | ||
| 25 | */ | ||
| 26 | |||
| 27 | #define USG /* System III, System V, etc */ | ||
| 28 | |||
| 29 | #define USG5 | ||
| 30 | |||
| 31 | #define HPUX | ||
| 32 | |||
| 33 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 34 | It sets the Lisp variable system-type. */ | ||
| 35 | |||
| 36 | #define SYSTEM_TYPE "hpux" | ||
| 37 | |||
| 38 | /* `nomultiplejobs' should be defined if your system's shell | ||
| 39 | does not have "job control" (the ability to stop a program, | ||
| 40 | run some other program, then continue the first one). | ||
| 41 | |||
| 42 | On hpux this depends on the precise kind of machine in use, | ||
| 43 | so the m- file defines this symbol if appropriate. */ | ||
| 44 | |||
| 45 | /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ | ||
| 46 | |||
| 47 | /* #define INTERRUPT_INPUT */ | ||
| 48 | |||
| 49 | /* Letter to use in finding device name of first pty, | ||
| 50 | if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */ | ||
| 51 | |||
| 52 | #define FIRST_PTY_LETTER 'p' | ||
| 53 | |||
| 54 | /* | ||
| 55 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 56 | * for terminal control. | ||
| 57 | */ | ||
| 58 | |||
| 59 | #define HAVE_TERMIO | ||
| 60 | |||
| 61 | /* Says to include time.h, and not include sys/time.h. */ | ||
| 62 | |||
| 63 | #define NEED_TIME_H | ||
| 64 | |||
| 65 | /* | ||
| 66 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 67 | * Look in <sys/time.h> for a timeval structure. | ||
| 68 | */ | ||
| 69 | |||
| 70 | #define HAVE_TIMEVAL | ||
| 71 | |||
| 72 | /* With HAVE_TIMEVAL define, Emacs expects to use `utimes'. | ||
| 73 | But HPUX does not have one. */ | ||
| 74 | |||
| 75 | #define MISSING_UTIMES | ||
| 76 | |||
| 77 | /* | ||
| 78 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 79 | */ | ||
| 80 | |||
| 81 | #define HAVE_SELECT | ||
| 82 | |||
| 83 | /* | ||
| 84 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 85 | */ | ||
| 86 | |||
| 87 | #define HAVE_PTYS | ||
| 88 | |||
| 89 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 90 | |||
| 91 | #define HAVE_SOCKETS | ||
| 92 | |||
| 93 | /* | ||
| 94 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 95 | * The 4.2 opendir, etc., library functions. | ||
| 96 | */ | ||
| 97 | |||
| 98 | /* #define NONSYSTEM_DIR_LIBRARY */ | ||
| 99 | |||
| 100 | /* Define this symbol if your system has the functions bcopy, etc. | ||
| 101 | * s800 and later versions of s300 (s200) kernels have equivilents | ||
| 102 | * of the BSTRING functions of BSD. If your s200 kernel doesn't have | ||
| 103 | * em comment out this section. | ||
| 104 | */ | ||
| 105 | |||
| 106 | #define BSTRING | ||
| 107 | |||
| 108 | /* subprocesses should be defined if you want to | ||
| 109 | have code for asynchronous subprocesses | ||
| 110 | (as used in M-x compile and M-x shell). | ||
| 111 | This is generally OS dependent, and not supported | ||
| 112 | under most USG systems. */ | ||
| 113 | |||
| 114 | #define subprocesses | ||
| 115 | |||
| 116 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 117 | preprocessor symbol "COFF". */ | ||
| 118 | |||
| 119 | /* #define COFF */ | ||
| 120 | |||
| 121 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 122 | to interlock access to /usr/spool/mail/$USER. | ||
| 123 | The alternative is that a lock file named | ||
| 124 | /usr/spool/mail/$USER.lock. */ | ||
| 125 | |||
| 126 | /* #define MAIL_USE_FLOCK */ | ||
| 127 | |||
| 128 | /* Say we have the SYSV style of interprocess communication. */ | ||
| 129 | |||
| 130 | #define HAVE_SYSVIPC | ||
| 131 | |||
| 132 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 133 | so that Emacs can tell instantly when you try to modify | ||
| 134 | a file that someone else has modified in his Emacs. */ | ||
| 135 | |||
| 136 | /* #define CLASH_DETECTION */ | ||
| 137 | |||
| 138 | /* Define SHORTNAMES if the C compiler can distinguish only | ||
| 139 | short names. It means that the stuff in ../shortnames | ||
| 140 | must be run to convert the long names to short ones. | ||
| 141 | |||
| 142 | Some USG systems support long names. | ||
| 143 | If yours is one, DO NOT change this file! | ||
| 144 | Do #undef SHORTNAMES in the m- file or in config.h. */ | ||
| 145 | |||
| 146 | /* #define SHORTNAMES */ | ||
| 147 | |||
| 148 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 149 | |||
| 150 | #define NLIST_STRUCT | ||
| 151 | |||
| 152 | /* The file containing the kernel's symbol table is called /hp-ux. */ | ||
| 153 | |||
| 154 | #define KERNEL_FILE "/hp-ux" | ||
| 155 | |||
| 156 | /* The symbol in the kernel where the load average is found | ||
| 157 | depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */ | ||
| 158 | |||
| 159 | /* Special hacks needed to make Emacs run on this system. */ | ||
| 160 | |||
| 161 | /* | ||
| 162 | * Make the sigsetmask function go away. Don't know what the | ||
| 163 | * ramifications of this are, but doesn't seem possible to | ||
| 164 | * emulate it properly anyway at this point. | ||
| 165 | */ | ||
| 166 | |||
| 167 | /* HPUX has sigsetmask */ | ||
| 168 | /* #define sigsetmask(mask) / * Null expansion * / */ | ||
| 169 | |||
| 170 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, | ||
| 171 | but they will run slower. */ | ||
| 172 | |||
| 173 | /* HP-UX has _setjmp and _longjmp */ | ||
| 174 | /* | ||
| 175 | #define _setjmp setjmp | ||
| 176 | #define _longjmp longjmp | ||
| 177 | */ | ||
| 178 | |||
| 179 | /* On USG systems the system calls are interruptable by signals | ||
| 180 | that the user program has elected to catch. Thus the system call | ||
| 181 | must be retried in these cases. To handle this without massive | ||
| 182 | changes in the source code, we remap the standard system call names | ||
| 183 | to names for our own functions in sysdep.c that do the system call | ||
| 184 | with retries. */ | ||
| 185 | |||
| 186 | #define read sys_read | ||
| 187 | #define open sys_open | ||
| 188 | #define write sys_write | ||
| 189 | |||
| 190 | #define INTERRUPTIBLE_OPEN | ||
| 191 | #define INTERRUPTIBLE_IO | ||
| 192 | |||
| 193 | /* Use the system provided termcap(3) library */ | ||
| 194 | #define TERMINFO | ||
| 195 | |||
| 196 | /* The 48-bit versions are more winning for Emacs. */ | ||
| 197 | |||
| 198 | #define rand lrand48 | ||
| 199 | #define srand srand48 | ||
| 200 | |||
| 201 | /* In hpux, the symbol SIGIO is defined, but the feature | ||
| 202 | does not really exist. | ||
| 203 | |||
| 204 | Here we assume that signal.h is included before config.h | ||
| 205 | so that we can override it here. */ | ||
| 206 | |||
| 207 | #undef SIGIO | ||
| 208 | |||
| 209 | /* USG systems tend to put everything declared static | ||
| 210 | into the initialized data area, which becomes pure after dumping Emacs. | ||
| 211 | Foil this. Emacs carefully avoids static vars inside functions. */ | ||
| 212 | |||
| 213 | #define static | ||
| 214 | |||
| 215 | /* Define extra libraries to load. | ||
| 216 | This should have -lBSD, but that library is said to make | ||
| 217 | `signal' fail to work. */ | ||
| 218 | |||
| 219 | #ifdef HPUX_NET | ||
| 220 | #define LIBS_SYSTEM -ln | ||
| 221 | #else | ||
| 222 | #define LIBS_SYSTEM | ||
| 223 | #endif | ||
| 224 | |||
| 225 | /* Some additional system facilities exist. */ | ||
| 226 | |||
| 227 | #define HAVE_DUP2 | ||
| 228 | #define HAVE_GETTIMEOFDAY | ||
| 229 | #define HAVE_VFORK | ||
| 230 | #define HAVE_PERROR /* Delete this line for version 6. */ | ||
| 231 | |||
| 232 | /* The following maps shared exec file to demand loaded exec. | ||
| 233 | Don't do this as demand loaded exec is broken in hpux. */ | ||
| 234 | |||
| 235 | #if 0 | ||
| 236 | |||
| 237 | /* Adjust a header field for the executable file about to be dumped. */ | ||
| 238 | |||
| 239 | #define ADJUST_EXEC_HEADER \ | ||
| 240 | hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ? \ | ||
| 241 | NEWMAGIC : ohdr.a_magic); | ||
| 242 | |||
| 243 | #endif | ||
| 244 | |||
| 245 | /* Baud-rate values in tty status have nonstandard meanings. */ | ||
| 246 | |||
| 247 | #define BAUD_CONVERT \ | ||
| 248 | { 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \ | ||
| 249 | 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 } | ||
| 250 | |||
| 251 | /* This is needed for HPUX version 6.2; it may not be needed for 6.2.1. */ | ||
| 252 | #define SHORT_CAST_BUG | ||
| 253 | |||
| 254 | /* This is how to get the device name of the tty end of a pty. */ | ||
| 255 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 256 | sprintf (ptyname, "/dev/pty/tty%c%x", c, i); | ||
| 257 | |||
| 258 | /* This is how to get the device name of the control end of a pty. */ | ||
| 259 | #define PTY_NAME_SPRINTF \ | ||
| 260 | 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 @@ | |||
| 1 | /* system description file for hpux version 8. | ||
| 2 | This contains changes that were suggested "for the hp700". | ||
| 3 | They were not needed for the 800. | ||
| 4 | Our conjecture that they are needed for hpux version 8, | ||
| 5 | which is what runs on the 700. */ | ||
| 6 | |||
| 7 | #include "hpux.h" | ||
| 8 | |||
| 9 | #define LIB_X11_LIB -L/usr/lib/X11R4 -lX11 | ||
| 10 | #define C_SWITCH_SYSTEM -I/usr/include/X11R4 | ||
| 11 | |||
| 12 | /* Don't use shared libraries. unexec doesn't handle them. */ | ||
| 13 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on Silicon Graphics system 3.6. | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* | ||
| 22 | * Define symbols to identify the version of Unix this is. | ||
| 23 | * Define all the symbols that apply correctly. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #define USG | ||
| 27 | #define USG5 | ||
| 28 | #define IRIS | ||
| 29 | |||
| 30 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 31 | It sets the Lisp variable system-type. */ | ||
| 32 | |||
| 33 | #define SYSTEM_TYPE "irix" | ||
| 34 | |||
| 35 | /* nomultiplejobs should be defined if your system's shell | ||
| 36 | does not have "job control" (the ability to stop a program, | ||
| 37 | run some other program, then continue the first one). */ | ||
| 38 | |||
| 39 | #define NOMULTIPLEJOBS | ||
| 40 | |||
| 41 | /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ | ||
| 42 | |||
| 43 | /* #define INTERRUPT_INPUT */ | ||
| 44 | |||
| 45 | /* Letter to use in finding device name of first pty, | ||
| 46 | if system supports pty's. 'a' means it is /dev/ptya0 */ | ||
| 47 | |||
| 48 | #define FIRST_PTY_LETTER 'a' | ||
| 49 | |||
| 50 | /* | ||
| 51 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 52 | * for terminal control. | ||
| 53 | */ | ||
| 54 | |||
| 55 | #define HAVE_TERMIO | ||
| 56 | |||
| 57 | /* | ||
| 58 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 59 | * Look in <sys/time.h> for a timeval structure. | ||
| 60 | */ | ||
| 61 | |||
| 62 | #define HAVE_TIMEVAL | ||
| 63 | |||
| 64 | /* `utime' system call doesn't understand timevals. */ | ||
| 65 | |||
| 66 | #define IRIS_UTIME | ||
| 67 | |||
| 68 | /* | ||
| 69 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 70 | */ | ||
| 71 | |||
| 72 | #define HAVE_SELECT | ||
| 73 | |||
| 74 | /* | ||
| 75 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 76 | */ | ||
| 77 | |||
| 78 | #define HAVE_PTYS | ||
| 79 | |||
| 80 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 81 | |||
| 82 | #define HAVE_SOCKETS | ||
| 83 | |||
| 84 | /* | ||
| 85 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 86 | * The 4.2 opendir, etc., library functions. | ||
| 87 | */ | ||
| 88 | |||
| 89 | /* #define NONSYSTEM_DIR_LIBRARY */ | ||
| 90 | |||
| 91 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 92 | |||
| 93 | #define BSTRING | ||
| 94 | |||
| 95 | /* subprocesses should be defined if you want to | ||
| 96 | have code for asynchronous subprocesses | ||
| 97 | (as used in M-x compile and M-x shell). | ||
| 98 | This is generally OS dependent, and not supported | ||
| 99 | under most USG systems. */ | ||
| 100 | |||
| 101 | #define subprocesses | ||
| 102 | |||
| 103 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 104 | preprocessor symbol "COFF". */ | ||
| 105 | |||
| 106 | /* #define COFF */ | ||
| 107 | |||
| 108 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 109 | to interlock access to /usr/spool/mail/$USER. | ||
| 110 | The alternative is that a lock file named | ||
| 111 | /usr/spool/mail/$USER.lock. */ | ||
| 112 | |||
| 113 | /* #define MAIL_USE_FLOCK */ | ||
| 114 | |||
| 115 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 116 | so that Emacs can tell instantly when you try to modify | ||
| 117 | a file that someone else has modified in his Emacs. */ | ||
| 118 | |||
| 119 | /* #define CLASH_DETECTION */ | ||
| 120 | |||
| 121 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 122 | |||
| 123 | #define NLIST_STRUCT | ||
| 124 | |||
| 125 | /* The file containing the kernel's symbol table is called /vmunix. */ | ||
| 126 | |||
| 127 | #define KERNEL_FILE "/vmunix" | ||
| 128 | |||
| 129 | /* The symbol in the kernel where the load average is found | ||
| 130 | is named _avenrun. */ | ||
| 131 | |||
| 132 | #define LDAV_SYMBOL "_avenrun" | ||
| 133 | |||
| 134 | |||
| 135 | /* Special hacks needed to make Emacs run on this system. */ | ||
| 136 | |||
| 137 | /* | ||
| 138 | * Make the sigsetmask function go away. Don't know what the | ||
| 139 | * ramifications of this are, but doesn't seem possible to | ||
| 140 | * emulate it properly anyway at this point. | ||
| 141 | */ | ||
| 142 | |||
| 143 | #define sigsetmask(mask) /* Null expansion */ | ||
| 144 | #define sigblock(x) x | ||
| 145 | |||
| 146 | /* The IRIS defines SIGIO in signal.h, but doesn't implement it. */ | ||
| 147 | #undef SIGIO | ||
| 148 | |||
| 149 | #define LIBS_MACHINE -lbsd -ldbm -lPW | ||
| 150 | #define C_SWITCH_MACHINE -I/usr/include/bsd | ||
| 151 | |||
| 152 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, | ||
| 153 | but they will run slower. */ | ||
| 154 | |||
| 155 | #define _setjmp setjmp | ||
| 156 | #define _longjmp longjmp | ||
| 157 | |||
| 158 | /* On USG systems the system calls are interruptable by signals | ||
| 159 | that the user program has elected to catch. Thus the system call | ||
| 160 | must be retried in these cases. To handle this without massive | ||
| 161 | changes in the source code, we remap the standard system call names | ||
| 162 | to names for our own functions in sysdep.c that do the system call | ||
| 163 | with retries. */ | ||
| 164 | |||
| 165 | #define read sys_read | ||
| 166 | #define open sys_open | ||
| 167 | #define write sys_write | ||
| 168 | |||
| 169 | #define INTERRUPTIBLE_OPEN | ||
| 170 | #define INTERRUPTIBLE_IO | ||
| 171 | |||
| 172 | /* On USG systems these have different names */ | ||
| 173 | |||
| 174 | #define index strchr | ||
| 175 | #define rindex strrchr | ||
| 176 | |||
| 177 | /* USG systems tend to put everything declared static | ||
| 178 | into the initialized data area, which becomes pure after dumping Emacs. | ||
| 179 | Foil this. Emacs carefully avoids static vars inside functions. */ | ||
| 180 | |||
| 181 | /* #define static */ | ||
| 182 | |||
| 183 | /* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ | ||
| 184 | |||
| 185 | #define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0) | ||
| 186 | |||
| 187 | /* some errno.h's don't actually allocate the variable itself */ | ||
| 188 | |||
| 189 | #define NEED_ERRNO | ||
| 190 | |||
| 191 | /* This is how to get the device name of the tty end of a pty. */ | ||
| 192 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 193 | 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 @@ | |||
| 1 | /* system description file for Interactive (ISC) Unix version 2.2 on | ||
| 2 | the 386. */ | ||
| 3 | |||
| 4 | #include "usg5-3.h" | ||
| 5 | |||
| 6 | #define HAVE_PTYS | ||
| 7 | #define HAVE_RENAME | ||
| 8 | #define HAVE_CLOSEDIR | ||
| 9 | #define MAXNAMLEN 512 | ||
| 10 | #define LIB_STANDARD -lcposix -lc | ||
| 11 | #define O_NDELAY O_NONBLOCK | ||
| 12 | #define MEMORY_IN_STRING_H | ||
| 13 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on RTU 3.0, ucb universe. | ||
| 2 | Copyright (C) 1986 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* | ||
| 22 | * Define symbols to identify the version of Unix this is. | ||
| 23 | * Define all the symbols that apply correctly. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #define BSD4_2 | ||
| 27 | #define BSD | ||
| 28 | #define RTU | ||
| 29 | |||
| 30 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 31 | It sets the Lisp variable system-type. */ | ||
| 32 | |||
| 33 | #define SYSTEM_TYPE "rtu" | ||
| 34 | |||
| 35 | /* NOMULTIPLEJOBS should be defined if your system's shell | ||
| 36 | does not have "job control" (the ability to stop a program, | ||
| 37 | run some other program, then continue the first one). */ | ||
| 38 | |||
| 39 | #define NOMULTIPLEJOBS | ||
| 40 | |||
| 41 | /* Emacs can read input using SIGIO and buffering characters itself, | ||
| 42 | or using CBREAK mode and making C-g cause SIGINT. | ||
| 43 | The choice is controlled by the variable interrupt_input. | ||
| 44 | Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) | ||
| 45 | |||
| 46 | SIGIO can be used only on systems that implement it (4.2 and 4.3). | ||
| 47 | CBREAK mode has two disadvatages | ||
| 48 | 1) At least in 4.2, it is impossible to handle the Meta key properly. | ||
| 49 | I hear that in system V this problem does not exist. | ||
| 50 | 2) Control-G causes output to be discarded. | ||
| 51 | I do not know whether this can be fixed in system V. | ||
| 52 | |||
| 53 | Another method of doing input is planned but not implemented. | ||
| 54 | It would have Emacs fork off a separate process | ||
| 55 | to read the input and send it to the true Emacs process | ||
| 56 | through a pipe. | ||
| 57 | */ | ||
| 58 | |||
| 59 | #undef INTERRUPT_INPUT | ||
| 60 | |||
| 61 | /* Letter to use in finding device name of first pty, | ||
| 62 | if system supports pty's. 'a' means it is /dev/ptya0 */ | ||
| 63 | |||
| 64 | #define FIRST_PTY_LETTER 'z' /* i.e. no PTY_LETTERs */ | ||
| 65 | |||
| 66 | /* | ||
| 67 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 68 | * Look in <sys/time.h> for a timeval structure. | ||
| 69 | */ | ||
| 70 | |||
| 71 | #define HAVE_TIMEVAL | ||
| 72 | |||
| 73 | /* | ||
| 74 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 75 | */ | ||
| 76 | |||
| 77 | #define HAVE_SELECT | ||
| 78 | |||
| 79 | /* | ||
| 80 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 81 | */ | ||
| 82 | |||
| 83 | #define HAVE_PTYS | ||
| 84 | |||
| 85 | /* Define this macro if system defines a type `union wait'. */ | ||
| 86 | |||
| 87 | #define HAVE_UNION_WAIT | ||
| 88 | |||
| 89 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 90 | |||
| 91 | #define HAVE_SOCKETS | ||
| 92 | |||
| 93 | /* | ||
| 94 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 95 | * The 4.2 opendir, etc., library functions. | ||
| 96 | */ | ||
| 97 | |||
| 98 | #define NONSYSTEM_DIR_LIBRARY | ||
| 99 | |||
| 100 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 101 | /* The system library bcopy() is broken in RTU. For one thing, it expects | ||
| 102 | the length to be less than 64k. */ | ||
| 103 | #undef BSTRING | ||
| 104 | |||
| 105 | /* subprocesses should be defined if you want to | ||
| 106 | have code for asynchronous subprocesses | ||
| 107 | (as used in M-x compile and M-x shell). | ||
| 108 | This is generally OS dependent, and not supported | ||
| 109 | under most USG systems. */ | ||
| 110 | |||
| 111 | #define subprocesses | ||
| 112 | |||
| 113 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 114 | preprocessor symbol "COFF". */ | ||
| 115 | |||
| 116 | #undef COFF | ||
| 117 | |||
| 118 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 119 | to interlock access to /usr/spool/mail/$USER. | ||
| 120 | The alternative is that a lock file named | ||
| 121 | /usr/spool/mail/$USER.lock. */ | ||
| 122 | |||
| 123 | #undef MAIL_USE_FLOCK | ||
| 124 | |||
| 125 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 126 | so that Emacs can tell instantly when you try to modify | ||
| 127 | a file that someone else has modified in his Emacs. */ | ||
| 128 | |||
| 129 | #undef CLASH_DETECTION | ||
| 130 | |||
| 131 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 132 | |||
| 133 | #define NLIST_STRUCT | ||
| 134 | |||
| 135 | /* The symbol in the kernel where the load average is found | ||
| 136 | is named _avenrun. */ | ||
| 137 | |||
| 138 | #define LDAV_SYMBOL "_avenrun" | ||
| 139 | |||
| 140 | /* Special hacks needed to make Emacs run on this system. */ | ||
| 141 | |||
| 142 | /* On RTU systems (like USG) the system calls are interruptable by signals | ||
| 143 | that the user program has elected to catch. Thus the system call | ||
| 144 | must be retried in these cases. To handle this without massive | ||
| 145 | changes in the source code, we remap the standard system call names | ||
| 146 | to names for our own functions in sysdep.c that do the system call | ||
| 147 | with retries. */ | ||
| 148 | |||
| 149 | #define read sys_read | ||
| 150 | #define open sys_open | ||
| 151 | #define write sys_write | ||
| 152 | |||
| 153 | #define INTERRUPTIBLE_OPEN | ||
| 154 | #define INTERRUPTIBLE_IO | ||
| 155 | |||
| 156 | /* The "fsync" call on RTU versions 3.0 and 3.1 is badly broken! | ||
| 157 | This hack below isn't the best solution, but without it this | ||
| 158 | program will cause the whole system to hang! !@#$#%$ Masscomp! */ | ||
| 159 | |||
| 160 | #define fsync(x) 0 /* "Comment out" fsync calls */ | ||
| 161 | |||
| 162 | /* RTU has IPC instead of Unix-domain sockets. */ | ||
| 163 | |||
| 164 | #define HAVE_SYSVIPC | ||
| 165 | |||
| 166 | /* This is how to get the device name of the tty end of a pty. */ | ||
| 167 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 168 | sprintf (ptyname, "/dev/ttyp%x", i); | ||
| 169 | |||
| 170 | /* This is how to get the device name of the control end of a pty. */ | ||
| 171 | #define PTY_NAME_SPRINTF \ | ||
| 172 | 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 @@ | |||
| 1 | #include "bsd4-2.h" | ||
| 2 | |||
| 3 | /* Say that the text segment of a.out includes the header; | ||
| 4 | the header actually occupies the first few bytes of the text segment | ||
| 5 | and is counted in hdr.a_text. */ | ||
| 6 | |||
| 7 | #define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */ | ||
| 8 | |||
| 9 | /* In SunOS 4.1, a static function called by tzsetwall reportedly | ||
| 10 | clears the byte just past an eight byte region it mallocs, corrupting | ||
| 11 | GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */ | ||
| 12 | |||
| 13 | #define SYSTEM_MALLOC | ||
| 14 | |||
| 15 | /* Misleading! Actually gets loaded after crt0.o */ | ||
| 16 | #define START_FILES pre-crt0.o | ||
| 17 | |||
| 18 | /* | ||
| 19 | * Kludge! can't get at symbol "start" in std crt0.o | ||
| 20 | * Who the #$%&* decided to remove the __ characters! | ||
| 21 | * Someone needs to fix this in sysdep.c with an #ifdef BROKEN_START in | ||
| 22 | * sysdep.c. We do not use this address so any value should do really. Still | ||
| 23 | * may need it in the future? | ||
| 24 | */ | ||
| 25 | #define BROKEN_START | ||
| 26 | #define TEXT_START 0x2020 | ||
| 27 | |||
| 28 | #define UNEXEC unexsunos4.o | ||
| 29 | #define RUN_TIME_REMAP | ||
| 30 | #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 @@ | |||
| 1 | /* Template for system description header files. | ||
| 2 | This file describes the parameters that system description files | ||
| 3 | should define or not. | ||
| 4 | Copyright (C) 1985, 1986 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 9 | it under the terms of the GNU General Public License as published by | ||
| 10 | the Free Software Foundation; either version 1, or (at your option) | ||
| 11 | any later version. | ||
| 12 | |||
| 13 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | GNU General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 20 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 21 | |||
| 22 | |||
| 23 | /* | ||
| 24 | * Define symbols to identify the version of Unix this is. | ||
| 25 | * Define all the symbols that apply correctly. | ||
| 26 | */ | ||
| 27 | |||
| 28 | /* #define UNIPLUS */ | ||
| 29 | /* #define USG5 */ | ||
| 30 | /* #define USG */ | ||
| 31 | /* #define HPUX */ | ||
| 32 | /* #define UMAX */ | ||
| 33 | /* #define BSD4_1 */ | ||
| 34 | /* #define BSD4_2 */ | ||
| 35 | /* #define BSD4_3 */ | ||
| 36 | /* #define BSD */ | ||
| 37 | /* #define VMS */ | ||
| 38 | |||
| 39 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 40 | It sets the Lisp variable system-type. */ | ||
| 41 | |||
| 42 | #define SYSTEM_TYPE "berkeley-unix" | ||
| 43 | |||
| 44 | /* NOMULTIPLEJOBS should be defined if your system's shell | ||
| 45 | does not have "job control" (the ability to stop a program, | ||
| 46 | run some other program, then continue the first one). */ | ||
| 47 | |||
| 48 | /* #define NOMULTIPLEJOBS */ | ||
| 49 | |||
| 50 | /* Emacs can read input using SIGIO and buffering characters itself, | ||
| 51 | or using CBREAK mode and making C-g cause SIGINT. | ||
| 52 | The choice is controlled by the variable interrupt_input. | ||
| 53 | Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) | ||
| 54 | |||
| 55 | SIGIO can be used only on systems that implement it (4.2 and 4.3). | ||
| 56 | CBREAK mode has two disadvatages | ||
| 57 | 1) At least in 4.2, it is impossible to handle the Meta key properly. | ||
| 58 | I hear that in system V this problem does not exist. | ||
| 59 | 2) Control-G causes output to be discarded. | ||
| 60 | I do not know whether this can be fixed in system V. | ||
| 61 | |||
| 62 | Another method of doing input is planned but not implemented. | ||
| 63 | It would have Emacs fork off a separate process | ||
| 64 | to read the input and send it to the true Emacs process | ||
| 65 | through a pipe. | ||
| 66 | */ | ||
| 67 | |||
| 68 | #define INTERRUPT_INPUT | ||
| 69 | |||
| 70 | /* Letter to use in finding device name of first pty, | ||
| 71 | if system supports pty's. 'a' means it is /dev/ptya0 */ | ||
| 72 | |||
| 73 | #define FIRST_PTY_LETTER 'a' | ||
| 74 | |||
| 75 | /* | ||
| 76 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 77 | * Look in <sys/time.h> for a timeval structure. | ||
| 78 | */ | ||
| 79 | |||
| 80 | #define HAVE_TIMEVAL | ||
| 81 | |||
| 82 | /* | ||
| 83 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 84 | */ | ||
| 85 | |||
| 86 | /* #define HAVE_SELECT */ | ||
| 87 | |||
| 88 | /* | ||
| 89 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 90 | */ | ||
| 91 | |||
| 92 | #define HAVE_PTYS | ||
| 93 | |||
| 94 | /* | ||
| 95 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 96 | * The 4.2 opendir, etc., library functions. | ||
| 97 | */ | ||
| 98 | |||
| 99 | #define NONSYSTEM_DIR_LIBRARY | ||
| 100 | |||
| 101 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 102 | |||
| 103 | #define BSTRING | ||
| 104 | |||
| 105 | /* subprocesses should be defined if you want to | ||
| 106 | have code for asynchronous subprocesses | ||
| 107 | (as used in M-x compile and M-x shell). | ||
| 108 | This is generally OS dependent, and not supported | ||
| 109 | under most USG systems. */ | ||
| 110 | |||
| 111 | #define subprocesses | ||
| 112 | |||
| 113 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 114 | preprocessor symbol "COFF". */ | ||
| 115 | |||
| 116 | /* #define COFF */ | ||
| 117 | |||
| 118 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 119 | to interlock access to /usr/spool/mail/$USER. | ||
| 120 | The alternative is that a lock file named | ||
| 121 | /usr/spool/mail/$USER.lock. */ | ||
| 122 | |||
| 123 | #define MAIL_USE_FLOCK | ||
| 124 | |||
| 125 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 126 | so that Emacs can tell instantly when you try to modify | ||
| 127 | a file that someone else has modified in his Emacs. */ | ||
| 128 | |||
| 129 | #define CLASH_DETECTION | ||
| 130 | |||
| 131 | /* Here, on a separate page, add any special hacks needed | ||
| 132 | to make Emacs work on this system. For example, | ||
| 133 | you might define certain system call names that don't | ||
| 134 | exist on your system, or that do different things on | ||
| 135 | your system and must be used only through an encapsulation | ||
| 136 | (Which you should place, by convention, in sysdep.c). */ | ||
| 137 | |||
| 138 | /* Some compilers tend to put everything declared static | ||
| 139 | into the initialized data area, which becomes pure after dumping Emacs. | ||
| 140 | On these systems, you must #define static as nothing to foil this. | ||
| 141 | Note that emacs carefully avoids static vars inside functions. */ | ||
| 142 | |||
| 143 | /* #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on AT&T's System V Release 3 | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is free software; you can redistribute it and/or modify | ||
| 7 | it under the terms of the GNU General Public License as published by | ||
| 8 | the Free Software Foundation; either version 1, or (at your option) | ||
| 9 | any later version. | ||
| 10 | |||
| 11 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | GNU General Public License for more details. | ||
| 15 | |||
| 16 | You should have received a copy of the GNU General Public License | ||
| 17 | along with GNU Emacs; see the file COPYING. If not, write to | ||
| 18 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* | ||
| 22 | * Define symbols to identify the version of Unix this is. | ||
| 23 | * Define all the symbols that apply correctly. | ||
| 24 | */ | ||
| 25 | |||
| 26 | #define USG /* System III, System V, etc */ | ||
| 27 | |||
| 28 | #define USG5 | ||
| 29 | |||
| 30 | /* SYSTEM_TYPE should indicate the kind of system you are using. | ||
| 31 | It sets the Lisp variable system-type. */ | ||
| 32 | |||
| 33 | #define SYSTEM_TYPE "usg-unix-v" | ||
| 34 | |||
| 35 | /* nomultiplejobs should be defined if your system's shell | ||
| 36 | does not have "job control" (the ability to stop a program, | ||
| 37 | run some other program, then continue the first one). */ | ||
| 38 | |||
| 39 | #define NOMULTIPLEJOBS | ||
| 40 | |||
| 41 | /* Default is to set interrupt_input to 0: don't do input buffering within Emacs */ | ||
| 42 | |||
| 43 | /* #define INTERRUPT_INPUT */ | ||
| 44 | |||
| 45 | /* Letter to use in finding device name of first pty, | ||
| 46 | if system supports pty's. 'p' means it is /dev/ptyp0 */ | ||
| 47 | |||
| 48 | #define FIRST_PTY_LETTER 'p' | ||
| 49 | |||
| 50 | /* | ||
| 51 | * Define HAVE_TERMIO if the system provides sysV-style ioctls | ||
| 52 | * for terminal control. | ||
| 53 | */ | ||
| 54 | |||
| 55 | #define HAVE_TERMIO | ||
| 56 | |||
| 57 | /* | ||
| 58 | * Define HAVE_TIMEVAL if the system supports the BSD style clock values. | ||
| 59 | * Look in <sys/time.h> for a timeval structure. | ||
| 60 | */ | ||
| 61 | |||
| 62 | /* #define HAVE_TIMEVAL */ | ||
| 63 | |||
| 64 | /* | ||
| 65 | * Define HAVE_SELECT if the system supports the `select' system call. | ||
| 66 | */ | ||
| 67 | |||
| 68 | /* #define HAVE_SELECT */ | ||
| 69 | |||
| 70 | /* | ||
| 71 | * Define HAVE_PTYS if the system supports pty devices. | ||
| 72 | */ | ||
| 73 | |||
| 74 | /* Some versions of V.3 have this, but not all. | ||
| 75 | #define HAVE_PTYS | ||
| 76 | #define SYSV_PTYS */ | ||
| 77 | |||
| 78 | /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ | ||
| 79 | |||
| 80 | /* #define HAVE_SOCKETS */ | ||
| 81 | |||
| 82 | /* | ||
| 83 | * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate | ||
| 84 | * The 4.2 opendir, etc., library functions. | ||
| 85 | */ | ||
| 86 | |||
| 87 | /* #define NONSYSTEM_DIR_LIBRARY */ | ||
| 88 | |||
| 89 | /* | ||
| 90 | * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir | ||
| 91 | * library functions. Almost, but not quite the same as | ||
| 92 | * the 4.2 functions | ||
| 93 | */ | ||
| 94 | #define SYSV_SYSTEM_DIR | ||
| 95 | |||
| 96 | /* Define this symbol if your system has the functions bcopy, etc. */ | ||
| 97 | |||
| 98 | /* #define BSTRING */ | ||
| 99 | |||
| 100 | /* subprocesses should be defined if you want to | ||
| 101 | have code for asynchronous subprocesses | ||
| 102 | (as used in M-x compile and M-x shell). | ||
| 103 | This is supposed to work now on system V release 2. */ | ||
| 104 | |||
| 105 | #define subprocesses | ||
| 106 | |||
| 107 | /* If your system uses COFF (Common Object File Format) then define the | ||
| 108 | preprocessor symbol "COFF". */ | ||
| 109 | |||
| 110 | #define COFF | ||
| 111 | |||
| 112 | /* define MAIL_USE_FLOCK if the mailer uses flock | ||
| 113 | to interlock access to /usr/spool/mail/$USER. | ||
| 114 | The alternative is that a lock file named | ||
| 115 | /usr/spool/mail/$USER.lock. */ | ||
| 116 | |||
| 117 | /* #define MAIL_USE_FLOCK */ | ||
| 118 | |||
| 119 | /* Define CLASH_DETECTION if you want lock files to be written | ||
| 120 | so that Emacs can tell instantly when you try to modify | ||
| 121 | a file that someone else has modified in his Emacs. */ | ||
| 122 | |||
| 123 | /* #define CLASH_DETECTION */ | ||
| 124 | |||
| 125 | /* Define SHORTNAMES if the C compiler can distinguish only | ||
| 126 | short names. It means that the stuff in ../shortnames | ||
| 127 | must be run to convert the long names to short ones. */ | ||
| 128 | |||
| 129 | /* #define SHORTNAMES */ | ||
| 130 | |||
| 131 | /* We use the Berkeley (and usg5.2.2) interface to nlist. */ | ||
| 132 | |||
| 133 | #define NLIST_STRUCT | ||
| 134 | |||
| 135 | /* The file containing the kernel's symbol table is called /unix. */ | ||
| 136 | |||
| 137 | #define KERNEL_FILE "/unix" | ||
| 138 | |||
| 139 | /* The symbol in the kernel where the load average is found | ||
| 140 | is named avenrun. */ | ||
| 141 | |||
| 142 | #define LDAV_SYMBOL "avenrun" | ||
| 143 | |||
| 144 | /* Define this if system V IPC is available. */ | ||
| 145 | |||
| 146 | #define HAVE_SYSVIPC | ||
| 147 | |||
| 148 | /* Special hacks needed to make Emacs run on this system. */ | ||
| 149 | |||
| 150 | /* | ||
| 151 | * Make the sigsetmask function go away. Don't know what the | ||
| 152 | * ramifications of this are, but doesn't seem possible to | ||
| 153 | * emulate it properly anyway at this point. | ||
| 154 | */ | ||
| 155 | |||
| 156 | #define sigsetmask(mask) /* Null expansion */ | ||
| 157 | |||
| 158 | /* setjmp and longjmp can safely replace _setjmp and _longjmp, | ||
| 159 | but they will run slower. */ | ||
| 160 | |||
| 161 | #define _setjmp setjmp | ||
| 162 | #define _longjmp longjmp | ||
| 163 | |||
| 164 | /* On USG systems the system calls are interruptable by signals | ||
| 165 | that the user program has elected to catch. Thus the system call | ||
| 166 | must be retried in these cases. To handle this without massive | ||
| 167 | changes in the source code, we remap the standard system call names | ||
| 168 | to names for our own functions in sysdep.c that do the system call | ||
| 169 | with retries. */ | ||
| 170 | |||
| 171 | #define read sys_read | ||
| 172 | #define write sys_write | ||
| 173 | #define open sys_open | ||
| 174 | #define close sys_close | ||
| 175 | |||
| 176 | #define INTERRUPTIBLE_OPEN | ||
| 177 | #define INTERRUPTIBLE_CLOSE | ||
| 178 | #define INTERRUPTIBLE_IO | ||
| 179 | |||
| 180 | /* On USG systems these have different names */ | ||
| 181 | |||
| 182 | #define index strchr | ||
| 183 | #define rindex strrchr | ||
| 184 | |||
| 185 | /* USG systems tend to put everything declared static | ||
| 186 | into the initialized data area, which becomes pure after dumping Emacs. | ||
| 187 | Foil this. Emacs carefully avoids static vars inside functions. */ | ||
| 188 | |||
| 189 | #define static | ||
| 190 | |||
| 191 | /* Compiler bug bites on many systems when default ADDR_CORRECT is used. */ | ||
| 192 | |||
| 193 | #define ADDR_CORRECT(x) (x) | ||
| 194 | |||
| 195 | /* Prevent -lg from being used for debugging. Not implemented? */ | ||
| 196 | |||
| 197 | #define LIBS_DEBUG | ||
| 198 | |||
| 199 | /* Use terminfo instead of termcap. */ | ||
| 200 | |||
| 201 | #define TERMINFO | ||
| 202 | |||
| 203 | /* X needs to talk on the network, so search the network library. */ | ||
| 204 | |||
| 205 | #define LIBX10_SYSTEM -lnsl_s | ||
| 206 | #define LIBX11_SYSTEM -lnsl_s | ||
| 207 | |||
| 208 | /* Some variants have TIOCGETC, but the structures to go with it | ||
| 209 | are not declared. */ | ||
| 210 | |||
| 211 | #define BROKEN_TIOCGETC | ||
| 212 | |||
| 213 | /* Enable support for shared libraries in unexec. */ | ||
| 214 | |||
| 215 | #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 @@ | |||
| 1 | /* Definitions file for GNU Emacs running on AT&T's System V Release 4 | ||
| 2 | Copyright (C) 1987 Free Software Foundation, Inc. | ||
| 3 | |||
| 4 | This file is part of GNU Emacs. | ||
| 5 | |||
| 6 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 7 | but WITHOUT ANY WARRANTY. No author or distributor | ||
| 8 | accepts responsibility to anyone for the consequences of using it | ||
| 9 | or for whether it serves any particular purpose or works at all, | ||
| 10 | unless he says so in writing. Refer to the GNU Emacs General Public | ||
| 11 | License for full details. | ||
| 12 | |||
| 13 | Everyone is granted permission to copy, modify and redistribute | ||
| 14 | GNU Emacs, but only under the conditions described in the | ||
| 15 | GNU Emacs General Public License. A copy of this license is | ||
| 16 | supposed to have been given to you along with GNU Emacs so you | ||
| 17 | can know your rights and responsibilities. It should be in a | ||
| 18 | file named COPYING. Among other things, the copyright notice | ||
| 19 | and this notice must be preserved on all copies. */ | ||
| 20 | |||
| 21 | /* This file written by James Van Artsdalen of Dell Computer Corporation. | ||
| 22 | * james@bigtex.cactus.org. | ||
| 23 | */ | ||
| 24 | |||
| 25 | /* Use the SysVr3 file for at least base configuration. */ | ||
| 26 | |||
| 27 | #include "usg5-3.h" | ||
| 28 | |||
| 29 | #define USG5_4 | ||
| 30 | |||
| 31 | /* We do have multiple jobs. Handle ^Z. */ | ||
| 32 | |||
| 33 | #undef NOMULTIPLEJOBS | ||
| 34 | |||
| 35 | /* If compiled by GNU C, we must have gnulib */ | ||
| 36 | |||
| 37 | #ifdef __GNUC__ | ||
| 38 | #define GNULIB /usr/local/lib/gcc-gnulib | ||
| 39 | #define LIBS_DEBUG | ||
| 40 | #else | ||
| 41 | #define GNULIB | ||
| 42 | #endif | ||
| 43 | |||
| 44 | #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o | ||
| 45 | |||
| 46 | #define LIB_STANDARD GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o | ||
| 47 | |||
| 48 | #define DATA_SEG_BITS 0x08000000 | ||
| 49 | |||
| 50 | /* Use ptem.h to get structures related to windows. */ | ||
| 51 | |||
| 52 | #define NEED_PTEM_H | ||
| 53 | |||
| 54 | /* Undump with ELF */ | ||
| 55 | |||
| 56 | #undef COFF | ||
| 57 | |||
| 58 | #define UNEXEC unexelf.o | ||
| 59 | |||
| 60 | /* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct | ||
| 61 | * tchars. But get <termio.h> first to make sure ttold.h doesn't | ||
| 62 | * interfere. And don't try to use SIGIO yet. | ||
| 63 | */ | ||
| 64 | |||
| 65 | #ifdef emacs | ||
| 66 | #include <sys/filio.h> | ||
| 67 | #include <termio.h> | ||
| 68 | #include <sys/ttold.h> | ||
| 69 | #include <signal.h> | ||
| 70 | #undef SIGIO | ||
| 71 | #endif | ||
| 72 | |||
| 73 | /* libc has this stuff, but not utimes. */ | ||
| 74 | |||
| 75 | #define HAVE_RENAME | ||
| 76 | #define HAVE_SELECT | ||
| 77 | #define HAVE_TIMEVAL | ||
| 78 | #define HAVE_CLOSEDIR | ||
| 79 | #define HAVE_GETTIMEOFDAY | ||
| 80 | #define HAVE_DUP2 | ||
| 81 | |||
| 82 | #define USE_UTIME | ||
| 83 | |||
| 84 | /* <sys/stat.h> *defines* stat(2) as a static function. If "static" | ||
| 85 | * is blank, then many files will have a public definition for stat(2). | ||
| 86 | */ | ||
| 87 | |||
| 88 | #undef static | ||
| 89 | |||
| 90 | /* We need bss_end from emacs.c for undumping */ | ||
| 91 | |||
| 92 | #ifndef USG_SHARED_LIBRARIES | ||
| 93 | #define USG_SHARED_LIBRARIES | ||
| 94 | #endif | ||
| 95 | |||
| 96 | /* We can support this */ | ||
| 97 | |||
| 98 | #define CLASH_DETECTION | ||
| 99 | |||
| 100 | #define HAVE_PTYS | ||
| 101 | #define HAVE_SETSID | ||
| 102 | |||
| 103 | /* It is possible to receive SIGCHLD when there are no children | ||
| 104 | waiting, because a previous waitsys(2) cleaned up the carcass of child | ||
| 105 | without clearing the SIGCHLD pending info. So, use a non-blocking | ||
| 106 | wait3 instead, which maps to waitpid(2) in SysVr4. */ | ||
| 107 | |||
| 108 | #define HAVE_WAIT_HEADER | ||
| 109 | #define WAITTYPE int | ||
| 110 | #define wait3(status, options, rusage) \ | ||
| 111 | waitpid((pid_t) -1, (status), (options)) | ||
| 112 | #define WRETCODE(w) (w >> 8) | ||
| 113 | |||
| 114 | /* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY | ||
| 115 | subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and | ||
| 116 | this is all we need. */ | ||
| 117 | |||
| 118 | #define TIOCSIGSEND TIOCSIGNAL | ||
| 119 | |||
| 120 | /* This change means that we don't loop through allocate_pty too many | ||
| 121 | times in the (rare) event of a failure. */ | ||
| 122 | |||
| 123 | #undef FIRST_PTY_LETTER | ||
| 124 | #define FIRST_PTY_LETTER 'z' | ||
| 125 | |||
| 126 | /* This sets the name of the master side of the PTY. */ | ||
| 127 | |||
| 128 | #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); | ||
| 129 | |||
| 130 | /* This sets the name of the slave side of the PTY. On SysVr4, | ||
| 131 | grantpt(3) forks a subprocess, so keep sigchld_handler() from | ||
| 132 | intercepting that death. If any child but grantpt's should die | ||
| 133 | within, it should be caught after sigrelse(2). */ | ||
| 134 | |||
| 135 | #define PTY_TTY_NAME_SPRINTF \ | ||
| 136 | { \ | ||
| 137 | char *ptsname(), *ptyname; \ | ||
| 138 | \ | ||
| 139 | sighold(SIGCLD); \ | ||
| 140 | if (grantpt(fd) == -1) \ | ||
| 141 | fatal("could not grant slave pty"); \ | ||
| 142 | sigrelse(SIGCLD); \ | ||
| 143 | if (unlockpt(fd) == -1) \ | ||
| 144 | fatal("could not unlock slave pty"); \ | ||
| 145 | if (!(ptyname = ptsname(fd))) \ | ||
| 146 | fatal ("could not enable slave pty"); \ | ||
| 147 | strncpy(pty_name, ptyname, sizeof(pty_name)); \ | ||
| 148 | pty_name[sizeof(pty_name) - 1] = 0; \ | ||
| 149 | } | ||
| 150 | |||
| 151 | /* Push various streams modules onto a PTY channel. */ | ||
| 152 | |||
| 153 | #define SETUP_SLAVE_PTY \ | ||
| 154 | if (ioctl (xforkin, I_PUSH, "ptem") == -1) \ | ||
| 155 | fatal ("ioctl I_PUSH ptem", errno); \ | ||
| 156 | if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \ | ||
| 157 | fatal ("ioctl I_PUSH ldterm", errno); \ | ||
| 158 | if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \ | ||
| 159 | fatal ("ioctl I_PUSH ttcompat", errno); | ||
| 160 | |||
| 161 | /* The definition of this in usg5-3.h is not needed in 5.4. */ | ||
| 162 | |||
| 163 | #undef LIBX11_SYSTEM | ||