aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDan Nicolaescu2008-01-06 00:56:56 +0000
committerDan Nicolaescu2008-01-06 00:56:56 +0000
commitf3041af143f4ab74041fc918feee43aa8ac2da88 (patch)
treea84bdb93b8f941075b511480aa283e2847fbbcac /src
parent37d6e31370557ab868033dde113f11b54994e576 (diff)
downloademacs-f3041af143f4ab74041fc918feee43aa8ac2da88.tar.gz
emacs-f3041af143f4ab74041fc918feee43aa8ac2da88.zip
* configure.in: Remove references to unsupported systems.
* notes/copyright: * MAINTAINERS: Remove references to files that have been removed. * os.texi (System Environment): Remove references to OSes that are not supported anymore. * PROBLEMS: * MACHINES: Remove references to systems not supported anymore. * makefile.w32-in: * Makefile.in: Remove references to Xenix. * gnus.el (gnus-use-long-file-name): Remove reference to xenix. * obsolete/x-apollo.el: Remove file for unsupported system. * term/x-win.el (vendor-specific-keysyms): Remove reference to Apollo. * progmodes/gud.el (gud-dgux-p): Remove. (dbx): Remove reference to dgux. * progmodes/ps-mode.el (ps-mode-print-function): * ps-print.el (ps-lp-system): * paths.el (rmail-spool-directory): * ls-lisp.el (ls-lisp-emulation): * lpr.el (lpr-lp-system): * dired.el (dired-chown-program): Remove references to dgux. * m/7300.h: * m/acorn.h: * m/alliant-2800.h: * m/alliant.h: * m/alliant1.h: * m/alliant4.h: * m/altos.h: * m/amdahl.h: * m/apollo.h: * m/att3b.h: * m/aviion-intel.h: * m/aviion.h: * m/celerity.h: * m/clipper.h: * m/cnvrgnt.h: * m/convex.h: * m/cydra5.h: * m/delta88k.h: * m/dpx2.h: * m/dual.h: * m/elxsi.h: * m/f301.h: * m/gould-np1.h: * m/gould.h: * m/i860.h: * m/ibmps2-aix.h: * m/ibmrt-aix.h: * m/ibmrt.h: * m/irist.h: * m/is386.h: * m/isi-ov.h: * m/mega68.h: * m/mg1.h: * m/news-r6.h: * m/news-risc.h: * m/news.h: * m/nh3000.h: * m/nh4000.h: * m/ns16000.h: * m/ns32000.h: * m/nu.h: * m/orion.h: * m/orion105.h: * m/paragon.h: * m/pfa50.h: * m/plexus.h: * m/pyramid.h: * m/pyrmips.h: * m/sh3el.h: * m/sps7.h: * m/sr2k.h: * m/stride.h: * m/sun1.h: * m/sun2.h: * m/sun3-68881.h: * m/sun3-fpa.h: * m/sun3-soft.h: * m/sun3.h: * m/sun386.h: * m/symmetry.h: * m/tad68k.h: * m/tahoe.h: * m/targon31.h: * m/tek4300.h: * m/tekxd88.h: * m/tower32.h: * m/tower32v3.h: * m/ustation.h: * m/wicat.h: * m/xps100.h: * s/cxux.h: * s/cxux7.h: * s/dgux.h: * s/dgux4.h: * s/dgux5-4-3.h: * s/dgux5-4r2.h: * s/esix.h: * s/esix5r4.h: * s/hiuxmpp.h: * s/hiuxwe2.h: * s/iris3-5.h: * s/iris3-6.h: * s/isc2-2.h: * s/isc3-0.h: * s/isc4-0.h: * s/isc4-1.h: * s/newsos5.h: * s/newsos6.h: * s/osf1.h: * s/osf5-0.h: * s/riscix1-1.h: * s/riscix12.h: * s/sco4.h: * s/sco5.h: * s/sunos4-0.h: * s/sunos4-1.h: * s/sunos413.h: * s/sunos4shr.h: * s/umax.h: * s/unipl5-2.h: * s/xenix.h: * cxux-crt0.s: * unexapollo.c: * unexconvex.c: * unexenix.c: * unexsni.c: Remove files for systems no longer supported. * m/intel386.h: Remove references to unsupported systems. * w32.c (get_emacs_configuration): Remove reference to i860. * sysdep.c: Remove dead code.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog115
-rw-r--r--src/cxux-crt0.s42
-rw-r--r--src/m/7300.h98
-rw-r--r--src/m/acorn.h185
-rw-r--r--src/m/alliant-2800.h130
-rw-r--r--src/m/alliant.h123
-rw-r--r--src/m/alliant1.h12
-rw-r--r--src/m/alliant4.h27
-rw-r--r--src/m/altos.h59
-rw-r--r--src/m/amdahl.h140
-rw-r--r--src/m/apollo.h96
-rw-r--r--src/m/att3b.h150
-rw-r--r--src/m/aviion-intel.h22
-rw-r--r--src/m/aviion.h126
-rw-r--r--src/m/celerity.h60
-rw-r--r--src/m/clipper.h98
-rw-r--r--src/m/cnvrgnt.h97
-rw-r--r--src/m/convex.h189
-rw-r--r--src/m/cydra5.h117
-rw-r--r--src/m/delta88k.h163
-rw-r--r--src/m/dpx2.h222
-rw-r--r--src/m/dual.h73
-rw-r--r--src/m/elxsi.h133
-rw-r--r--src/m/f301.h10
-rw-r--r--src/m/gould-np1.h108
-rw-r--r--src/m/gould.h189
-rw-r--r--src/m/i860.h101
-rw-r--r--src/m/ibmps2-aix.h235
-rw-r--r--src/m/ibmrt-aix.h165
-rw-r--r--src/m/ibmrt.h123
-rw-r--r--src/m/intel386.h5
-rw-r--r--src/m/irist.h136
-rw-r--r--src/m/is386.h29
-rw-r--r--src/m/isi-ov.h96
-rw-r--r--src/m/mega68.h53
-rw-r--r--src/m/mg1.h107
-rw-r--r--src/m/news-r6.h53
-rw-r--r--src/m/news-risc.h83
-rw-r--r--src/m/news.h65
-rw-r--r--src/m/nh3000.h109
-rw-r--r--src/m/nh4000.h108
-rw-r--r--src/m/ns16000.h95
-rw-r--r--src/m/ns32000.h102
-rw-r--r--src/m/nu.h75
-rw-r--r--src/m/orion.h70
-rw-r--r--src/m/orion105.h72
-rw-r--r--src/m/paragon.h13
-rw-r--r--src/m/pfa50.h93
-rw-r--r--src/m/plexus.h109
-rw-r--r--src/m/pyramid.h67
-rw-r--r--src/m/pyrmips.h10
-rw-r--r--src/m/sh3el.h106
-rw-r--r--src/m/sps7.h118
-rw-r--r--src/m/sr2k.h160
-rw-r--r--src/m/stride.h121
-rw-r--r--src/m/sun1.h80
-rw-r--r--src/m/sun2.h89
-rw-r--r--src/m/sun3-68881.h31
-rw-r--r--src/m/sun3-fpa.h31
-rw-r--r--src/m/sun3-soft.h32
-rw-r--r--src/m/sun3.h53
-rw-r--r--src/m/sun386.h74
-rw-r--r--src/m/symmetry.h95
-rw-r--r--src/m/tad68k.h115
-rw-r--r--src/m/tahoe.h72
-rw-r--r--src/m/targon31.h98
-rw-r--r--src/m/tek4300.h105
-rw-r--r--src/m/tekxd88.h117
-rw-r--r--src/m/tower32.h115
-rw-r--r--src/m/tower32v3.h113
-rw-r--r--src/m/ustation.h132
-rw-r--r--src/m/wicat.h137
-rw-r--r--src/m/xps100.h98
-rw-r--r--src/s/cxux.h236
-rw-r--r--src/s/cxux7.h10
-rw-r--r--src/s/dgux.h355
-rw-r--r--src/s/dgux4.h144
-rw-r--r--src/s/dgux5-4-3.h68
-rw-r--r--src/s/dgux5-4r2.h51
-rw-r--r--src/s/esix.h27
-rw-r--r--src/s/esix5r4.h27
-rw-r--r--src/s/hiuxmpp.h67
-rw-r--r--src/s/hiuxwe2.h67
-rw-r--r--src/s/iris3-5.h166
-rw-r--r--src/s/iris3-6.h163
-rw-r--r--src/s/isc2-2.h100
-rw-r--r--src/s/isc3-0.h70
-rw-r--r--src/s/isc4-0.h33
-rw-r--r--src/s/isc4-1.h35
-rw-r--r--src/s/newsos5.h53
-rw-r--r--src/s/newsos6.h9
-rw-r--r--src/s/osf1.h99
-rw-r--r--src/s/osf5-0.h25
-rw-r--r--src/s/riscix1-1.h9
-rw-r--r--src/s/riscix12.h29
-rw-r--r--src/s/sco4.h145
-rw-r--r--src/s/sco5.h175
-rw-r--r--src/s/sunos4-0.h75
-rw-r--r--src/s/sunos4-1.h36
-rw-r--r--src/s/sunos413.h16
-rw-r--r--src/s/sunos4shr.h84
-rw-r--r--src/s/umax.h170
-rw-r--r--src/s/unipl5-2.h160
-rw-r--r--src/s/xenix.h212
-rw-r--r--src/sysdep.c6
-rw-r--r--src/unexapollo.c301
-rw-r--r--src/unexconvex.c605
-rw-r--r--src/unexenix.c264
-rw-r--r--src/unexsni.c925
-rw-r--r--src/w32.c6
110 files changed, 117 insertions, 11956 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3ad3584a236..029278e90b4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,118 @@
12008-01-06 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * m/7300.h:
4 * m/acorn.h:
5 * m/alliant-2800.h:
6 * m/alliant.h:
7 * m/alliant1.h:
8 * m/alliant4.h:
9 * m/altos.h:
10 * m/amdahl.h:
11 * m/apollo.h:
12 * m/att3b.h:
13 * m/aviion-intel.h:
14 * m/aviion.h:
15 * m/celerity.h:
16 * m/clipper.h:
17 * m/cnvrgnt.h:
18 * m/convex.h:
19 * m/cydra5.h:
20 * m/delta88k.h:
21 * m/dpx2.h:
22 * m/dual.h:
23 * m/elxsi.h:
24 * m/f301.h:
25 * m/gould-np1.h:
26 * m/gould.h:
27 * m/i860.h:
28 * m/ibmps2-aix.h:
29 * m/ibmrt-aix.h:
30 * m/ibmrt.h:
31 * m/irist.h:
32 * m/is386.h:
33 * m/isi-ov.h:
34 * m/mega68.h:
35 * m/mg1.h:
36 * m/news-r6.h:
37 * m/news-risc.h:
38 * m/news.h:
39 * m/nh3000.h:
40 * m/nh4000.h:
41 * m/ns16000.h:
42 * m/ns32000.h:
43 * m/nu.h:
44 * m/orion.h:
45 * m/orion105.h:
46 * m/paragon.h:
47 * m/pfa50.h:
48 * m/plexus.h:
49 * m/pyramid.h:
50 * m/pyrmips.h:
51 * m/sh3el.h:
52 * m/sps7.h:
53 * m/sr2k.h:
54 * m/stride.h:
55 * m/sun1.h:
56 * m/sun2.h:
57 * m/sun3-68881.h:
58 * m/sun3-fpa.h:
59 * m/sun3-soft.h:
60 * m/sun3.h:
61 * m/sun386.h:
62 * m/symmetry.h:
63 * m/tad68k.h:
64 * m/tahoe.h:
65 * m/targon31.h:
66 * m/tek4300.h:
67 * m/tekxd88.h:
68 * m/tower32.h:
69 * m/tower32v3.h:
70 * m/ustation.h:
71 * m/wicat.h:
72 * m/xps100.h:
73 * s/cxux.h:
74 * s/cxux7.h:
75 * s/dgux.h:
76 * s/dgux4.h:
77 * s/dgux5-4-3.h:
78 * s/dgux5-4r2.h:
79 * s/esix.h:
80 * s/esix5r4.h:
81 * s/hiuxmpp.h:
82 * s/hiuxwe2.h:
83 * s/iris3-5.h:
84 * s/iris3-6.h:
85 * s/isc2-2.h:
86 * s/isc3-0.h:
87 * s/isc4-0.h:
88 * s/isc4-1.h:
89 * s/newsos5.h:
90 * s/newsos6.h:
91 * s/osf1.h:
92 * s/osf5-0.h:
93 * s/riscix1-1.h:
94 * s/riscix12.h:
95 * s/sco4.h:
96 * s/sco5.h:
97 * s/sunos4-0.h:
98 * s/sunos4-1.h:
99 * s/sunos413.h:
100 * s/sunos4shr.h:
101 * s/umax.h:
102 * s/unipl5-2.h:
103 * s/xenix.h:
104 * cxux-crt0.s:
105 * unexapollo.c:
106 * unexconvex.c:
107 * unexenix.c:
108 * unexsni.c: Remove files for systems no longer supported.
109
110 * m/intel386.h: Remove references to unsupported systems.
111
112 * w32.c (get_emacs_configuration): Remove reference to i860.
113
114 * sysdep.c: Remove dead code.
115
12008-01-05 Dan Nicolaescu <dann@ics.uci.edu> 1162008-01-05 Dan Nicolaescu <dann@ics.uci.edu>
2 117
3 * s/rtu.h: 118 * s/rtu.h:
diff --git a/src/cxux-crt0.s b/src/cxux-crt0.s
deleted file mode 100644
index d9c570a9c18..00000000000
--- a/src/cxux-crt0.s
+++ /dev/null
@@ -1,42 +0,0 @@
1/*
2 * External symbol setup file for GNU Emacs on CX/UX
3 * Copyright (C) 1990, 2002, 2003, 2004, 2005,
4 * 2006, 2007 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 3, 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, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22 */
23
24/*
25 * This file makes the start of the text and data regions of the program
26 * clearly visible to the GNU Emacs C source code, without any dependencies
27 * on any changes made to the standard C runtime startup module, crt0.o.
28 * It depends, however, on this file being passed down to the linker (ld)
29 * before any others, and the linker's behavior of assigning increasing
30 * addresses as it finds symbols.
31 */
32 /* C symbol _start marks beginning of text region. */
33 .text
34 .globl __start
35__start:
36 /* C symbol data_start marks beginning of data region. */
37 .data
38 .globl _data_start
39_data_start: .space 4
40
41/* arch-tag: ba84e4dc-615d-4a81-898c-f5b98ec71c9d
42 (do not change this comment) */
diff --git a/src/m/7300.h b/src/m/7300.h
deleted file mode 100644
index 6e439a829cc..00000000000
--- a/src/m/7300.h
+++ /dev/null
@@ -1,98 +0,0 @@
1/* machine description file for AT&T UNIX PC model 7300
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4 Modified for this machine by mtxinu!rtech!gonzo!daveb
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
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/* Supposedly now these machines have flexnames.
29
30/* # define SHORTNAMES */
31
32
33/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
34 is the most significant byte. */
35
36#define WORDS_BIG_ENDIAN
37
38/* XINT must explicitly sign-extend */
39
40#define EXPLICIT_SIGN_EXTEND
41
42/* Use type int rather than a union, to represent Lisp_Object */
43
44#define NO_UNION_TYPE
45
46/* Now define a symbol for the cpu type, if your compiler
47 does not define it automatically:
48 vax, m68000, ns16000 are the ones defined so far. */
49
50# ifndef mc68k
51# define mc68k
52# endif
53#ifndef m68k
54#define m68k
55#endif
56
57/* Cause crt0.c to define errno. */
58
59#define NEED_ERRNO
60
61/* Data type of load average, as read out of kmem. */
62/* These are commented out since it is not supported by this machine. */
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) (int) (((double) (x)) * 100.0) */
69
70#ifndef __GNUC__
71
72#define SWITCH_ENUM_BUG
73
74#endif
75
76/* If you have the PD pty driver installed, uncomment the following line. */
77/* #define HAVE_PTYS */
78
79#define HAVE_SYSVIPC
80
81/* We don't have memmove. */
82#define memmove(d, s, n) safe_bcopy (s, d, n)
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
92
93/* Insist on using cc when compiling this. GCC may have been
94 configured to use GAS syntax, which causes problems. */
95#define CRT0_COMPILE cc -c -O -Demacs
96
97/* arch-tag: 66219dc7-ef45-4f0c-bb98-f35421f39c8d
98 (do not change this comment) */
diff --git a/src/m/acorn.h b/src/m/acorn.h
deleted file mode 100644
index 148d46454ab..00000000000
--- a/src/m/acorn.h
+++ /dev/null
@@ -1,185 +0,0 @@
1/* Machine description file for Acorn RISCiX machines.
2 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23
24/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
25 is the most significant byte. */
26
27#undef WORDS_BIG_ENDIAN
28
29/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
30 * group of arguments and treat it as an array of the arguments. We can't
31 * do this on the arm with gcc, since the first 4 args are in registers. */
32
33#ifdef __GNUC__
34#define NO_ARG_ARRAY
35#else
36#undef NO_ARG_ARRAY
37#endif
38
39/* Define WORD_MACHINE if addresses and such have
40 * to be corrected before they can be used as byte counts. */
41
42#undef WORD_MACHINE
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/* ARM note - The RISCiX Norcroft C Compiler has ALL
48 non-32-bit types as unsigned */
49
50#define SIGN_EXTEND_CHAR(c) (((int)(c) << 24) >> 24)
51
52/* Now define a symbol for the cpu type, if your compiler
53 does not define it automatically:
54 Ones defined so far include vax, m68000, ns16000, pyramid,
55 orion, tahoe, APOLLO and many others */
56
57/* ARM note - this is done by the Norcroft compiler - symbol is `__arm' */
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#ifdef LDAV_SYMBOL
73#undef LDAV_SYMBOL
74#endif
75
76#define LDAV_SYMBOL "_iavenrun"
77
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/*
86 * Scale factor for scaled integers used to count
87 * %cpu time and load averages.
88 */
89
90/* FSHIFT and FSCALE are defined in param.h, but are required by
91 LOAD_AVE_CVT, so they need to be defined here. */
92
93#ifndef FSHIFT
94#define FSHIFT 8 /* bits to right of fixed binary point */
95#endif
96
97#ifndef FSCALE
98#define FSCALE (1<<FSHIFT)
99#endif
100
101#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
102
103/* Define CANNOT_DUMP on machines where unexec does not work.
104 Then the function dump-emacs will not be defined
105 and temacs will do (load "loadup") automatically unless told otherwise. */
106
107#undef CANNOT_DUMP
108
109/* Define VIRT_ADDR_VARIES if the virtual addresses of
110 pure and impure space as loaded can vary, and even their
111 relative order cannot be relied on.
112
113 Otherwise Emacs assumes that text space precedes data space,
114 numerically. */
115
116#undef VIRT_ADDR_VARIES
117
118/* This prevents Emacs dumping an unsqueezed binary with the
119 SQUEEZE bit set in the magic number. */
120
121#define ADJUST_EXEC_HEADER {hdr.a_magic &= ~MF_SQUEEZED;}
122
123#ifdef __GNUC__
124
125/* Keep gcc/RISCiX happy - it uses __gccmain where other versions of
126 gcc use __main, because of a library routine name clash. */
127#define __main __gccmain
128
129#endif /* __GNUC__ */
130
131/* Define NO_REMAP if memory segmentation makes it not work well
132 to change the boundary between the text section and data section
133 when Emacs is dumped. If you define this, the preloaded Lisp
134 code will not be sharable; but that's better than failing completely. */
135
136#define NO_REMAP
137
138
139#ifndef NOT_C_CODE
140#define TEXT_START 0x8000
141#define DATA_END &_edata
142extern int _edata;
143#define etext _etext
144#endif
145
146/* Avoid debugging library */
147#define LIBS_DEBUG
148
149/* Avoid sharing libc */
150#define LIB_STANDARD -lc_n
151
152/* Avoid sharing libX11 */
153#define LIB_X11_LIB -lX11_n
154
155/* All kinds of symbol definitions, so as to avoid multiply defined symbol
156 errors from the RISCiX linker. */
157
158#ifdef __GNUC__
159#define C_DEBUG_SWITCH
160
161#define C_OPTIMIZE_SWITCH -O1 -fomit-frame-pointer -w -g -Dgetopt=gnu_getopt -Dopterr=gnu_opterr -Doptind=gnu_optind -Doptarg=gnu_optarg -Dcfree=gnu_cfree -D___type=
162
163#else
164#define C_DEBUG_SWITCH -O -w -g -Dgetopt=gnu_getopt -Dopterr=gnu_opterr -Doptind=gnu_optind -Doptarg=gnu_optarg -Dcfree=gnu_cfree
165#endif
166
167/* Turn this on to avoid the emacs malloc and use standard one */
168
169#undef SYSTEM_MALLOC
170
171/* Use <dirent.h>. */
172#define SYSV_SYSTEM_DIR
173
174#ifdef NO_REMAP
175/* CRT0_O is defined in s/riscix1-1.h or s/riscix1-2.h, as appropriate. */
176#define START_FILES pre-crt0.o CRT0_O
177#else
178Cannot
179do
180this
181yet
182#endif
183
184/* arch-tag: acee2955-8c49-4b40-813c-579f76f4c0c3
185 (do not change this comment) */
diff --git a/src/m/alliant-2800.h b/src/m/alliant-2800.h
deleted file mode 100644
index 405267afb2b..00000000000
--- a/src/m/alliant-2800.h
+++ /dev/null
@@ -1,130 +0,0 @@
1/* alliant-2800.h - Alliant FX/2800 machine running Concentrix 2800.
2 Copyright (C) 1990, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#undef WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
45 are the ones defined so far. */
46
47#define ALLIANT
48#define ALLIANT_2800
49#define sun /* Use X support for Sun keyboard stuff. */
50#define C_OPTIMIZE_SWITCH -Og /* No concurrent code allowed here. */
51
52/* Use type int rather than a union, to represent Lisp_Object */
53/* This is desirable for most machines. */
54
55#define NO_UNION_TYPE
56
57/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
58 the bit field into an int. In other words, if bit fields
59 are always unsigned.
60
61 If you use NO_UNION_TYPE, this flag does not matter. */
62/* On Alliants, bitfields are unsigned. */
63
64#define EXPLICIT_SIGN_EXTEND
65
66/* Concentrix uses a different kernel symbol for load average. */
67
68#undef LDAV_SYMBOL /* Undo definition in s-bsd4-2.h */
69#define LDAV_SYMBOL "_Loadavg"
70
71/* Data type of load average, as read out of kmem. */
72
73#define LOAD_AVE_TYPE long
74
75/* Convert that into an integer that is 100 for a load average of 1.0 */
76
77#define LOAD_AVE_CVT(x) (x * 100 / LOADAVG_SCALE)
78
79/* include <sys/param.h> for the definition of LOADAVG_SCALE, and also
80 LOADAVG_SIZE, the number of items in the Loadavg array. */
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#define UNEXEC unexfx2800.o
88#define LIBS_MACHINE -lalliant
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 NO_REMAP if memory segmentation makes it not work well
100 to change the boundary between the text section and data section
101 when Emacs is dumped. If you define this, the preloaded Lisp
102 code will not be sharable; but that's better than failing completely. */
103/* Actually, Alliant CONCENTRIX does paging "right":
104 data pages are copy-on-write, which means that the pure data areas
105 are shared automatically and remapping is not necessary. */
106
107#define NO_REMAP
108
109/* Alliant needs special crt0.o because system version is not reentrant */
110
111#define START_FILES crt0.o
112
113/* Alliant dependent code for dumping executing image.
114 See crt0.c code for alliant. */
115
116#define ADJUST_EXEC_HEADER {\
117extern int _curbrk, _setbrk;\
118_setbrk = _curbrk;\
119hdr.a_bss_addr = bss_start;\
120unexec_text_start = hdr.a_text_addr;}
121
122/* POSIX Compatibility */
123/* Use System V.4 style getdents/readdir <dirent.h> for 2.2 and up. */
124#define SYSV_SYSTEM_DIR
125
126/* Use the K&R version of the DEFUN macro. */
127#define USE_NONANSI_DEFUN
128
129/* arch-tag: 8ba70b15-d082-40f6-931d-14adfd7f9dbd
130 (do not change this comment) */
diff --git a/src/m/alliant.h b/src/m/alliant.h
deleted file mode 100644
index 7cad4bfb0c1..00000000000
--- a/src/m/alliant.h
+++ /dev/null
@@ -1,123 +0,0 @@
1/* alliant.h Alliant machine running system version 2 or 3.
2 Copyright (C) 1985, 1986, 1987, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4 Note that for version 1 of the Alliant system
5 you should use alliant1.h instead of this file.
6 Use alliant4.h for version 4.
7
8This file is part of GNU Emacs.
9
10GNU Emacs is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 3, or (at your option)
13any later version.
14
15GNU Emacs is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with GNU Emacs; see the file COPYING. If not, write to
22the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23Boston, MA 02110-1301, USA. */
24
25/* The following line tells the configuration script what sort of
26 operating system this machine is likely to run.
27 USUAL-OPSYS="bsd4-2" */
28
29/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
30 is the most significant byte. */
31
32#define WORDS_BIG_ENDIAN
33
34/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
35 * group of arguments and treat it as an array of the arguments. */
36
37#ifdef ALLIANT_1
38#define NO_ARG_ARRAY
39#endif
40
41/* Define WORD_MACHINE if addresses and such have
42 * to be corrected before they can be used as byte counts. */
43
44#undef WORD_MACHINE
45
46/* Now define a symbol for the cpu type, if your compiler
47 does not define it automatically:
48 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
49 are the ones defined so far. */
50
51#define ALLIANT
52
53/* Use type int rather than a union, to represent Lisp_Object */
54/* This is desirable for most machines. */
55
56#define NO_UNION_TYPE
57
58/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
59 the 24-bit bit field into an int. In other words, if bit fields
60 are always unsigned.
61
62 If you use NO_UNION_TYPE, this flag does not matter. */
63/* On Alliants, bitfields are unsigned. */
64
65#define EXPLICIT_SIGN_EXTEND
66
67/* No load average information available for Alliants. */
68
69#undef LOAD_AVE_TYPE
70#undef LOAD_AVE_CVT
71
72/* Define CANNOT_DUMP on machines where unexec does not work.
73 Then the function dump-emacs will not be defined
74 and temacs will do (load "loadup") automatically unless told otherwise. */
75
76#undef CANNOT_DUMP
77
78/* Define VIRT_ADDR_VARIES if the virtual addresses of
79 pure and impure space as loaded can vary, and even their
80 relative order cannot be relied on.
81
82 Otherwise Emacs assumes that text space precedes data space,
83 numerically. */
84
85#undef VIRT_ADDR_VARIES
86
87/* Define NO_REMAP if memory segmentation makes it not work well
88 to change the boundary between the text section and data section
89 when Emacs is dumped. If you define this, the preloaded Lisp
90 code will not be sharable; but that's better than failing completely. */
91/* Actually, Alliant CONCENTRIX does paging "right":
92 data pages are copy-on-write, which means that the pure data areas
93 are shared automatically and remapping is not necessary. */
94
95#define NO_REMAP
96
97/* Alliant needs special crt0.o because system version is not reentrant */
98
99#define START_FILES crt0.o
100
101/* Alliant dependent code for dumping executing image.
102 See crt0.c code for alliant. */
103
104#define ADJUST_EXEC_HEADER {\
105extern int _curbrk, _setbrk;\
106_setbrk = _curbrk;\
107hdr.a_bss_addr = bss_start;\
108unexec_text_start = hdr.a_text_addr;}
109
110/* cc screws up on long names. Try making cpp replace them. */
111
112#ifdef ALLIANT_1
113#define Finsert_abbrev_table_description Finsert_abbrev_table_descrip
114#define internal_with_output_to_temp_buffer internal_with_output_to_tem
115#endif
116
117/* "vector" is a typedef in /usr/include/machine/reg.h, so its use as
118 a variable name causes errors when compiling under ANSI C. */
119
120#define vector xxvector
121
122/* arch-tag: 0ad5f932-f29a-4458-a24c-496cafdfd50d
123 (do not change this comment) */
diff --git a/src/m/alliant1.h b/src/m/alliant1.h
deleted file mode 100644
index ca597ac2762..00000000000
--- a/src/m/alliant1.h
+++ /dev/null
@@ -1,12 +0,0 @@
1/* config.h should include this file for version 1 of Alliant's
2 operating system. */
3
4/* The following line tells the configuration script what sort of
5 operating system this machine is likely to run.
6 USUAL-OPSYS="bsd4-2" */
7
8#define ALLIANT_1
9#include "alliant.h"
10
11/* arch-tag: 516688f9-4b94-4356-9bf0-92b2d72e664e
12 (do not change this comment) */
diff --git a/src/m/alliant4.h b/src/m/alliant4.h
deleted file mode 100644
index 2ab0a6bde1d..00000000000
--- a/src/m/alliant4.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* machine description file for Alliant Concentrix 4.0 or later.
2 Use alliant.h for versions 2 and 3. */
3
4/* The following line tells the configuration script what sort of
5 operating system this machine is likely to run.
6 USUAL-OPSYS="bsd4-2" */
7
8#include "alliant.h"
9
10/* Concentrix uses a different kernel symbol for load average. */
11
12#undef LDAV_SYMBOL /* Undo definition in s-bsd4-2.h */
13#define LDAV_SYMBOL "_Loadavg"
14
15/* Data type of load average, as read out of kmem. */
16
17#define LOAD_AVE_TYPE long
18
19/* Convert that into an integer that is 100 for a load average of 1.0 */
20
21#define LOAD_AVE_CVT(x) (x * 100 / LOADAVG_SCALE)
22
23/* include <sys/param.h> for the definition of LOADAVG_SCALE, and also
24 LOADAVG_SIZE, the number of items in the Loadavg array. */
25
26/* arch-tag: cf917b55-c95e-4079-a4d1-d31e00c61b66
27 (do not change this comment) */
diff --git a/src/m/altos.h b/src/m/altos.h
deleted file mode 100644
index 0f4bb9b810f..00000000000
--- a/src/m/altos.h
+++ /dev/null
@@ -1,59 +0,0 @@
1/* altos machine description file Altos 3068 Unix System V Release 2
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32#define EXPLICIT_SIGN_EXTEND
33
34/* Use type int rather than a union, to represent Lisp_Object */
35
36#define NO_UNION_TYPE
37
38#define LIB_STANDARD -lc
39
40#define SWITCH_ENUM_BUG
41
42#define NO_REMAP
43
44#undef TERMINFO
45
46#undef CANNOT_DUMP
47#undef SHORTNAMES
48#define TERMCAP
49
50#define LIBS_TERMCAP -ltermlib
51#define PURESIZE 220000
52#define ALTOS
53
54#ifdef __GNUC__
55#define COFF_ENCAPSULATE
56#endif
57
58/* arch-tag: 4572d0ff-70bb-445f-80f1-2bbac3cf47cb
59 (do not change this comment) */
diff --git a/src/m/amdahl.h b/src/m/amdahl.h
deleted file mode 100644
index 486e2925a55..00000000000
--- a/src/m/amdahl.h
+++ /dev/null
@@ -1,140 +0,0 @@
1/* amdahl machine description file
2 Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/*
23This file for amdahl_uts created by modifying the template.h
24by Jishnu Mukerji 3/1/87
25
26The following line tells the configuration script what sort of
27operating system this machine is likely to run.
28USUAL-OPSYS="usg5-2-2"
29
30This file works with the Amdahl uts native C compiler. The 5.2u370
31compiler is so brain damaged that it is not even worth trying to use it.
32*/
33
34/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
35 is the most significant byte. */
36
37#define WORDS_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#define WORD_MACHINE /* not actually used anywhere yet! */
48
49/* Now define a symbol for the cpu type, if your compiler
50 does not define it automatically:
51 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
52 are the ones defined so far. */
53
54/* uts gets defined automatically */
55/* However for clarity define amdahl_uts */
56#define amdahl_uts
57
58/* Use type int rather than a union, to represent Lisp_Object */
59/* This is desirable for most machines. */
60
61#define NO_UNION_TYPE
62
63/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
64 the 24-bit bit field into an int. In other words, if bit fields
65 are always unsigned.
66
67 If you use NO_UNION_TYPE, this flag does not matter. */
68
69#define EXPLICIT_SIGN_EXTEND
70
71/* Data type of load average, as read out of kmem. */
72
73/* #define LOAD_AVE_TYPE long*/
74
75/* Convert that into an integer that is 100 for a load average of 1.0 */
76
77/*#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)*/
78
79/* Define CANNOT_DUMP on machines where unexec does not work.
80 Then the function dump-emacs will not be defined
81 and temacs will do (load "loadup") automatically unless told otherwise. */
82
83/* #define CANNOT_DUMP
84
85/* Define VIRT_ADDR_VARIES if the virtual addresses of
86 pure and impure space as loaded can vary, and even their
87 relative order cannot be relied on.
88
89 Otherwise Emacs assumes that text space precedes data space,
90 numerically. */
91
92/* #define VIRT_ADDR_VARIES*/
93
94/* Define NO_REMAP if memory segmentation makes it not work well
95 to change the boundary between the text section and data section
96 when Emacs is dumped. If you define this, the preloaded Lisp
97 code will not be sharable; but that's better than failing completely. */
98
99/*#define NO_REMAP*/
100
101#define TERMINFO
102
103/* The usual definition of XINT, which involves shifting, does not
104 sign-extend properly on this machine. */
105
106#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
107 ? (sign_extend_temp | 0xFF000000) \
108 : (sign_extend_temp & 0x00FFFFFF))
109
110#ifdef emacs /* Don't do this when making xmakefile! */
111extern int sign_extend_temp;
112#endif
113
114/* The following needed to load the proper crt0.o and to get the
115 proper declaration of data_start in the #undef NO_REMAP case */
116
117#ifndef NO_REMAP
118#define START_FILES pre-crt0.o /lib/crt0.o
119#endif
120
121/* Perhaps this means that the optimizer isn't safe to use. */
122
123#define C_OPTIMIZE_SWITCH
124
125/* Put text and data on non-segment boundary; makes image smaller */
126
127#define LD_SWITCH_MACHINE -N
128
129/* When writing the 'xemacs' file, make text segment ro */
130#define EXEC_MAGIC 0410
131
132/* Mask for address bits within a memory segment */
133#define SEGSIZ 0x10000 /* Should this not be defined elsewhere ? */
134#define SEGMENT_MASK (SEGSIZ - 1)
135
136/* Compensate for error in signal.h. */
137#define NSIG_MINIMUM 20
138
139/* arch-tag: cf665976-ddb1-49b0-b383-371e17f36acf
140 (do not change this comment) */
diff --git a/src/m/apollo.h b/src/m/apollo.h
deleted file mode 100644
index 2eac3098db9..00000000000
--- a/src/m/apollo.h
+++ /dev/null
@@ -1,96 +0,0 @@
1/* machine description file for Apollo machine.
2 Copyright (C) 1985, 1986, 1994, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Say this machine is a 68000 */
33
34/* #define m68000 */ /* Done by the C compiler */
35
36#define APOLLO
37
38/* Assume we use s-bsd4-3.h for system version 10. */
39
40#ifdef BSD4_3
41#define APOLLO_SR10
42#endif
43
44/* Use type int rather than a union, to represent Lisp_Object */
45
46#define NO_UNION_TYPE
47
48/* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
49 since there is no /dev/kmem */
50
51/* Undefine VIRT_ADDR_VARIES because the virtual addresses of
52 pure and impure space as loaded do not vary. */
53
54#undef VIRT_ADDR_VARIES
55
56/* Prevent -lg from being used for debugging. Not needed. */
57
58#define LIBS_DEBUG
59
60/* Can't use the system's termcap. It has compressed data sections that
61 interfere with dumping. That means we won't automatically get a vt100
62 when we start up emacs in a dm pad (a dubious feature at best anyway). */
63
64#undef LIBS_TERMCAP
65
66/* Must use the system's malloc and alloca. */
67
68#define SYSTEM_MALLOC
69
70/* Define the file we use for UNEXEC. */
71
72#define UNEXEC unexapollo.o
73
74/* The Apollo linker does not recognize the -X switch, so we remove it here. */
75
76#define LD_SWITCH_SYSTEM
77
78/* Define C_SWITCH_MACHINE to compile for 68020/68030 or PRISM.
79 Define LD_SWITCH_MACHINE to save space by stripping symbols
80 and use X11 libraries. */
81
82#if _ISP__A88K
83#define C_SWITCH_MACHINE -W0,-ncompress -W0,-opt,2 -A cpu,a88k -A sys,any -A run,bsd4.3
84#define LD_SWITCH_MACHINE -A cpu,a88k -A sys,any -A run,bsd4.3
85#else
86#define C_SWITCH_MACHINE -W0,-ncompress -W0,-opt,2 -A cpu,3000 -A sys,any -A run,bsd4.3
87#define LD_SWITCH_MACHINE -A cpu,m68k -A sys,any -A run,bsd4.3
88#endif
89
90#define OLDXMENU_OPTIONS ${C_SWITCH_MACHINE}
91
92/* In SR10.4, unistd.h has bad prototype for getpgrp, so we don't include it. */
93#undef HAVE_UNISTD_H
94
95/* arch-tag: 33336588-6242-4e2e-a194-e38848b12813
96 (do not change this comment) */
diff --git a/src/m/att3b.h b/src/m/att3b.h
deleted file mode 100644
index 8e9a589bcd2..00000000000
--- a/src/m/att3b.h
+++ /dev/null
@@ -1,150 +0,0 @@
1/* Machine-dependent configuration for GNU Emacs for AT&T 3b machines.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5 Modified by David Robinson (daver@csvax.caltech.edu) 6/6/86
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22Boston, MA 02110-1301, USA. */
23
24
25/* The following line tells the configuration script what sort of
26 operating system this machine is likely to run.
27 USUAL-OPSYS="usg5-2-2" */
28
29/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
30 is the most significant byte. */
31
32#define WORDS_BIG_ENDIAN
33
34/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
35 * group of arguments and treat it as an array of the arguments. */
36
37/* #define NO_ARG_ARRAY */
38
39/* Define WORD_MACHINE if addresses and such have
40 * to be corrected before they can be used as byte counts. */
41
42/* #define WORD_MACHINE */
43
44/* Now define a symbol for the cpu type, if your compiler
45 does not define it automatically */
46#define ATT3B
47
48/* Use type int rather than a union, to represent Lisp_Object */
49/* This is desirable for most machines. */
50
51#define NO_UNION_TYPE
52
53/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
54 the bit field into an int. In other words, if bit fields
55 are always unsigned.
56
57 If you use NO_UNION_TYPE, this flag does not matter. */
58
59#define EXPLICIT_SIGN_EXTEND
60
61/* Data type of load average, as read out of kmem. */
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 / FSCALE) */
67
68/* Define CANNOT_DUMP on machines where unexec does not work.
69 Then the function dump-emacs will not be defined
70 and temacs will do (load "loadup") automatically unless told otherwise. */
71/* #define CANNOT_DUMP */
72
73/* Define VIRT_ADDR_VARIES if the virtual addresses of
74 pure and impure space as loaded can vary, and even their
75 relative order cannot be relied on.
76
77 Otherwise Emacs assumes that text space precedes data space,
78 numerically. */
79
80/* #define VIRT_ADDR_VARIES */ /* Karl Kleinpaste says this isn't needed. */
81
82/* SysV has alloca in the PW library */
83
84#define LIB_STANDARD -lPW -lc
85
86/* Define NO_REMAP if memory segmentation makes it not work well
87 to change the boundary between the text section and data section
88 when Emacs is dumped. If you define this, the preloaded Lisp
89 code will not be sharable; but that's better than failing completely. */
90
91#define NO_REMAP
92
93/* #define LD_SWITCH_MACHINE -N */
94
95/* Use Terminfo, not Termcap. */
96
97#define TERMINFO
98
99/* -O has been observed to make correct C code in Emacs not work.
100 So don't try to use it. */
101
102#if u3b2 || u3b5 || u3b15
103#define C_OPTIMIZE_SWITCH
104#endif
105
106/* Define our page size. */
107
108#define NBPC 2048
109
110#if 0 /* If this is still needed, don't hard-code assumptions about
111 the number of VALBITS, or other assumptions about the
112 Lisp_Object representation. Try to extend lisp.h instead, if
113 necessary. */
114/* The usual definition of XINT, which involves shifting, does not
115 sign-extend properly on this machine. */
116
117#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
118 ? (sign_extend_temp | 0xFF000000) \
119 : (sign_extend_temp & 0x00FFFFFF))
120#endif
121
122#ifdef emacs /* Don't do this when making xmakefile! */
123extern int sign_extend_temp;
124#endif
125
126#if u3b2 || u3b5 || u3b15
127/* On 3b2/5/15, data space has high order bit on. */
128#define DATA_SEG_BITS 0x80000000
129#endif /* 3b2, 3b5 or 3b15 */
130
131#define TEXT_START 0
132
133/* (short) negative-int doesn't sign-extend correctly */
134#define SHORT_CAST_BUG
135
136/* 3B2s with WIN/3B have winsize defined in ptem.h */
137#if u3b2
138#define NEED_PTEM_H
139#endif /* u3b2 */
140
141/* 3b2 does not have memmove, I'm told. */
142/* It is safe to have no parens around the args in the safe_bcopy call,
143 and parens would screw up the prototype decl for memmove. */
144#define memmove(d, s, n) safe_bcopy (s, d, n)
145
146/* This affects filemode.c. */
147#define NO_MODE_T
148
149/* arch-tag: 07441a37-d630-447f-94fa-7da19645c97a
150 (do not change this comment) */
diff --git a/src/m/aviion-intel.h b/src/m/aviion-intel.h
deleted file mode 100644
index eb93a43214f..00000000000
--- a/src/m/aviion-intel.h
+++ /dev/null
@@ -1,22 +0,0 @@
1/* This file is minor changes for the Data General AViiON intel machines
2 i586-dg-dguxR4* (tested on i586-dg-dguxR4.11MU04)
3 Done by Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il */
4
5#include "aviion.h" /* 1st load m88k DGUX definitions */
6
7#define INTEL_DGUX /* define for future possible use */
8
9/* Intel machines are LITTLE ENDIAN */
10#undef WORDS_BIG_ENDIAN
11
12/* No correction needed for byte addresses */
13#undef WORD_MACHINE
14
15#ifndef INTEL386
16#define INTEL386 /* Identify as Intel machine */
17#endif
18
19#undef m88k /* It sure is NOT a Motorola machine */
20
21/* arch-tag: 7cbf89ef-237c-4da5-bdd0-8d569ae5f3ce
22 (do not change this comment) */
diff --git a/src/m/aviion.h b/src/m/aviion.h
deleted file mode 100644
index 832feb79a00..00000000000
--- a/src/m/aviion.h
+++ /dev/null
@@ -1,126 +0,0 @@
1/* machine description file for Data General AViiON.
2 Copyright (C) 1985, 1986, 1991, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
24 is the most significant byte. */
25
26#define WORDS_BIG_ENDIAN
27
28/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
29 * group of arguments and treat it as an array of the arguments. */
30
31#define NO_ARG_ARRAY
32
33/* Define WORD_MACHINE if addresses and such have
34 * to be corrected before they can be used as byte counts. */
35
36#define WORD_MACHINE
37
38/* Define DATA_SEG_BITS if pointers need to be corrected with
39 a segment field. */
40
41#ifdef FIX_ADDRESS
42#define DATA_SEG_BITS 0xef000000
43#endif
44
45/* Now define a symbol for the cpu type, if your compiler
46 does not define it automatically:
47 Ones defined so far include vax, m68000, ns16000, pyramid,
48 orion, tahoe, APOLLO and many others */
49
50#ifndef m88k
51#define m88k
52#endif
53
54/* Use type int rather than a union, to represent Lisp_Object */
55/* This is desirable for most machines. */
56
57#define NO_UNION_TYPE
58
59/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
60 the bit field into an int. In other words, if bit fields
61 are always unsigned.
62
63 If you use NO_UNION_TYPE, this flag does not matter. */
64
65#define EXPLICIT_SIGN_EXTEND
66
67/* Data type of load average, as read out of kmem. */
68
69/* #define LOAD_AVE_TYPE long */
70
71/* Convert that into an integer that is 100 for a load average of 1.0 */
72
73/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
74
75/* Define CANNOT_DUMP on machines where unexec does not work.
76 Then the function dump-emacs will not be defined
77 and temacs will do (load "loadup") automatically unless told otherwise. */
78
79/* #define CANNOT_DUMP */
80
81/* Define VIRT_ADDR_VARIES if the virtual addresses of
82 pure and impure space as loaded can vary, and even their
83 relative order cannot be relied on.
84
85 Otherwise Emacs assumes that text space precedes data space,
86 numerically. */
87
88/* #define VIRT_ADDR_VARIES */
89
90#define alloca(x) __builtin_alloca(x)
91
92/* Define NO_REMAP if memory segmentation makes it not work well
93 to change the boundary between the text section and data section
94 when Emacs is dumped. If you define this, the preloaded Lisp
95 code will not be sharable; but that's better than failing completely. */
96
97#define NO_REMAP
98
99/* Define ADDR_CORRECT(ADDR) to be a macro to correct an int which is
100 the bit pattern of a pointer to a byte into an int which is the
101 number of a byte.
102
103 This macro has a default definition which is usually right.
104 This default definition is a no-op on most machines (where a
105 pointer looks like an int) but not on all machines. */
106
107#define ADDR_CORRECT(ADDR) ((int)ADDR)
108
109/* Cast pointers to this type to compare them. */
110
111#define PNTR_COMPARISON_TYPE void *
112
113/* Some machines that use COFF executables require that each section
114 start on a certain boundary *in the COFF file*. Such machines should
115 define SECTION_ALIGNMENT to a mask of the low-order bits that must be
116 zero on such a boundary. This mask is used to control padding between
117 segments in the COFF file.
118
119 If SECTION_ALIGNMENT is not defined, the segments are written
120 consecutively with no attempt at alignment. This is right for
121 unmodified system V. */
122
123#define SECTION_ALIGNMENT 0x7
124
125/* arch-tag: 9de8e6ed-ddd8-4480-8308-17ddd7c86559
126 (do not change this comment) */
diff --git a/src/m/celerity.h b/src/m/celerity.h
deleted file mode 100644
index 556c2765883..00000000000
--- a/src/m/celerity.h
+++ /dev/null
@@ -1,60 +0,0 @@
1/* machine description file for Celerity.
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* XINT must explicitly sign extend */
33
34#define EXPLICIT_SIGN_EXTEND
35
36/* celerity preprocessor defines "accel", however the following is clearer */
37#define celerity
38
39/* #define NO_UNION_TYPE would be preferable,
40 but it does not work, and the reason is not yet known. */
41
42#define NO_UNION_TYPE
43
44/* Data type of load average, as read out of kmem. */
45
46#define LOAD_AVE_TYPE double
47
48/* Convert that into an integer that is 100 for a load average of 1.0 */
49
50#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
51
52/* A machine-specific loader switch is needed. */
53
54#define LD_SWITCH_MACHINE -k100000
55
56/* (short) negative-int doesn't sign-extend correctly */
57#define SHORT_CAST_BUG
58
59/* arch-tag: b4df1828-fab6-48f8-97bc-b8998c200eea
60 (do not change this comment) */
diff --git a/src/m/clipper.h b/src/m/clipper.h
deleted file mode 100644
index c0006f48eab..00000000000
--- a/src/m/clipper.h
+++ /dev/null
@@ -1,98 +0,0 @@
1/* machine description file for clipper
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
24 is the most significant byte. */
25
26#undef WORDS_BIG_ENDIAN
27
28/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
29 * group of arguments and treat it as an array of the arguments. */
30
31#define NO_ARG_ARRAY
32
33/* Define WORD_MACHINE if addresses and such have
34 * to be corrected before they can be used as byte counts. */
35
36/* #define WORD_MACHINE */
37
38/* Now define a symbol for the cpu type, if your compiler
39 does not define it automatically */
40
41#define clipper 1
42
43/* Use type int rather than a union, to represent Lisp_Object */
44
45#define NO_UNION_TYPE
46
47/* crt0.c should define a symbol `start' and do .globl with a dot. */
48
49#define DOT_GLOBAL_START
50
51/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
52 the 24-bit bit field into an int. In other words, if bit fields
53 are always unsigned.
54
55 If you use NO_UNION_TYPE, this flag does not matter. */
56
57/* #define EXPLICIT_SIGN_EXTEND */
58
59/* USG systems I know of running on Vaxes do not actually
60 support the load average, so disable it for them. */
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/* Define CANNOT_DUMP on machines where unexec does not work.
71 Then the function dump-emacs will not be defined
72 and temacs will do (load "loadup") automatically unless told otherwise. */
73/* #define CANNOT_DUMP */
74
75/* Define VIRT_ADDR_VARIES if the virtual addresses of
76 pure and impure space as loaded can vary, and even their
77 relative order cannot be relied on.
78
79 Otherwise Emacs assumes that text space precedes data space,
80 numerically. */
81
82/* #define VIRT_ADDR_VARIES */ /* Karl Kleinpaste says this isn't needed. */
83
84/* Define NO_REMAP if memory segmentation makes it not work well
85 to change the boundary between the text section and data section
86 when Emacs is dumped. If you define this, the preloaded Lisp
87 code will not be sharable; but that's better than failing completely. */
88
89/* #define NO_REMAP */
90
91#ifdef USG
92#define TEXT_START 0
93#endif /* USG */
94
95#define LD_TEXT_START_ADDR 8000
96
97/* arch-tag: 2f7981c1-7018-4a1e-b7b6-b2900de36a04
98 (do not change this comment) */
diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h
deleted file mode 100644
index 22478a273b6..00000000000
--- a/src/m/cnvrgnt.h
+++ /dev/null
@@ -1,97 +0,0 @@
1/* machine description file for convergent S series.
2 Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
24 is the most significant byte. */
25
26#define WORDS_BIG_ENDIAN
27
28/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
29 * group of arguments and treat it as an array of the arguments. */
30
31/* #define NO_ARG_ARRAY */
32
33/* Define WORD_MACHINE if addresses and such have
34 * to be corrected before they can be used as byte counts. */
35
36/* #define WORD_MACHINE */
37
38/* Now define a symbol for the cpu type, if your compiler
39 does not define it automatically. */
40
41#define m68000
42
43/* Use type int rather than a union, to represent Lisp_Object.
44 This is desirable for most machines. */
45
46#define NO_UNION_TYPE
47
48/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
49 the 24-bit bit field into an int. In other words, if bit fields
50 are always unsigned.
51
52 If you use NO_UNION_TYPE, this flag does not matter. */
53
54#define EXPLICIT_SIGN_EXTEND
55
56/* Data type of load average, as read out of kmem.
57 These are commented out since it is not supported by this machine. */
58
59#define LOAD_AVE_TYPE double
60
61/* Convert that into an integer that is 100 for a load average of 1.0 */
62
63#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
64
65/* Define CANNOT_DUMP on machines where unexec does not work.
66 Then the function dump-emacs will not be defined
67 and temacs will do (load "loadup") automatically unless told otherwise. */
68
69/* #define CANNOT_DUMP */
70
71/* Define VIRT_ADDR_VARIES if the virtual addresses of
72 pure and impure space as loaded can vary, and even their
73 relative order cannot be relied on.
74
75 Otherwise Emacs assumes that text space precedes data space,
76 numerically. */
77
78#undef VIRT_ADDR_VARIES
79
80/* Define NO_REMAP if memory segmentation makes it not work well
81 to change the boundary between the text section and data section
82 when Emacs is dumped. If you define this, the preloaded Lisp
83 code will not be sharable; but that's better than failing completely. */
84
85#define NO_REMAP
86
87/* Change some things to avoid bugs in compiler. */
88
89#define SWITCH_ENUM_BUG
90
91/* some errno.h's don't actually allocate the variable itself.
92 Cause crt0.c to define errno. */
93
94#define NEED_ERRNO
95
96/* arch-tag: 1a227f79-37e4-43af-a186-53c61296b0be
97 (do not change this comment) */
diff --git a/src/m/convex.h b/src/m/convex.h
deleted file mode 100644
index c8f447cf2fa..00000000000
--- a/src/m/convex.h
+++ /dev/null
@@ -1,189 +0,0 @@
1/* machine description file for Convex (all models).
2 Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments.
34 * Maybe it would be better to simply correct the code. */
35
36#define NO_ARG_ARRAY
37
38/* Define WORD_MACHINE if addresses and such have
39 * to be corrected before they can be used as byte counts. */
40
41/* #define WORD_MACHINE */
42
43/* Now define a symbol for the cpu type, if your compiler
44 does not define it automatically. */
45#ifndef convex /* The compiler doesn't always do this. */
46#define convex
47#endif
48
49/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54#ifndef __GNUC__ /* David M. Cooke <dcooke@haven.larc.nasa.gov>
55 and Ralph Sobek <Ralph.Sobek@cerfacs.fr> agree
56 must ignore one arg when compiled with convex compiler. */
57#define CRT0_DUMMIES ignore,
58#else
59#define CRT0_DUMMIES
60#endif
61
62/* crt0.c should define a symbol `start' and do .globl with a dot. */
63
64#define DOT_GLOBAL_START
65
66/* Data type of load average, as read out of kmem. */
67
68#define LOAD_AVE_TYPE double
69
70/* Convert that into an integer that is 100 for a load average of 1.0 */
71
72#define LOAD_AVE_CVT(x) (int) ((x) * 100.0)
73
74/* Define CANNOT_DUMP on machines where unexec does not work.
75 Then the function dump-emacs will not be defined
76 and temacs will do (load "loadup") automatically unless told otherwise. */
77
78/* #define CANNOT_DUMP */
79
80/* Define VIRT_ADDR_VARIES if the virtual addresses of
81 pure and impure space as loaded can vary, and even their
82 relative order cannot be relied on.
83
84 Otherwise Emacs assumes that text space precedes data space,
85 numerically. */
86
87/*#define VIRT_ADDR_VARIES*/
88
89/* Must use the system's termcap. It does special things. */
90
91#define LIBS_TERMCAP -ltermcap
92
93/* Define NO_REMAP if memory segmentation makes it not work well
94 to change the boundary between the text section and data section
95 when Emacs is dumped. If you define this, the preloaded Lisp
96 code will not be sharable; but that's better than failing completely. */
97
98/* #define NO_REMAP */
99
100/* Addresses on the Convex have the high bit set. */
101#define DATA_SEG_BITS (1 << (BITS_PER_INT-1))
102
103/* Right shift is logical shift.
104 And the usual way of handling such machines, which involves
105 copying the number into sign_extend_temp, does not work
106 for reasons as yet unknown. */
107
108#define XINT(a) sign_extend_lisp_int (a)
109
110/* Convex uses a special version of unexec. */
111
112#define UNEXEC unexconvex.o
113
114/* you gotta define 'COFF' for post 6.1 unexec. */
115
116#define COFF
117#define TEXT_START 0x80001000
118
119/* Posix stuff for Convex OS 8.1 and up. */
120
121#define LD_SWITCH_MACHINE \
122 -e__start -L /usr/lib \
123 '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
124
125/* Use <dirent.h>. */
126#define SYSV_SYSTEM_DIR
127
128#ifdef _POSIX_SOURCE
129
130/* These symbols have been undefined to advance the state of the art. */
131
132#define S_IFMT _S_IFMT
133#define S_IFDIR _S_IFDIR
134
135#define S_IREAD _S_IREAD
136#define S_IWRITE _S_IWRITE
137#define S_IEXEC _S_IEXEC
138
139#endif
140
141/* Ptys may start below ptyp0; call a routine to hunt for where. */
142
143#undef FIRST_PTY_LETTER
144#define FIRST_PTY_LETTER first_pty_letter()
145
146#if 0
147/*
148 * Force a K&R compilation and libraries with the Convex V 4.0 C compiler
149 */
150#define C_SWITCH_MACHINE -pcc
151#define LIB_STANDARD -lc_old
152#define LIBS_MACHINE -lC2_old
153#define LD_SWITCH_MACHINE -X -NL -fn -Enoposix -A__iob=___ap\$$iob \
154 -A_use_libc_sema=___ap\$$use_libc_sema -L /usr/lib
155#endif
156
157/* Avoid error in xrdb.c - d.m.cooke@larc.nasa.gov. */
158#define DECLARE_GETPWUID_WITH_UID_T
159
160/* Call getpgrp properly. */
161#define GETPGRP_NO_ARG
162
163/* Tested for both Convex C and GNUC by d.m.cooke@larc.nasa.gov. */
164#define LIBS_MACHINE -lC2
165
166/* Avoid error in getloadavg.c. */
167#define NLIST_NAME_UNION 1
168
169#if 0 /* This is supposed to be an improvement.
170 It would be good for people to try enabling this code
171 and report the results. */
172/* gcc -nostdlib prevents some math symbols from being included.
173 So we have to use -nostartfiles instead. */
174#define LINKER $(CC) -nostartfiles
175
176#define ORDINARY_LINK
177
178#undef LD_SWITCH_MACHINE
179#define LD_SWITCH_MACHINE \
180 -L /usr/lib \
181 '-A__iob=___ap$$iob' '-A_use_libc_sema=___ap$$use_libc_sema'
182#endif
183
184/* There is some indication that the convex has sys/wait.h
185 but it does not work right. */
186#undef HAVE_SYS_WAIT_H
187
188/* arch-tag: 127e5ae1-4f03-40c0-a87e-d2cb02c59de8
189 (do not change this comment) */
diff --git a/src/m/cydra5.h b/src/m/cydra5.h
deleted file mode 100644
index 4c95f226371..00000000000
--- a/src/m/cydra5.h
+++ /dev/null
@@ -1,117 +0,0 @@
1/* machine description file for Cydrome's CYDRA 5 mini super computer
2 Copyright (C) 1988, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 Ones defined so far include vax, m68000, ns16000, pyramid,
45 orion, tahoe, APOLLO and many others */
46
47/* Use type int rather than a union, to represent Lisp_Object */
48/* This is desirable for most machines. */
49
50#define NO_UNION_TYPE
51
52/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
53 the 24-bit bit field into an int. In other words, if bit fields
54 are always unsigned.
55
56 If you use NO_UNION_TYPE, this flag does not matter. */
57
58#define EXPLICIT_SIGN_EXTEND
59
60/* Data type of load average, as read out of kmem. */
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) x
67
68/* Define CANNOT_DUMP on machines where unexec does not work.
69 Then the function dump-emacs will not be defined
70 and temacs will do (load "loadup") automatically unless told otherwise. */
71
72/*#define CANNOT_DUMP*/
73
74/* Define VIRT_ADDR_VARIES if the virtual addresses of
75 pure and impure space as loaded can vary, and even their
76 relative order cannot be relied on.
77
78 Otherwise Emacs assumes that data space precedes text space,
79 numerically. */
80
81#undef VIRT_ADDR_VARIES
82
83/* The data segment in this machine always starts at address 0x10000000.
84 An address of data cannot be stored correctly in a Lisp object;
85 we always lose the high bits. We must tell XPNTR to add them back. */
86
87#define DATA_SEG_BITS 0x20000000
88#define DATA_START 0x20000000
89
90/* Define NO_REMAP if memory segmentation makes it not work well
91 to change the boundary between the text section and data section
92 when Emacs is dumped. If you define this, the preloaded Lisp
93 code will not be sharable; but that's better than failing completely. */
94
95#define NO_REMAP
96#define BROKEN_FIONREAD /* We son't even have it */
97#define LIBS_MACHINE -lsocket -lnsl
98
99/* The data section in a coff file must be aligned in the file. */
100#define DATA_SECTION_ALIGNMENT 0xFFF
101
102/* Compiler won't allow switch (x) when x is an enum. */
103#define SWITCH_ENUM_BUG
104
105
106/* Explain how pty filenames work. */
107
108#define PTY_ITERATION for (i = 47; i >= 0; i--)
109#define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/pty%03x", i);
110#define PTY_TTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptm%03x", i);
111
112/* We can't do interrupt-driven input, so don't let user try. */
113
114#define BROKEN_SIGIO
115
116/* arch-tag: ad70aae4-1f54-4e67-8677-6eeafb9bcbd9
117 (do not change this comment) */
diff --git a/src/m/delta88k.h b/src/m/delta88k.h
deleted file mode 100644
index b5d0c8f190b..00000000000
--- a/src/m/delta88k.h
+++ /dev/null
@@ -1,163 +0,0 @@
1/* Machine description file for Motorola System V/88 machines
2 Copyright (C) 1985, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40/* #define WORD_MACHINE */
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 Ones defined so far include vax, m68000, ns16000, pyramid,
45 orion, tahoe, APOLLO and many others */
46
47#ifndef m88000 /* Some 88k C compilers already define this */
48#define m88000
49#endif
50
51/* Now define a symbol for the cpu type, if your compiler
52 does not define it automatically. */
53
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/* No load average on Motorola machines. */
70/* #define LOAD_AVE_TYPE double */
71
72/* Convert that into an integer that is 100 for a load average of 1.0 */
73/* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */
74
75/* Define CANNOT_DUMP on machines where unexec does not work.
76 Then the function dump-emacs will not be defined
77 and temacs will do (load "loadup") automatically unless told otherwise. */
78
79/* #define CANNOT_DUMP */
80
81/* Define VIRT_ADDR_VARIES if the virtual addresses of
82 pure and impure space as loaded can vary, and even their
83 relative order cannot be relied on.
84
85 Otherwise Emacs assumes that text space precedes data space,
86 numerically. */
87
88/* #define VIRT_ADDR_VARIES */
89
90/* Define NO_REMAP if memory segmentation makes it not work well
91 to change the boundary between the text section and data section
92 when Emacs is dumped. If you define this, the preloaded Lisp
93 code will not be sharable; but that's better than failing completely. */
94
95#define NO_REMAP
96
97/* Motorola SysV has PTYs. Not all usg3-5 systems do, so this is defined
98 here. */
99
100#define HAVE_PTYS
101#define SYSV_PTYS
102
103/* Ditto for IPC. */
104
105
106/*
107 * we now have job control in R32V1
108 */
109#undef NOMULTIPLEJOBS
110
111/*
112 * we have bcopy, bzero, bcmp in libc.a (what isn't in libc.a?)
113 */
114#define BSTRING
115
116/*
117 * sockets are in R32V1
118 */
119#define HAVE_SOCKETS
120
121/*
122 * we have the wrong name for networking libs
123 */
124#ifdef USG5_4
125/* rms: not needed; LIB_X11_LIB deals with this. */
126/* #define LIBX11_SYSTEM -lX11 */
127#else
128#undef LIB_X11_LIB /* We don't have the shared libs as assumed in usg5-3.h. */
129#undef LIBX11_SYSTEM
130#define LIBX11_SYSTEM -lnsl -lbsd
131#endif /* USG5_4 */
132
133#define BROKEN_FIONREAD
134
135/* previously defined in usg5-4, if we choose to use that. */
136#ifndef LIBS_SYSTEM
137#ifdef USG5_4
138#define LIBS_SYSTEM -lsocket -lnsl
139#else
140#define LIBS_SYSTEM -lbsd -lg
141#endif /* USG5_4 */
142#endif
143
144#define HAVE_TERMIOS
145#undef HAVE_TERMIO
146#define NO_TERMIO
147#undef sigsetmask
148
149#define NO_SIOCTL_H
150
151#ifdef USG5_4
152#ifdef HAVE_X_WINDOWS
153#else
154#undef BSTRING
155#endif /* HAVE_X_WINDOWS */
156#endif /* USG5_4 */
157
158#define NO_PTY_H
159
160#define USE_GETOBAUD
161
162/* arch-tag: c8ea1965-99d7-43df-ba32-29b66fc069be
163 (do not change this comment) */
diff --git a/src/m/dpx2.h b/src/m/dpx2.h
deleted file mode 100644
index b39ef93ee34..00000000000
--- a/src/m/dpx2.h
+++ /dev/null
@@ -1,222 +0,0 @@
1/* machine description for Bull DPX/2 range
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
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/*
27 * You need to either un-comment one of these lines, or copy one
28 * of them to config.h before you include this file.
29 * Note that some simply define a constant and others set a value.
30 */
31
32/* #define ncl_el /* DPX/2 210,220 etc */
33/* #define ncl_mr 1 /* DPX/2 320,340 (and 360,380 ?) */
34
35/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
36 is the most significant byte. */
37
38#define WORDS_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/* Now define a symbol for the cpu type, if your compiler
51 does not define it automatically:
52 Ones defined so far include vax, m68000, ns16000, pyramid,
53 orion, tahoe, APOLLO and many others */
54
55/* /bin/cc on ncl_el and ncl_mr define m68k and mc68000 */
56
57/* Use type int rather than a union, to represent Lisp_Object */
58/* This is desirable for most machines. */
59
60#define NO_UNION_TYPE
61
62/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
63 the 24-bit bit field into an int. In other words, if bit fields
64 are always unsigned.
65
66 If you use NO_UNION_TYPE, this flag does not matter. */
67
68#define EXPLICIT_SIGN_EXTEND
69
70/* Data type of load average, as read out of kmem. */
71
72#define LOAD_AVE_TYPE long
73
74/* Convert that into an integer that is 100 for a load average of 1.0 */
75
76#define FSCALE 1000.0
77#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
78
79/* Define CANNOT_DUMP on machines where unexec does not work.
80 Then the function dump-emacs will not be defined
81 and temacs will do (load "loadup") automatically unless told otherwise. */
82
83/*#define CANNOT_DUMP /**/
84
85/* Define VIRT_ADDR_VARIES if the virtual addresses of
86 pure and impure space as loaded can vary, and even their
87 relative order cannot be relied on.
88
89 Otherwise Emacs assumes that text space precedes data space,
90 numerically. */
91
92/* #define VIRT_ADDR_VARIES /**/
93
94/* Define NO_REMAP if memory segmentation makes it not work well
95 to change the boundary between the text section and data section
96 when Emacs is dumped. If you define this, the preloaded Lisp
97 code will not be sharable; but that's better than failing completely. */
98
99#define NO_REMAP
100
101/*
102 * end of the standard macro's
103 */
104
105/*
106 * a neat identifier to handle source mods (if needed)
107 */
108#ifndef DPX2
109#define DPX2
110#endif
111
112/* Disable support for shared libraries in unexec. */
113
114#undef USG_SHARED_LIBRARIES
115
116/*
117 * if we use X11, libX11.a has these...
118 */
119# undef LIB_X11_LIB
120# define LIB_X11_LIB -lX11
121# undef LIBX11_SYSTEM
122# define LIBX11_SYSTEM -lmalloc -lnsl
123# define BSTRING
124
125/*
126 * we must have INET loaded so we have sockets
127 */
128# define HAVE_SOCKETS
129
130/*
131 * useful if you have INET loaded
132 */
133# define LIBS_MACHINE -linet
134
135
136#if (defined(ncl_mr) || defined(ncl_el)) && !defined (NBPC)
137# define NBPC 4096
138#endif
139
140/*
141 * if SIGIO is defined, much of the emacs
142 * code assumes we are BSD !!
143 */
144#define BROKEN_SIGIO
145
146
147/*
148 * a good idea on multi-user systems :-)
149 */
150#define CLASH_DETECTION /* probably a good idea */
151
152
153/*
154 * sysdep.c(sys_suspend) works fine with emacs-18.58
155 * and BOS 02.00.45, if you have an earler version
156 * of Emacs and/or BOS, or have problems, or just prefer
157 * to start a sub-shell rather than suspend-emacs,
158 * un-comment out the next line.
159 */
160/* # define BROKEN_SIGTSTP /* make suspend-emacs spawn a sub-shell */
161#ifdef NOMULTIPLEJOBS
162# undef NOMULTIPLEJOBS
163#endif
164/*
165 * no we don't want this at all
166 */
167#ifdef USG_JOBCTRL
168# undef USG_JOBCTRL
169#endif
170
171/*
172 * but we have that
173*/
174#define GETPGRP_NO_ARG
175
176/* select also needs this header file--but not in ymakefile. */
177#ifndef NOT_C_CODE
178#include <sys/types.h>
179#include <sys/select.h>
180#endif
181
182#define TEXT_START 0
183
184/* we have termios */
185#undef HAVE_TERMIO
186#define HAVE_TERMIOS
187#define HAVE_TCATTR
188
189/* we also have this */
190#define HAVE_PTYS
191#define SYSV_PTYS
192
193/* It doesn't seem we have sigpause */
194#undef HAVE_SYSV_SIGPAUSE
195
196#define POSIX_SIGNALS
197
198/* We don't need the definition from usg5-3.h with POSIX_SIGNALS. */
199#undef sigsetmask
200
201
202/* on bos2.00.45 there is a bug that makes the F_SETOWN fcntl() call
203 enters in an infinite loop. Avoid calling it */
204#define F_SETOWN_BUG
205
206/* system closedir sometimes complains about wrong descriptor
207 for no apparent reasons. Use the provided closedir in sysdep.c instead */
208#ifdef HAVE_CLOSEDIR
209#undef HAVE_CLOSEDIR
210#endif
211
212/* Send signals to subprocesses by "typing" signal chars at them. */
213#define SIGNALS_VIA_CHARACTERS
214
215/* This is to prevent memory clobbering on the DPX/2 200. */
216#define LD_SWITCH_MACHINE -N -T32
217
218 /* end of dpx2.h */
219
220
221/* arch-tag: 8cfdf817-aec7-4d99-a00d-0e77615e8e1b
222 (do not change this comment) */
diff --git a/src/m/dual.h b/src/m/dual.h
deleted file mode 100644
index d287f9502d2..00000000000
--- a/src/m/dual.h
+++ /dev/null
@@ -1,73 +0,0 @@
1/* machine description file for Dual machines using unisoft port.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
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
26NOTE-START
27Dual running System V (-machine=dual -opsystem=usg5-2)
28
29 As of 17.46, this works except for a few changes
30 needed in unexec.c.
31
32Dual running Uniplus (-machine=dual -opsystem=unipl5-2)
33
34 Works, as of 17.51.
35NOTE-END */
36
37
38/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
39 is the most significant byte. */
40
41#define WORDS_BIG_ENDIAN
42
43/* XINT must explicitly sign-extend */
44
45#define EXPLICIT_SIGN_EXTEND
46
47/* Use type int rather than a union, to represent Lisp_Object */
48
49#define NO_UNION_TYPE
50
51/* Now define a symbol for the cpu type, if your compiler
52 does not define it automatically:
53 vax, m68000, ns16000 are the ones defined so far. */
54
55#ifndef m68000
56#define m68000
57#endif
58
59/* Data type of load average, as read out of kmem. */
60/* These are commented out since it does not really work in uniplus */
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/* Change some things to avoid bugs in compiler */
69
70#define SWITCH_ENUM_BUG 1
71
72/* arch-tag: 7208d63c-9a23-469e-a9b1-908ac912c743
73 (do not change this comment) */
diff --git a/src/m/elxsi.h b/src/m/elxsi.h
deleted file mode 100644
index 07a00bbf714..00000000000
--- a/src/m/elxsi.h
+++ /dev/null
@@ -1,133 +0,0 @@
1/* machine description file for Elxsi machine (running enix).
2 Copyright (C) 1986, 1992, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4 Adapted by John Salmon
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, 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="usg5-2" */
26
27/* This file was modified by Matt Crawford <matt@tank.uchicago.edu>
28 to work under Elxsi's 12.0 release of BSD unix. */
29
30/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
31 is the most significant byte. */
32
33#undef WORDS_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/* Now define a symbol for the cpu type, if your compiler
46 does not define it automatically:
47 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
48 are the ones defined so far. */
49
50#ifndef elxsi
51#define elxsi
52#endif
53
54/* Use type int rather than a union, to represent Lisp_Object */
55/* This is desirable for most machines. */
56
57#define NO_UNION_TYPE
58
59/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
60 the 24-bit bit field into an int. In other words, if bit fields
61 are always unsigned.
62
63 If you use NO_UNION_TYPE, this flag does not matter. */
64
65#define EXPLICIT_SIGN_EXTEND
66
67
68/* Name of kernel load average variable */
69
70#undef LDAV_SYMBOL
71#define LDAV_SYMBOL "avenrun"
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 Earlier versions couldn't dump.
86 Changes for 12.0 release are in 19.1.
87 Dumping should work now. */
88
89/* #define CANNOT_DUMP */
90
91/* Define VIRT_ADDR_VARIES if the virtual addresses of
92 pure and impure space as loaded can vary, and even their
93 relative order cannot be relied on.
94
95 Otherwise Emacs assumes that text space precedes data space,
96 numerically. */
97
98/* #define VIRT_ADDR_VARIES */
99
100/* Define NO_REMAP if memory segmentation makes it not work well
101 to change the boundary between the text section and data section
102 when Emacs is dumped. If you define this, the preloaded Lisp
103 code will not be sharable; but that's better than failing completely. */
104/*#define NO_REMAP*/
105
106/* This is a guess for an alternate solution to whatever
107 problem motivated defining _sobuf in sysdep,c with extern char *_sobuf. */
108#define _sobuf xsobuf
109
110/* Address of start of text segment as loaded. */
111
112#define TEXT_START 0x800
113
114/* Tell crt0.c not to define environ. */
115
116#define DONT_NEED_ENVIRON
117
118/* The elxsi has no debugger, so might as well optimize instead
119 of trying to make a symbol table. */
120
121#define C_DEBUG_SWITCH -O
122
123/* Elxsi uses COFF under both Sys V and BSD environments */
124
125#define COFF
126
127#define ADJUST_EXEC_HEADER {\
128extern int _init_brk;\
129_init_brk = bss_start;\
130}
131
132/* arch-tag: 73bf1120-a994-4c29-8d60-af425d8bf10c
133 (do not change this comment) */
diff --git a/src/m/f301.h b/src/m/f301.h
deleted file mode 100644
index c427c19e05d..00000000000
--- a/src/m/f301.h
+++ /dev/null
@@ -1,10 +0,0 @@
1/* Machine description file for Fujitsu F301 machines. */
2
3/* The following line tells the configuration script what sort of
4 operating system this machine is likely to run.
5 USUAL-OPSYS="uxpv" */
6
7#include "delta88k.h"
8
9/* arch-tag: a0ed4f18-ecf2-4d9a-853b-36e0f6b45945
10 (do not change this comment) */
diff --git a/src/m/gould-np1.h b/src/m/gould-np1.h
deleted file mode 100644
index cb3da1825cc..00000000000
--- a/src/m/gould-np1.h
+++ /dev/null
@@ -1,108 +0,0 @@
1/* machine description file for Gould NP1 with UTX/32 3.0 (first release for NP1)
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
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-3" */
25
26/* If your system uses COFF (Common Object File Format) then define the
27 preprocessor symbol "COFF". */
28/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */
29/* at least currently, already defined by cpp, but make sure */
30#ifndef COFF
31#define COFF
32#endif COFF
33
34#include "gould.h"
35
36/* undefine what gould.h defined */
37#undef ADJUST_EXEC_HEADER
38
39/* If your system uses COFF (Common Object File Format) then define the
40 preprocessor symbol "COFF". */
41/* UTX 3.0 uses a cross between COFF and a.out format, but closer to COFF. */
42#ifndef COFF /* at least currently, already defined by cpp */
43#define COFF
44#endif COFF
45
46/* make Gould NP1 and PN COFF look like USG COFF */
47/* NP1 COFF */
48#undef aouthdr /* Since gould.h already defined these */
49#undef a_dtbase
50
51#ifdef IN_UNEXEC
52#define aouthdr exec
53#define ADJUST_TEXT_SCNHDR_SIZE
54
55/* Gould COFF - these are already defined in gould.h */
56/*
57 * #define COFF_WITH_BSD_SYMTAB
58 * #define HEADER_INCL_IN_TEXT
59 * #define magic a_magic
60 * #define tsize a_text
61 * #define dsize a_data
62 * #define bsize a_bss
63 * #define entry a_entry
64 * #define text_start a_txbase
65 * #define data_start a_dtbase
66*/
67/* End Gould COFF */
68#endif /* IN_UNEXEC */
69
70/* NP1 supports a slightly different set than PowerNode */
71#define BAUD_CONVERT { 0, 50, 75, 110, 134, 150, 300, 450, 600, 1200, \
72 1800, 2000, 2400, 3600, 4800, 7200, 9600, \
73 19200, 38400 }
74
75#define LD_SWITCH_SYSTEM -BS -e start
76
77/* Undef C_DEBUG_SWITCH because it may have been set in gould.h */
78/* It will compile and load and works with dbx. Runs under an incomplete
79 port of gdb, but gdb doesn't always find things correctly. */
80#undef C_DEBUG_SWITCH
81#define C_DEBUG_SWITCH -g
82#define LIBS_DEBUG -lg
83
84
85/* The data segment in this machine always starts at address 0x1000000 = 16M.
86 An address of data cannot be stored correctly in a Lisp object;
87 we always lose the high bits. We must tell XPNTR to add them back. */
88
89#define DATA_SEG_BITS 0x1000000
90#define DATA_START 0x1000000
91
92/* The text segment always starts at 0.
93 This way we don't need to have a label _start defined. */
94#define TEXT_START 0
95
96/* Data isn't right next to text on an NP1 */
97#define NO_REMAP
98
99/* The bcopy bug has reappeared */
100#undef BSTRING
101
102#ifndef GOULD_NP1
103#define GOULD_NP1
104#endif
105
106
107/* arch-tag: cdfd3dbf-a5e4-464d-8cef-985fb7872873
108 (do not change this comment) */
diff --git a/src/m/gould.h b/src/m/gould.h
deleted file mode 100644
index cd16e09b785..00000000000
--- a/src/m/gould.h
+++ /dev/null
@@ -1,189 +0,0 @@
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, 2002, 2003, 2004, 2005,
9 2006, 2007 Free Software Foundation, Inc.
10
11This file is part of GNU Emacs.
12
13GNU Emacs is free software; you can redistribute it and/or modify
14it under the terms of the GNU General Public License as published by
15the Free Software Foundation; either version 3, or (at your option)
16any later version.
17
18GNU Emacs is distributed in the hope that it will be useful,
19but WITHOUT ANY WARRANTY; without even the implied warranty of
20MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21GNU General Public License for more details.
22
23You should have received a copy of the GNU General Public License
24along with GNU Emacs; see the file COPYING. If not, write to
25the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
26Boston, MA 02110-1301, USA. */
27
28
29/* The following line tells the configuration script what sort of
30 operating system this machine is likely to run.
31 USUAL-OPSYS="note"
32
33NOTE-START
34Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3)
35(gould.h; s-bsd4-2.h or s-bsd4-3.h)
36
37 18.36 worked on versions 1.2 and 2.0 of the operating system.
38
39 On UTX/32 2.0, use -opsystem=bsd4-3
40
41 On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling
42 lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the
43 makefile.
44
45 UTX/32 1.3 has a bug in the bcopy library routine. Fix it by
46 #undef BSTRING in gould.h.
47
48 Version 19 incorporates support for releases 2.1 and later of UTX/32.
49 A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
50NOTE-END */
51
52/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
53 is the most significant byte. */
54
55#define WORDS_BIG_ENDIAN
56
57/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
58 * group of arguments and treat it as an array of the arguments. */
59
60#define NO_ARG_ARRAY
61
62/* Define WORD_MACHINE if addresses and such have
63 * to be corrected before they can be used as byte counts. */
64
65/* #define WORD_MACHINE */
66
67/* Now define a symbol for the cpu type, if your compiler
68 does not define it automatically */
69
70#ifndef GOULD
71#define GOULD
72#endif
73
74/* sel is an old preprocessor name on gould machines
75 - it is no longer needed and interferes with a variable in xmenu.c */
76#undef sel
77
78/* Use type int rather than a union, to represent Lisp_Object */
79/* This is desirable for most machines. */
80
81#define NO_UNION_TYPE
82
83/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
84 the 24-bit bit field into an int. In other words, if bit fields
85 are always unsigned.
86
87 If you use NO_UNION_TYPE, this flag does not matter. */
88
89#define EXPLICIT_SIGN_EXTEND
90
91/* Data type of load average, as read out of kmem. */
92
93#define LOAD_AVE_TYPE double
94
95/* Convert that into an integer that is 100 for a load average of 1.0 */
96
97#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
98
99/* Define CANNOT_DUMP on machines where unexec does not work.
100 Then the function dump-emacs will not be defined
101 and temacs will do (load "loadup") automatically unless told otherwise. */
102
103/* #define CANNOT_DUMP */
104
105/* Define VIRT_ADDR_VARIES if the virtual addresses of
106 pure and impure space as loaded can vary, and even their
107 relative order cannot be relied on.
108
109 Otherwise Emacs assumes that text space precedes data space,
110 numerically. */
111
112#define VIRT_ADDR_VARIES
113
114/* No need to extend the user stack. */
115
116/* If this is a 2.1 system, COFF will be predefined by cpp. If it's */
117/* pre-2.1 COFF won't be defined, which is as it should be. */
118
119#ifdef COFF
120
121#define HEADER_INCL_IN_TEXT
122#define COFF_BSD_SYMBOLS
123
124/* Seems to be necessary with coff */
125#define NO_REMAP
126
127#ifndef GOULD_NP1
128/* gould-np1.h includes this file */
129/* keep the old value - don't skip over the headers */
130#define KEEP_OLD_TEXT_SCNPTR
131#define KEEP_OLD_PADDR
132#ifndef RELEASE2_1
133#define ADJUST_TEXTBASE
134#endif /*RELEASE2_1*/
135#endif /* GOULD_NP1 */
136
137#ifdef IN_UNEXEC
138/* make Gould NP and PN COFF look like USG COFF */
139/* PN COFF */
140#define aouthdr old_exec
141/* PN COFF doesn't have a data_start or a_dtbase field in its */
142/* optional header, so substitute a junk field */
143#define a_dtbase a_ccvers
144/* Gould COFF */
145#define magic a_magic
146#define tsize a_text
147#define dsize a_data
148#define bsize a_bss
149#define entry a_entry
150#define text_start a_txbase
151#define data_start a_dtbase
152#endif /* IN_UNEXEC */
153
154/* Define how to search all pty names.
155 * This is for UTX 2.1 and greater on PN and all NP versions. It is only
156 * accident that this happens to correspond to the same versions of UTX
157 * as COFF does, but we'll take advantage of that here.
158 */
159
160/*#define USE_PTY_PAIR*/
161
162#endif /* COFF */
163
164/* -g is sometimes broken on the Gould. */
165
166#define C_DEBUG_SWITCH
167
168/* Comparing pointers as unsigned ints tickles a bug in older compilers. */
169
170#define PNTR_COMPARISON_TYPE int
171
172/* The GOULD machine counts the a.out file header as part of the text. */
173
174#define A_TEXT_OFFSET(HDR) sizeof (HDR)
175
176/* Machine-dependent action when about to dump an executable file. */
177
178#ifndef COFF
179#define ADJUST_EXEC_HEADER \
180 unexec_text_start = hdr.a_txbase + sizeof (hdr);
181#endif
182
183/* We use the system's crt0.o. Somehow it avoids losing
184 with `environ' the way most standard crt0.o's do. */
185
186#define START_FILES pre-crt0.o /lib/crt0.o
187
188/* arch-tag: 930cb9ef-f56f-4c06-aea0-5e81103bbf58
189 (do not change this comment) */
diff --git a/src/m/i860.h b/src/m/i860.h
deleted file mode 100644
index 6d79c5c8d38..00000000000
--- a/src/m/i860.h
+++ /dev/null
@@ -1,101 +0,0 @@
1/* machine description file for i860.
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="<name of system .h file here, without the s- or .h>" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#undef WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40/* #define WORD_MACHINE */
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 Ones defined so far include vax, m68000, ns16000, pyramid,
45 orion, tahoe, APOLLO and many others */
46
47#define INTEL860
48
49/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
55 the 24-bit bit field into an int. In other words, if bit fields
56 are always unsigned.
57
58 If you use NO_UNION_TYPE, this flag does not matter. */
59
60#define EXPLICIT_SIGN_EXTEND
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) (int) (((double) (x)) * 100.0 / FSCALE)
69
70/* Define CANNOT_DUMP on machines where unexec does not work.
71 Then the function dump-emacs will not be defined
72 and temacs will do (load "loadup") automatically unless told otherwise. */
73
74/* #define CANNOT_DUMP */
75
76/* Define VIRT_ADDR_VARIES if the virtual addresses of
77 pure and impure space as loaded can vary, and even their
78 relative order cannot be relied on.
79
80 Otherwise Emacs assumes that text space precedes data space,
81 numerically. */
82
83/* #define VIRT_ADDR_VARIES */
84
85/* Define NO_REMAP if memory segmentation makes it not work well
86 to change the boundary between the text section and data section
87 when Emacs is dumped. If you define this, the preloaded Lisp
88 code will not be sharable; but that's better than failing completely. */
89
90#define NO_REMAP
91
92/* The X11 include files for i860-sysv4 need the macro SVR4 defined.
93 --Kaveh Ghazi (ghazi@noc.rutgers.edu) 8/9/94. */
94#ifdef USG5_4
95#ifndef SVR4
96#define SVR4
97#endif
98#endif
99
100/* arch-tag: 99f3a078-95e1-49d6-8666-04726eb25647
101 (do not change this comment) */
diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h
deleted file mode 100644
index 045bcf2c294..00000000000
--- a/src/m/ibmps2-aix.h
+++ /dev/null
@@ -1,235 +0,0 @@
1/* machine description file for ibm ps/2 aix386.
2 Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28 Use -opsystem=usg5-3 on AIX 1.2.
29 -opsystem=usg5-2-2 should work on either AIX 1.1 or 1.2, but may not
30 work with certain new X window managers, and may be suboptimal.
31NOTE-END */
32
33/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
34 is the most significant byte. */
35
36#undef WORDS_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/* Now define a symbol for the cpu type, if your compiler
49 does not define it automatically:
50 Ones defined so far include vax, m68000, ns16000, pyramid,
51 orion, tahoe, APOLLO and many others */
52
53#define INTEL386
54#define aix386
55
56#define IBMAIX
57
58/* Use type int rather than a union, to represent Lisp_Object */
59
60#define NO_UNION_TYPE
61
62/* crt0.c, if it is used, should use the i386-bsd style of entry.
63 with no extra dummy args. On USG and XENIX,
64 NO_REMAP says this isn't used. */
65
66#define CRT0_DUMMIES bogus_fp,
67
68/* crt0.c should define a symbol `start' and do .globl with a dot. */
69
70#define DOT_GLOBAL_START
71
72/* USG systems do not actually support the load average,
73so disable it for them. */
74
75/* Define CANNOT_DUMP on machines where unexec does not work.
76 Then the function dump-emacs will not be defined
77 and temacs will do (load "loadup") automatically unless told otherwise. */
78
79/* #define CANNOT_DUMP */
80
81/* Define VIRT_ADDR_VARIES if the virtual addresses of
82 pure and impure space as loaded can vary, and even their
83 relative order cannot be relied on.
84
85 Otherwise Emacs assumes that text space precedes data space,
86 numerically. */
87
88/* #define VIRT_ADDR_VARIES */
89
90/* Define addresses, macros, change some setup for dump */
91
92#define NO_REMAP
93#undef static
94 /* Since NO_REMAP, problem with statics doesn't exist */
95
96#ifdef USG5_3
97#define TEXT_START 0x00000000
98#else
99#define TEXT_START 0x00400000
100#define TEXT_END 0
101#define DATA_START 0x00800000
102#define DATA_END 0
103
104/* The data segment in this machine always starts at address 0x00800000.
105 An address of data cannot be stored correctly in a Lisp object;
106 we always lose the high bits. We must tell XPNTR to add them back. */
107
108#define DATA_SEG_BITS 0x00800000
109#endif
110
111#if 0 /* I refuse to promulgate a recommendation that would make
112 users unable to debug - RMS. */
113/* delete the following line to foil optimization, enable debugging */
114#define C_DEBUG_SWITCH -O
115#endif
116
117#define BSTRING
118#undef HAVE_TERMIO
119#define HAVE_TERMIOS
120
121/* Send signals to subprocesses by "typing" special chars at them. */
122
123#define SIGNALS_VIA_CHARACTERS
124
125/*
126 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
127 * library functions. Almost, but not quite the same as
128 * the 4.2 functions
129 */
130#define SYSV_SYSTEM_DIR
131
132/*
133 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
134 * The 4.2 opendir, etc., library functions.
135 */
136#undef NONSYSTEM_DIR_LIBRARY
137
138/* AIX utimes allegedly causes SIGSEGV. */
139#undef HAVE_UTIMES /* override configuration decision */
140
141/* AIX defines FIONREAD, but it does not work. */
142#define BROKEN_FIONREAD
143
144/* Data type of load average, as read out of kmem. */
145
146#define LOAD_AVE_TYPE long /* For AIX (sysV) */
147
148/* Convert that into an integer that is 100 for a load average of 1.0 */
149
150#define LOAD_AVE_CVT(x) (int) (((double) (x)/65535.0) * 100.0)
151
152/* This page was added in June 1990. It may be incorrect for some versions
153 of aix, so delete it if it causes trouble. */
154
155/* AIX has sigsetmask() */
156#undef sigsetmask
157
158/* AIX386 has BSD4.3 PTYs */
159
160#define HAVE_PTYS
161
162/* AIX has IPC. It also has sockets, and either can be used for client/server.
163 I would suggest the client/server code be changed to use HAVE_SOCKETS rather
164 than BSD as the conditional if sockets provide any advantages. */
165
166#define HAVE_SYSVIPC
167
168/* AIX has sockets */
169
170#define HAVE_SOCKETS
171/* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */
172
173/* Specify the font for X to use. */
174
175#define X_DEFAULT_FONT "8x13"
176
177/* AIX has a wait.h. */
178
179#define HAVE_WAIT_HEADER
180
181/* sioctl.h should not be included, says bytheway@cs.utah.edu. */
182#undef NEED_SIOCTL
183/* I'm guessing that that means it doesn't want ptem.h either. */
184#undef NEED_PTEM_H
185
186/* aix has `union wait' */
187#define HAVE_UNION_WAIT
188
189/* Here override various assumptions in ymakefile */
190
191#ifdef __GNUC__
192#define alloca(n) __builtin_alloca(n)
193#if __GNUC__ < 2
194#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc
195#endif
196/* -g fails to work, so it is omitted. */
197/* tranle says that -fstrength-reduce does not help. */
198#define C_DEBUG_SWITCH
199#else
200#define LIBS_MACHINE -lbsd -lrts
201#endif
202
203#define OBJECTS_MACHINE hftctl.o
204#define LD_SWITCH_MACHINE -T0x00400000 -K -e start
205#define LIBS_DEBUG /* no -lg on aix ps/2 */
206
207#ifdef USG5_3
208#define XICCC
209#undef LD_SWITCH_MACHINE
210#define LD_SWITCH_MACHINE -T0x0 -K -e start
211
212/* Things defined in s-usg5-3.h that need to be overridden. */
213#undef NOMULTIPLEJOBS
214#undef BROKEN_TIOCGETC
215#undef BROKEN_TIOCGWINSZ
216#undef LIBX11_SYSTEM
217#undef LIB_X11_LIB
218#endif
219
220/* Shared libraries are supported in a patch release of ps/2 1.2.1.
221 If the system has them, the user can turn them on, and this code
222 will make them work. */
223#define USG_SHARED_LIBRARIES /* Assume that by 19's release everyone has this. */
224
225#ifdef USG_SHARED_LIBRARIES
226#define ORDINARY_LINK
227#undef LIB_STANDARD
228#undef LD_SWITCH_MACHINE
229#if __GNUC__ > 1
230#define LD_SWITCH_MACHINE -shlib
231#endif
232#endif
233
234/* arch-tag: 2e7f44df-6a61-4a47-aa53-f7961bfeff11
235 (do not change this comment) */
diff --git a/src/m/ibmrt-aix.h b/src/m/ibmrt-aix.h
deleted file mode 100644
index 57a9dbc4df1..00000000000
--- a/src/m/ibmrt-aix.h
+++ /dev/null
@@ -1,165 +0,0 @@
1/* RTPC AIX machine/system dependent defines
2 Copyright (C) 1988, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Now define a symbol for the cpu type, if your compiler
38 does not define it automatically. */
39
40#ifndef IBMAIX
41#define IBMAIX
42#endif
43
44/* Use type int rather than a union, to represent Lisp_Object */
45/* This is desirable for most machines. */
46
47#define NO_UNION_TYPE
48
49/* No load average information appears in the AIX kernel. VRM has this
50 info, and if anyone desires they should fix fns.c to get it out of VRM */
51
52/* Define CANNOT_DUMP on machines where unexec does not work.
53 Then the function dump-emacs will not be defined
54 and temacs will do (load "loadup") automatically unless told otherwise. */
55
56/* #define CANNOT_DUMP */
57
58/* Define addresses, macros, change some setup for dump */
59
60#undef COFF
61#define NO_REMAP
62#undef static
63 /* Since NO_REMAP, problem with statics doesn't exist */
64
65#define TEXT_START 0x10000000
66#define TEXT_END 0
67#define DATA_START 0x20000000
68#define DATA_END 0
69
70/* The data segment in this machine always starts at address 0x20000000.
71 An address of data cannot be stored correctly in a Lisp object;
72 we always lose the high bits. We must tell XPNTR to add them back. */
73
74#define DATA_SEG_BITS 0x20000000
75
76#define N_BADMAG(x) BADMAG(x)
77#define N_TXTOFF(x) A_TEXTPOS(x)
78#define N_SYMOFF(x) A_SYMPOS(x)
79#define A_TEXT_OFFSET(HDR) sizeof(HDR)
80#define ADJUST_EXEC_HEADER \
81 unexec_text_start += sizeof(hdr); \
82 unexec_data_start = ohdr.a_dbase
83#undef ADDR_CORRECT
84#define ADDR_CORRECT(x) ((int)(x))
85
86/* This is the offset of the executable's text, from the start of the file. */
87
88#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
89
90/* AIX has PTYs, so define here, along with macros needed to make them work. */
91
92#define HAVE_PTYS
93#define PTY_ITERATION for (i=0; i<256; i++)
94#define PTY_NAME_SPRINTF sprintf (ptyname, "/dev/ptc%d", i);
95
96#define PTY_TTY_NAME_SPRINTF \
97{ /* Check that server side not already open */ \
98 if ((ioctl (*ptyv, PTYSTATUS, 0) & 0xFFFF) != 0) \
99 { \
100 emacs_close (*ptyv); \
101 continue; \
102 } \
103 /* And finally to be sure we can open it later */ \
104 sprintf (ptyname, "/dev/pts%d", i); \
105 signal (SIGHUP,SIG_IGN); \
106} /* ignore hangup at process end */
107
108/* TIOCNOTTY doesn't occur on AIX, but the rest
109 of the conditionalized code in process.c does
110 the right thing if we fake this out. */
111#define TIOCNOTTY IOCTYPE
112
113/* AIX has IPC. It also has sockets, and either can be used for client/server.
114 I would suggest the client/server code be changed to use HAVE_SOCKETS rather
115 than BSD_SYSTEM as the conditional if sockets provide any advantages. */
116
117#define HAVE_SYSVIPC
118
119/* AIX has sockets */
120
121#define HAVE_SOCKETS
122/* #define SKTPAIR */ /* SKTPAIR works, but what is advantage over pipes? */
123
124/* Specify the font for X to use. */
125
126#define X_DEFAULT_FONT "Rom14.500"
127
128/* Here override various assumptions in ymakefile */
129
130/* On AIX 2.2.1, use these definitions instead
131#define C_SWITCH_MACHINE -I/usr/include -Nn2000
132#define LIBS_MACHINE -lX -lrts
133*/
134
135#define C_SWITCH_MACHINE -I/usr/include -I/usr/include/bsd -Nn2000
136#define LIBS_MACHINE -lXMenu -lX -lsock -lbsd -lrts
137
138#define OBJECTS_MACHINE hftctl.o
139#define START_FILES /lib/crt0.o
140/* -lXMenu, -lX must precede -lsock, -lbsd */
141#define LD_SWITCH_MACHINE -n -T0x10000000 -K -e start
142
143#if 0 /* I refuse to promulgate a recommendation that would make
144 users unable to debug - RMS. */
145/* delete the following line to foil optimization, enable debugging */
146#define C_DEBUG_SWITCH -O
147#endif
148
149
150/* Setup to do some things BSD way - these won't work previous to AIX 2.1.2 */
151
152#include </usr/include/bsd/BSDtoAIX.h>
153#define BSTRING
154
155/* AIX utimes allegedly causes SIGSEGV. */
156#undef HAVE_UTIMES /* override configuration decision */
157
158/* AIX defines FIONREAD, but it does not work. */
159#define BROKEN_FIONREAD
160
161/* rocky@watson.ibm.com says this is needed. */
162#define HAVE_FTIME
163
164/* arch-tag: eea85307-0ca9-4a9c-a4f6-89fad7591d28
165 (do not change this comment) */
diff --git a/src/m/ibmrt.h b/src/m/ibmrt.h
deleted file mode 100644
index ca32db94518..00000000000
--- a/src/m/ibmrt.h
+++ /dev/null
@@ -1,123 +0,0 @@
1/* RTPC machine dependent defines
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#define WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically. */
44
45#define ibmrt
46#define romp /* unfortunately old include files are hanging around. */
47
48/* Use type int rather than a union, to represent Lisp_Object */
49/* This is desirable for most machines. */
50
51#define NO_UNION_TYPE
52
53/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
54 the bit field into an int. In other words, if bit fields
55 are always unsigned.
56
57 If you use NO_UNION_TYPE, this flag does not matter. */
58
59#define EXPLICIT_SIGN_EXTEND
60
61/* Data type of load average, as read out of kmem. */
62
63#define LOAD_AVE_TYPE double /* For AIS (sysV) */
64
65/* Convert that into an integer that is 100 for a load average of 1.0 */
66
67#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
68
69/* Define CANNOT_DUMP on machines where unexec does not work.
70 Then the function dump-emacs will not be defined
71 and temacs will do (load "loadup") automatically unless told otherwise. */
72
73/* #define CANNOT_DUMP */
74
75/* Define VIRT_ADDR_VARIES if the virtual addresses of
76 pure and impure space as loaded can vary, and even their
77 relative order cannot be relied on.
78
79 Otherwise Emacs assumes that text space precedes data space,
80 numerically. */
81
82#undef VIRT_ADDR_VARIES
83
84/* The data segment in this machine starts at a fixed address.
85 An address of data cannot be stored correctly in a Lisp object;
86 we always lose the high bits. We must tell XPNTR to add them back. */
87
88#define DATA_SEG_BITS 0x10000000
89#define DATA_START 0x10000000
90
91/* The text segment always starts at a fixed address.
92 This way we don't need to have a label _start defined. */
93#define TEXT_START 0
94
95/* Taking a pointer to a char casting it as int pointer */
96/* and then taking the int which the int pointer points to */
97/* is practically guaranteed to give erroneous results */
98
99#define NEED_ERRNO
100
101#define SKTPAIR
102
103/* BSD has BSTRING. */
104
105#define BSTRING
106
107/* Special switches to give the C compiler. */
108
109#ifndef __GNUC__
110#define C_SWITCH_MACHINE -Dalloca=_Alloca
111#endif
112
113/* Don't attempt to relabel some of the data as text when dumping.
114 It does not work because their virtual addresses are not consecutive.
115 This enables us to use the standard crt0.o. */
116
117#define NO_REMAP
118
119/* Use the bitmap files that come with Emacs. */
120#define EMACS_BITMAP_FILES
121
122/* arch-tag: 89aa7e7d-593e-432c-966a-3db6aa2ad665
123 (do not change this comment) */
diff --git a/src/m/intel386.h b/src/m/intel386.h
index 22205ed762c..4ca09296f0f 100644
--- a/src/m/intel386.h
+++ b/src/m/intel386.h
@@ -25,15 +25,14 @@ Boston, MA 02110-1301, USA. */
25 USUAL-OPSYS="note" 25 USUAL-OPSYS="note"
26 26
27NOTE-START 27NOTE-START
28Intel 386 (-machine=intel386 or -machine=is386.h) 28Intel 386 (-machine=intel386)
29 29
30 The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3, 30 The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
31 isc2-2, 386-ix, esix, linux, sco3.2v4, and xenix. 31 isc2-2, 386-ix, and linux.
32 32
33 18.58 should support a wide variety of operating systems. 33 18.58 should support a wide variety of operating systems.
34 Use isc2-2 for Interactive 386/ix version 2.2. 34 Use isc2-2 for Interactive 386/ix version 2.2.
35 Use 386ix for prior versions. 35 Use 386ix for prior versions.
36 Use esix for Esix.
37 Use linux for Linux. 36 Use linux for Linux.
38 It isn't clear what to do on an SCO system. 37 It isn't clear what to do on an SCO system.
39 38
diff --git a/src/m/irist.h b/src/m/irist.h
deleted file mode 100644
index c0d55f96d0f..00000000000
--- a/src/m/irist.h
+++ /dev/null
@@ -1,136 +0,0 @@
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, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24/* The following line tells the configuration script what sort of
25 operating system this machine is likely to run.
26 USUAL-OPSYS="note"
27NOTE-START
28Version 18 said to work; use -opsystem=irist3-5 for system version 2.5
29and -opsystem=iris3-6 for system versions 3.6 and up.
30NOTE-END */
31
32#if 0
33 Message-Id: <8705050653.AA20004@orville.arpa>
34 Subject: gnu emacs 18.41 on iris [23].5 machines
35 Date: 04 May 87 23:53:11 PDT (Mon)
36 From: raible@orville.arpa
37
38 Aside from the SIGIOT, I know of only one bug, a real strange one:
39 I wrote a utimes interface, which copies elements from timevals
40 to utimbufs. This code is known good. The problem is that in
41 emacs, the utime doesn't seem to take effect (i.e. doesn't change the
42 dates at all) unless I call report_file_error *after* the utime returns!
43
44 if (utime (name, &utb) < 0)
45 return;
46 else
47 /* XXX XXX XXX */
48 /* For some reason, if this is taken out, then the utime above breaks! */
49 /* (i.e. it doesn't set the time. This just makes no sense... */
50 /* Eric - May 4, 1987 */
51 report_file_error ("Worked just find\n", Qnil);
52
53 Without any sort of debugger that works on emacs (I know... but I dont have
54 *time* right now to start with gdb), it was quite time consuming to track
55 it down to this.
56
57 But since this code is only used for an optional 4th argument to one command
58 (copy-file), it would say that it is non-critical...
59#endif /* 0 */
60
61/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
62 is the most significant byte. */
63
64#define WORDS_BIG_ENDIAN
65
66/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
67 * group of arguments and treat it as an array of the arguments. */
68
69/* #define NO_ARG_ARRAY */
70
71/* Define WORD_MACHINE if addresses and such have
72 * to be corrected before they can be used as byte counts. */
73
74/* #define WORD_MACHINE */
75
76/* Now define a symbol for the cpu type, if your compiler
77 does not define it automatically:
78 Ones defined so far include vax, m68000, ns16000, pyramid,
79 orion, tahoe, APOLLO and many others */
80
81#ifndef m68000
82#define m68000
83#endif
84
85/* Use type int rather than a union, to represent Lisp_Object */
86/* This is desirable for most machines. */
87
88#define NO_UNION_TYPE
89
90/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
91 the 24-bit bit field into an int. In other words, if bit fields
92 are always unsigned.
93
94 If you use NO_UNION_TYPE, this flag does not matter. */
95
96#define EXPLICIT_SIGN_EXTEND
97
98/* Data type of load average, as read out of kmem. */
99
100#define LOAD_AVE_TYPE long
101
102/* Convert that into an integer that is 100 for a load average of 1.0 */
103
104#define FSCALE 1.0
105#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
106
107/* Define CANNOT_DUMP on machines where unexec does not work.
108 Then the function dump-emacs will not be defined
109 and temacs will do (load "loadup") automatically unless told otherwise. */
110
111/* #define CANNOT_DUMP */
112
113/* Define VIRT_ADDR_VARIES if the virtual addresses of
114 pure and impure space as loaded can vary, and even their
115 relative order cannot be relied on.
116
117 Otherwise Emacs assumes that text space precedes data space,
118 numerically. */
119
120/* #define VIRT_ADDR_VARIES */
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/* There is an inconsistency between the sgi assembler, linker which barfs
130 on these. */
131
132#define internal_with_output_to_temp_buffer stupid_long_name1
133#define Finsert_abbrev_table_description stupid_long_name2
134
135/* arch-tag: 4076b26c-1fe6-4c28-94f3-3c863f074767
136 (do not change this comment) */
diff --git a/src/m/is386.h b/src/m/is386.h
deleted file mode 100644
index 5041db9a6c8..00000000000
--- a/src/m/is386.h
+++ /dev/null
@@ -1,29 +0,0 @@
1/* machine description file for Integrated Solutions 386 machine. */
2
3#include "intel386.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
9NOTE-START
10Intel 386 (-machine=intel386 or -machine=is386.h)
11
12 The possibilities for -opsystem are: bsd4-2, usg5-2-2, usg5-3,
13 isc2-2, 386-ix, esix, or xenix.
14
15 18.58 should support a wide variety of operating systems.
16 Use isc2-2 for Interactive 386/ix version 2.2.
17 Use 386ix for prior versions.
18 Use esix for Esix. It isn't clear what to do on an SCO system.
19
20 -machine=is386 is used for an Integrated Solutions 386 machine.
21 It may also be correct for Microport systems.
22NOTE-END */
23
24#define LIBX11_MACHINE -lnsl_s
25
26#define LIBS_DEBUG -lg
27
28/* arch-tag: b6b7e6ec-8b6c-440b-b9c8-961e4bebf0cf
29 (do not change this comment) */
diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h
deleted file mode 100644
index 6706ee9981b..00000000000
--- a/src/m/isi-ov.h
+++ /dev/null
@@ -1,96 +0,0 @@
1/* machine description file for ISI 68000's
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28Use `-opsystem=bsd4-2' or `-opsystem=bsd4-3'.
29NOTE-END */
30
31#define ISI68K
32
33/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
34 is the most significant byte. */
35
36#define WORDS_BIG_ENDIAN
37
38/* Say this machine is a 68000 */
39
40#define m68000
41
42/* Use type int rather than a union, to represent Lisp_Object */
43
44#define NO_UNION_TYPE
45
46/* XINT must explicitly sign-extend */
47
48#define EXPLICIT_SIGN_EXTEND
49
50/* Data type of load average, as read out of kmem. */
51
52#ifdef BSD4_3
53#define LOAD_AVE_TYPE long
54#else
55#define LOAD_AVE_TYPE double
56#endif BSD4_3
57
58/* Convert that into an integer that is 100 for a load average of 1.0 */
59
60#ifdef BSD4_3
61#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
62#else
63#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
64#endif
65
66/* Mask for address bits within a memory segment */
67
68#define SEGMENT_MASK 0x1ffff
69
70/* use the -20 switch to get the 68020 code */
71/* #define C_SWITCH_MACHINE -20 */
72
73/* Use the version of the library for the 68020
74 because the standard library requires some special hacks in crt0
75 which the GNU crt0 does not have. */
76
77#define LIB_STANDARD -lmc
78
79/* macros to make unexec work right */
80
81#define A_TEXT_OFFSET(HDR) sizeof(HDR)
82#define A_TEXT_SEEK(HDR) sizeof(HDR)
83
84/* A few changes for the newer systems. */
85
86#ifdef BSD4_3
87/* The following line affects crt0.c. */
88#undef m68k
89
90#undef LIB_STANDARD
91#define LIB_STANDARD -lmc -lc
92#define C_DEBUG_SWITCH -20 -O -X23
93#endif
94
95/* arch-tag: 3bfb5a11-d94e-4372-923b-9f47d0851f42
96 (do not change this comment) */
diff --git a/src/m/mega68.h b/src/m/mega68.h
deleted file mode 100644
index 0d22b572fc5..00000000000
--- a/src/m/mega68.h
+++ /dev/null
@@ -1,53 +0,0 @@
1/* machine description file for Megatest 68000's.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* XINT must explicitly sign-extend */
33
34#define EXPLICIT_SIGN_EXTEND
35
36/* Say this machine is a 68000 */
37
38#define m68000
39
40/* Use type int rather than a union, to represent Lisp_Object */
41
42#define NO_UNION_TYPE
43
44/* Data type of load average, as read out of kmem. */
45
46#define LOAD_AVE_TYPE double
47
48/* Convert that into an integer that is 100 for a load average of 1.0 */
49
50#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
51
52/* arch-tag: 61e6deb4-a93e-444b-bbd5-9887a83f1bbc
53 (do not change this comment) */
diff --git a/src/m/mg1.h b/src/m/mg1.h
deleted file mode 100644
index 515e9e23a96..00000000000
--- a/src/m/mg1.h
+++ /dev/null
@@ -1,107 +0,0 @@
1/* machine description file for Whitechapel Computer Works MG1 (ns16000 based).
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4 MG-1 version by L.M.McLoughlin
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24/* The following line tells the configuration script what sort of
25 operating system this machine is likely to run.
26 USUAL-OPSYS="note"
27
28NOTE-START
29We are in the dark about what operating system runs on the Whitechapel
30systems. Consult share-lib/MACHINES for information on which
31operating systems Emacs has already been ported to; one of them might
32work. If you find an existing system name that works or write your
33own configuration files, please let the Free Software Foundation in on
34your work; we'd like to distribute this information.
35NOTE-END */
36
37/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
38 is the most significant byte. */
39
40#undef WORDS_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/* ns16000 call sequence used on mg1 means that &arg = the args as an array */
45#undef 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/* ns16000 addresses are byte addresses */
50#undef WORD_MACHINE
51
52/* Now define a symbol for the cpu type, if your compiler
53 does not define it automatically:
54 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
55 are the ones defined so far. */
56/* Say this machine is a 16000 and an mg1, cpp says its a 32000 */
57#define ns16000
58#define mg1
59
60/* Use type int rather than a union, to represent Lisp_Object */
61/* This is desirable for most machines. */
62/* Not sure on mg-1 but this shouldn't hurt! */
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/* mg1 its an unsigned long */
75#define LOAD_AVE_TYPE unsigned long
76
77/* Convert that into an integer that is 100 for a load average of 1.0 */
78#define FSCALE 1000.0
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/* ns16000's have an unexec, so should the mg-1 */
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/* hmmmm... not sure. copied sequent.h */
94#undef VIRT_ADDR_VARIES
95
96/* Define NO_REMAP if memory segmentation makes it not work well
97 to change the boundary between the text section and data section
98 when Emacs is dumped. If you define this, the preloaded Lisp
99 code will not be sharable; but that's better than failing completely. */
100/* mapping seems screwy */
101#define NO_REMAP
102
103/* Avoids a compiler bug */
104/* borrowed from sequent.h */
105
106/* arch-tag: e15d9072-9e1a-44bf-8add-966be535967b
107 (do not change this comment) */
diff --git a/src/m/news-r6.h b/src/m/news-r6.h
deleted file mode 100644
index cf6e019fd05..00000000000
--- a/src/m/news-r6.h
+++ /dev/null
@@ -1,53 +0,0 @@
1/* news-risc6.h is for the "RISC News", OS version 6. */
2/* This is in the public domain. */
3
4/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
5 * group of arguments and treat it as an array of the arguments. */
6
7#define NO_ARG_ARRAY
8
9/* Use type int rather than a union, to represent Lisp_Object */
10/* This is desirable for most machines. */
11
12#define NO_UNION_TYPE
13
14/* Data type of load average, as read out of kmem. */
15
16#define LOAD_AVE_TYPE long
17
18/* Convert that into an integer that is 100 for a load average of 1.0 */
19
20#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0)
21
22/* Define NO_REMAP if memory segmentation makes it not work well
23 to change the boundary between the text section and data section
24 when Emacs is dumped. If you define this, the preloaded Lisp
25 code will not be sharable; but that's better than failing completely. */
26
27#define NO_REMAP
28
29/* Alter some of the options used when linking. */
30
31/*#define C_DEBUG_SWITCH -g*/
32#define C_DEBUG_SWITCH -O -Olimit 2000
33#ifdef __GNUC__
34#define LD_SWITCH_MACHINE -g -Xlinker -D -Xlinker 800000
35#else /* !__GNUC__ */
36/*#define LD_SWITCH_MACHINE -D 800000 -g*/
37#define LD_SWITCH_MACHINE -D 800000
38#endif /* !__GNUC__ */
39#define LIBS_MACHINE -lmld
40#define LIBS_TERMCAP -lcurses
41
42/* The standard definitions of these macros would work ok,
43 but these are faster because the constants are short. */
44
45#define XUINT(a) (((unsigned)(a) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
46
47#define XSET(var, type, ptr) \
48 ((var) = \
49 ((int)(type) << VALBITS) \
50 + (((unsigned) (ptr) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS)))
51
52/* arch-tag: b9fd7b75-ba3c-46d4-8966-24381b13001b
53 (do not change this comment) */
diff --git a/src/m/news-risc.h b/src/m/news-risc.h
deleted file mode 100644
index b7ea3dbceff..00000000000
--- a/src/m/news-risc.h
+++ /dev/null
@@ -1,83 +0,0 @@
1/* news-risc.h is for the "RISC News".
2
3 Copyright (C) 1992, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#include "mips.h"
25
26#ifdef NEWSOS5
27
28/* NEWS-OS 5.0.2 */
29
30#define LIBS_MACHINE -lmld
31
32#ifdef __GNUC__
33#define LD_SWITCH_MACHINE -g -Xlinker -D -Xlinker 800000
34#else
35#define C_DEBUG_SWITCH -g3
36#define C_OPTIMIZE_SWITCH -g3
37#define LD_SWITCH_MACHINE -g3 -D 800000 -non_shared
38#endif
39
40#else /* not NEWSOS5 */
41
42/* The following line tells the configuration script what sort of
43 operating system this machine is likely to run.
44 USUAL-OPSYS="bsd4-3" */
45
46#define COFF
47#undef LD_SWITCH_MACHINE
48#ifdef __GNUC__
49#define LD_SWITCH_MACHINE -Xlinker -x -Xlinker -D -Xlinker 800000
50#else
51#define LD_SWITCH_MACHINE -x -D 800000
52#endif
53
54/* #define C_OPTIMIZE_SWITCH -O2 */
55#define C_OPTIMIZE_SWITCH -O
56
57#ifndef __GNUC__
58#define C_DEBUG_SWITCH -g3
59#endif
60
61#undef TERMINFO
62
63/* We have no mode_t. */
64#define NO_MODE_T
65
66/* Don't use the definitions in m/mips.h. */
67#undef LINKER
68#define LINKER $(CC) -nostdlib
69#undef LIBS_MACHINE
70#define LIBS_MACHINE -lmld
71
72#undef KERNEL_FILE
73#define KERNEL_FILE "/vmunix"
74
75/* System's malloc, realloc, calloc and so on have bad prototypes,
76 using char * instead of void *, so tell gmalloc not to use the
77 prototypes. */
78#define BROKEN_PROTOTYPES
79
80#endif /* not NEWSOS5 */
81
82/* arch-tag: cf17300c-dd34-4b9d-a657-2de718469662
83 (do not change this comment) */
diff --git a/src/m/news.h b/src/m/news.h
deleted file mode 100644
index 084c5abb92c..00000000000
--- a/src/m/news.h
+++ /dev/null
@@ -1,65 +0,0 @@
1/* machine description file for Sony's NEWS workstations, NEWS-OS 3.0.
2 Copyright (C) 1985, 1986, 1989, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28Use -opsystem=bsd4-2, or -opsystem=bsd4-3 for system release 3.
29NOTE-END */
30
31/* Say this machine is a 68000 */
32
33#ifndef m68000
34#define m68000
35#endif
36
37/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
38 is the most significant byte. */
39
40#define WORDS_BIG_ENDIAN
41
42/* One CRT0 Dummy variable */
43
44#if 0 /* larry@mitra.com says Sony's as doesn't like this. */
45#define CRT0_DUMMIES one_dummy,
46#endif
47
48/* Use type int rather than a union, to represent Lisp_Object */
49
50#define NO_UNION_TYPE
51
52/* Data type of load average, as read out of kmem. */
53
54#define LOAD_AVE_TYPE double
55
56/* Convert that into an integer that is 100 for a load average of 1.0 */
57
58#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
59
60/* Must use the system's termcap. It does special things. */
61
62#define LIBS_TERMCAP -ltermcap
63
64/* arch-tag: 79bfd831-874a-4339-85fa-b8cbdc29bdab
65 (do not change this comment) */
diff --git a/src/m/nh3000.h b/src/m/nh3000.h
deleted file mode 100644
index e4a9817d57c..00000000000
--- a/src/m/nh3000.h
+++ /dev/null
@@ -1,109 +0,0 @@
1/* machine description for Harris Night Hawk Series 1200 and Series 3000
2 MC68030-based systems (FPP on these is custom). These systems are
3 also known as "ecx" and "gcx".
4 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
5 2006, 2007 Free Software Foundation, Inc.
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22Boston, MA 02110-1301, USA. */
23
24/* This file manually constructed for Harris Night Hawk 4000 (and 5000)
25 * series Motorola 88100 and 88110 based machines.
26 */
27
28/* The following line tells the configuration script what sort of
29 operating system this machine is likely to run.
30 USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40/* #define WORD_MACHINE */
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 Ones defined so far include vax, m68000, ns16000, pyramid,
45 orion, tahoe, APOLLO and many others */
46
47#ifndef gcx
48#define gcx
49#endif
50
51/* Use type int rather than a union, to represent Lisp_Object */
52/* This is desirable for most machines. */
53
54#define NO_UNION_TYPE
55
56/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
57 the 24-bit bit field into an int. In other words, if bit fields
58 are always unsigned.
59
60 If you use NO_UNION_TYPE, this flag does not matter. */
61
62/* #define EXPLICIT_SIGN_EXTEND */
63
64/* Data type of load average, as read out of kmem. */
65
66#define LOAD_AVE_TYPE long
67
68/* Convert that into an integer that is 100 for a load average of 1.0 */
69
70#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
71
72/* Define CANNOT_DUMP on machines where unexec does not work.
73 Then the function dump-emacs will not be defined
74 and temacs will do (load "loadup") automatically unless told otherwise. */
75
76/* #define CANNOT_DUMP */
77
78/* Define VIRT_ADDR_VARIES if the virtual addresses of
79 pure and impure space as loaded can vary, and even their
80 relative order cannot be relied on.
81
82 Otherwise Emacs assumes that text space precedes data space,
83 numerically. */
84
85/* #define VIRT_ADDR_VARIES */
86
87/* Define NO_REMAP if memory segmentation makes it not work well
88 to change the boundary between the text section and data section
89 when Emacs is dumped. If you define this, the preloaded Lisp
90 code will not be sharable; but that's better than failing completely. */
91
92#define NO_REMAP
93
94/* Some really obscure 4.2-based systems (like Sequent DYNIX)
95 * do not support asynchronous I/O (using SIGIO) on sockets,
96 * even though it works fine on tty's. If you have one of
97 * these systems, define the following, and then use it in
98 * config.h (or elsewhere) to decide when (not) to use SIGIO.
99 *
100 * You'd think this would go in an operating-system description file,
101 * but since it only occurs on some, but not all, BSD systems, the
102 * reasonable place to select for it is in the machine description
103 * file.
104 */
105
106/* #define NO_SOCK_SIGIO */
107
108/* arch-tag: 1529f2bc-50d9-42e7-ae72-6f40afadf09e
109 (do not change this comment) */
diff --git a/src/m/nh4000.h b/src/m/nh4000.h
deleted file mode 100644
index 20fadb71e43..00000000000
--- a/src/m/nh4000.h
+++ /dev/null
@@ -1,108 +0,0 @@
1/* machine description for Harris NightHawk 88k based machines
2 (includes nh4000 and nh5000 machines).
3 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
4 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23/* This file manually constructed for Harris Night Hawk 4000 (and 5000)
24 * series Motorola 88100 and 88110 based machines.
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="<name of system .h file here, without the s- or .h>" */
30
31/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
32 * group of arguments and treat it as an array of the arguments. */
33
34#define NO_ARG_ARRAY
35
36/* Define WORD_MACHINE if addresses and such have
37 * to be corrected before they can be used as byte counts. */
38
39/* #define WORD_MACHINE */
40
41/* Now define a symbol for the cpu type, if your compiler
42 does not define it automatically:
43 Ones defined so far include vax, m68000, ns16000, pyramid,
44 orion, tahoe, APOLLO and many others */
45
46#ifndef m88000
47#define m88000
48#endif
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/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
56 the bit field into an int. In other words, if bit fields
57 are always unsigned.
58
59 If you use NO_UNION_TYPE, this flag does not matter. */
60
61/* #define EXPLICIT_SIGN_EXTEND */
62
63/* Data type of load average, as read out of kmem. */
64
65#define LOAD_AVE_TYPE long
66
67/* Convert that into an integer that is 100 for a load average of 1.0 */
68
69#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
70
71/* Define CANNOT_DUMP on machines where unexec does not work.
72 Then the function dump-emacs will not be defined
73 and temacs will do (load "loadup") automatically unless told otherwise. */
74
75/* #define CANNOT_DUMP */
76
77/* Define VIRT_ADDR_VARIES if the virtual addresses of
78 pure and impure space as loaded can vary, and even their
79 relative order cannot be relied on.
80
81 Otherwise Emacs assumes that text space precedes data space,
82 numerically. */
83
84/* #define VIRT_ADDR_VARIES */
85
86/* Define NO_REMAP if memory segmentation makes it not work well
87 to change the boundary between the text section and data section
88 when Emacs is dumped. If you define this, the preloaded Lisp
89 code will not be sharable; but that's better than failing completely. */
90
91#define NO_REMAP
92
93/* Some really obscure 4.2-based systems (like Sequent DYNIX)
94 * do not support asynchronous I/O (using SIGIO) on sockets,
95 * even though it works fine on tty's. If you have one of
96 * these systems, define the following, and then use it in
97 * config.h (or elsewhere) to decide when (not) to use SIGIO.
98 *
99 * You'd think this would go in an operating-system description file,
100 * but since it only occurs on some, but not all, BSD systems, the
101 * reasonable place to select for it is in the machine description
102 * file.
103 */
104
105/* #define NO_SOCK_SIGIO */
106
107/* arch-tag: d9e12769-ae79-4c25-953f-70db5b7ef5dd
108 (do not change this comment) */
diff --git a/src/m/ns16000.h b/src/m/ns16000.h
deleted file mode 100644
index 6feddd97610..00000000000
--- a/src/m/ns16000.h
+++ /dev/null
@@ -1,95 +0,0 @@
1/* machine description file for ns16000.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28For the Encore, use `-opsystem=umax'.
29For a Tektronix 16000 box (a 6130, perhaps?), use `-opsystem=bsd4-2'.
30Use `-machine=ns16000' for both.
31NOTE-END */
32
33/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
34 is the most significant byte. */
35
36#undef WORDS_BIG_ENDIAN
37
38/* Say this machine is a 16000 */
39
40#define ns16000 1
41
42/* Use type int rather than a union, to represent Lisp_Object */
43
44#define NO_UNION_TYPE
45
46/* Data type of load average, as read out of kmem. */
47
48#ifndef USG
49#define LOAD_AVE_TYPE double
50#endif
51
52/* Convert that into an integer that is 100 for a load average of 1.0 */
53
54#ifndef USG
55#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
56#endif
57
58#ifdef USG
59
60/* Control assembler syntax used in alloca.s. */
61#define NS5
62
63/* On early NS systems ulimit was buggy. If set emacs uses this value
64 * for the maximum sbrk value instead of getting it from ulimit.
65 */
66#define ULIMIT_BREAK_VALUE 0x7E0000
67
68/* Early NS compilers have this bug. I believe it has been fixed in later
69 * releases.
70 */
71#define SHORT_CAST_BUG
72
73#define SEGMENT_MASK (NBPS - 1)
74
75/* Variables to get crt0.c to come out correctly */
76#define CRT0_DUMMIES bogus_fp,
77#define DOT_GLOBAL_START
78
79/* Control how emacsclient communicates. */
80#define HAVE_SYSVIPC
81
82/* Set this to /bin/mail unless you have a better mail posting program */
83#define MAIL_PROGRAM_NAME "/usr/local/bin/remail"
84
85/* Tell sysdep.c not to define bzero, etc. */
86#undef BSTRING
87#define BSTRING
88
89/* This avoids problems with uninitialized static variables going in .data. */
90#define static
91
92#endif /* USG */
93
94/* arch-tag: 4210db3c-e35c-4b96-9399-1dbde3e00a57
95 (do not change this comment) */
diff --git a/src/m/ns32000.h b/src/m/ns32000.h
deleted file mode 100644
index b6484b4b219..00000000000
--- a/src/m/ns32000.h
+++ /dev/null
@@ -1,102 +0,0 @@
1/* machine description file for National Semiconductor 32000, running Genix.
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
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" */
27
28/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
29 is the most significant byte. */
30
31#undef WORDS_BIG_ENDIAN
32
33/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
34 * group of arguments and treat it as an array of the arguments. */
35
36/* #define NO_ARG_ARRAY */
37
38/* Define WORD_MACHINE if addresses and such have
39 * to be corrected before they can be used as byte counts. */
40
41/* #define WORD_MACHINE */
42
43/* Now define a symbol for the cpu type, if your compiler
44 does not define it automatically:
45 Ones defined so far include vax, m68000, ns16000, pyramid,
46 orion, tahoe, APOLLO and many others */
47
48/* Use type int rather than a union, to represent Lisp_Object */
49/* This is desirable for most machines. */
50
51#define NO_UNION_TYPE
52
53/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
54 the 24-bit bit field into an int. In other words, if bit fields
55 are always unsigned.
56
57 If you use NO_UNION_TYPE, this flag does not matter. */
58
59#define EXPLICIT_SIGN_EXTEND
60
61/* Data type of load average, as read out of kmem. */
62
63/* #define LOAD_AVE_TYPE long */
64
65/* Convert that into an integer that is 100 for a load average of 1.0 */
66
67/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
68
69/* Define CANNOT_DUMP on machines where unexec does not work.
70 Then the function dump-emacs will not be defined
71 and temacs will do (load "loadup") automatically unless told otherwise. */
72
73/* #define CANNOT_DUMP */
74
75/* Define VIRT_ADDR_VARIES if the virtual addresses of
76 pure and impure space as loaded can vary, and even their
77 relative order cannot be relied on.
78
79 Otherwise Emacs assumes that text space precedes data space,
80 numerically. */
81
82/* #define VIRT_ADDR_VARIES */
83
84/* Define NO_REMAP if memory segmentation makes it not work well
85 to change the boundary between the text section and data section
86 when Emacs is dumped. If you define this, the preloaded Lisp
87 code will not be sharable; but that's better than failing completely. */
88
89/* #define NO_REMAP */
90
91#define TEXT_START 0
92
93#if !defined (__NetBSD__) && !defined (__OpenBSD__)
94#define EXEC_MAGIC 0410
95
96#define PURESIZE 140000
97
98#define START_FILES pre-crt0.o /lib/crt0.o
99#endif
100
101/* arch-tag: 13dde0e0-8ed5-4bc3-a0dc-5456c9db5f94
102 (do not change this comment) */
diff --git a/src/m/nu.h b/src/m/nu.h
deleted file mode 100644
index 279d14ff915..00000000000
--- a/src/m/nu.h
+++ /dev/null
@@ -1,75 +0,0 @@
1/* machine description file for TI Nu machines using system V.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* XINT must explicitly sign-extend */
33
34#define EXPLICIT_SIGN_EXTEND
35
36/* Use type int rather than a union, to represent Lisp_Object */
37
38#define NO_UNION_TYPE
39
40/* Now define a symbol for the cpu type, if your compiler
41 does not define it automatically:
42 vax, m68000, ns16000 are the ones defined so far. */
43
44#ifndef m68000
45#define m68000
46#endif
47
48#ifndef NU
49#define NU
50#endif
51
52/* Data type of load average, as read out of kmem. */
53/* These are commented out since it does not really work in uniplus */
54
55/* #define LOAD_AVE_TYPE long */
56
57/* Convert that into an integer that is 100 for a load average of 1.0 */
58
59/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
60
61/* Change some things to avoid bugs in compiler */
62
63#define SWITCH_ENUM_BUG 1
64
65/* The NU machine has a compiler that can handle long names. */
66
67#undef SHORTNAMES
68
69/* Specify alignment requirement for start of text and data sections
70 in the executable file. */
71
72#define SECTION_ALIGNMENT pagemask
73
74/* arch-tag: 7d2d9b6d-75d4-4c0d-96a9-a41f06212f35
75 (do not change this comment) */
diff --git a/src/m/orion.h b/src/m/orion.h
deleted file mode 100644
index cc3a7e395fc..00000000000
--- a/src/m/orion.h
+++ /dev/null
@@ -1,70 +0,0 @@
1/* machine description file for HLH Orion.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#undef WORDS_BIG_ENDIAN
31
32/* Now define a symbol for the cpu type, if your compiler
33 does not define it automatically. */
34
35#ifndef orion
36#define orion
37#endif
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/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */
55
56#define EXPLICIT_SIGN_EXTEND
57
58/* Data type of load average, as read out of kmem. */
59
60#define LOAD_AVE_TYPE double
61
62/* Convert that into an integer that is 100 for a load average of 1.0 */
63
64#ifndef FSCALE
65#define FSCALE 1.0
66#endif
67#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
68
69/* arch-tag: 4fcf38ad-d6b0-434b-bc10-16647d5a7fb6
70 (do not change this comment) */
diff --git a/src/m/orion105.h b/src/m/orion105.h
deleted file mode 100644
index fabcf67e2a9..00000000000
--- a/src/m/orion105.h
+++ /dev/null
@@ -1,72 +0,0 @@
1/* machine description file for HLH Orion 1/05 (Clipper).
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4 Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk>
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24/* The following line tells the configuration script what sort of
25 operating system this machine is likely to run.
26 USUAL-OPSYS="bsd4-2" */
27
28/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
29 is the most significant byte. */
30
31#undef WORDS_BIG_ENDIAN
32
33/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
34 * group of arguments and treat it as an array of the arguments. */
35
36#define NO_ARG_ARRAY
37
38/* Define WORD_MACHINE if addresses and such have
39 * to be corrected before they can be used as byte counts. */
40
41/* Use type int rather than a union, to represent Lisp_Object */
42/* This is desirable for most machines. */
43
44#define NO_UNION_TYPE
45
46/* Data type of load average, as read out of kmem. */
47/* This used to be `double'. */
48
49#define LOAD_AVE_TYPE long
50
51/* Convert that into an integer that is 100 for a load average of 1.0 */
52
53/* This used to be 1.0. */
54#ifndef FSCALE
55#define FSCALE 256
56#endif
57#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
58
59/* HLH have a SIGWINCH defined (but unimplemented) so we need a sigmask */
60#ifndef sigmask
61#define sigmask(m) (1 << ((m) - 1))
62#endif
63
64/* Here is where programs actually start running */
65#define TEXT_START 0x8000
66#define LD_TEXT_START_ADDR 8000
67
68/* Arguments to ignore before argc in crt0.c. */
69#define DUMMIES dummy1, dummy2,
70
71/* arch-tag: 32fed6e3-8cae-4882-b327-a68c2af6db7a
72 (do not change this comment) */
diff --git a/src/m/paragon.h b/src/m/paragon.h
deleted file mode 100644
index 11b98dea7ee..00000000000
--- a/src/m/paragon.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/* m/ file for Paragon i860 machine. */
2
3#include "i860.h"
4#define COFF
5#define SYSTEM_MALLOC
6#define TEXT_START 0x10000
7#define LIB_STANDARD -lc -lic -lmach
8#define KEEP_OLD_TEXT_SCNPTR
9#define KEEP_OLD_PADDR
10#define drem fmod
11
12/* arch-tag: c1bc280c-25e5-4993-9b91-333c52ab3674
13 (do not change this comment) */
diff --git a/src/m/pfa50.h b/src/m/pfa50.h
deleted file mode 100644
index 5f98dc993c7..00000000000
--- a/src/m/pfa50.h
+++ /dev/null
@@ -1,93 +0,0 @@
1/* Machine description file for PFU A-series.
2 Copyright (C) 1988, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
24 is the most significant byte. */
25
26#define WORDS_BIG_ENDIAN
27
28/* Say this machine is a 68000 */
29
30#define m68000
31#define mc68000 1
32
33/* Use type int rather than a union, to represent Lisp_Object */
34
35#define NO_UNION_TYPE
36
37/* XINT must explicitly sign-extend */
38
39#define EXPLICIT_SIGN_EXTEND
40
41/* The symbol FIONREAD is defined, but the feature does not work. */
42
43#define BROKEN_FIONREAD
44
45/* Define NO_REMAP if memory segmentation makes it not work well
46 to change the boundary between the text section and data section
47 when Emacs is dumped. If you define this, the preloaded Lisp
48 code will not be sharable; but that's better than failing completely. */
49
50#define NO_REMAP
51
52/* Define TEXT_START_ADDR if your linker don't set execute point to _start.
53 If it needed, temacs always CORE-DUMP. */
54
55#define TEXT_START_ADDR __start
56
57/* Define START_FILES if your machine used _start.
58 */
59
60#define START_FILES crt0.o
61
62/* Define LD_SWITCH_MACHINE if your linker needs it.
63 */
64
65#define LD_SWITCH_MACHINE -e __start
66
67#if pfa50 || pfa70
68/* On A-50/60/70/80, data space has high order byte use. */
69#define DATA_SEG_BITS 0x60000000
70#endif /* pfa50, pfa70 */
71
72/* SX/A has alloca in the PW library. */
73
74#define LIB_STANDARD -lPW -lc
75
76/* SX/A uses terminfo and lib/curses */
77
78#define TERMINFO
79
80#define HAVE_PTYS
81#define HAVE_SOCKETS
82
83/* SX/A use SystemV style getdents/readdir. */
84
85/* SX/A does not have sigblock(2) */
86#define sigblock(mask) (0)
87
88#define NO_SIOCTL_H
89
90#define BROKEN_SIGIO
91
92/* arch-tag: f3a127d5-790b-4c78-b6be-837139fb12c4
93 (do not change this comment) */
diff --git a/src/m/plexus.h b/src/m/plexus.h
deleted file mode 100644
index 51961977904..00000000000
--- a/src/m/plexus.h
+++ /dev/null
@@ -1,109 +0,0 @@
1/* machine description file for the Plexus running System V.2.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
45 are the ones defined so far. */
46/* Plexus predefines m68 instead of m68000. */
47#define m68000 m68
48
49/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
55 the 24-bit bit field into an int. In other words, if bit fields
56 are always unsigned.
57
58 If you use NO_UNION_TYPE, this flag does not matter. */
59
60#undef EXPLICIT_SIGN_EXTEND
61
62/* Data type of load average, as read out of kmem. */
63
64#undef LOAD_AVE_TYPE
65
66/* Convert that into an integer that is 100 for a load average of 1.0 */
67
68#undef LOAD_AVE_CVT
69
70/* Define CANNOT_DUMP on machines where unexec does not work.
71 Then the function dump-emacs will not be defined
72 and temacs will do (load "loadup") automatically unless told otherwise. */
73
74#undef CANNOT_DUMP
75
76/* Define VIRT_ADDR_VARIES if the virtual addresses of
77 pure and impure space as loaded can vary, and even their
78 relative order cannot be relied on.
79
80 Otherwise Emacs assumes that text space precedes data space,
81 numerically. */
82
83#undef VIRT_ADDR_VARIES
84
85/* Define NO_REMAP if memory segmentation makes it not work well
86 to change the boundary between the text section and data section
87 when Emacs is dumped. If you define this, the preloaded Lisp
88 code will not be sharable; but that's better than failing completely. */
89
90#undef NO_REMAP
91
92/* Use the following on ld so we can use the gnu crt0
93 The plexus ld looks for start */
94#define LD_SWITCH_MACHINE -e __start
95
96/* Use the PW library, which contains alloca. */
97
98#define LIB_STANDARD -lPW -lc
99
100/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
101
102#define CRT0_DUMMIES zero1, zero2,
103
104/* This triggers some stuff to avoid a compiler bug */
105
106#define TAHOE_REGISTER_BUG
107
108/* arch-tag: 78c607eb-b4f8-4750-b575-39670d979448
109 (do not change this comment) */
diff --git a/src/m/pyramid.h b/src/m/pyramid.h
deleted file mode 100644
index 1b834c60ba0..00000000000
--- a/src/m/pyramid.h
+++ /dev/null
@@ -1,67 +0,0 @@
1/* machine description file for pyramid.
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#ifdef __GNUC__
36#define NO_ARG_ARRAY
37#endif
38
39/* XINT must explicitly sign extend */
40
41#define EXPLICIT_SIGN_EXTEND
42
43/* pyramid preprocessor defines "pyr", however the following is clearer */
44#define pyramid
45
46/* Don't use the union types any more. They were used until Emacs 17.45. */
47
48#define NO_UNION_TYPE
49
50/* Data type of load average, as read out of kmem. */
51
52#define LOAD_AVE_TYPE double
53
54/* Convert that into an integer that is 100 for a load average of 1.0 */
55
56#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
57
58/* Don't use the ordinary -g for debugging in cc */
59
60#define C_DEBUG_SWITCH -gx
61
62/* Reenable this #define for old versions of the Pyramid system. */
63
64/* #define PYRAMID_OLD */
65
66/* arch-tag: b9097bc9-92be-46d4-acb1-13c2b966d581
67 (do not change this comment) */
diff --git a/src/m/pyrmips.h b/src/m/pyrmips.h
deleted file mode 100644
index 67705fb6619..00000000000
--- a/src/m/pyrmips.h
+++ /dev/null
@@ -1,10 +0,0 @@
1/* Configuration file for the Pyramid machine that uses the MIPS cpu. */
2/* This does not fully work. */
3
4#include "m-pyramid.h"
5
6#define SYSTEM_MALLOC
7#define CANNOT_DUMP
8
9/* arch-tag: 82559148-25a8-466d-bbb3-f903f7666b7a
10 (do not change this comment) */
diff --git a/src/m/sh3el.h b/src/m/sh3el.h
deleted file mode 100644
index 77f6dc12c23..00000000000
--- a/src/m/sh3el.h
+++ /dev/null
@@ -1,106 +0,0 @@
1/* machine description file for sh3el
2 Copyright (C) 1985, 1986, 2006, 2007 Free Software Foundation, Inc.
3
4This file is part of GNU Emacs.
5
6GNU Emacs is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Emacs; see the file COPYING. If not, write to
18the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19Boston, MA 02111-1307, 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="<name of system .h file here, without the s- or .h>" */
25
26/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
27 is the most significant byte. */
28
29#undef WORDS_BIG_ENDIAN
30
31/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
32 * group of arguments and treat it as an array of the arguments. */
33
34#define NO_ARG_ARRAY
35
36/* Define WORD_MACHINE if addresses and such have
37 * to be corrected before they can be used as byte counts. */
38
39#undef WORD_MACHINE
40
41/* Now define a symbol for the cpu type, if your compiler
42 does not define it automatically:
43 Ones defined so far include vax, m68000, ns16000, pyramid,
44 orion, tahoe, APOLLO and many others */
45
46/* Use type int rather than a union, to represent Lisp_Object */
47/* This is desirable for most machines. */
48
49#define NO_UNION_TYPE
50
51/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
52 the 24-bit bit field into an int. In other words, if bit fields
53 are always unsigned.
54
55 If you use NO_UNION_TYPE, this flag does not matter. */
56
57#define EXPLICIT_SIGN_EXTEND
58
59/* Data type of load average, as read out of kmem. */
60
61#define LOAD_AVE_TYPE long
62
63/* Convert that into an integer that is 100 for a load average of 1.0 */
64
65#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
66
67/* Define CANNOT_DUMP on machines where unexec does not work.
68 Then the function dump-emacs will not be defined
69 and temacs will do (load "loadup") automatically unless told otherwise. */
70
71#undef CANNOT_DUMP
72
73/* Define VIRT_ADDR_VARIES if the virtual addresses of
74 pure and impure space as loaded can vary, and even their
75 relative order cannot be relied on.
76
77 Otherwise Emacs assumes that text space precedes data space,
78 numerically. */
79
80#define VIRT_ADDR_VARIES
81
82/* Define HAVE_ALLOCA to say that the system provides a properly
83 working alloca function and it should be used.
84 Undefine it if an assembler-language alloca
85 in the file alloca.s should be used. */
86
87#define HAVE_ALLOCA
88
89/* Define NO_REMAP if memory segmentation makes it not work well
90 to change the boundary between the text section and data section
91 when Emacs is dumped. If you define this, the preloaded Lisp
92 code will not be sharable; but that's better than failing completely. */
93
94#define NO_REMAP
95
96/* After adding support for a new system, modify the large case
97 statement in the `configure' script to recognize reasonable
98 configuration names, and add a description of the system to
99 `etc/MACHINES'.
100
101 If you've just fixed a problem in an existing configuration file,
102 you should also check `etc/MACHINES' to make sure its descriptions
103 of known problems in that configuration should be updated. */
104
105/* arch-tag: ee325990-6f40-47a2-b9df-60ecf3599899
106 (do not change this comment) */
diff --git a/src/m/sps7.h b/src/m/sps7.h
deleted file mode 100644
index 67fc60c1b6a..00000000000
--- a/src/m/sps7.h
+++ /dev/null
@@ -1,118 +0,0 @@
1/* machine description file for Bull SPS-7.
2 Copyright (C) 1986, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Say this machine is a 68000 */
33
34#ifndef m68000
35#define m68000
36#endif
37
38#define sps7
39
40/* Use type int rather than a union, to represent Lisp_Object */
41
42#define NO_UNION_TYPE
43
44/* XINT must explicitly sign-extend */
45
46#define EXPLICIT_SIGN_EXTEND
47
48/* Data type of load average, as read out of kmem. */
49/* Suspect there is something weird about this machine, so turn it off. */
50
51/* #define LOAD_AVE_TYPE long */
52
53/* Convert that into an integer that is 100 for a load average of 1.0 */
54
55/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) */
56
57#define SMX
58#define V3x
59
60/*
61 * Define HAVE_PTYS if the system supports pty devices.
62 */
63
64#define HAVE_PTYS
65
66/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
67
68#define HAVE_SOCKETS
69
70/* Have the socketpair call
71*/
72
73#define SKTPAIR
74
75/* Define CLASH_DETECTION if you want lock files to be written
76 so that Emacs can tell instantly when you try to modify
77 a file that someone else has modified in his Emacs. */
78
79#define CLASH_DETECTION
80
81/* Use Berkeley style interface to nlist */
82
83#define NLIST_STRUCT
84
85/* Define this to cause -N to be passed to ld. This is needed
86 * in uniplus because of its funny memory space layout.
87 * SMX--If you are using 32 bit (COFF) use "-N", else don't use anything.
88 */
89
90#define LD_SWITCH_MACHINE -N -T32 -e __start
91
92/* If you are compiling for a 68020, then use -lc32 else use -lc */
93
94#define LIB_STANDARD -lc32
95
96/* Fore 16 bit, -linet, for 32 bit -linet32 (be sure you have it!). */
97
98#define LIBS_MACHINE -linet32
99
100/* Use -T32 for 68020, -T16 otherwise */
101
102#define C_SWITCH_MACHINE -T32
103
104#define BROKEN_SIGIO
105
106/* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */
107
108#define ASS as32
109
110#ifdef V3x
111#define EXEC_MAGIC 0x10b
112#define SEGMENT_MASK (NBPS-1)
113#define ADJUST_EXEC_HEADER f_hdr.f_magic = SMROMAGIC;\
114 f_ohdr.stsize = 0;
115#endif
116
117/* arch-tag: 2240f71c-6f3b-4a82-80fc-4d56c682d7ad
118 (do not change this comment) */
diff --git a/src/m/sr2k.h b/src/m/sr2k.h
deleted file mode 100644
index 6c17795e058..00000000000
--- a/src/m/sr2k.h
+++ /dev/null
@@ -1,160 +0,0 @@
1/* machine description file for Hitachi SR2001/SR2201 machines.
2 Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="hpux" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#define NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 Ones defined so far include vax, m68000, ns16000, pyramid,
45 orion, tahoe, APOLLO and many others */
46#ifndef hp9000s800
47# define hp9000s800
48#endif
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/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
56 the bit field into an int. In other words, if bit fields
57 are always unsigned.
58
59 If you use NO_UNION_TYPE, this flag does not matter. */
60
61#define EXPLICIT_SIGN_EXTEND
62
63/* The standard definitions of these macros would work ok,
64 but these are faster because the constants are short. */
65
66
67#define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
68
69#define XSET(var, type, ptr) \
70 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
71
72/* #ifdef __hpux */
73/* Now define a symbol for the cpu type, if your compiler
74 does not define it automatically:
75 Ones defined so far include vax, m68000, ns16000, pyramid,
76 orion, tahoe, APOLLO and many others */
77
78#ifndef hp9000s800
79# define hp9000s800
80#endif
81
82
83/* Data type of load average, as read out of kmem. */
84
85#define LOAD_AVE_TYPE double
86
87/* Convert that into an integer that is 100 for a load average of 1.0 */
88
89#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
90
91
92/* Define CANNOT_DUMP on machines where unexec does not work.
93 Then the function dump-emacs will not be defined
94 and temacs will do (load "loadup") automatically unless told otherwise. */
95
96#undef CANNOT_DUMP
97
98/* Define VIRT_ADDR_VARIES if the virtual addresses of
99 pure and impure space as loaded can vary, and even their
100 relative order cannot be relied on.
101
102 Otherwise Emacs assumes that text space precedes data space,
103 numerically. */
104
105#define VIRT_ADDR_VARIES
106
107/* the data segment on this machine always starts at address 0x40000000. */
108
109#define DATA_SEG_BITS 0x40000000
110
111#define DATA_START 0x40000000
112#define TEXT_START 0x00000000
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
119#define NO_REMAP
120
121/* This machine requires completely different unexec code
122 which lives in a separate file. Specify the file name. */
123
124#define UNEXEC unexhp9k800.o
125
126#define LIBS_MACHINE
127#define LIBS_DEBUG
128
129/* Include the file bsdtty.h, since this machine has job control. */
130/* #define NEED_BSDTTY */
131
132/* The symbol in the kernel where the load average is found
133 is named _avenrun. At this time there are two major flavors
134 of hp-ux (there is the s800 and s300 (s200) flavors). The
135 differences are thusly moved to the corresponding machine description file.
136*/
137
138/* no underscore please */
139#define LDAV_SYMBOL "avenrun"
140
141#if 0 /* Supposedly no longer true. */
142/* In hpux, for unknown reasons, S_IFLNK is defined even though
143 symbolic links do not exist.
144 Make sure our conditionals based on S_IFLNK are not confused.
145
146 Here we assume that stat.h is included before config.h
147 so that we can override it here. */
148
149#undef S_IFLNK
150#endif
151
152/* On USG systems these have different names. */
153
154#define index strchr
155#define rindex strrchr
156
157/* #endif */
158
159/* arch-tag: 4ced5b51-ffe6-4be1-9954-eb40657023a5
160 (do not change this comment) */
diff --git a/src/m/stride.h b/src/m/stride.h
deleted file mode 100644
index d846a6c9843..00000000000
--- a/src/m/stride.h
+++ /dev/null
@@ -1,121 +0,0 @@
1/* Definitions file for GNU Emacs running on Stride Micro System-V.2.2
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE
45 are the ones defined so far. */
46
47#define m68000 /* because the SGS compiler defines "m68k" */
48#ifndef STRIDE
49#define STRIDE
50#endif
51
52/* Use type int rather than a union, to represent Lisp_Object */
53/* This is desirable for most machines. */
54
55#define NO_UNION_TYPE
56
57/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
58 the 24-bit bit field into an int. In other words, if bit fields
59 are always unsigned.
60
61 If you use NO_UNION_TYPE, this flag does not matter. */
62
63#define EXPLICIT_SIGN_EXTEND
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/* Define CANNOT_DUMP on machines where unexec does not work.
74 Then the function dump-emacs will not be defined
75 and temacs will do (load "loadup") automatically unless told otherwise. */
76
77#undef CANNOT_DUMP
78
79/* Define VIRT_ADDR_VARIES if the virtual addresses of
80 pure and impure space as loaded can vary, and even their
81 relative order cannot be relied on.
82
83 Otherwise Emacs assumes that text space precedes data space,
84 numerically. */
85
86#undef VIRT_ADDR_VARIES
87
88/* The STRIDE system is more powerful than standard USG5. */
89
90#define HAVE_PTYS
91#define BSTRING
92#define SKTPAIR
93#define HAVE_SOCKETS
94
95#define MAIL_USE_FLOCK
96#undef TERMINFO
97#define EXEC_MAGIC 0413
98
99/* USG wins again: Foo! I can't get SIGIO to work properly on the Stride, because I'm
100 running a System V variant, and don't have a reliable way to block SIGIO
101 signals without losing them. So, I've gone back to non-SIGIO mode, so
102 please append this line to the file "stride.h":
103 */
104#define BROKEN_SIGIO
105
106/* Specify alignment requirement for start of text and data sections
107 in the executable file. */
108
109#define SECTION_ALIGNMENT (getpagesize() - 1)
110
111/*
112 * UniStride has this in /lib/libc.a.
113 */
114#undef NONSYSTEM_DIR_LIBRARY
115
116/* Define this macro if system defines a type `union wait'. */
117
118#define HAVE_UNION_WAIT
119
120/* arch-tag: 65c635ed-5bc7-4ace-ab20-f3442429c8ba
121 (do not change this comment) */
diff --git a/src/m/sun1.h b/src/m/sun1.h
deleted file mode 100644
index 03cb4e803ff..00000000000
--- a/src/m/sun1.h
+++ /dev/null
@@ -1,80 +0,0 @@
1/* machine description file for Sun 68000's
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28Sun 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.
41NOTE-END */
42
43/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
44 is the most significant byte. */
45
46#define WORDS_BIG_ENDIAN
47
48/* Say this machine is a 68000 */
49
50#define m68000
51
52/* Use type int rather than a union, to represent Lisp_Object */
53
54#define NO_UNION_TYPE
55
56/* Sun can't write competent compilers */
57#define COMPILER_REGISTER_BUG
58
59/* XINT must explicitly sign-extend */
60
61#define EXPLICIT_SIGN_EXTEND
62
63/* Data type of load average, as read out of kmem. */
64
65#define LOAD_AVE_TYPE long
66
67/* Convert that into an integer that is 100 for a load average of 1.0 */
68
69#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
70
71/* Must use the system's termcap. It does special things. */
72
73#define LIBS_TERMCAP -ltermcap
74
75/* Mask for address bits within a memory segment */
76
77#define SEGMENT_MASK (SEGSIZ - 1)
78
79/* arch-tag: 58ec9c79-48bd-4d1b-aad1-65a09a6b0d10
80 (do not change this comment) */
diff --git a/src/m/sun2.h b/src/m/sun2.h
deleted file mode 100644
index a872bf6f3bb..00000000000
--- a/src/m/sun2.h
+++ /dev/null
@@ -1,89 +0,0 @@
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, 2001, 2002, 2003, 2004,
5 2005, 2006, 2007 Free Software Foundation, Inc.
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22Boston, MA 02110-1301, USA. */
23
24
25/* The following line tells the configuration script what sort of
26 operating system this machine is likely to run.
27 USUAL-OPSYS="note"
28
29NOTE-START
30Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
31 -opsystem=bsd4-2 or -opsystem=sunos4)
32
33 Whether you should use sun1, sun2 or sun3 depends on the
34 VERSION OF THE OPERATING SYSTEM
35 you have. There are three machine types for different versions of
36 SunOS. All are derived from Berkeley 4.2, meaning that you should
37 use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will
38 need to use sun3 on Sun 2's running SunOS release 3.
39
40 For SunOS release 4 on a Sun 3, use -machine=sun3 and
41 -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve
42 problems caused by bugs in the "export" version of SunOS 4.
43NOTE-END */
44
45/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
46 is the most significant byte. */
47
48#define WORDS_BIG_ENDIAN
49
50/* Say this machine is a 68000 */
51
52#ifndef m68000
53#define m68000
54#endif
55
56/* Use type int rather than a union, to represent Lisp_Object */
57
58#define NO_UNION_TYPE
59
60/* Sun can't write competent compilers */
61#define COMPILER_REGISTER_BUG
62
63/* XINT must explicitly sign-extend */
64
65#define EXPLICIT_SIGN_EXTEND
66
67/* Data type of load average, as read out of kmem. */
68
69#define LOAD_AVE_TYPE long
70
71/* Convert that into an integer that is 100 for a load average of 1.0 */
72
73#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
74
75/* Say that this is a Sun 2; must check for and maybe reinitialize
76 the "sky" board. */
77
78#define sun2
79
80/* Must use the system's termcap. It does special things. */
81
82#define LIBS_TERMCAP -ltermcap
83
84/* Mask for address bits within a memory segment */
85
86#define SEGMENT_MASK (SEGSIZ - 1)
87
88/* arch-tag: 543c3570-74ca-4099-aa47-db7c7b691c8e
89 (do not change this comment) */
diff --git a/src/m/sun3-68881.h b/src/m/sun3-68881.h
deleted file mode 100644
index 33b9c2bd527..00000000000
--- a/src/m/sun3-68881.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/* sun3-68881.h, for a Sun 3, using the 68881. */
2
3#include "sun3.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
9NOTE-START
10Sun with 68881 co-processor (-machine=sun3-68881;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 For SunOS release 4 on a Sun 3 with a 68881, use -machine=sun3-68881
17 and -opsystem=sunos4. See the file share-lib/SUNBUG for how to
18 solve problems caused by bugs in the "export" version of SunOS 4.
19NOTE-END */
20
21/* In case we are using floating point, work together with crt0.c. */
22
23#ifndef __GNUC__
24#define C_SWITCH_MACHINE -f68881
25#endif
26
27#define sun_68881
28#define START_FILES crt0.o /usr/lib/Mcrt1.o
29
30/* arch-tag: f8659e89-5f5e-4921-940c-814a5786b901
31 (do not change this comment) */
diff --git a/src/m/sun3-fpa.h b/src/m/sun3-fpa.h
deleted file mode 100644
index b78adaf7378..00000000000
--- a/src/m/sun3-fpa.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/* sun3-fpa.h, for a Sun 3, using the Sun fpa. */
2
3#include "sun3.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
9NOTE-START
10Sun with FPA co-processor (-machine=sun3-fpa;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 For SunOS release 4 on a Sun 3 with an FPA, use -machine=sun3-fpa
17 and -opsystem=sunos4. See the file share-lib/SUNBUG for how to
18 solve problems caused by bugs in the "export" version of SunOS 4.
19NOTE-END */
20
21/* In case we are using floating point, work together with crt0.c. */
22
23#ifndef __GNUC__
24#define C_SWITCH_MACHINE -ffpa
25#endif
26
27#define sun_fpa
28#define START_FILES crt0.o /usr/lib/Wcrt1.o
29
30/* arch-tag: db287fbb-966f-4a70-a3f4-a6768c09326b
31 (do not change this comment) */
diff --git a/src/m/sun3-soft.h b/src/m/sun3-soft.h
deleted file mode 100644
index 32b2558c01b..00000000000
--- a/src/m/sun3-soft.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/* sun3-soft.h, for a Sun 3, using the Sun with software floating point. */
2
3#include "sun3.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
9NOTE-START
10Sun with software floating point (-machine=sun3-soft;
11 -opsystem=bsd4-2 or -opsystem=sunos4)
12
13 Versions 1, 2, and 3 of the operating system are derived from
14 Berkeley 4.2, meaning that you should use -opsystem=bsd4-2.
15
16 If you want to use software floating point on SunOS release 4 on a
17 Sun 3, use -machine=sun3-68881 and -opsystem=sunos4. See the file
18 share-lib/SUNBUG for how to solve problems caused by bugs in the
19 "export" version of SunOS 4.
20NOTE-END */
21
22/* In case we are using floating point, work together with crt0.c. */
23
24#ifndef __GNUC__
25#define C_SWITCH_MACHINE -fsoft
26#endif
27
28#define sun_soft
29#define START_FILES crt0.o /usr/lib/Fcrt1.o
30
31/* arch-tag: 76e9d7e6-66a8-4c4f-b0a5-335d082e5720
32 (do not change this comment) */
diff --git a/src/m/sun3.h b/src/m/sun3.h
deleted file mode 100644
index b2713703416..00000000000
--- a/src/m/sun3.h
+++ /dev/null
@@ -1,53 +0,0 @@
1/* machine description file for Sun 68000's OPERATING SYSTEM version 3
2 (for either 68000 or 68020 systems). */
3
4#include "sun2.h"
5#undef sun2
6#ifndef sun3
7#define sun3
8#endif
9
10/* The following line tells the configuration script what sort of
11 operating system this machine is likely to run.
12 USUAL-OPSYS="note"
13
14NOTE-START
15Sun 1, 2 and 3 (-machine=sun1, -machine=sun2, -machine=sun3;
16 -opsystem=bsd4-2 or -opsystem=sunos4)
17
18 Whether you should use sun1, sun2 or sun3 depends on the
19 VERSION OF THE OPERATING SYSTEM
20 you have. There are three machine types for different versions of
21 SunOS. All are derived from Berkeley 4.2, meaning that you should
22 use -opsystem=bsd4-2. Emacs 17 has run on all of them. You will
23 need to use sun3 on Sun 2's running SunOS release 3.
24
25 For SunOS release 4 on a Sun 3, use -machine=sun3 and
26 -opsystem=sunos4. See the file share-lib/SUNBUG for how to solve
27 problems caused by bugs in the "export" version of SunOS 4.
28NOTE-END */
29
30/* Say that the text segment of a.out includes the header;
31 the header actually occupies the first few bytes of the text segment
32 and is counted in hdr.a_text. */
33
34#define A_TEXT_OFFSET(HDR) sizeof (HDR)
35
36/* This is the offset of the executable's text, from the start of the file. */
37
38#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
39
40/* In case we are using floating point, work together with crt0.c. */
41
42#ifndef __GNUC__
43#define C_SWITCH_MACHINE -fsoft
44#endif
45
46/* This line is needed if you are linking with X windows
47 and the library xlib was compiled to use the 68881.
48 For maximum cleanliness, don't edit this file;
49 instead, insert this line in config.h. */
50/* #define START_FILES crt0.o /usr/lib/Mcrt1.o */
51
52/* arch-tag: d0559a79-2285-4a78-ad68-9694264d0d8a
53 (do not change this comment) */
diff --git a/src/m/sun386.h b/src/m/sun386.h
deleted file mode 100644
index ed98960c809..00000000000
--- a/src/m/sun386.h
+++ /dev/null
@@ -1,74 +0,0 @@
1/* machine description file for Sun's 386-based RoadRunner. This file borrows heavily from
2 "sun2.h", but since that file is heavily cpu-specific, it was easier
3 not to include it.
4
5 Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
6 2006, 2007 Free Software Foundation, Inc.
7
8This file is part of GNU Emacs.
9
10GNU Emacs is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 3, or (at your option)
13any later version.
14
15GNU Emacs is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with GNU Emacs; see the file COPYING. If not, write to
22the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23Boston, MA 02110-1301, USA. */
24
25/* The following line tells the configuration script what sort of
26 operating system this machine is likely to run.
27 USUAL-OPSYS="note"
28
29NOTE-START
30 Use s-sunos4-0.h for operating system version 4.0, and s-sunos4-1.h
31 for later versions. See the file share-lib/SUNBUG for how to solve
32 problems caused by bugs in the "export" version of SunOS 4.
33NOTE-END */
34
35/* Say this machine is a bird */
36#ifndef roadrunner
37#define roadrunner
38#endif
39
40/* Actual cpu-specific defs */
41#include "intel386.h"
42
43/* Data type of load average, as read out of kmem. */
44
45#define LOAD_AVE_TYPE long
46
47/* Convert that into an integer that is 100 for a load average of 1.0 */
48
49#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
50
51/* Underscores are not prepended to C symbols on this machine. */
52#undef LDAV_SYMBOL
53#define LDAV_SYMBOL "avenrun"
54
55/* Must use the system's termcap. It does special things. */
56
57#define LIBS_TERMCAP -ltermcap
58
59/* Roadrunner uses 'COFF' format */
60#define COFF
61
62#define C_SWITCH_MACHINE -Bstatic /* avoid dynamic linking */
63#define LD_SWITCH_MACHINE -n -Bstatic
64/* Get rid of the -e __start that s-sunos4.h does. */
65#undef LD_SWITCH_SYSTEM
66
67#ifdef USG
68/* USG detects Solaris. j.w.hawtin@lut.ac.uk says Solaris 2.1
69 on the 386 needs this. */
70#define LIBS_MACHINE -lkvm
71#endif
72
73/* arch-tag: 861af4b4-ce5f-475e-876e-ebff6436a1fe
74 (do not change this comment) */
diff --git a/src/m/symmetry.h b/src/m/symmetry.h
deleted file mode 100644
index ea3d9493504..00000000000
--- a/src/m/symmetry.h
+++ /dev/null
@@ -1,95 +0,0 @@
1/* machine description file for SEQUENT SYMMETRY machines
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988]
23 * Modified the sequent.h file for the Sequent Symmetry machine.
24 * Biggest change was to align the sections in the a.out to 4K
25 * boundaries (this is the page size).
26 */
27
28
29/* NOTICE: this file works for DYNIX release 3.0.12 on Sequent Symmetry
30 * (Intel 80386) machines. Hasn't been tested on anything else.
31 */
32
33/* The following line tells the configuration script what sort of
34 operating system this machine is likely to run.
35 USUAL-OPSYS="bsd4-3" */
36
37#include "intel386.h"
38
39/* Data type of load average, as read out of kmem. */
40
41#define LOAD_AVE_TYPE unsigned long
42
43/* Convert that into an integer that is 100 for a load average of 1.0 */
44
45#define FSCALE 1000.0
46#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
47
48/* Name of file the to look in
49 for the kernel symbol table (for load average) */
50
51#undef KERNEL_FILE
52#define KERNEL_FILE "/dynix"
53
54/* Avoids a compiler bug */
55
56#define TAHOE_REGISTER_BUG
57
58/* Say that the text segment of a.out includes the header;
59 the header actually occupies the first few bytes of the text segment
60 and is counted in hdr.a_text. Furthermore, the value written
61 in the a_text in the file must have N_ADDRADJ added to it. */
62
63#define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR))
64
65/* This is the offset of the executable's text, from the start of the file. */
66
67#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
68
69/* The file sections in the Symmetry a.out must be on 4K boundaries.
70 */
71#define SEGSIZ 4096
72#define SECTION_ALIGNMENT (SEGSIZ-1)
73
74/* (short) negative-int doesn't sign-extend correctly */
75#define SHORT_CAST_BUG
76
77/* Cause compilations to be done in parallel in ymakefile. */
78#define MAKE_PARALLEL &
79
80/* Define how to search all pty names.
81 This is for Dynix 3.0; delete next 5 definitions for older systems. */
82
83#define PTY_MAJOR "pqrstuvwPQRSTUVW"
84#define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
85#define PTY_ITERATION \
86 register int ma, mi; \
87 for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \
88 for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++)
89#define PTY_NAME_SPRINTF \
90 sprintf (pty_name, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
91#define PTY_TTY_NAME_SPRINTF \
92 sprintf (pty_name, "/dev/tty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
93
94/* arch-tag: 4169a89e-3764-4147-98df-1ba3bdd45a5b
95 (do not change this comment) */
diff --git a/src/m/tad68k.h b/src/m/tad68k.h
deleted file mode 100644
index c8be8763fb5..00000000000
--- a/src/m/tad68k.h
+++ /dev/null
@@ -1,115 +0,0 @@
1/* Machine-dependent configuration for GNU Emacs for Tadpole 68k machines
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35/* #define NO_ARG_ARRAY */
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40/* #define WORD_MACHINE */
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically */
44
45/* Use type int rather than a union, to represent Lisp_Object */
46/* This is desirable for most machines. */
47
48#define NO_UNION_TYPE
49
50/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
51 the 24-bit bit field into an int. In other words, if bit fields
52 are always unsigned.
53
54 If you use NO_UNION_TYPE, this flag does not matter. */
55
56/* #define EXPLICIT_SIGN_EXTEND */
57
58/* Data type of load average, as read out of kmem. */
59/* #define LOAD_AVE_TYPE long */
60
61/* Convert that into an integer that is 100 for a load average of 1.0 */
62
63/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
64
65/* Define CANNOT_DUMP on machines where unexec does not work.
66 Then the function dump-emacs will not be defined
67 and temacs will do (load "loadup") automatically unless told otherwise. */
68/* #define CANNOT_DUMP */
69
70/* Define VIRT_ADDR_VARIES if the virtual addresses of
71 pure and impure space as loaded can vary, and even their
72 relative order cannot be relied on.
73
74 Otherwise Emacs assumes that text space precedes data space,
75 numerically. */
76
77/* #define VIRT_ADDR_VARIES */ /* Karl Kleinpaste says this isn't needed. */
78
79/* SysV has alloca in the PW library */
80
81#define LIB_STANDARD -lPW -lc
82
83/* Define NO_REMAP if memory segmentation makes it not work well
84 to change the boundary between the text section and data section
85 when Emacs is dumped. If you define this, the preloaded Lisp
86 code will not be sharable; but that's better than failing completely. */
87
88/* #define NO_REMAP */
89
90/* Use Terminfo, not Termcap. */
91
92#define TERMINFO
93
94/* TPIX extras */
95
96#define TPIX /* used in various source files */
97#define BSTRING /* we do have the BSTRING functions */
98#define CLASH_DETECTION /* we want to know about clashes */
99#undef ADDR_CORRECT /* don't need this bug fix */
100#define fchmod /* we don't have fchmod() */
101#define SECTION_ALIGNMENT (2048-1) /* 2k boundaries required in unexec */
102#define SEGMENT_MASK (128*1024-1) /* 128k offsets required in unexec */
103#define C_DEBUG_SWITCH -O /* build with -O (TPIX has GCC 1.34) */
104
105#define BROKEN_TIOCGWINSZ /* Don't try to use TIOCGWINSZ. */
106
107/* omit next four lines if no TCP installed */
108
109#define select gnu_select /* avoid select() name clash */
110#define HAVE_PTYS /* we do have PTYs if we have TCP */
111#define HAVE_SOCKETS /* we do have sockets if we have TCP */
112#define LIBS_SYSTEM -lsocket /* get TCP networking functions */
113
114/* arch-tag: e0c09754-b0f2-48da-a8a5-aee3c94838f4
115 (do not change this comment) */
diff --git a/src/m/tahoe.h b/src/m/tahoe.h
deleted file mode 100644
index 9b9271577fc..00000000000
--- a/src/m/tahoe.h
+++ /dev/null
@@ -1,72 +0,0 @@
1/* machine description file for tahoe.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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
27NOTE-START
28Use -opsystem=bsd4-2 or -opsystem=bsd4-3, depending on the version of
29Berkeley you are running.
30NOTE-END */
31
32/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
33 is the most significant byte. */
34
35#define WORDS_BIG_ENDIAN
36
37/* XINT must explicitly sign-extend */
38
39#define EXPLICIT_SIGN_EXTEND
40
41/* Say this machine is a tahoe */
42
43#ifndef tahoe
44#define tahoe
45#endif /* not tahoe */
46
47/* Use type int rather than a union, to represent Lisp_Object */
48
49#define NO_UNION_TYPE
50
51/* crt0.c should use the vax-bsd style of entry, with no dummy args. */
52
53#define CRT0_DUMMIES
54
55/* crt0.c should define a symbol `start' and do .globl with a dot. */
56
57#define DOT_GLOBAL_START
58
59/* Data type of load average, as read out of kmem. */
60
61#define LOAD_AVE_TYPE double
62
63/* Convert that into an integer that is 100 for a load average of 1.0 */
64
65#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
66
67/* This triggers some stuff to avoid a compiler bug */
68
69#define TAHOE_REGISTER_BUG
70
71/* arch-tag: dd452693-80e1-413f-a164-0141eb68d831
72 (do not change this comment) */
diff --git a/src/m/targon31.h b/src/m/targon31.h
deleted file mode 100644
index 39e995b076d..00000000000
--- a/src/m/targon31.h
+++ /dev/null
@@ -1,98 +0,0 @@
1/* targon31 machine description file
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35/* #define NO_ARG_ARRAY */
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#define WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
45 are the ones defined so far. */
46
47/* #define m68k is defined by the Compiler */
48/* #define m68000 */
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/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
56 the 24-bit bit field into an int. In other words, if bit fields
57 are always unsigned.
58
59 If you use NO_UNION_TYPE, this flag does not matter. */
60
61#define EXPLICIT_SIGN_EXTEND
62
63/* Data type of load average, as read out of kmem. */
64
65/* #define LOAD_AVE_TYPE double */
66
67/* Convert that into an integer that is 100 for a load average of 1.0 */
68
69#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
70
71/* Define CANNOT_DUMP on machines where unexec does not work.
72 Then the function dump-emacs will not be defined
73 and temacs will do (load "loadup") automatically unless told otherwise. */
74
75/* #define CANNOT_DUMP */
76
77/* Define VIRT_ADDR_VARIES if the virtual addresses of
78 pure and impure space as loaded can vary, and even their
79 relative order cannot be relied on.
80
81 Otherwise Emacs assumes that text space precedes data space,
82 numerically. */
83
84/* #define VIRT_ADDR_VARIES */
85
86/* Define NO_REMAP if memory segmentation makes it not work well
87 to change the boundary between the text section and data section
88 when Emacs is dumped. If you define this, the preloaded Lisp
89 code will not be sharable; but that's better than failing completely. */
90
91/* #define NO_REMAP */
92/* Supposedly NO_REMAP is not needed with the following change. */
93#define SEGMENT_MASK 0xffff
94
95#define SWITCH_ENUM_BUG 1
96
97/* arch-tag: f2438018-7d4e-4be5-b368-4bf342b7785b
98 (do not change this comment) */
diff --git a/src/m/tek4300.h b/src/m/tek4300.h
deleted file mode 100644
index 6498238461d..00000000000
--- a/src/m/tek4300.h
+++ /dev/null
@@ -1,105 +0,0 @@
1/* machine description file for tek4300.
2 Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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="bsd4-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically. */
44
45#ifndef tek4300
46#define tek4300
47#endif
48
49/* Use type int rather than a union, to represent Lisp_Object */
50
51#define NO_UNION_TYPE
52
53/* Data type of load average, as read out of kmem. */
54
55#define LOAD_AVE_TYPE long
56
57/* Convert that into an integer that is 100 for a load average of 1.0 */
58
59#define LOAD_AVE_CVT(x) (x)
60
61/* Define NO_REMAP if memory segmentation makes it not work well
62 to change the boundary between the text section and data section
63 when Emacs is dumped. If you define this, the preloaded Lisp
64 code will not be sharable; but that's better than failing completely. */
65
66#define NO_REMAP
67
68/* setjmp and longjmp can safely replace _setjmp and _longjmp, */
69
70#define _longjmp longjmp
71#define _setjmp setjmp
72
73/* The text segment always starts at a fixed address.
74 This way we don't need to have a label _start defined. */
75
76#define TEXT_START 0
77
78/* The Tektronix exec struct for ZMAGIC files is struct zexec */
79
80#define EXEC_HDR_TYPE struct zexec
81
82/* The entry-point label (start of text segment) is `start', not `__start'. */
83
84#define DEFAULT_ENTRY_ADDRESS start
85
86/* Use the system's malloc calls, gmalloc.c won't work for us. */
87
88#define SYSTEM_MALLOC
89
90/* In building xmakefile, "cc -E -g" forcibly reads from stdin. Since we
91 can't remove the CFLAGS from that "cc -E" invocation, make sure we
92 never pass -g. If you want to debug, remove the following, and fix
93 src/Makefile.in so it doesn't pass ${CFLAGS} when creating xmakefile. */
94
95#define C_DEBUG_SWITCH
96
97/* eirik@elf.ithaca.ny.us said this was needed in 19.22. */
98#define NO_MODE_T
99
100/* Process groups work in the traditional BSD manner. */
101
102#define BSD_PGRPS
103
104/* arch-tag: afa06e53-094c-4a19-9219-155f8ba4bbcc
105 (do not change this comment) */
diff --git a/src/m/tekxd88.h b/src/m/tekxd88.h
deleted file mode 100644
index f351229292f..00000000000
--- a/src/m/tekxd88.h
+++ /dev/null
@@ -1,117 +0,0 @@
1/* Configuration file for the Tektronix XD88 running UTekV 3.2e,
2 contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 1/15/93.
3 You probably need to use gnu make (version 3.63 or higher.)
4 Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
5 2006, 2007 Free Software Foundation, Inc.
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22Boston, MA 02110-1301, USA. */
23
24
25/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
26 is the most significant byte. */
27
28#define WORDS_BIG_ENDIAN
29
30/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
31 * group of arguments and treat it as an array of the arguments. */
32#define NO_ARG_ARRAY
33
34/* Define WORD_MACHINE if addresses and such have
35 * to be corrected before they can be used as byte counts. */
36/* #define WORD_MACHINE */
37
38/* Now define a symbol for the cpu type, if your compiler
39 does not define it automatically:
40 Ones defined so far include vax, m68000, ns16000, pyramid,
41 orion, tahoe, APOLLO and many others */
42#ifndef m88000 /* Some 88k C compilers already define this */
43#define m88000
44#endif
45
46/* Define how to take a char and sign-extend into an int.
47 On machines where char is signed, this is a no-op. */
48#define SIGN_EXTEND_CHAR(c) (c)
49
50/* Use type int rather than a union, to represent Lisp_Object */
51/* This is desirable for most machines. */
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
55 the 24-bit bit field into an int. In other words, if bit fields
56 are always unsigned.
57
58 If you use NO_UNION_TYPE, this flag does not matter. */
59/* #define EXPLICIT_SIGN_EXTEND */
60
61/* Data type of load average, as read out of kmem. */
62/* #define LOAD_AVE_TYPE double */ /* No load average on XD88. */
63/* Convert that into an integer that is 100 for a load average of 1.0 */
64/* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */
65
66/* Define CANNOT_DUMP on machines where unexec does not work.
67 Then the function dump-emacs will not be defined
68 and temacs will do (load "loadup") automatically unless told otherwise. */
69/*#define CANNOT_DUMP*/
70
71/* Define VIRT_ADDR_VARIES if the virtual addresses of
72 pure and impure space as loaded can vary, and even their
73 relative order cannot be relied on.
74
75 Otherwise Emacs assumes that text space precedes data space,
76 numerically. */
77/* #define VIRT_ADDR_VARIES */
78
79/* Define NO_REMAP if memory segmentation makes it not work well
80 to change the boundary between the text section and data section
81 when Emacs is dumped. If you define this, the preloaded Lisp
82 code will not be sharable; but that's better than failing completely. */
83#define NO_REMAP
84
85#ifndef __GNUC__
86# define C_OPTIMIZE_SWITCH -O
87#endif /* __GNUC__ */
88
89#undef NOMULTIPLEJOBS /* we have job control */
90#define HAVE_SOCKETS /* sockets are available */
91#define BROKEN_FIONREAD /* is this needed ? */
92#define BSTRING /* its in libc but not declared in any header file. */
93#undef sigsetmask /* XD88 has sigsetmask() */
94
95#undef LIB_X11_LIB /* Don't use shared libraries defined in usg5-3.h */
96#undef LIBX11_SYSTEM
97
98#define HAVE_TERMIOS /* We have termios. */
99#undef HAVE_TERMIO /* Make sure termios ifdef code is used, not termio. */
100#define NO_TERMIO /* Don't include both termios.h and termio.h */
101#define HAVE_PTYS /* XD88 SysV has PTYs. */
102#define SYSV_PTYS /* Requires <termios.h> */
103
104#ifdef ghs /* Stands for "Green Hills Software", defined only in /bin/cc */
105/* -X18 means do not allocate programmer-defined local variables to a
106 register unless they are declared register. (Copied from perl-4.036
107 Green Hills C hints file. Might be needed for setjmp, I don't know.) */
108# define C_SWITCH_MACHINE -X18
109/* We need /lib/default.ld so that /bin/ld can read its link directives. */
110# define LD_SWITCH_SYSTEM /lib/default.ld
111#endif /* ghs */
112
113/* We need this to get dumping to work */
114#define KEEP_OLD_TEXT_SCNPTR
115
116/* arch-tag: fd3cebc3-2aed-4f8c-be9b-f37331c6e0ff
117 (do not change this comment) */
diff --git a/src/m/tower32.h b/src/m/tower32.h
deleted file mode 100644
index 01daada2423..00000000000
--- a/src/m/tower32.h
+++ /dev/null
@@ -1,115 +0,0 @@
1/* machine description file for the NCR Tower 32 running System V.2.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-2" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35/* #define NO_ARG_ARRAY */
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40/* #define WORD_MACHINE */
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
45 are the ones defined so far. */
46#define m68000
47
48/* Use type int rather than a union, to represent Lisp_Object */
49/* This is desirable for most machines. */
50
51#define NO_UNION_TYPE
52
53/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
54 the 24-bit bit field into an int. In other words, if bit fields
55 are always unsigned.
56
57 If you use NO_UNION_TYPE, this flag does not matter. */
58
59#define EXPLICIT_SIGN_EXTEND
60
61/* Data type of load average, as read out of kmem. */
62
63/* #define LOAD_AVE_TYPE long */
64
65/* Convert that into an integer that is 100 for a load average of 1.0 */
66
67/* #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) */
68
69/* Define CANNOT_DUMP on machines where unexec does not work.
70 Then the function dump-emacs will not be defined
71 and temacs will do (load "loadup") automatically unless told otherwise. */
72
73/* #define CANNOT_DUMP */
74
75/* Define VIRT_ADDR_VARIES if the virtual addresses of
76 pure and impure space as loaded can vary, and even their
77 relative order cannot be relied on.
78
79 Otherwise Emacs assumes that text space precedes data space,
80 numerically. */
81
82/* #define VIRT_ADDR_VARIES */
83
84/* Change some things to avoid bugs in compiler */
85
86#define SWITCH_ENUM_BUG 1
87
88/* The standard C library is -lcieee, not -lc.
89 Also use the PW library, which contains alloca. */
90
91#define LIB_STANDARD -lPW -lcieee
92
93/* crt0.c should use the vax-bsd style of entry. Beware that if you have
94 OS release 2.00.00 or later, *and* change src/ymakefile so that CFLAGS
95 includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH, you need to
96 uncomment CRT0_DUMMIES and C_OPTIMIZE_SWITCH below. */
97
98/* With the optimizer OFF */
99
100#define CRT0_DUMMIES zero, bogus_fp,
101
102/* With the optimizer ON */
103
104/* #define CRT0_DUMMIES */
105/* #define C_OPTIMIZE_SWITCH -O2 */
106
107/* emacs's magic number isn't temacs's;
108 temacs is writable text (the default!). */
109
110#include <asld.h>
111#define EXEC_MAGIC AOUT1MAGIC
112#define EXEC_PAGESIZE DATACLICK
113
114/* arch-tag: a08e7dea-d48e-44cc-b60d-c7f2e5187ff5
115 (do not change this comment) */
diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h
deleted file mode 100644
index ff209edab41..00000000000
--- a/src/m/tower32v3.h
+++ /dev/null
@@ -1,113 +0,0 @@
1/* machine description file for the NCR Tower 32 running System V.3.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
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-3" */
27
28/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
29 is the most significant byte. */
30
31#define WORDS_BIG_ENDIAN
32
33/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
34 * group of arguments and treat it as an array of the arguments. */
35
36/* #define NO_ARG_ARRAY */
37
38/* Define WORD_MACHINE if addresses and such have
39 * to be corrected before they can be used as byte counts. */
40
41/* #define WORD_MACHINE */
42
43/* Now define a symbol for the cpu type, if your compiler
44 does not define it automatically:
45 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
46 are the ones defined so far. */
47#define m68000
48
49/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
55 the bit field into an int. In other words, if bit fields
56 are always unsigned.
57
58 If you use NO_UNION_TYPE, this flag does not matter. */
59
60#define EXPLICIT_SIGN_EXTEND
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) (int) (((double) (x)) * 100.0 / FSCALE) */
69
70/* Define CANNOT_DUMP on machines where unexec does not work.
71 Then the function dump-emacs will not be defined
72 and temacs will do (load "loadup") automatically unless told otherwise. */
73
74/* #define CANNOT_DUMP */
75
76/* Define VIRT_ADDR_VARIES if the virtual addresses of
77 pure and impure space as loaded can vary, and even their
78 relative order cannot be relied on.
79
80 Otherwise Emacs assumes that text space precedes data space,
81 numerically. */
82
83/* #define VIRT_ADDR_VARIES */
84
85#ifdef __GNUC__
86#define C_OPTIMIZE_SWITCH -O -fstrength-reduce -fomit-frame-pointer
87#define LIB_STANDARD -lc /lib/crtn.o
88#else
89/* This section is correct if you do *not* change src/ymakefile so that
90 CFLAGS includes C_OPTIMIZE_SWITCH rather than C_DEBUG_SWITCH. */
91#define C_DEBUG_SWITCH -g -O0
92#define LIB_STANDARD -lc -lPW /lib/crtn.o
93/* This section is correct if you do enable C_OPTIMIZE_SWITCH. */
94/* #define C_OPTIMIZE_SWITCH -O2 */
95/* #define LIB_STANDARD -lc /lib/crtn.o */
96#endif
97
98/* The OS maps the data section far away from the text section. */
99#define NO_REMAP
100#define TEXT_START 0
101#undef static
102#define START_FILES pre-crt0.o /lib/crt1.o
103
104/* The OS has an implementation of symlinks that is semantically different
105 from BSD, but for some silly reason it partly has the same syntax. */
106#undef S_IFLNK
107
108/* The OS needs stream.h+ptem.h included in sysdep.c. */
109#define NO_SIOCTL_H
110#define NEED_PTEM_H
111
112/* arch-tag: 3dff1355-7cb6-49e3-8834-85a369e4ea8f
113 (do not change this comment) */
diff --git a/src/m/ustation.h b/src/m/ustation.h
deleted file mode 100644
index 0ac833c28da..00000000000
--- a/src/m/ustation.h
+++ /dev/null
@@ -1,132 +0,0 @@
1/* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30).
2 Copyright (C) 1986, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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-3" */
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
45 are the ones defined so far. */
46/* Masscomp predefines mc68000. */
47
48#define m68000 mc68000
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/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
56 the 24-bit bit field into an int. In other words, if bit fields
57 are always unsigned.
58
59 If you use NO_UNION_TYPE, this flag does not matter. */
60
61#undef EXPLICIT_SIGN_EXTEND
62
63/* Data type of load average, as read out of kmem. */
64
65#define LOAD_AVE_TYPE double
66
67/* Convert that into an integer that is 100 for a load average of 1.0 */
68
69#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
70
71/* Define CANNOT_DUMP on machines where unexec does not work.
72 Then the function dump-emacs will not be defined
73 and temacs will do (load "loadup") automatically unless told otherwise. */
74
75#undef CANNOT_DUMP
76
77/* Define VIRT_ADDR_VARIES if the virtual addresses of
78 pure and impure space as loaded can vary, and even their
79 relative order cannot be relied on.
80
81 Otherwise Emacs assumes that data space precedes text space,
82 numerically. */
83
84#undef VIRT_ADDR_VARIES
85
86/* Define NO_REMAP if memory segmentation makes it not work well
87 to change the boundary between the text section and data section
88 when Emacs is dumped. If you define this, the preloaded Lisp
89 code will not be sharable; but that's better than failing completely. */
90
91#undef NO_REMAP
92
93/* Name of file the to look in
94 for the kernel symbol table (for load average) */
95
96#define KERNEL_FILE "/unix"
97
98/* This triggers some stuff to avoid a compiler bug */
99
100#define MASSC_REGISTER_BUG
101
102/* Prevent -lg from being used for debugging. Not implemented? */
103
104#define LIBS_DEBUG
105
106/*
107 * Define HAVE_TERMIO if the system provides sysV-style ioctls
108 * for terminal control.
109 */
110
111#define HAVE_TERMIO
112
113/* -lnet is not standard library */
114
115#undef LIBS_SYSTEM
116
117/* Compiler's bug */
118
119#define SWITCH_ENUM_BUG
120
121/* Termcap is available */
122
123#define LIBS_TERMCAP -ltermcap
124
125#define EXEC_PAGESIZE 1024
126#define PURESIZE 130000
127
128#define BROKEN_SIGIO
129#define BROKEN_SIGTSTP
130
131/* arch-tag: 797f1d3e-3077-4eee-a81b-03fcf3a988fe
132 (do not change this comment) */
diff --git a/src/m/wicat.h b/src/m/wicat.h
deleted file mode 100644
index 3ac7b530739..00000000000
--- a/src/m/wicat.h
+++ /dev/null
@@ -1,137 +0,0 @@
1/* machine description file for WICAT machines.
2 Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30#define WORDS_BIG_ENDIAN
31
32/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
33 * group of arguments and treat it as an array of the arguments. */
34
35#undef NO_ARG_ARRAY
36
37/* Define WORD_MACHINE if addresses and such have
38 * to be corrected before they can be used as byte counts. */
39
40#undef WORD_MACHINE
41
42/* Now define a symbol for the cpu type, if your compiler
43 does not define it automatically:
44 vax, m68000, ns16000 are the ones defined so far. */
45
46#ifndef m68000
47#define m68000
48#endif
49
50/* This flag is used only in alloca.s. */
51#define WICAT
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#undef LOAD_AVE_TYPE
64
65/* Convert that into an integer that is 100 for a load average of 1.0 */
66
67#undef LOAD_AVE_CVT
68
69/* Define CANNOT_DUMP on machines where unexec does not work.
70 Then the function dump-emacs will not be defined
71 and temacs will do (load "loadup") automatically unless told otherwise. */
72
73#undef CANNOT_DUMP
74
75/* Define VIRT_ADDR_VARIES if the virtual addresses of
76 pure and impure space as loaded can vary, and even their
77 relative order cannot be relied on.
78
79 Otherwise Emacs assumes that text space precedes data space,
80 numerically. */
81
82#undef VIRT_ADDR_VARIES
83
84/* Define NO_REMAP if memory segmentation makes it not work well
85 to change the boundary between the text section and data section
86 when Emacs is dumped. If you define this, the preloaded Lisp
87 code will not be sharable; but that's better than failing completely. */
88
89#undef NO_REMAP
90
91/* For WICAT, define TAHOE_REGISTER_BUG if you have a pre-4.2 C compiler */
92
93#define TAHOE_REGISTER_BUG
94
95/* pagesize definition */
96
97#define EXEC_PAGESIZE 0x1000
98
99/* Delete this for WICAT sys V releases before 2.0. */
100
101#define LIB_STANDARD -lc-nofp
102
103/* Special magic number */
104
105#define EXEC_MAGIC MC68ROMAGIC
106
107/* Special switches to give to ld. */
108
109#define LD_SWITCH_MACHINE -e __start -N
110
111/* Sigh...cannot define this for WICAT cuz 0 length memcpy blows chunks */
112
113#undef BSTRING
114
115/*
116 * Define optimflags if you want to optimize.
117 * - Set to null string for pre-4.2 C compiler
118 * - Set to "-O -Wopt,-O-f" for 4.2
119 */
120
121#define C_OPTIMIZE_SWITCH /* -O -Wopt,-O-f */
122
123/* For WICAT version supporting PTYs and select (currently internal only) */
124
125#ifdef HAVE_PTYS
126#undef FIRST_PTY_LETTER
127#define FIRST_PTY_LETTER 'q'
128#endif
129
130/* there is a select() in libcurses.a that causes a conflict so use termlib */
131#ifdef HAVE_SELECT
132#undef TERMINFO
133#define LIBS_TERMCAP select.o -ltermlib
134#endif
135
136/* arch-tag: b181c512-0275-4d25-9bbc-be0c8ca7bcad
137 (do not change this comment) */
diff --git a/src/m/xps100.h b/src/m/xps100.h
deleted file mode 100644
index 3b378319ceb..00000000000
--- a/src/m/xps100.h
+++ /dev/null
@@ -1,98 +0,0 @@
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, 2001, 2002, 2003, 2004,
5 2005, 2006, 2007 Free Software Foundation, Inc.
6
7This file is part of GNU Emacs.
8
9GNU Emacs is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Emacs is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Emacs; see the file COPYING. If not, write to
21the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22Boston, MA 02110-1301, USA. */
23
24
25/* The following line tells the configuration script what sort of
26 operating system this machine is likely to run.
27 USUAL-OPSYS="usg5-2" */
28
29/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
30 is the most significant byte. */
31
32#define WORDS_BIG_ENDIAN
33
34/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
35 * group of arguments and treat it as an array of the arguments. */
36
37/* #define NO_ARG_ARRAY */
38
39/* Define WORD_MACHINE if addresses and such have
40 * to be corrected before they can be used as byte counts. */
41
42/* #define WORD_MACHINE */
43
44/* Now define a symbol for the cpu type, if your compiler
45 does not define it automatically:
46 Ones defined so far include vax, m68000, ns16000, pyramid,
47 orion, tahoe, APOLLO and many others */
48
49/* Use type int rather than a union, to represent Lisp_Object */
50/* This is desirable for most machines. */
51
52#define NO_UNION_TYPE
53
54/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
55 the 24-bit bit field into an int. In other words, if bit fields
56 are always unsigned.
57
58 If you use NO_UNION_TYPE, this flag does not matter. */
59
60#define EXPLICIT_SIGN_EXTEND
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) (int) (((double) (x)) * 100.0 / FSCALE) */
69
70/* Define CANNOT_DUMP on machines where unexec does not work.
71 Then the function dump-emacs will not be defined
72 and temacs will do (load "loadup") automatically unless told otherwise. */
73
74/* #define CANNOT_DUMP */
75
76/* Define VIRT_ADDR_VARIES if the virtual addresses of
77 pure and impure space as loaded can vary, and even their
78 relative order cannot be relied on.
79
80 Otherwise Emacs assumes that text space precedes data space,
81 numerically. */
82
83/* #define VIRT_ADDR_VARIES */
84
85/* Define NO_REMAP if memory segmentation makes it not work well
86 to change the boundary between the text section and data section
87 when Emacs is dumped. If you define this, the preloaded Lisp
88 code will not be sharable; but that's better than failing completely. */
89
90#define NO_REMAP
91#define TERMINFO
92#define SWITCH_ENUM_BUG
93#define LIB_STANDARD -lc
94#define LD_SWITCH_MACHINE -X
95#define SECTION_ALIGNMENT (0x3ff)
96
97/* arch-tag: 42316eb5-74b2-4762-970a-e372c6a2783d
98 (do not change this comment) */
diff --git a/src/s/cxux.h b/src/s/cxux.h
deleted file mode 100644
index d5abebf1ae1..00000000000
--- a/src/s/cxux.h
+++ /dev/null
@@ -1,236 +0,0 @@
1/* Header file for Harris CXUX.
2 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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_SYSTEM */
37/* #define VMS */
38
39#ifndef _CX_UX
40#define _CX_UX 1
41#endif
42
43/* Define this symbol if you are running CX/UX 7.0 or later (7.0 introduced
44 * support for ELF files, and while we still build emacs in COFF format, the
45 * way it is linked is different for 7.0).
46 */
47/* #define USING_CX_UX_7 */
48
49#ifdef USING_CX_UX_7
50#define LINKER /usr/sde/coff/usr/bin/ld
51#define LD_SWITCH_SYSTEM -L/usr/sde/coff/usr/lib -zzero_word
52#define START_FILES pre-crt0.o /usr/sde/coff/usr/lib/crt0.o /usr/sde/coff/usr/lib/m88100.o
53#else /* !USING_CX_UX_7 */
54#ifdef _M88K
55#define START_FILES pre-crt0.o /lib/crt0.o
56#else
57#define START_FILES cxux-crt0.o /lib/crt0.o
58#endif
59#endif /* USING_CX_UX_7 */
60
61/* SYSTEM_TYPE should indicate the kind of system you are using.
62 It sets the Lisp variable system-type. */
63
64#define SYSTEM_TYPE "usg-unix-v"
65
66#define C_SWITCH_SYSTEM -Xa
67
68#define POSIX_SIGNALS
69
70/* With POSIX signals, also need to use sigaction rather than signal to
71 * setup signal handlers
72 */
73#define signal sys_signal
74
75/* NOMULTIPLEJOBS should be defined if your system's shell
76 does not have "job control" (the ability to stop a program,
77 run some other program, then continue the first one). */
78
79/* #define NOMULTIPLEJOBS */
80
81/* Emacs can read input using SIGIO and buffering characters itself,
82 or using CBREAK mode and making C-g cause SIGINT.
83 The choice is controlled by the variable interrupt_input.
84
85 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
86
87 Emacs uses the presence or absence of the SIGIO macro to indicate
88 whether or not signal-driven I/O is possible. It uses
89 INTERRUPT_INPUT to decide whether to use it by default.
90
91 SIGIO can be used only on systems that implement it (4.2 and 4.3).
92 CBREAK mode has two disadvantages
93 1) At least in 4.2, it is impossible to handle the Meta key properly.
94 I hear that in system V this problem does not exist.
95 2) Control-G causes output to be discarded.
96 I do not know whether this can be fixed in system V.
97
98 Another method of doing input is planned but not implemented.
99 It would have Emacs fork off a separate process
100 to read the input and send it to the true Emacs process
101 through a pipe. */
102
103#define INTERRUPT_INPUT
104/* #define BROKEN_FIONREAD */
105
106/* Letter to use in finding device name of first pty,
107 if system supports pty's. 'a' means it is /dev/ptya0 */
108
109#define FIRST_PTY_LETTER 'A'
110#define PTY_ITERATION for (c = 'A'; c <= 'P'; c++) for (i = 0; i < 16; i++)
111
112/*
113 * Define HAVE_TERMIOS if the system provides POSIX-style
114 * functions and macros for terminal control.
115 *
116 * Define HAVE_TERMIO if the system provides sysV-style ioctls
117 * for terminal control.
118 *
119 * Do not define both. HAVE_TERMIOS is preferred, if it is
120 * supported on your system.
121 */
122
123#define HAVE_TERMIOS
124/* #define HAVE_TERMIO */
125#define NO_TERMIO
126
127/*
128 * Define HAVE_PTYS if the system supports pty devices.
129 */
130
131#define HAVE_PTYS
132
133/*
134 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
135 * The 4.2 opendir, etc., library functions.
136 */
137
138/* #define NONSYSTEM_DIR_LIBRARY */
139
140#define SYSV_SYSTEM_DIR
141
142/* Define this symbol if your system has the functions bcopy, etc. */
143
144#define BSTRING
145
146/* subprocesses should be defined if you want to
147 have code for asynchronous subprocesses
148 (as used in M-x compile and M-x shell).
149 This is generally OS dependent, and not supported
150 under most USG systems. */
151
152#define subprocesses
153
154/* If your system uses COFF (Common Object File Format) then define the
155 preprocessor symbol "COFF". */
156
157#define COFF
158
159/* define MAIL_USE_FLOCK if the mailer uses flock
160 to interlock access to /usr/spool/mail/$USER.
161 The alternative is that a lock file named
162 /usr/spool/mail/$USER.lock. */
163
164#define MAIL_USE_FLOCK
165
166/* Define CLASH_DETECTION if you want lock files to be written
167 so that Emacs can tell instantly when you try to modify
168 a file that someone else has modified in his Emacs. */
169
170#define CLASH_DETECTION
171
172/* Define this if your operating system declares signal handlers to
173 have a type other than the usual. `The usual' is `void' for ANSI C
174 systems (i.e. when the __STDC__ macro is defined), and `int' for
175 pre-ANSI systems. If you're using GCC on an older system, __STDC__
176 will be defined, but the system's include files will still say that
177 signal returns int or whatever; in situations like that, define
178 this to be what the system's include files want. */
179/* #define SIGTYPE int */
180#define SIGTYPE void
181
182/* If the character used to separate elements of the executable path
183 is not ':', #define this to be the appropriate character constant. */
184/* #define SEPCHAR ':' */
185
186/* Here, on a separate page, add any special hacks needed
187 to make Emacs work on this system. For example,
188 you might define certain system call names that don't
189 exist on your system, or that do different things on
190 your system and must be used only through an encapsulation
191 (Which you should place, by convention, in sysdep.c). */
192
193/* Yes! The Night Hawk has sockets! */
194
195#define HAVE_SOCKETS
196
197/* The symbol in the kernel where the load average is found
198 is named _avenrun. */
199
200#define LDAV_SYMBOL "_avenrun"
201
202#define KERNEL_FILE "/unix"
203
204/* There are too many kludges required to redefine malloc - use the system
205 one */
206#define SYSTEM_MALLOC
207
208#define _setjmp setjmp
209#define _longjmp longjmp
210
211/* const really does work, but I can't get configure to run the C compiler
212 * with the right options so it figures that out.
213 */
214#undef const
215
216#ifdef sigmask
217#undef sigmask
218#endif
219
220/*
221 * <pwd.h> already declares getpwuid, and with a uid_t argument in ANSI C
222 * mode. Define this so xrdb.c will compile
223 */
224#ifdef __STDC__
225#define DECLARE_GETPWUID_WITH_UID_T
226#endif
227
228/* Some compilers tend to put everything declared static
229 into the initialized data area, which becomes pure after dumping Emacs.
230 On these systems, you must #define static as nothing to foil this.
231 Note that emacs carefully avoids static vars inside functions. */
232
233/* #define static */
234
235/* arch-tag: 5febe5fe-f0b0-49cb-9280-9d5a9fa43710
236 (do not change this comment) */
diff --git a/src/s/cxux7.h b/src/s/cxux7.h
deleted file mode 100644
index b9ecf45f6bb..00000000000
--- a/src/s/cxux7.h
+++ /dev/null
@@ -1,10 +0,0 @@
1/* Define this symbol if you are running CX/UX 7.0 or later (7.0 introduced
2 * support for ELF files, and while we still build emacs in COFF format, the
3 * way it is linked is different for 7.0).
4 */
5#define USING_CX_UX_7
6
7#include "cxux.h"
8
9/* arch-tag: 520cfbad-fd5c-4b3b-ace4-66e9bcd31a60
10 (do not change this comment) */
diff --git a/src/s/dgux.h b/src/s/dgux.h
deleted file mode 100644
index f7ce0a6fd38..00000000000
--- a/src/s/dgux.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Definitions file for GNU Emacs running on Data General's DG/UX
2 version 4.32 upto and including 5.4.1.
3 Copyright (C) 1994, 1999, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
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 BSD4_4
37#define BSD_SYSTEM
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 "dgux"
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 disadvantages
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
69#define INTERRUPT_INPUT
70
71/*
72 * Define HAVE_SOCKETS if the system supports sockets.
73 */
74
75#define HAVE_SOCKETS
76
77/*
78 * Define HAVE_UNIX_DOMAIN if the system supports Unix
79 * domain sockets.
80 */
81
82#define HAVE_UNIX_DOMAIN
83
84/*
85 * Define HAVE_PTYS if the system supports pty devices.
86 */
87
88#define HAVE_PTYS
89
90/*
91 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
92 * The 4.2 opendir, etc., library functions.
93 */
94
95/* #define NONSYSTEM_DIR_LIBRARY */
96
97/* Define this symbol if your system has the functions bcopy, etc. */
98
99#define BSTRING
100
101/* subprocesses should be defined if you want to
102 have code for asynchronous subprocesses
103 (as used in M-x compile and M-x shell).
104 This is generally OS dependent, and not supported
105 under most USG systems. */
106
107#define subprocesses
108
109/* If your system uses COFF (Common Object File Format) then define the
110 preprocessor symbol "COFF".
111
112 DGUX can use either COFF or ELF; the default is ELF.
113 To compile for COFF (or BCS) use the TARGET_BINARY_INTERFACE
114 environment variable. */
115
116#if defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET)
117#undef ELF
118#ifndef COFF
119#define COFF
120#endif /* COFF */
121#else /* defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET) */
122#undef COFF
123#ifndef ELF
124#define ELF
125#endif /* ELF */
126#endif /* defined(_DGUXCOFF_TARGET) || defined(_DGUXBCS_TARGET) */
127
128#ifndef COFF /* People will probably find this apparently unreliable
129 till the NFS dumping bug is fixed. */
130
131/* It is possible to undump to ELF with DG/UX 5.4, but for revisions below
132 5.4.1 the undump MUST be done on a local file system, or the kernel will
133 panic. ELF executables have the advantage of using shared libraries,
134 while COFF executables will still work on 4.2x systems. */
135
136#define UNEXEC unexelf.o
137
138/* This makes sure that all segments in the executable are undumped,
139 not just text, data, and bss. In the case of Mxdb and shared
140 libraries, additional information is stored in other sections.
141 It does not hurt to have this defined if you don't use Mxdb or
142 shared libraries. In fact, it makes no difference. */
143
144/* Necessary for shared libraries and Mxdb debugging information. */
145#define USG_SHARED_LIBRARIES
146#endif
147
148/* define MAIL_USE_FLOCK if the mailer uses flock
149 to interlock access to /usr/spool/mail/$USER.
150 The alternative is that a lock file named
151 /usr/spool/mail/$USER.lock. */
152
153/* #define MAIL_USE_FLOCK */
154
155/* Define CLASH_DETECTION if you want lock files to be written
156 so that Emacs can tell instantly when you try to modify
157 a file that someone else has modified in his Emacs. */
158
159/* #define CLASH_DETECTION */
160
161/* Define a replacement for the baud rate switch, since DG/UX uses a different
162 from BSD. */
163
164#define BAUD_CONVERT { 0, 110, 134, 150, 300, 600, 1200, 1800, 2400, \
165 4800, 9600, 19200, 38400 }
166
167/*
168 * Make WM Interface Compliant.
169 */
170
171#define XICCC
172
173/* Here, on a separate page, add any special hacks needed
174 to make Emacs work on this system. For example,
175 you might define certain system call names that don't
176 exist on your system, or that do different things on
177 your system and must be used only through an encapsulation
178 (Which you should place, by convention, in sysdep.c). */
179
180/* Some compilers tend to put everything declared static
181 into the initialized data area, which becomes pure after dumping Emacs.
182 On these systems, you must #define static as nothing to foil this.
183 Note that emacs carefully avoids static vars inside functions. */
184
185/* #define static */
186
187/* DG/UX SPECIFIC ADDITIONS TO TEMPLATE FOLLOW: */
188
189/* Use the Berkeley flavors of the library routines, instead of System V. */
190
191#define setpgrp(pid,pgrp) setpgrp2(pid,pgrp)
192#define getpgrp(pid) getpgrp2(pid)
193
194/* Act like Berkeley. */
195
196#define _setjmp(env) sigsetjmp(env,0)
197#define _longjmp(env,val) longjmp(env,val)
198
199/* Use TERMINFO instead of termcap */
200
201#define TERMINFO
202
203/*
204 * Send signals to subprocesses using characters.
205 *
206 */
207
208#define SIGNALS_VIA_CHARACTERS
209
210/*
211 * Define HAVE_TERMIOS since this is POSIX,
212 * for terminal control. Prevent redundant inclusion of termio.h.
213 */
214
215#define HAVE_TERMIOS
216#define NO_TERMIO
217
218/*
219 * Use a Berkeley style sys/wait.h.
220 * This makes WIF* macros operate on structures instead of ints.
221 */
222
223#define _BSD_WAIT_FLAVOR
224
225/*
226 * Use BSD and POSIX-style signals. This is crucial!
227 */
228
229/* #define SYSTEM_MALLOC */
230
231/* MAKING_MAKEFILE must be defined in "ymakefile" before including config.h */
232#ifndef NOT_C_CODE
233
234/* Make sure signal.h is included so macros below don't mess with it. */
235/* DG/UX include files prevent multiple inclusion. */
236
237#include <signal.h>
238
239/* but undefine the sigmask and sigpause macros since they will get
240 #define'd later. */
241#undef sigmask
242#undef sigpause
243
244#define POSIX_SIGNALS
245
246#ifndef NO_DGUX_SIGNAL_REDEF
247/* Can't use sys_signal because then etc/server.c would need sysdep.o. */
248extern struct sigaction act, oact;
249#define signal(SIG,FUNC) berk_signal(SIG,FUNC)
250#endif
251
252#endif /* not NOT_C_CODE */
253
254#ifndef __GNUC__
255#error You must use GCC to compiler Emascs on DGUX
256#endif
257
258#define ORDINARY_LINK
259#define START_FILES pre-crt0.o
260#define LIB_GCC /usr/lib/gcc/libgcc.a
261
262#ifdef _M88KBCS_TARGET
263/* Karl Berry says: the environment
264 recommended by gcc (88/open, a.k.a. m88kbcs) doesn't support some system
265 functions, and gcc doesn't make it easy to switch environments. */
266#define NO_GET_LOAD_AVG
267#endif
268
269/* definitions for xmakefile production */
270#ifdef COFF
271
272/* Define the following to use all of the available pty's. */
273
274#define PTY_ITERATION \
275 for (c = 'p'; c < 't'; c++) \
276 for (i = 0; (((c == 'p') && (i < 64)) || ((c != 'p') && (i < 16))); i++)
277
278#define PTY_NAME_SPRINTF \
279 if (c == 'p') \
280 sprintf (pty_name, "/dev/pty%c%d", c, i); \
281 else \
282 sprintf (pty_name, "/dev/pty%c%x", c, i);
283
284#define PTY_TTY_NAME_SPRINTF \
285 if (c == 'p') \
286 sprintf (pty_name, "/dev/tty%c%d", c, i); \
287 else \
288 sprintf (pty_name, "/dev/tty%c%x", c, i);
289
290#define C_DEBUG_SWITCH -g
291
292#else /* not COFF */
293
294/* We are generating ELF object format. This makes the system more
295 SVR4 like. */
296
297#define SVR4
298
299/* Pseudo-terminal support under SVR4 only loops to deal with errors. */
300
301#define PTY_ITERATION for (i = 0; i < 1; i++)
302
303/* This sets the name of the master side of the PTY. */
304
305#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
306
307/* This sets the name of the slave side of the PTY. On SysVr4,
308 grantpt(3) forks a subprocess, so keep sigchld_handler() from
309 intercepting that death. If any child but grantpt's should die
310 within, it should be caught after sigrelse(2). */
311
312#define PTY_TTY_NAME_SPRINTF \
313 { \
314 char *ptsname(), *ptyname; \
315 \
316 sigblock(sigmask(SIGCLD)); \
317 if (grantpt(fd) == -1) \
318 fatal("could not grant slave pty"); \
319 sigunblock(sigmask(SIGCLD)); \
320 if (unlockpt(fd) == -1) \
321 fatal("could not unlock slave pty"); \
322 if (!(ptyname = ptsname(fd))) \
323 fatal ("could not enable slave pty"); \
324 strncpy(pty_name, ptyname, sizeof(pty_name)); \
325 pty_name[sizeof(pty_name) - 1] = 0; \
326 }
327
328/* Push various streams modules onto a PTY channel. */
329
330#define SETUP_SLAVE_PTY \
331 if (ioctl (xforkin, I_PUSH, "ptem") == -1) \
332 fatal ("ioctl I_PUSH ptem", errno); \
333 if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
334 fatal ("ioctl I_PUSH ldterm", errno); \
335 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
336 fatal ("ioctl I_PUSH ttcompat", errno);
337
338#ifdef __GNUC__
339#define C_DEBUG_SWITCH -g -V2 -mversion-03.00 -mstandard
340#endif
341
342#endif /* ELF */
343
344/* Extra stuff which probably should be someplace else but is here out
345 of expediency. */
346
347#define LIB_X11_LIB -lX11
348#define LIB_MOTIF -lXm -lgen
349
350/* Process groups work in the traditional BSD manner. */
351
352#define BSD_PGRPS
353
354/* arch-tag: 1b6d117d-82d2-4480-a6d0-3f7a8360f658
355 (do not change this comment) */
diff --git a/src/s/dgux4.h b/src/s/dgux4.h
deleted file mode 100644
index bf5a1b0e597..00000000000
--- a/src/s/dgux4.h
+++ /dev/null
@@ -1,144 +0,0 @@
1/* Definitions file for GNU Emacs running on Data General's DG/UX
2 Release 4.10 and above.
3 Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
4 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23/* This file was written by Roderick Schertler <roderick@ibcinc.com>,
24 contact me if you have problems with or comments about running Emacs
25 on dgux.
26
27 A number of things in the older dgux*.h files don't make sense to me,
28 but since I'm relying on memory and I don't have any older dgux
29 systems installed on which to test changes I'm undoing or fixing them
30 here rather than fixing them at the source. */
31
32/* In dgux.h it says "Can't use sys_signal because then etc/server.c
33 would need sysdep.o." and then it #defines signal() to be
34 berk_signal(), but emacsserver.c does `#undef signal' anyway, so that
35 doesn't make sense.
36
37 Further, sys_signal() in sysdep.c already had a special case for
38 #ifdef DGUX, it called berk_signal() explicitly. I've removed that
39 special case because it also didn't make sense: All versions of dgux
40 which the dgux*.h headers take into account have POSIX signals
41 (POSIX_SIGNALS is #defined in dgux.h). The comments in sys_signal()
42 even acknowledged this (saying that the special berk_signal() case
43 wasn't really necessary), they said that sys_signal() was using
44 berk_signal() instead of sigaction() for efficiency. Since both give
45 reliable signals neither has to be invoked within the handler. If
46 the efficiency that the comments were talking about is the overhead
47 of setting up the sigaction struct rather than just passing the
48 function pointer in (which is the only efficiency I can think of)
49 then that's a needless optimization, the Emacs sources do better
50 without the special case.
51
52 The following definition will prevent dgux.h from re-defining
53 signal(). I can't just say `#undef signal' after including dgux.h
54 because signal() is already a macro, defined in <sys/signal.h>, and
55 the original definition would be lost. */
56#define NO_DGUX_SIGNAL_REDEF
57
58#include "dgux5-4-3.h"
59
60#define LIBS_DEBUG /* nothing, -lg doesn't exist */
61#define LIBS_SYSTEM -lsocket -lnsl
62
63#ifndef NOT_C_CODE
64
65/* dgux.h defines _setjmp() to be sigsetjmp(), but it defines _longjmp
66 to be longjmp() rather than siglongjmp(). Further, it doesn't define
67 jmp_buf, so sigsetjmp() is being called with a jmp_buf rather than a
68 sigjmp_buf, and the buffer is then passed to vanilla longjmp(). This
69 provides a more complete emulation of the Berkeley semantics. */
70
71#include <setjmp.h>
72#undef jmp_buf
73#undef _setjmp
74#undef setjmp
75#undef _longjmp
76#undef longjmp
77#define jmp_buf sigjmp_buf
78#define _setjmp(env) sigsetjmp(env, 0)
79#define setjmp(env) sigsetjmp(env, 1)
80#define _longjmp siglongjmp
81#define longjmp siglongjmp
82
83/* The BAUD_CONVERT definition in dgux.h is wrong with this version
84 of dgux, but I'm not sure when it changed.
85
86 With the current system Emacs' standard handling of ospeed and
87 baud_rate don't work. The baud values (B9600 and so on) returned by
88 cfgetospeed() aren't compatible with those used by ospeed. speed_t,
89 the type returned by cfgetospeed(), is unsigned long and speed_t
90 values are large. Further, it isn't possible to get at both the
91 SysV3 (ospeed) and POSIX (cfgetospeed()) values through symbolic
92 constants simultaneously because they both use the same names
93 (B9600). To get both baud_rate and ospeed right at the same time
94 it's necessary to hardcode the values for one set of values, here I'm
95 hardcoding ospeed. */
96#undef BAUD_CONVERT
97#define INIT_BAUD_RATE() \
98 struct termios sg; \
99 \
100 tcgetattr (input_fd, &sg); \
101 switch (cfgetospeed (&sg)) { \
102 case B50: baud_rate = 50; ospeed = 0x1; break; \
103 case B75: baud_rate = 75; ospeed = 0x2; break; \
104 case B110: baud_rate = 110; ospeed = 0x3; break; \
105 case B134: baud_rate = 134; ospeed = 0x4; break; \
106 case B150: baud_rate = 150; ospeed = 0x5; break; \
107 case B200: baud_rate = 200; ospeed = 0x6; break; \
108 case B300: baud_rate = 300; ospeed = 0x7; break; \
109 case B600: baud_rate = 600; ospeed = 0x8; break; \
110 default: \
111 case B1200: baud_rate = 1200; ospeed = 0x9; break; \
112 case B1800: baud_rate = 1800; ospeed = 0xa; break; \
113 case B2400: baud_rate = 2400; ospeed = 0xb; break; \
114 case B4800: baud_rate = 4800; ospeed = 0xc; break; \
115 case B9600: baud_rate = 9600; ospeed = 0xd; break; \
116 case B19200: baud_rate = 19200; ospeed = 0xe; break; \
117 case B38400: baud_rate = 38400; ospeed = 0xf; break; \
118 } \
119 return;
120
121
122#if 0 /* Ehud Karni <ehud@unix.simonwiesel.co.il> says that the problem
123 still exists on m88k-dg-dguxR4.11MU04 and i586-dg-dguxR4.11MU04. */
124/* The `stop on tty output' problem which occurs when using
125 INTERRUPT_INPUT and when Emacs is invoked under X11 using a job
126 control shell (csh, ksh, etc.) in the background doesn't look to be
127 present in R4.11. (At least, I can't reproduce it using jsh, csh,
128 ksh or zsh.) */
129#undef BROKEN_FIONREAD
130#define INTERRUPT_INPUT
131#endif /* 0 - never */
132
133/* In R4.11 (or maybe R4.10, I don't have a system with that version
134 loaded) some of the internal stdio semantics were changed. One I
135 found while working on MH is that _cnt has to be 0 before _filbuf()
136 is called. Another is that (_ptr - _base) doesn't indicate how many
137 characters are waiting to be sent. I can't spot a good way to get
138 that info from the FILE internals. */
139#define PENDING_OUTPUT_COUNT(FILE) (1)
140
141#endif /* NOT_C_CODE */
142
143/* arch-tag: c7013e7b-6e2e-44f2-ba61-90b6d5e2ea45
144 (do not change this comment) */
diff --git a/src/s/dgux5-4-3.h b/src/s/dgux5-4-3.h
deleted file mode 100644
index d959b8c6f1b..00000000000
--- a/src/s/dgux5-4-3.h
+++ /dev/null
@@ -1,68 +0,0 @@
1/* Definitions file for GNU Emacs running on Data General's DG/UX
2 version 5.4 Release 3.00 and above.
3 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
4 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23/* NOTE: DGUX5.4R3.00 will not build with the delivered gcc-2.4.5
24 compiler. You must upgraded to at least gcc-2.5.8. If you are
25 running DGUX 5.4R3.00 check on the system dg-rtp.dg.com:/pub/gnu
26 for gcc-2.5.8 or later compiler.
27 -pmr@pajato.com */
28
29#include "dgux5-4r2.h"
30
31/* DGUX 5.4R3.00 brought the definition of `struct inet_addr' into
32 compliance with the majority of Unix systems. The workaround
33 introduced in 5.4R2 is no longer necessary. */
34
35#ifdef HAVE_BROKEN_INET_ADDR
36#undef HAVE_BROKEN_INET_ADDR
37#endif
38
39/* The `stop on tty output' problem which occurs when using
40 INTERRUPT_INPUT and when Emacs is invoked under X11 using a job
41 control shell (csh, ksh, etc.) in the background has not been fixed in
42 DGUX 5.4R3.00.
43 -pmr@pajato.com */
44
45#if 0
46#ifdef BROKEN_FIONREAD
47#undef BROKEN_FIONREAD
48#endif
49#ifndef INTERRUPT_INPUT
50#define INTERRUPT_INPUT
51#endif
52#endif
53
54/* Under DGUX 5.4R3.00, getting a debuggable executable has been
55 greatly simplified and applies to either COFF or ELF
56 environments. */
57
58#ifdef C_DEBUG_SWITCH
59#undef C_DEBUG_SWITCH
60#define C_DEBUG_SWITCH -g
61#endif
62
63/* This is needed according to Ehud Karni <ehud@unix.simonwiesel.co.il>
64 for m88k-dg-dgux5.4R3.10. */
65#undef BSD_PGRPS
66
67/* arch-tag: c11938c9-0cb0-4652-88aa-7eb80bf1cda9
68 (do not change this comment) */
diff --git a/src/s/dgux5-4r2.h b/src/s/dgux5-4r2.h
deleted file mode 100644
index 570e90e9ac1..00000000000
--- a/src/s/dgux5-4r2.h
+++ /dev/null
@@ -1,51 +0,0 @@
1/* Definitions file for GNU Emacs running on Data General's DG/UX
2 5.4 Release 2.xx systems.
3 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
4 2006, 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23#include "dgux.h"
24
25/* There is a known kernel bug in DGUX 5.4R2.xx when using
26 INTERRUPT_INPUT and invoking Emacs with a job control shell (csh,
27 ksh, etc.) in the background. This bug manifests itself by
28 outputting `stop on tty output' and hanging. The workaround is to
29 set BROKEN_FIONREAD.
30 -pmr@pajato.com */
31
32#ifndef BROKEN_FIONREAD
33#define BROKEN_FIONREAD
34#endif
35#ifdef INTERRUPT_INPUT
36#undef INTERRUPT_INPUT
37#endif
38
39/* In DGUX 5.4R2.xx the function inet_addr() returns a `struct
40 in_addr' instead of the more common `unsigned long'.
41 -pmr@pajato.com */
42
43#define HAVE_BROKEN_INET_ADDR
44
45#if 0 /* Shawn M. Carey <smcarey@mailbox.syr.edu> found this
46 caused trouble on DGUX 5.4.2. */
47#define LIBS_SYSTEM -ldgc
48#endif
49
50/* arch-tag: a14f4043-6caa-4f01-a9b9-ae0fb0d2c96e
51 (do not change this comment) */
diff --git a/src/s/esix.h b/src/s/esix.h
deleted file mode 100644
index 357e7736476..00000000000
--- a/src/s/esix.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* Definitions for ESIX, a variant of v.5.3 for the 386. */
2/* These are based on reports for ESIX 5.3.2 D. */
3
4#include "usg5-3.h"
5
6/* Some versions of V.3 have this, but not all. ESIX does. */
7#define HAVE_PTYS
8#define SYSV_PTYS
9
10/* Have -lg be used for debugging. */
11#undef LIBS_DEBUG
12#define LIBS_DEBUG -lg
13
14/* If using Roell's X server, define X11R4 */
15#ifdef X11R4 /* Roell's X server */
16#define select sys_select /* Emacs select() not good enough? */
17#undef LIBX11_SYSTEM
18#define LIBX11_SYSTEM -lpt
19#endif /* X11R4 */
20
21/* ESIX does not need <sys/sioctl.h>, but needs <sys/ptem.h> */
22#define NO_SIOCTL_H
23#define NEED_PTEM_H
24#define BROKEN_FIONREAD
25
26/* arch-tag: d66e6a70-0812-437d-aa35-9b01bd474941
27 (do not change this comment) */
diff --git a/src/s/esix5r4.h b/src/s/esix5r4.h
deleted file mode 100644
index 4240f3d7f4a..00000000000
--- a/src/s/esix5r4.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* Definitions for ESIX System V 4.0.4, a variant of V.4 for the 386. */
2/* Redone by zircon!joe@uunet.uu.net (Joe Kelsey). */
3
4#include "usg5-4.h"
5
6#define SYSTEM_MALLOC 1
7#if defined (HAVE_XFREE386)
8# undef LIB_STANDARD
9# define LIB_STANDARD -lc
10#else
11# define LIB_X11_LIB -lsocket -lc -lX11
12# undef LIB_STANDARD
13# ifdef ORDINARY_LINK
14# define LIB_STANDARD -lnsl -lns -lelf /usr/ucblib/libucb.a
15# else
16# define LIB_STANDARD -lnsl -lns -lelf /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
17# endif
18
19/* Resolve BSD string functions in X Window library from libucb.a. */
20# define BSTRING
21
22/* zircon!joe says this makes X windows work. */
23# define BROKEN_FIONREAD
24#endif
25
26/* arch-tag: 2d314ae9-0357-4ddf-96e5-cf821071ba4b
27 (do not change this comment) */
diff --git a/src/s/hiuxmpp.h b/src/s/hiuxmpp.h
deleted file mode 100644
index 7538adb1634..00000000000
--- a/src/s/hiuxmpp.h
+++ /dev/null
@@ -1,67 +0,0 @@
1/* System description file for HI-UX.
2
3Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
4 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#define BSD 198911 /* system version (year & month) */
25#define DBL_DIG 15 /* same as the definition of <float.h> */
26#include "bsd4-3.h"
27
28/* Identify OSF1 for the m- files. */
29
30#define OSF1
31
32/* To avoid to include the non-existant header file <sys/vlimit.h>,
33 we define BSD4_2.
34 This definition does not mean that the OS is based on BSD 4.2. */
35#define BSD4_2
36
37/* Define _BSD to tell the include files we're running under
38 the BSD universe and not the SYSV universe.
39 Define HITACHI and OSF for Xt's Boolean type as int intead of char.
40 (But for these defines, /usr/include/X11/Intrinsic.h defines
41 Boolean as char, but libXt.a on HI-UX/MPP requires it as int.) */
42
43#define C_SWITCH_SYSTEM -D_BSD -DHITACHI -DOSF
44#define LIBS_SYSTEM -lbsd
45
46#define GETPGRP_NO_ARG
47
48#define SYSV_SYSTEM_DIR
49
50/* If your system uses COFF (Common Object File Format) then define the
51 preprocessor symbol "COFF". */
52
53/* #define COFF */
54
55/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option
56 says where to find X windows at run time. We convert it to a -rpath option
57 which is what OSF1 uses. */
58#define LD_SWITCH_SYSTEM
59
60#undef KERNEL_FILE
61#define KERNEL_FILE "/mach_kernel"
62
63#undef LDAV_SYMBOL
64#define LDAV_SYMBOL "avenrun"
65
66/* arch-tag: c5422584-cd86-4e10-8089-9f604523dab7
67 (do not change this comment) */
diff --git a/src/s/hiuxwe2.h b/src/s/hiuxwe2.h
deleted file mode 100644
index 418ea14cc99..00000000000
--- a/src/s/hiuxwe2.h
+++ /dev/null
@@ -1,67 +0,0 @@
1/* System description file for HI-UX.
2
3Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#define BSD 198911 /* system version (year & month) */
25#define DBL_DIG 15 /* same as the definition of <float.h> */
26#include "bsd4-3.h"
27
28/* Identify OSF1 for the m- files. */
29
30#define OSF1
31
32/* To avoid to include the non-existant header file <sys/vlimit.h>,
33 we define BSD4_2.
34 This definition does not mean that the OS is based on BSD 4.2. */
35#define BSD4_2
36
37/* Define _BSD to tell the include files we're running under
38 the BSD universe and not the SYSV universe.
39 Define HITACHI and OSF for Xt's Boolean type as int intead of char.
40 (But for these defines, /usr/include/X11/Intrinsic.h defines
41 Boolean as char, but libXt.a on HI-UX/MPP requires it as int.) */
42
43#define C_SWITCH_SYSTEM -D_BSD -DHITACHI -DOSF
44#define LIBS_SYSTEM -lbsd
45
46#define GETPGRP_NO_ARG
47
48#define SYSV_SYSTEM_DIR
49
50/* If your system uses COFF (Common Object File Format) then define the
51 preprocessor symbol "COFF". */
52
53/* #define COFF */
54
55/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option
56 says where to find X windows at run time. We convert it to a -rpath option
57 which is what OSF1 uses. */
58#define LD_SWITCH_SYSTEM
59
60#undef KERNEL_FILE
61#define KERNEL_FILE "/mach_kernel"
62
63#undef LDAV_SYMBOL
64#define LDAV_SYMBOL "avenrun"
65
66/* arch-tag: c56449e1-6d1b-4537-a596-0b08b8e4ec73
67 (do not change this comment) */
diff --git a/src/s/iris3-5.h b/src/s/iris3-5.h
deleted file mode 100644
index c3d16cbf611..00000000000
--- a/src/s/iris3-5.h
+++ /dev/null
@@ -1,166 +0,0 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics 3.5
2 Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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 USG
29#define USG5
30#define IRIS
31
32/* SYSTEM_TYPE should indicate the kind of system you are using.
33 It sets the Lisp variable system-type. */
34
35#define SYSTEM_TYPE "irix"
36
37/* nomultiplejobs should be defined if your system's shell
38 does not have "job control" (the ability to stop a program,
39 run some other program, then continue the first one). */
40
41#define NOMULTIPLEJOBS
42
43/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
44
45/* #define INTERRUPT_INPUT */
46
47/* Letter to use in finding device name of first pty,
48 if system supports pty's. 'a' means it is /dev/ptya0 */
49
50#define FIRST_PTY_LETTER 'a'
51
52/*
53 * Define HAVE_TERMIO if the system provides sysV-style ioctls
54 * for terminal control.
55 */
56
57#define HAVE_TERMIO
58
59/*
60 * Define HAVE_PTYS if the system supports pty devices.
61 */
62
63#define HAVE_PTYS
64
65/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
66
67#define HAVE_SOCKETS
68
69/*
70 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
71 * The 4.2 opendir, etc., library functions.
72 */
73
74/* #define NONSYSTEM_DIR_LIBRARY */
75
76/* Define this symbol if your system has the functions bcopy, etc. */
77
78#define BSTRING
79
80/* subprocesses should be defined if you want to
81 have code for asynchronous subprocesses
82 (as used in M-x compile and M-x shell).
83 This is generally OS dependent, and not supported
84 under most USG systems. */
85
86#define subprocesses
87
88/* If your system uses COFF (Common Object File Format) then define the
89 preprocessor symbol "COFF". */
90
91/* #define COFF */
92
93/* define MAIL_USE_FLOCK if the mailer uses flock
94 to interlock access to /usr/spool/mail/$USER.
95 The alternative is that a lock file named
96 /usr/spool/mail/$USER.lock. */
97
98#define MAIL_USE_FLOCK
99
100/* Define CLASH_DETECTION if you want lock files to be written
101 so that Emacs can tell instantly when you try to modify
102 a file that someone else has modified in his Emacs. */
103
104/* #define CLASH_DETECTION */
105
106/* The file containing the kernel's symbol table is called /vmunix. */
107
108#define KERNEL_FILE "/vmunix"
109
110/* The symbol in the kernel where the load average is found
111 is named _avenrun. */
112
113#define LDAV_SYMBOL "_avenrun"
114
115
116/* Special hacks needed to make Emacs run on this system. */
117
118/*
119 * Make the sigsetmask function go away. Don't know what the
120 * ramifications of this are, but doesn't seem possible to
121 * emulate it properly anyway at this point.
122 */
123
124#define sigsetmask(mask) /* Null expansion */
125
126/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */
127#define BROKEN_SIGIO
128
129#define LIBS_MACHINE -lbsd -ldbm -lPW
130#define C_SWITCH_MACHINE -I/usr/include/bsd
131
132/* setjmp and longjmp can safely replace _setjmp and _longjmp,
133 but they will run slower. */
134
135#define _setjmp setjmp
136#define _longjmp longjmp
137
138/* On USG systems these have different names */
139
140#define index strchr
141#define rindex strrchr
142
143/* USG systems tend to put everything declared static
144 into the initialized data area, which becomes pure after dumping Emacs.
145 Foil this. Emacs carefully avoids static vars inside functions. */
146
147/* #define static */
148
149/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
150
151#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
152
153/* some errno.h's don't actually allocate the variable itself */
154
155#define NEED_ERRNO
156
157/* The symbol FIONREAD is defined, but the feature does not work. */
158
159#define BROKEN_FIONREAD
160
161/* This is how to get the device name of the tty end of a pty. */
162#define PTY_TTY_NAME_SPRINTF \
163 sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev));
164
165/* arch-tag: 41161051-477f-44be-bb2a-0eead3142157
166 (do not change this comment) */
diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h
deleted file mode 100644
index 85a13167ed0..00000000000
--- a/src/s/iris3-6.h
+++ /dev/null
@@ -1,163 +0,0 @@
1/* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
2 Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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 USG
29#define USG5
30#define IRIS
31
32/* SYSTEM_TYPE should indicate the kind of system you are using.
33 It sets the Lisp variable system-type. */
34
35#define SYSTEM_TYPE "irix"
36
37/* nomultiplejobs should be defined if your system's shell
38 does not have "job control" (the ability to stop a program,
39 run some other program, then continue the first one). */
40
41#define NOMULTIPLEJOBS
42
43/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
44
45/* #define INTERRUPT_INPUT */
46
47/* Letter to use in finding device name of first pty,
48 if system supports pty's. 'a' means it is /dev/ptya0 */
49
50#define FIRST_PTY_LETTER 'a'
51
52/*
53 * Define HAVE_TERMIO if the system provides sysV-style ioctls
54 * for terminal control.
55 */
56
57#define HAVE_TERMIO
58
59/*
60 * Define HAVE_PTYS if the system supports pty devices.
61 */
62
63#define HAVE_PTYS
64
65/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
66
67#define HAVE_SOCKETS
68
69/*
70 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
71 * The 4.2 opendir, etc., library functions.
72 */
73
74/* #define NONSYSTEM_DIR_LIBRARY */
75
76/* Define this symbol if your system has the functions bcopy, etc. */
77
78#define BSTRING
79
80/* subprocesses should be defined if you want to
81 have code for asynchronous subprocesses
82 (as used in M-x compile and M-x shell).
83 This is generally OS dependent, and not supported
84 under most USG systems. */
85
86#define subprocesses
87
88/* If your system uses COFF (Common Object File Format) then define the
89 preprocessor symbol "COFF". */
90
91/* #define COFF */
92
93/* define MAIL_USE_FLOCK if the mailer uses flock
94 to interlock access to /usr/spool/mail/$USER.
95 The alternative is that a lock file named
96 /usr/spool/mail/$USER.lock. */
97
98#define MAIL_USE_FLOCK
99
100/* Define CLASH_DETECTION if you want lock files to be written
101 so that Emacs can tell instantly when you try to modify
102 a file that someone else has modified in his Emacs. */
103
104/* #define CLASH_DETECTION */
105
106/* The file containing the kernel's symbol table is called /vmunix. */
107
108#define KERNEL_FILE "/vmunix"
109
110/* The symbol in the kernel where the load average is found
111 is named _avenrun. */
112
113#define LDAV_SYMBOL "_avenrun"
114
115
116/* Special hacks needed to make Emacs run on this system. */
117
118/*
119 * Make the sigsetmask function go away. Don't know what the
120 * ramifications of this are, but doesn't seem possible to
121 * emulate it properly anyway at this point.
122 */
123
124#define sigsetmask(mask) /* Null expansion */
125#define sigblock(x) x
126
127/* The IRIS defines SIGIO in signal.h, but doesn't implement it. */
128#define BROKEN_SIGIO
129
130#define LIBS_MACHINE -lbsd -ldbm -lPW
131#define C_SWITCH_MACHINE -I/usr/include/bsd
132
133/* setjmp and longjmp can safely replace _setjmp and _longjmp,
134 but they will run slower. */
135
136#define _setjmp setjmp
137#define _longjmp longjmp
138
139/* On USG systems these have different names */
140
141#define index strchr
142#define rindex strrchr
143
144/* USG systems tend to put everything declared static
145 into the initialized data area, which becomes pure after dumping Emacs.
146 Foil this. Emacs carefully avoids static vars inside functions. */
147
148/* #define static */
149
150/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
151
152#define ADDR_CORRECT(x) (int)((char *)(x) - (char*)0)
153
154/* some errno.h's don't actually allocate the variable itself */
155
156#define NEED_ERRNO
157
158/* This is how to get the device name of the tty end of a pty. */
159#define PTY_TTY_NAME_SPRINTF \
160 sprintf (ptyname, "/dev/ttyq%d", minor (stb.st_rdev));
161
162/* arch-tag: cdf2033e-a2d5-43e1-a1a2-a7243cf41a11
163 (do not change this comment) */
diff --git a/src/s/isc2-2.h b/src/s/isc2-2.h
deleted file mode 100644
index 34c79f17ea1..00000000000
--- a/src/s/isc2-2.h
+++ /dev/null
@@ -1,100 +0,0 @@
1/* system description file for Interactive (ISC) Unix version 2.2 on the 386.
2
3 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#include "usg5-3.h"
25
26/* select (in -linet) works okay on X ptys, but not on the serial port.
27 karl@cs.umb.edu says that with that select call, subprocesses made by
28 (e.g.) M-x grep don't exit cleanly, they just hang. Similar problems
29 have been observed in ISC 3.0. */
30#define BROKEN_SELECT_NON_X
31
32/* karl@cs.umb.edu says that ISC's socket support (in -linet) isn't
33 what Emacs needs; it makes interrupt-shell-subjob and the like do
34 nothing. But that appears to have been another manifestation of
35 the broken select, so it should now be safe to define this again. */
36#define HAVE_SOCKETS
37
38#define NO_SOCKETS_IN_FILE_SYSTEM
39#define NEED_NET_ERRNO_H
40
41/* This keeps the .cdbx section that gcc puts out when generating
42 stabs-in-coff output, so Emacs can be debugged. --karl@cs.umb.edu. */
43#define USG_SHARED_LIBRARIES
44
45/* We can support lock files. */
46#define CLASH_DETECTION
47#define NO_FCHMOD
48
49#define HAVE_PTYS
50#define MAXNAMLEN 512
51#define O_NDELAY O_NONBLOCK
52#define MEMORY_IN_STRING_H
53
54/* Tell gmalloc.c that we don't have memmove (system include files to the
55 contrary!). */
56#define MEMMOVE_MISSING
57
58/* Send a signal to a subprocess by "typing" a signal character. */
59#define SIGNALS_VIA_CHARACTERS
60
61/* -lPW is only needed if not using Gcc. We used to include -lcposix here
62 for the rename function, but some people say ISC's rename doesn't
63 work correctly with Emacs so we use Emacs' emulation instead. */
64#if defined (__GNUC__)
65# define LIB_STANDARD_1 -lcposix
66#else /* !__GNUC__ */
67# define LIB_STANDARD_1 -lPW
68#endif /* !__GNUC__ */
69
70/* LIB_STANDARD_1 is used both here and in LIBS_SYSTEM
71 (the latter for the sake of configure). */
72#define LIB_STANDARD LIB_STANDARD_1 -lc
73
74#define NO_X_DESTROY_DATABASE
75
76/* -linet may be needed to avoid undefined symbols such as gethostname,
77 inet_addr, gethostbyname, socket, connect, ... */
78#define LIBS_SYSTEM -linet LIB_STANDARD_1
79
80/* This system has job control. */
81#undef NOMULTIPLEJOBS
82
83/* Inhibit asm code in netinet/in.h. Strictly speaking, only necessary
84 when -traditional is being used, but it doesn't hurt to
85 unconditionally define this. */
86#define NO_ASM
87
88/* -traditional is not necessary if the system header files are fixed to
89 define getc and putc in the absence of _POSIX_SOURCE. GCC's from 2.4.4
90 on do this. */
91#if !defined (__GNUC__) || __GNUC__ < 2
92# define C_SWITCH_SYSTEM -traditional
93#endif
94
95/* Some versions of ISC are said to define S_IFLNK even tho
96 they don't really support symlinks. */
97#undef S_IFLNK
98
99/* arch-tag: 4de02713-eac5-4360-9d36-fd82c7a3ae44
100 (do not change this comment) */
diff --git a/src/s/isc3-0.h b/src/s/isc3-0.h
deleted file mode 100644
index 3df55031778..00000000000
--- a/src/s/isc3-0.h
+++ /dev/null
@@ -1,70 +0,0 @@
1/* s- file for Interactive (ISC) Unix version 3.0 on the 386.
2
3Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#include "isc2-2.h"
25
26/* This has been moved into isc2-2.h. */
27/* #define HAVE_SOCKETS */
28
29/* This appears on 3.0, presumably as part of what SunSoft call X2. */
30#undef NO_X_DESTROY_DATABASE
31
32#ifdef __GNUC__ /* Currently we use -lcposix only with gcc */
33#define POSIX_SIGNALS
34
35/* We don't need the definition from usg5-3.h with POSIX_SIGNALS. */
36#undef sigsetmask
37#undef HAVE_SYSV_SIGPAUSE
38#endif
39
40/* People say that using -traditional causes lossage with `const',
41 so we might as well try getting rid of -traditional. */
42#undef C_SWITCH_SYSTEM
43
44/* We indirectly #include s/usg5-3.h, which says to use libX11_s and
45 libc_s. Martin Tomes <mt00@controls.eurotherm.co.uk> says that ISC
46 has no libX11_s, and that linking with libc_s causes sbrk not to work. */
47#undef LIB_X11_LIB
48#undef LIBX11_SYSTEM
49#define LIBX11_SYSTEM -lpt -lnls -lnsl_s
50
51/* TIOCGWINSZ isn't broken; you just have to know where to find it. */
52#undef BROKEN_TIOCGWINSZ
53#define NEED_SIOCTL
54
55/* We need either _XOPEN_SOURCE or _POSIX_SOURCE to import the posix
56 signal symbols; might as well use _XOPEN_SOURCE. Defining _SYSV3
57 ensures that we don't lose the traditional symbols as a side effect
58 from this or __STDC__ being defined. It can't hurt to Define
59 _XOPEN_SOURCE=500, the latest and greatest value as of this writing. */
60#define C_SWITCH_SYSTEM -D_XOPEN_SOURCE=500 -D_SYSV3
61
62#ifdef __GNUC__ /* Currently we use -lcposix only with gcc */
63/* This works around a bug in ISC 4.0 and 3.0; it fails
64 to clear the "POSIX process" flag on an exec.
65 It won't be needed for 4.1. */
66#define EXTRA_INITIALIZE __setostype (0)
67#endif
68
69/* arch-tag: c1aca3f2-813d-4c1c-ad64-ca6c20ec9bfb
70 (do not change this comment) */
diff --git a/src/s/isc4-0.h b/src/s/isc4-0.h
deleted file mode 100644
index d180b5d182c..00000000000
--- a/src/s/isc4-0.h
+++ /dev/null
@@ -1,33 +0,0 @@
1#include "isc3-0.h"
2
3#undef LIBS_SYSTEM
4#define LIBS_SYSTEM -linet -lcposix
5
6#define ISC4_0
7
8/* fmcphers@csugrad.cs.vt.edu reported this was necessary.
9 He used GCC. I don't know what is needed with other compilers. */
10#ifdef __GNUC__
11#undef LIBX11_SYSTEM
12#define LIBX11_SYSTEM -lpt -lnls -lnsl_s -lcposix -lc
13#endif
14
15/* Tobias Herbert <herbert@clipper.ikp.physik.th-darmstadt.de>
16 says this is needed. */
17
18#ifndef POSIX_SIGNALS
19#ifndef sigblock
20#ifndef SIG_BLOCK
21#define SIG_BLOCK 0
22#endif
23#define sigblock(sig) \
24 (sigprocmask_set = SIGEMPTYMASK | (sig), \
25 sigprocmask (SIG_BLOCK, &sigprocmask_set, NULL))
26#define sigunblock(sig) \
27 (sigprocmask_set = SIGFULLMASK & ~(sig), \
28 sigprocmask (SIG_SETMASK, &sigprocmask_set, NULL))
29#endif
30#endif /* not POSIX_SIGNALS */
31
32/* arch-tag: 1278f86f-17f2-462d-88c9-85e4b5faa5c3
33 (do not change this comment) */
diff --git a/src/s/isc4-1.h b/src/s/isc4-1.h
deleted file mode 100644
index c37537e629c..00000000000
--- a/src/s/isc4-1.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#include "isc3-0.h"
2
3/* ISC 4.1 has renamed __setostype, but also has fixed the bug
4 for which we needed to call it; so just do nothing. uddeborg@carmen.se. */
5#undef EXTRA_INITIALIZE
6
7#define ISC4_1
8
9#undef LIBS_SYSTEM
10#define LIBS_SYSTEM -linet
11
12/* uddeborg@carmen.se recommends the rest of this file. */
13
14/* A special startup file is used when compiling with Posix. */
15#define START_FILES pre-crt0.o /lib/crtp1.o
16
17/* -lPW is only needed if not using Gcc. */
18#undef LIB_STANDARD
19#if defined (__GNUC__)
20# define LIB_STANDARD -lcposix -lc /lib/crtn.o
21#else /* !__GNUC__ */
22# define LIB_STANDARD -lPW -lcposix -lc /lib/crtn.o
23#endif /* !__GNUC__ */
24
25/* We have Posix termios. */
26#define HAVE_TERMIOS
27/* According to template.h HAVE_TERMIO and HAVE_TERMIOS shouldn't be */
28/* defined at the same time. */
29#undef HAVE_TERMIO
30
31/* ISC 4.1 has sys/wait.h but it does not work right. */
32#undef HAVE_SYS_WAIT_H
33
34/* arch-tag: ec5c77d9-a330-4d93-8117-d2b374531c67
35 (do not change this comment) */
diff --git a/src/s/newsos5.h b/src/s/newsos5.h
deleted file mode 100644
index 9e149bc5ed0..00000000000
--- a/src/s/newsos5.h
+++ /dev/null
@@ -1,53 +0,0 @@
1/* Definitions file for GNU Emacs running on Sony's NEWS-OS 5.0.2
2 Copyright (C) 1992, 1994, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/* Use the SysVr4 file for at least base configuration. */
23
24#include "usg5-4.h"
25
26#define NEWSOS5
27
28/* These will be defined by "m-mips.h". */
29#undef START_FILES
30#undef LIB_STANDARD
31
32#undef LIBS_SYSTEM
33#define LIBS_SYSTEM -lsocket -lnsl -lgen
34
35/* Disable use of "unexelf.c" and shared libraries, because
36 "unexelf.c" doesn't work correctly on NEWS-OS. "unexmips.c" does
37 work correctly if the program is linked statically without ELF. */
38#undef UNEXEC
39#undef USG_SHARED_LIBRARIES
40
41/* Use `ld' directly rather than ordinary link, because ordinary link
42 can't produce a non-ELF executable. */
43#undef ORDINARY_LINK
44#define LINKER /usr/lib/cmplrs/cc/ld
45#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o
46#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o /usr/ccs/lib/values-Xt.o
47
48#ifndef HAVE_SOCKETS
49#define HAVE_SOCKETS
50#endif
51
52/* arch-tag: 2bb78fcd-fbc4-46dd-a14b-e4a9be957fe0
53 (do not change this comment) */
diff --git a/src/s/newsos6.h b/src/s/newsos6.h
deleted file mode 100644
index ca3dbe706d0..00000000000
--- a/src/s/newsos6.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/* Definitions file for GNU Emacs running on Sony's NEWS-OS 6.x */
2
3#include "usg5-4-2.h"
4
5#define NEWSOS6
6#define HAVE_TEXT_START
7
8/* arch-tag: a0db9cb0-43bb-4f9e-85fa-384e30f02d74
9 (do not change this comment) */
diff --git a/src/s/osf1.h b/src/s/osf1.h
deleted file mode 100644
index 7e55ce4fb6d..00000000000
--- a/src/s/osf1.h
+++ /dev/null
@@ -1,99 +0,0 @@
1/* Definitions file for GNU Emacs running on osf1.
2 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006,
3 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23#include "bsd4-3.h"
24
25/* Identify OSF1 for the m- files. */
26
27#define OSF1
28
29#define C_SWITCH_SYSTEM -D_BSD
30#define LIBS_SYSTEM -lbsd
31
32#define GETPGRP_NO_ARG
33
34#define SYSV_SYSTEM_DIR
35
36/* If your system uses COFF (Common Object File Format) then define the
37 preprocessor symbol "COFF". */
38
39#define COFF
40
41/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option
42 says where to find X windows at run time. We convert it to a -rpath option
43 which is what OSF1 uses. */
44#define LD_SWITCH_SYSTEM `echo LD_SWITCH_X_SITE_AUX | sed -e 's/-R/-Wl,-rpath,/'`
45
46#define HAVE_TERMIOS
47
48#ifndef __GNUC__
49/* Optimize, inaccurate debugging. */
50#define C_DEBUG_SWITCH -g3
51#endif
52
53#ifndef NOT_C_CODE
54#ifndef OSF5 /* fixed in 5.0 */
55/* Hack alert! For reasons unknown to mankind the string.h file insists
56 on defining bcopy etc. as taking char pointers as arguments. With
57 Emacs this produces an endless amount of warning which are harmless,
58 but tends to flood the real errors. This hack works around this problem
59 by not prototyping. */
60#define bcopy string_h_bcopy
61#define bzero string_h_bzero
62#define bcmp string_h_bcmp
63#include <string.h>
64#undef bcopy
65#undef bzero
66#undef bcmp
67#endif
68#endif
69
70#define ORDINARY_LINK
71
72/* Some systems seem to have this, others don't. */
73#ifdef HAVE_LIBDNET
74#define LIBS_MACHINE -ldnet
75#else
76#define LIBS_MACHINE -ldnet_stub
77#endif
78
79#define LIBS_DEBUG
80#define START_FILES pre-crt0.o
81
82#define PTY_ITERATION for (i = 0; i < 1; i++) /* ick */
83#define PTY_NAME_SPRINTF /* none */
84#define PTY_TTY_NAME_SPRINTF /* none */
85#define PTY_OPEN \
86 do \
87 { \
88 int dummy; \
89 SIGMASKTYPE mask; \
90 mask = sigblock (sigmask (SIGCHLD)); \
91 if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) \
92 fd = -1; \
93 sigsetmask (mask); \
94 emacs_close (dummy); \
95 } \
96 while (0)
97
98/* arch-tag: 65eaea67-fcc3-4de7-8574-d46beb82d4ed
99 (do not change this comment) */
diff --git a/src/s/osf5-0.h b/src/s/osf5-0.h
deleted file mode 100644
index 4f22f6d641b..00000000000
--- a/src/s/osf5-0.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#define OSF5
2#include "osf1.h"
3
4/* It's enough to define _OSF_SOURCE instead of _BSD. */
5
6#undef C_SWITCH_SYSTEM
7#define C_SWITCH_SYSTEM -D_OSF_SOURCE
8
9#ifndef NSIG /* _OSF_SOURCE seems to get us this */
10#define NSIG __sys_nsig
11#endif
12
13/* We have missing/inconsistent prototypes on 5.0, at least. */
14#define INHIBIT_X11R6_XIM
15
16#define USE_MMAP_FOR_BUFFERS 1
17
18#define TERMINFO
19#define LIBS_TERMCAP -lcurses
20
21#define GC_SETJMP_WORKS 1
22#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
23
24/* arch-tag: 89580064-dd8c-4533-a47c-0f92d8090945
25 (do not change this comment) */
diff --git a/src/s/riscix1-1.h b/src/s/riscix1-1.h
deleted file mode 100644
index cccbbd3b2c8..00000000000
--- a/src/s/riscix1-1.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/* Definitions file for GNU Emacs running on RISCiX 1.1 (bsd 4.3) */
2
3#define RISCiX_1_1 1
4#define RISCiX 11
5#define CRT0_O /lib/crt0.o
6#include "bsd4-3.h"
7
8/* arch-tag: 382df034-9843-4a82-8a3a-2e50a4dd532c
9 (do not change this comment) */
diff --git a/src/s/riscix12.h b/src/s/riscix12.h
deleted file mode 100644
index cc81c7da1c7..00000000000
--- a/src/s/riscix12.h
+++ /dev/null
@@ -1,29 +0,0 @@
1/* Definitions file for GNU Emacs running on RISCiX 1.2 (bsd 4.3)
2 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23#define RISCiX_1_2 1
24#define RISCiX 12
25#define CRT0_O /usr/lib/crt0.o
26#include "bsd4-3.h"
27
28/* arch-tag: f6b21e0a-f676-418a-9c8a-10fa8cd9dba7
29 (do not change this comment) */
diff --git a/src/s/sco4.h b/src/s/sco4.h
deleted file mode 100644
index d16bcbead49..00000000000
--- a/src/s/sco4.h
+++ /dev/null
@@ -1,145 +0,0 @@
1/* System description file for SCO 3.2v4.
2 Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/* Contributed by Ian Lance Taylor, ian@cygnus.com. */
23
24/* SCO is sort of like SVR3. */
25#include "usg5-3.h"
26#define SCO_R4
27
28#if 0 /* Turned off rather than make the Lisp code check for this. -- rms.
29 I am assuming that (at least most of) the tests for usg-unix-v
30 do the right thing for sco3.2v4 also. Things that *might* be wrong
31 as a result of turning off these lines include the values of
32 ange-ftp-remote-shell-file-name (now remsh)
33 dired-chown-program (now just chown)
34 lpr-command (now lp)
35 nntp-buggy-select (now t)
36 rmail-spool-directory (now /usr/mail?)
37 and the actions of the function print-region-1. */
38
39/* SYSTEM_TYPE should indicate the kind of system you are using. */
40#undef SYSTEM_TYPE
41#define SYSTEM_TYPE "SCO 3.2v4"
42#endif
43
44/* SCO supports job control. */
45#undef NOMULTIPLEJOBS
46
47/* SCO has termios. */
48#define HAVE_TERMIOS
49
50/* SCO has ptys with unusual names. */
51#define HAVE_PTYS
52
53#define PTY_ITERATION \
54 for (i = 0; ; i++)
55#define PTY_NAME_SPRINTF \
56 sprintf (pty_name, "/dev/ptyp%d", i);
57#define PTY_TTY_NAME_SPRINTF \
58 sprintf (pty_name, "/dev/ttyp%d", i);
59
60/* Sockets are an option on SCO. If you have X, you have them.
61 They also exist if you have TCP, but we don't know how to test
62 for that. */
63#ifdef HAVE_X_WINDOWS
64#define HAVE_SOCKETS
65#endif
66
67/* Must use 'cc' to link when build with motif toolkit. */
68#ifndef __GNUC__
69#define LINKER cc
70#endif
71
72/* This is safe since we already assumed HAVE_SOCKET
73 if using X windows. */
74#undef LIBX11_SYSTEM
75#define LIBX11_SYSTEM -lpt -lnls -lnsl_s -lc_s -lsocket
76
77/* Motif needs -lintl on some (maybe all) ofthese systems. */
78#ifdef HAVE_LIBINTL
79#define LIB_MOTIF -lXm -lintl
80#endif
81
82#ifdef HAVE_INET_SOCKETS /* This comes from autoconf. */
83#define HAVE_SOCKETS
84#endif
85
86#ifdef HAVE_SOCKETS
87#define LIBS_SYSTEM -lsocket -lPW
88
89/* SCO has gettimeofday in socket library */
90/* Autoconf should determine this, but for now,
91 play safe to avoid error rather than deleting this
92 and risking the wrong result. */
93#ifndef HAVE_GETTIMEOFDAY
94#define HAVE_GETTIMEOFDAY
95#endif
96#endif
97
98/* This enables configure to tell that we have alloca. */
99#ifndef LIBS_SYSTEM
100#define LIBS_SYSTEM -lPW
101#endif
102
103/* configure can't get this right linking fails unless -lsocket is used. */
104#undef HAVE_XSCREENNUMBEROFSCREEN
105#define HAVE_XSCREENNUMBEROFSCREEN
106
107/* We don't have -loldX, and we don't need it. */
108#define LIB_XMENU_LIB
109
110/* SCO does have TIOCGWINSZ. */
111#undef BROKEN_TIOCGWINSZ
112#define NEED_PTEM_H
113
114/* We need to link with crt1.o and crtn.o. */
115#define START_FILES pre-crt0.o /lib/crt1.o
116#define LIB_STANDARD -lc /lib/crtn.o
117
118/* Send signals to subprocesses by "typing" signal chars at them. */
119#define SIGNALS_VIA_CHARACTERS
120
121/* Specify program for etc/fakemail to run. Define SMAIL if you are
122 using smail, don't for MMDF. */
123
124#ifdef SMAIL
125#define MAIL_PROGRAM_NAME "/bin/smail -q0"
126#else
127#define MAIL_PROGRAM_NAME "/usr/lib/mail/execmail"
128#endif
129
130/* Tell process_send_signal to use VSUSP instead of VSWTCH. */
131#define PREFER_VSUSP
132
133/* wjs@wang.com (William Smith) says this is needed on 3.2.4.2. */
134#define POSIX_SIGNALS
135
136/* wjs@wiis.wang.com says SCO 3.2 v4.2 "has sockets",
137 but only for network connections.
138 It doesn't have the kind of sockets that emacsclient.c
139 and emacsserver.c would use. */
140#define NO_SOCKETS_IN_FILE_SYSTEM
141
142#define NARROWPROTO 1
143
144/* arch-tag: 4dd6fe94-bcb7-4be0-942a-ff4bc3cd914e
145 (do not change this comment) */
diff --git a/src/s/sco5.h b/src/s/sco5.h
deleted file mode 100644
index 1f56a998014..00000000000
--- a/src/s/sco5.h
+++ /dev/null
@@ -1,175 +0,0 @@
1/* System description file for SCO 3.2v5.
2 Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to the
19Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/* Contributed by Mark Diekhans <markd@grizzly.com>. */
23
24/* SCO is sort of like SVR3. */
25#include "usg5-3.h"
26#define SCO_R5
27
28#if 0 /* Turned off rather than make the Lisp code check for this. -- rms.
29 I am assuming that (at least most of) the tests for usg-unix-v
30 do the right thing for sco3.2v4 also. Things that *might* be wrong
31 as a result of turning off these lines include the values of
32 ange-ftp-remote-shell-file-name (now remsh)
33 dired-chown-program (now just chown)
34 lpr-command (now lp)
35 nntp-buggy-select (now t)
36 rmail-spool-directory (now /usr/mail?)
37 and the actions of the function print-region-1. */
38
39/* SYSTEM_TYPE should indicate the kind of system you are using. */
40#undef SYSTEM_TYPE
41#define SYSTEM_TYPE "SCO 3.2v4"
42#endif
43
44/* SCO supports job control. */
45#undef NOMULTIPLEJOBS
46
47/* SCO has termios. */
48#define HAVE_TERMIOS
49
50/* SCO has ptys with unusual names. */
51#define HAVE_PTYS
52
53#define PTY_ITERATION \
54 for (i = 0; ; i++)
55#define PTY_NAME_SPRINTF \
56 sprintf (pty_name, "/dev/ptyp%d", i);
57#define PTY_TTY_NAME_SPRINTF \
58 sprintf (pty_name, "/dev/ttyp%d", i);
59
60/* Sockets are an option on SCO. If you have X, you have them.
61 They also exist if you have TCP, but we don't know how to test
62 for that. */
63#ifdef HAVE_X_WINDOWS
64#define HAVE_SOCKETS
65#endif
66
67#ifndef __GNUC__
68#define LINKER ld
69#endif
70
71/* This is safe since we already assumed HAVE_SOCKET
72 if using X windows. */
73#undef LIBX11_SYSTEM
74#define LIBX11_SYSTEM_COMMON -lpt -lnls -lnsl -lc -lsocket
75#ifdef MOTIF
76# define LIBX11_SYSTEM -lgen LIBX11_SYSTEM_COMMON
77#else /* ndef MOTIF */
78# define LIBX11_SYSTEM LIBX11_SYSTEM_COMMON
79#endif /* ndef MOTIF */
80
81#undef LIB_X11_LIB
82#define LIB_X11_LIB -lX11
83
84#ifdef HAVE_INET_SOCKETS /* This comes from autoconf. */
85#define HAVE_SOCKETS
86#endif
87
88#ifdef HAVE_SOCKETS
89#define LIBS_SYSTEM -lsocket -lPW
90#endif
91
92#ifndef HAVE_GETTIMEOFDAY
93#define HAVE_GETTIMEOFDAY
94#endif
95
96/* This enables configure to tell that we have alloca. */
97#ifndef LIBS_SYSTEM
98#define LIBS_SYSTEM -lPW
99#endif
100
101/* configure can't get this right linking fails unless -lsocket is used. */
102#undef HAVE_XSCREENNUMBEROFSCREEN
103#define HAVE_XSCREENNUMBEROFSCREEN
104
105/* We don't have -loldX, and we don't need it. */
106#define LIB_XMENU_LIB
107
108/* SCO does have TIOCGWINSZ. */
109#undef BROKEN_TIOCGWINSZ
110#define NEED_PTEM_H
111
112/* We need to link with crt1.o and crtn.o. */
113#define START_FILES pre-crt0.o /lib/crt1.o
114#define LIB_STANDARD -lc /lib/crtn.o
115
116/* Send signals to subprocesses by "typing" signal chars at them. */
117#define SIGNALS_VIA_CHARACTERS
118
119/* Specify program for etc/fakemail to run. Define SMAIL if you are
120 using smail, don't for MMDF. */
121
122#ifdef SMAIL
123#define MAIL_PROGRAM_NAME "/bin/smail -q0"
124#else
125#define MAIL_PROGRAM_NAME "/usr/lib/mail/execmail"
126#endif
127
128/* Tell process_send_signal to use VSUSP instead of VSWTCH. */
129#define PREFER_VSUSP
130
131/* SCO Unix has Posix signals, but in 3.2.5 something broken that causes
132 * all keyboard-quit signals to be lost after the first one. */
133#undef POSIX_SIGNALS
134
135#define SIGMASKTYPE long
136
137#ifndef NOT_C_CODE
138extern SIGMASKTYPE sigprocmask_set;
139#endif /* not NOT_C_CODE */
140
141#define sigblock(sig) \
142 (sigprocmask_set = SIGEMPTYMASK | (sig), \
143 sigprocmask (SIG_BLOCK, &sigprocmask_set, NULL))
144#define sigunblock(sig) \
145 (sigprocmask_set = SIGFULLMASK & ~(sig), \
146 sigprocmask (SIG_SETMASK, &sigprocmask_set, NULL))
147
148#ifndef PENDING_OUTPUT_COUNT
149#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)
150#endif
151
152/* Use ELF and get real shared libraries */
153
154#undef COFF
155#define ELF
156
157#define UNEXEC unexelf.o
158
159#ifndef __GNUC__
160#define C_SWITCH_SYSTEM -belf
161#define LD_SWITCH_SYSTEM -belf
162#endif
163
164/* Don't disable static function, as SCO's header files have some.*/
165#undef static
166
167#undef START_FILES
168#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/values-Xt.o
169#undef LIB_STANDARD
170#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o
171
172#define NARROWPROTO 1
173
174/* arch-tag: 930541b5-52d9-4cbe-b73c-f4c72091f5df
175 (do not change this comment) */
diff --git a/src/s/sunos4-0.h b/src/s/sunos4-0.h
deleted file mode 100644
index bf77812f32c..00000000000
--- a/src/s/sunos4-0.h
+++ /dev/null
@@ -1,75 +0,0 @@
1/* Definitions file for GNU Emacs running on sunos 4.0.
2
3 Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA. */
22
23
24#include "bsd4-2.h"
25
26#ifndef SUNOS4
27#define SUNOS4
28#endif
29
30#if 0 /* This may have been needed for an earlier version of Sun OS 4.
31 It seems to cause warnings in 4.0.3 and 4.1. */
32#define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */
33#endif
34
35/* We use the Sun syntax -Bstatic unconditionally, because even when we
36 use GCC, these are passed through to the linker, not handled by GCC
37 directly. */
38#define LD_SWITCH_SYSTEM -Bstatic
39
40/* We use this for linking temacs, but not for other programs
41 or for tests in configure. */
42#define LD_SWITCH_SYSTEM_TEMACS -e __start
43
44/* In SunOS 4.1, a static function called by tzsetwall reportedly
45 clears the byte just past an eight byte region it mallocs, corrupting
46 GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */
47
48#define SYSTEM_MALLOC
49
50/* SunOS 4.x cc <stdlib.h> declares abort and free to return int. */
51
52#ifndef __STDC__
53#define ABORT_RETURN_TYPE int
54#define FREE_RETURN_TYPE int
55#endif
56
57#ifdef __GNUC__
58/* We must define mkdir with this arg prototype
59 to match GCC's fixed stat.h. */
60#define MKDIR_PROTOTYPE \
61 int mkdir (const char *dpath, unsigned short dmode)
62#endif /* __GNUC__ */
63
64/* Must use the system's termcap, if we use any termcap.
65 It does special things. */
66
67#ifndef TERMINFO
68#define LIBS_TERMCAP -ltermcap
69#endif
70
71#define GC_SETJMP_WORKS 1
72#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
73
74/* arch-tag: 362f3bfc-810d-4f6e-9b83-5a32f8f1a926
75 (do not change this comment) */
diff --git a/src/s/sunos4-1.h b/src/s/sunos4-1.h
deleted file mode 100644
index 2e41c55bbfe..00000000000
--- a/src/s/sunos4-1.h
+++ /dev/null
@@ -1,36 +0,0 @@
1#include "sunos4-0.h"
2
3/* Cause the compilation of oldxmenu to use the right -I option. */
4#define OLDXMENU_OPTIONS CFLAGS=C_SWITCH_SYSTEM
5
6#if 0 /* This isn't right. Apparently some sites do have -lresolv
7 but don't use that. On those systems, the code below loses.
8 There's no way to win automatically unless someone
9 figures out a way of determining automatically which way is right
10 on any given system. */
11/* Some systems do not run the Network Information Service, but have
12 modified the shared C library to include resolver support without
13 also changing the C archive library (/usr/lib/libc.a). If we
14 detect the presence of libresolv.a, use -lresolv to supplement libc.a.
15
16 We used to have #ifdef HAVE_GETHOSTNAME is to prevent configure from
17 setting libsrc_libs to -lresolv in lib-src/Makefile. But nowadays
18 configure is smarter about computing libsrc_libs, and would not
19 be fooled. Anyway, why not use -lresolv in lib-src? */
20/* #ifdef HAVE_GETHOSTNAME */
21#ifdef HAVE_LIBRESOLV
22#define LIBS_SYSTEM -lresolv
23#endif
24/* #endif */
25#endif
26
27#if 0 /* Not necessary, since SYSTEM_MALLOC is defined in sunos4-0.h. */
28/* Tell GNU malloc to compensate for a bug in localtime. */
29#define SUNOS_LOCALTIME_BUG
30#endif
31
32/* Define dlopen, dlclose, dlsym. */
33#define USE_DL_STUBS
34
35/* arch-tag: 154e2eb2-2180-4d66-90b9-7e56a22004f2
36 (do not change this comment) */
diff --git a/src/s/sunos413.h b/src/s/sunos413.h
deleted file mode 100644
index 9f40f2fa3af..00000000000
--- a/src/s/sunos413.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#include "sunos4-1.h"
2
3/* jik@gza.com says this works now. */
4/* The bug that corrupts GNU malloc's memory pool is fixed in SunOS 4.1.3. */
5
6#undef SYSTEM_MALLOC
7
8/* barrie@calvin.demon.co.uk says memmove is missing. */
9#ifndef SYSTEM_MALLOC
10#define MEMMOVE_MISSING
11#endif
12
13#define USE_MMAP_FOR_BUFFERS 1
14
15/* arch-tag: ebd184b0-9084-4306-8e71-c0437330e1e1
16 (do not change this comment) */
diff --git a/src/s/sunos4shr.h b/src/s/sunos4shr.h
deleted file mode 100644
index 5ebbae3a0a2..00000000000
--- a/src/s/sunos4shr.h
+++ /dev/null
@@ -1,84 +0,0 @@
1/*
2Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23/* This file permits building Emacs with a shared libc on Sunos 4.
24 To make this work, you must completely replace your C shared library
25 using one of the SunOS 4.1.x jumbo replacement patches from Sun.
26 Here are the patch numbers for Sunos 4.1.3:
27 100890-10 SunOS 4.1.3: domestic libc jumbo patch
28 100891-10 SunOS 4.1.3: international libc jumbo patch */
29
30
31#include "sunos4-1.h"
32
33/* Say that the text segment of a.out includes the header;
34 the header actually occupies the first few bytes of the text segment
35 and is counted in hdr.a_text. */
36
37/* Misleading! Actually gets loaded after crt0.o */
38#define START_FILES pre-crt0.o
39
40/*
41 * Kludge! can't get at symbol "start" in std crt0.o
42 * Who the #$%&* decided to remove the __ characters!
43 * Someone needs to fix this in sysdep.c with an #ifdef BROKEN_START in
44 * sysdep.c. We do not use this address so any value should do really. Still
45 * may need it in the future?
46 */
47#define BROKEN_START
48#define TEXT_START 0x2020
49
50#define UNEXEC unexsunos4.o
51#define RUN_TIME_REMAP
52#define ORDINARY_LINK
53#define SUNOS4_SHARED_LIBRARIES
54
55#undef LD_SWITCH_SYSTEM
56#undef LD_SWITCH_SYSTEM_TEMACS
57
58#undef SYSTEM_MALLOC
59#ifndef GNU_MALLOC
60#define GNU_MALLOC
61#endif
62#ifndef REL_ALLOC
63#define REL_ALLOC
64#endif
65
66/* khera@cs.duke.edu says this is needed. */
67#define memmove(to, from, size) bcopy (from, to, size)
68
69#undef USE_DL_STUBS
70
71#ifndef HAVE_X11R6
72/* With X11R5 it was reported that linking -lXmu dynamically
73 did not work. With X11R6, it does work; and since normally
74 only the dynamic libraries are available, we should use them. */
75#ifdef __GNUC__
76#define LIBXMU -Xlinker -Bstatic -lXmu -Xlinker -Bdynamic
77#else
78#define LIBXMU -Bstatic -lXmu -Bdynamic
79#endif
80
81#endif /* not HAVE_X11R6 */
82
83/* arch-tag: cb54321a-ed45-4c17-a23e-1c157758da78
84 (do not change this comment) */
diff --git a/src/s/umax.h b/src/s/umax.h
deleted file mode 100644
index aa73faa4917..00000000000
--- a/src/s/umax.h
+++ /dev/null
@@ -1,170 +0,0 @@
1/* Definitions file for GNU Emacs running on UMAX 4.2
2 Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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 BSD4_1 */
32#define BSD4_2
33/* #define BSD4_3 */
34#define BSD_SYSTEM
35#define UMAX4_2
36#define UMAX
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 disadvantages
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 'p'
74
75/*
76 * Define HAVE_PTYS if the system supports pty devices.
77 */
78
79#define HAVE_PTYS
80
81/* Define this macro if system defines a type `union wait'. */
82
83#define HAVE_UNION_WAIT
84
85/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
86
87#define HAVE_SOCKETS
88
89/*
90 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
91 * The 4.2 opendir, etc., library functions.
92 */
93
94/* #define NONSYSTEM_DIR_LIBRARY */
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 generally OS dependent, and not supported
104 under most USG systems. */
105
106#define subprocesses
107
108/* If your system uses COFF (Common Object File Format) then define the
109 preprocessor symbol "COFF". */
110
111#define COFF
112
113/* define MAIL_USE_FLOCK if the mailer uses flock
114 to interlock access to /usr/spool/mail/$USER.
115 The alternative is that a lock file named
116 /usr/spool/mail/$USER.lock. */
117
118#define MAIL_USE_FLOCK
119
120/* Define CLASH_DETECTION if you want lock files to be written
121 so that Emacs can tell instantly when you try to modify
122 a file that someone else has modified in his Emacs. */
123
124#define CLASH_DETECTION
125
126/* The file containing the kernel's symbol table is called /vmunix. */
127
128#define KERNEL_FILE "/vmunix"
129
130/* The symbol in the kernel where the load average is found
131 is named _avenrun. */
132
133#define LDAV_SYMBOL "_avenrun"
134
135/* Here, on a separate page, add any special hacks needed
136 to make Emacs work on this system. For example,
137 you might define certain system call names that don't
138 exist on your system, or that do different things on
139 your system and must be used only through an encapsulation
140 (Which you should place, by convention, in sysdep.c). */
141
142/* Specify alignment requirement for start of text and data sections
143 in the executable file. */
144
145#define SECTION_ALIGNMENT pagemask
146
147
148#define SEGMENT_MASK (64 * 1024 - 1)
149
150
151/* crt0.c needs this for compilation because it uses asm. */
152
153#define C_SWITCH_ASM -q nodirect_code
154
155/* Encore machines with APC processor boards align sections on 4M
156 boundaries, so it is not easy to remap the start of the text segment
157 in the unexec() routine. For them you need the following two lines.
158 For DPC processors you can enable these or not, as you wish, but
159 you will get better performance without them. */
160
161/* #define NO_REMAP
162 #define TEXT_START 0
163*/
164
165/* Process groups work in the traditional BSD manner. */
166
167#define BSD_PGRPS
168
169/* arch-tag: 2860edda-ce9e-4cfa-943d-3a06c7045854
170 (do not change this comment) */
diff --git a/src/s/unipl5-2.h b/src/s/unipl5-2.h
deleted file mode 100644
index 5730fa65284..00000000000
--- a/src/s/unipl5-2.h
+++ /dev/null
@@ -1,160 +0,0 @@
1/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.2
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, 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 USG /* System III, System V, etc */
29
30#define USG5
31
32#define UNIPLUS
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 "unisoft-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/* 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/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/*
62 * Define HAVE_PTYS if the system supports pty devices.
63 */
64
65#define HAVE_PTYS
66
67/* Define this macro if system defines a type `union wait'. */
68
69#define HAVE_UNION_WAIT
70
71/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
72
73/* #define HAVE_SOCKETS */
74
75/*
76 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
77 * The 4.2 opendir, etc., library functions.
78 */
79
80#define NONSYSTEM_DIR_LIBRARY
81
82/* Define this symbol if your system has the functions bcopy, etc. */
83
84/* #define BSTRING */
85
86/* subprocesses should be defined if you want to
87 have code for asynchronous subprocesses
88 (as used in M-x compile and M-x shell).
89 This is generally OS dependent, and not supported
90 under most USG systems. It is supported under UniPlus
91 System V Release 2. */
92
93#define subprocesses
94
95/* If your system uses COFF (Common Object File Format) then define the
96 preprocessor symbol "COFF". */
97
98#define COFF
99
100/* define MAIL_USE_FLOCK if the mailer uses flock
101 to interlock access to /usr/spool/mail/$USER.
102 The alternative is that a lock file named
103 /usr/spool/mail/$USER.lock. */
104
105/* #define MAIL_USE_FLOCK */
106
107/* Define CLASH_DETECTION if you want lock files to be written
108 so that Emacs can tell instantly when you try to modify
109 a file that someone else has modified in his Emacs. */
110
111/* #define CLASH_DETECTION */
112
113/* Uniplus 5.2 supports long names in C */
114
115/* #define SHORTNAMES */
116
117/* The file containing the kernel's symbol table is called /unix. */
118
119#define KERNEL_FILE "/unix"
120
121/* The symbol in the kernel where the load average is found
122 is named avenrun. */
123
124#define LDAV_SYMBOL "avenrun"
125
126/* Special hacks needed to make Emacs run on this system. */
127
128/*
129 * Make the sigsetmask function go away. Don't know what the
130 * ramifications of this are, but doesn't seem possible to
131 * emulate it properly anyway at this point.
132 */
133
134#define sigsetmask(mask) /* Null expansion */
135
136/* setjmp and longjmp can safely replace _setjmp and _longjmp,
137 but they will run slower. */
138
139#define _setjmp setjmp
140#define _longjmp longjmp
141
142/* On USG systems these have different names */
143
144#define index strchr
145#define rindex strrchr
146
147/* Compiler bug bites when default ADDR_CORRECT is used. */
148
149#define ADDR_CORRECT(x) (x)
150
151/* Special library needed for linking for Uniplus */
152
153#define LIBS_SYSTEM -lnet
154
155/* A system-specific loader switch is needed. */
156
157#define LD_SWITCH_SYSTEM -N -L/lib/libg /usr/lib/unshared.ld
158
159/* arch-tag: d3f952a9-fef5-45d5-9c1e-c1c32bfef86c
160 (do not change this comment) */
diff --git a/src/s/xenix.h b/src/s/xenix.h
deleted file mode 100644
index c5b3cf225e0..00000000000
--- a/src/s/xenix.h
+++ /dev/null
@@ -1,212 +0,0 @@
1/* Definitions file for GNU Emacs running SCO Xenix 386 Release 2.2
2 Copyright (C) 1988, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
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 UNIPLUS */
28#define XENIX
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_SYSTEM */
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 "xenix"
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 disadvantages:
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. 'p' means it is /dev/ptyp0 */
72
73/* #define FIRST_PTY_LETTER 'p' */
74
75/*
76 * Define HAVE_TERMIO if the system provides sysV-style ioctls
77 * for terminal control.
78 */
79
80#define HAVE_TERMIO
81
82/*
83 * Define HAVE_PTYS if the system supports pty devices.
84 */
85
86/* #define HAVE_PTYS */
87
88/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
89
90/* #define HAVE_SOCKETS */
91
92/*
93 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
94 * The 4.2 opendir, etc., library functions.
95 */
96
97#define NONSYSTEM_DIR_LIBRARY
98
99/* Define this symbol if your system has the functions bcopy, etc. */
100
101/* #define BSTRING */
102
103/* subprocesses should be defined if you want to
104 have code for asynchronous subprocesses
105 (as used in M-x compile and M-x shell).
106 This is supposed to work now on system V release 2. */
107
108#define subprocesses
109
110/* If your system uses COFF (Common Object File Format) then define the
111 preprocessor symbol "COFF". */
112
113/* #define COFF */
114
115/* Xenix requires completely different unexec code
116 which lives in a separate file. Specify the file name. */
117
118#define UNEXEC unexenix.o
119
120/* define MAIL_USE_FLOCK if the mailer uses flock
121 to interlock access to /usr/spool/mail/$USER.
122 The alternative is that a lock file named
123 /usr/spool/mail/$USER.lock. */
124
125#define MAIL_USE_FLOCK
126
127/* Define CLASH_DETECTION if you want lock files to be written
128 so that Emacs can tell instantly when you try to modify
129 a file that someone else has modified in his Emacs. */
130
131/* The way this is implemented requires long filenames... */
132/* #define CLASH_DETECTION */
133
134/* Define SHORTNAMES if the C compiler can distinguish only
135 short names. It means that the stuff in ../shortnames
136 must be run to convert the long names to short ones. */
137
138/* #define SHORTNAMES */
139
140/* Compensate for one incompatibility between Xenix and V.0. */
141#define n_zeroes n_name[0]
142
143/* The file containing the kernel's symbol table is called /xenix. */
144
145#define KERNEL_FILE "/xenix"
146
147/* The symbol in the kernel where the load average is found
148 is named avenrun. */
149
150#define LDAV_SYMBOL "_avenrun"
151
152/* Special hacks needed to make Emacs run on this system. */
153
154/*
155 * Make the sigsetmask function go away. Don't know what the
156 * ramifications of this are, but doesn't seem possible to
157 * emulate it properly anyway at this point.
158 */
159
160#define sigsetmask(mask) /* Null expansion */
161
162/* setjmp and longjmp can safely replace _setjmp and _longjmp,
163 but they will run slower. */
164
165#define _setjmp setjmp
166#define _longjmp longjmp
167
168/* On USG systems these have different names */
169
170#define index strchr
171#define rindex strrchr
172
173/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
174
175#define ADDR_CORRECT(x) (x)
176
177/* Prevent -lg from being used for debugging. Not implemented? */
178
179#define LIBS_DEBUG
180
181/* Switches for linking temacs. */
182
183#define LD_SWITCH_SYSTEM -i
184
185/* Xenix implements sysV style IPC. */
186
187#define HAVE_SYSVIPC
188
189/* Use terminfo instead of termcap. */
190
191/* Tell Emacs to use Terminfo. */
192
193#define TERMINFO
194
195/* Tell Xenix curses to BE Terminfo. */
196#define M_TERMINFO
197
198/* Control program name for etc/fakemail to run. */
199
200#ifdef SMAIL
201#define MAIL_PROGRAM_NAME "/usr/bin/smail -q0"
202#else
203#define MAIL_PROGRAM_NAME "/usr/lib/mail/execmail"
204#endif
205
206/* Some variants have TIOCGETC, but the structures to go with it
207 are not declared. */
208
209#define BROKEN_TIOCGETC
210
211/* arch-tag: 71d3985d-4e53-4572-8276-5dce26bbd076
212 (do not change this comment) */
diff --git a/src/sysdep.c b/src/sysdep.c
index d1f378a3f87..d421c55f2c2 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -33,12 +33,6 @@ Boston, MA 02110-1301, USA. */
33/* Including stdlib.h isn't necessarily enough to get srandom 33/* Including stdlib.h isn't necessarily enough to get srandom
34 declared, e.g. without __USE_XOPEN_EXTENDED with glibc 2. */ 34 declared, e.g. without __USE_XOPEN_EXTENDED with glibc 2. */
35#ifdef HAVE_RANDOM 35#ifdef HAVE_RANDOM
36#if 0 /* It turns out that defining _OSF_SOURCE in osf5-0.h gets
37 random prototyped as returning `int'. It looks to me as
38 though the best way to DTRT is to prefer the rand48 functions
39 (per libc.info). -- fx */
40extern long int random P_ ((void));
41#endif
42#if 0 /* Don't prototype srandom; it takes an unsigned argument on 36#if 0 /* Don't prototype srandom; it takes an unsigned argument on
43 some systems, and an unsigned long on others, like FreeBSD 37 some systems, and an unsigned long on others, like FreeBSD
44 4.1. */ 38 4.1. */
diff --git a/src/unexapollo.c b/src/unexapollo.c
deleted file mode 100644
index 4facf823e19..00000000000
--- a/src/unexapollo.c
+++ /dev/null
@@ -1,301 +0,0 @@
1/* unexapollo.c -- COFF File UNEXEC for GNU Emacs on Apollo SR10.x
2 Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22/* Written by Leonard N. Zubkoff. */
23
24#ifdef HAVE_CONFIG_H
25#include <config.h>
26#endif
27
28#include <fcntl.h>
29
30
31#include <a.out.h>
32#include <sys/file.h>
33#include <apollo/base.h>
34#include <apollo/ios.h>
35#include <apollo/type_uids.h>
36#include <apollo/dst.h>
37
38
39#define DST_RECORD_HDR_SIZE 2
40#define LONG_ALIGN(X) (((X)+3)&(~3))
41
42
43void
44unexec (target_file_name, source_file_name)
45 char *target_file_name, *source_file_name;
46{
47 struct filehdr file_header;
48 struct aouthdr domain_header;
49 struct scnhdr *section, *sections, *sections_limit;
50 struct scnhdr *first_data_section, *last_data_section;
51 struct scnhdr *rwdi_section, *blocks_section;
52 struct reloc reloc_entry;
53 unsigned long data_size, old_data_section_size, source_file_offset_past_rwdi;
54 unsigned char buffer[4096];
55 long delta_before_rwdi, delta_after_rwdi, byte_count;
56 long first_changed_vaddr, old_rwdi_vaddr, i;
57 ios_$id_t target_file, source_file;
58 status_$t status;
59 /* Open the Source File. */
60 if ((source_file = open (source_file_name, O_RDONLY)) < 0)
61 error ("cannot open source file for input");
62 /* Read the File Header. */
63 if (read (source_file, &file_header, sizeof (file_header)) != sizeof (file_header))
64 error ("cannot read file header");
65
66 /* Read the Domain Header. */
67 if (read (source_file, &domain_header, sizeof (domain_header))
68 != sizeof (domain_header))
69 error ("cannot read domain header");
70 /* Read the Section Headers. */
71 sections =
72 (struct scnhdr *) malloc (file_header.f_nscns*sizeof (struct scnhdr));
73 if (sections == (struct scnhdr *) 0)
74 error ("cannot allocate section header storage");
75 sections_limit = sections + file_header.f_nscns;
76 if (read (source_file, sections, file_header.f_nscns*sizeof (struct scnhdr))
77 != file_header.f_nscns*sizeof (struct scnhdr))
78 error ("cannot read section headers");
79 /* Compute the new Size of the Data Section. */
80 data_size = sbrk (0) - domain_header.data_start;
81 delta_before_rwdi = delta_after_rwdi = data_size - domain_header.dsize;
82 old_rwdi_vaddr = 0;
83 /* Find and Deallocate the .rwdi Section Information. */
84 for (rwdi_section = sections; rwdi_section != sections_limit; rwdi_section++)
85 if (strcmp (rwdi_section->s_name, ".rwdi") == 0)
86 {
87 /* If there are relocation entries, we cannot "unrelocate" them. */
88 if (rwdi_section->s_nreloc > 0)
89 error (".rwdi section needs relocation - cannot dump Emacs");
90 delta_after_rwdi = delta_before_rwdi - rwdi_section->s_size;
91 old_rwdi_vaddr = rwdi_section->s_vaddr;
92 rwdi_section->s_paddr = 0;
93 rwdi_section->s_vaddr = 0;
94 rwdi_section->s_scnptr = 0;
95 rwdi_section->s_size = 0;
96 source_file_offset_past_rwdi = (rwdi_section+1)->s_scnptr;
97 break;
98 }
99 /* Skip over the Text Section Headers. */
100 for (section = sections; (section->s_flags & STYP_TEXT) != 0; section++) ;
101 /*
102 Find the First and Last Data Sections and Fixup
103 Section Header Relocation Pointers.
104 */
105 first_data_section = last_data_section = (struct scnhdr *) 0;
106 for (; section != sections_limit; section++)
107 {
108 if ((section->s_flags & STYP_DATA) != 0)
109 {
110 if (first_data_section == (struct scnhdr *) 0)
111 first_data_section = section;
112 last_data_section = section;
113 }
114 if (section->s_relptr != 0)
115 section->s_relptr += delta_after_rwdi;
116 }
117 /* Increment the Size of the Last Data Section. */
118 old_data_section_size = last_data_section->s_size;
119 last_data_section->s_size += delta_before_rwdi;
120
121 /* Update the File Header and Domain Header. */
122 file_header.f_symptr += delta_after_rwdi;
123 domain_header.dsize = data_size;
124 domain_header.bsize = 0;
125 /* Skip over subsequent Bss Section Headers. */
126 for (section = last_data_section+1;
127 (section->s_flags & STYP_BSS) != 0; section++) ;
128 /* Update the remaining Section Headers. */
129 blocks_section = (struct scnhdr *) 0;
130 first_changed_vaddr = 0;
131 for (; section != sections_limit; section++)
132 {
133 long delta = (section < rwdi_section ? delta_before_rwdi : delta_after_rwdi);
134 if (section->s_paddr != 0)
135 section->s_paddr += delta;
136 if (section->s_vaddr != 0)
137 {
138 if (first_changed_vaddr == 0)
139 first_changed_vaddr = section->s_vaddr;
140 section->s_vaddr += delta;
141 }
142 if (section->s_scnptr != 0)
143 section->s_scnptr += delta;
144 if (strcmp (section->s_name, ".blocks") == 0)
145 blocks_section = section;
146 else if (strcmp (section->s_name, ".sri") == 0 &&
147 domain_header.o_sri != 0)
148 domain_header.o_sri += delta;
149 else if (strcmp (section->s_name, ".inlib") == 0 &&
150 domain_header.o_inlib != 0)
151 domain_header.o_inlib += delta;
152 }
153 /* Open the Target File. */
154 ios_$create (target_file_name, strlen (target_file_name), coff_$uid,
155 ios_$recreate_mode, ios_$write_opt, &target_file, &status);
156 if (status.all != status_$ok)
157 error ("cannot open target file for output");
158 /* Write the File Header. */
159 if (write (target_file, &file_header, sizeof (file_header)) != sizeof (file_header))
160 error ("cannot write file header");
161 /* Write the Domain Header. */
162 if (write (target_file, &domain_header, sizeof (domain_header))
163 != sizeof (domain_header))
164 error ("cannot write domain header");
165 /* Write the Section Headers. */
166 if (write (target_file, sections, file_header.f_nscns*sizeof (struct scnhdr))
167 != file_header.f_nscns*sizeof (struct scnhdr))
168 error ("cannot write section headers");
169 /* Copy the Allocated Sections. */
170 for (section = sections; section != first_data_section; section++)
171 if (section->s_scnptr != 0)
172 CopyData (target_file, source_file, LONG_ALIGN(section->s_size));
173 /* Write the Expanded Data Segment. */
174 if (write (target_file, first_data_section->s_vaddr, data_size) != data_size)
175 error ("cannot write new data section");
176
177 /* Skip over the Last Data Section and Copy until the .rwdi Section. */
178 if (lseek (source_file, last_data_section->s_scnptr
179 +old_data_section_size, L_SET) == -1)
180 error ("cannot seek past data section");
181 for (section = last_data_section+1; section != rwdi_section; section++)
182 if (section->s_scnptr != 0)
183 CopyData (target_file, source_file, LONG_ALIGN(section->s_size));
184 /* Skip over the .rwdi Section and Copy Remainder of Source File. */
185 if (lseek (source_file, source_file_offset_past_rwdi, L_SET) == -1)
186 error ("cannot seek past .rwdi section");
187 while ((byte_count = read (source_file, buffer, sizeof (buffer))) > 0)
188 if (write (target_file, buffer, byte_count) != byte_count)
189 error ("cannot write data");
190 /* Unrelocate .data references to Global Symbols. */
191 for (section = first_data_section; section <= last_data_section; section++)
192 for (i = 0; i < section->s_nreloc; i++)
193 {
194 if (lseek (source_file, section->s_relptr
195 +i*sizeof (struct reloc)-delta_after_rwdi, L_SET) == -1)
196 error ("cannot seek to relocation info");
197 if (read (source_file, &reloc_entry, sizeof (reloc_entry))
198 != sizeof (reloc_entry))
199 error ("cannot read reloc entry");
200 if (lseek (source_file, reloc_entry.r_vaddr-section->s_vaddr
201 +section->s_scnptr, L_SET) == -1)
202 error ("cannot seek to data element");
203 if (lseek (target_file, reloc_entry.r_vaddr-section->s_vaddr
204 +section->s_scnptr, L_SET) == -1)
205 error ("cannot seek to data element");
206 if (read (source_file, buffer, 4) != 4)
207 error ("cannot read data element");
208 if (write (target_file, buffer, 4) != 4)
209 error ("cannot write data element");
210 }
211
212 /* Correct virtual addresses in .blocks section. */
213 if (blocks_section != (struct scnhdr *) 0)
214 {
215 dst_rec_t dst_record;
216 dst_rec_comp_unit_t *comp_unit;
217 unsigned short number_of_sections;
218 unsigned long section_base;
219 unsigned long section_offset = 0;
220 /* Find section tables and update section base addresses. */
221 while (section_offset < blocks_section->s_size)
222 {
223 if (lseek (target_file,
224 blocks_section->s_scnptr+section_offset, L_SET) == -1)
225 error ("cannot seek to comp unit record");
226 /* Handle pad records before the comp unit record. */
227 if (read (target_file, &dst_record, DST_RECORD_HDR_SIZE)
228 != DST_RECORD_HDR_SIZE)
229 error ("cannot read dst record tag");
230 if (dst_record.rec_type == dst_typ_pad)
231 section_offset += DST_RECORD_HDR_SIZE;
232 else if (dst_record.rec_type == dst_typ_comp_unit)
233 {
234 comp_unit = &dst_record.rec_data.comp_unit_;
235 if (read (target_file, comp_unit, sizeof (*comp_unit))
236 != sizeof (*comp_unit))
237 error ("cannot read comp unit record");
238 if (lseek (target_file, blocks_section->s_scnptr
239 +section_offset
240#if dst_version_major == 1 && dst_version_minor < 4
241 +comp_unit->section_table
242#else
243 +comp_unit->section_table.rel_offset
244#endif
245 +DST_RECORD_HDR_SIZE,
246 L_SET) == -1)
247 error ("cannot seek to section table");
248 if (read (target_file, &number_of_sections, sizeof (number_of_sections))
249 != sizeof (number_of_sections))
250 error ("cannot read section table size");
251 for (i = 0; i < number_of_sections; i++)
252 {
253 if (read (target_file, &section_base, sizeof (section_base))
254 != sizeof (section_base))
255 error ("cannot read section base value");
256 if (section_base < first_changed_vaddr)
257 continue;
258 else if (section_base < old_rwdi_vaddr)
259 section_base += delta_before_rwdi;
260 else section_base += delta_after_rwdi;
261 if (lseek (target_file, -sizeof (section_base), L_INCR) == -1)
262 error ("cannot seek to section base value");
263 if (write (target_file, &section_base, sizeof (section_base))
264 != sizeof (section_base))
265 error ("cannot write section base");
266 }
267 section_offset += comp_unit->data_size;
268 }
269 else error ("unexpected dst record type");
270 }
271 }
272
273 if (close (source_file) == -1)
274 error("cannot close source file");
275 if (close (target_file) == -1)
276 error ("cannot close target file");
277}
278
279
280static
281CopyData (target_file, source_file, total_byte_count)
282 int target_file, source_file;
283 long total_byte_count;
284{
285 unsigned char buffer[4096];
286 long byte_count;
287 while (total_byte_count > 0)
288 {
289 if (total_byte_count > sizeof (buffer))
290 byte_count = sizeof (buffer);
291 else byte_count = total_byte_count;
292 if (read (source_file, buffer, byte_count) != byte_count)
293 error ("cannot read data");
294 if (write (target_file, buffer, byte_count) != byte_count)
295 error ("cannot write data");
296 total_byte_count -= byte_count;
297 }
298}
299
300/* arch-tag: 783ebbdf-7d26-4df8-9469-17a1747dce96
301 (do not change this comment) */
diff --git a/src/unexconvex.c b/src/unexconvex.c
deleted file mode 100644
index 5682047d4fe..00000000000
--- a/src/unexconvex.c
+++ /dev/null
@@ -1,605 +0,0 @@
1/* Modified version of unexec for convex machines.
2 Note that the GNU project considers support for the peculiarities
3 of the Convex operating system a peripheral activity which should
4 not be allowed to divert effort from development of the GNU system.
5 Changes in this code will be installed when Convex system
6 maintainers send them in, but aside from that we don't plan to
7 think about it, or about whether other Emacs maintenance might
8 break it.
9
10 Copyright (C) 1985, 1986, 1988, 2001, 2002, 2003, 2004,
11 2005, 2006, 2007 Free Software Foundation, Inc.
12
13This file is part of GNU Emacs.
14
15GNU Emacs is free software; you can redistribute it and/or modify
16it under the terms of the GNU General Public License as published by
17the Free Software Foundation; either version 3, or (at your option)
18any later version.
19
20GNU Emacs is distributed in the hope that it will be useful,
21but WITHOUT ANY WARRANTY; without even the implied warranty of
22MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23GNU General Public License for more details.
24
25You should have received a copy of the GNU General Public License
26along with GNU Emacs; see the file COPYING. If not, write to
27the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
28Boston, MA 02110-1301, USA. */
29
30
31/* modified for C-1 arch by jthomp@convex 871103 */
32/* Corrected to support convex SOFF object file formats and thread specific
33 * regions. streepy@convex 890302
34*/
35
36/*
37 * unexec.c - Convert a running program into an a.out file.
38 *
39 * Author: Spencer W. Thomas
40 * Computer Science Dept.
41 * University of Utah
42 * Date: Tue Mar 2 1982
43 * Modified heavily since then.
44 *
45 * Synopsis:
46 * unexec (new_name, a_name, data_start, bss_start, entry_address)
47 * char *new_name, *a_name;
48 * unsigned data_start, bss_start, entry_address;
49 *
50 * Takes a snapshot of the program and makes an a.out format file in the
51 * file named by the string argument new_name.
52 * If a_name is non-NULL, the symbol table will be taken from the given file.
53 * On some machines, an existing a_name file is required.
54 *
55 * The boundaries within the a.out file may be adjusted with the data_start
56 * and bss_start arguments. Either or both may be given as 0 for defaults.
57 *
58 * Data_start gives the boundary between the text segment and the data
59 * segment of the program. The text segment can contain shared, read-only
60 * program code and literal data, while the data segment is always unshared
61 * and unprotected. Data_start gives the lowest unprotected address.
62 * The value you specify may be rounded down to a suitable boundary
63 * as required by the machine you are using.
64 *
65 * Specifying zero for data_start means the boundary between text and data
66 * should not be the same as when the program was loaded.
67 * If NO_REMAP is defined, the argument data_start is ignored and the
68 * segment boundaries are never changed.
69 *
70 * Bss_start indicates how much of the data segment is to be saved in the
71 * a.out file and restored when the program is executed. It gives the lowest
72 * unsaved address, and is rounded up to a page boundary. The default when 0
73 * is given assumes that the entire data segment is to be stored, including
74 * the previous data and bss as well as any additional storage allocated with
75 * break (2).
76 *
77 * The new file is set up to start at entry_address.
78 *
79 * If you make improvements I'd like to get them too.
80 * harpo!utah-cs!thomas, thomas@Utah-20
81 *
82 */
83
84/* There are several compilation parameters affecting unexec:
85
86* COFF
87
88Define this if your system uses COFF for executables.
89Otherwise we assume you use Berkeley format.
90
91* NO_REMAP
92
93Define this if you do not want to try to save Emacs's pure data areas
94as part of the text segment.
95
96Saving them as text is good because it allows users to share more.
97
98However, on machines that locate the text area far from the data area,
99the boundary cannot feasibly be moved. Such machines require
100NO_REMAP.
101
102Also, remapping can cause trouble with the built-in startup routine
103/lib/crt0.o, which defines `environ' as an initialized variable.
104Dumping `environ' as pure does not work! So, to use remapping,
105you must write a startup routine for your machine in Emacs's crt0.c.
106If NO_REMAP is defined, Emacs uses the system's crt0.o.
107
108* SECTION_ALIGNMENT
109
110Some machines that use COFF executables require that each section
111start on a certain boundary *in the COFF file*. Such machines should
112define SECTION_ALIGNMENT to a mask of the low-order bits that must be
113zero on such a boundary. This mask is used to control padding between
114segments in the COFF file.
115
116If SECTION_ALIGNMENT is not defined, the segments are written
117consecutively with no attempt at alignment. This is right for
118unmodified system V.
119
120* SEGMENT_MASK
121
122Some machines require that the beginnings and ends of segments
123*in core* be on certain boundaries. For most machines, a page
124boundary is sufficient. That is the default. When a larger
125boundary is needed, define SEGMENT_MASK to a mask of
126the bits that must be zero on such a boundary.
127
128* A_TEXT_OFFSET(HDR)
129
130Some machines count the a.out header as part of the size of the text
131segment (a_text); they may actually load the header into core as the
132first data in the text segment. Some have additional padding between
133the header and the real text of the program that is counted in a_text.
134
135For these machines, define A_TEXT_OFFSET(HDR) to examine the header
136structure HDR and return the number of bytes to add to `a_text'
137before writing it (above and beyond the number of bytes of actual
138program text). HDR's standard fields are already correct, except that
139this adjustment to the `a_text' field has not yet been made;
140thus, the amount of offset can depend on the data in the file.
141
142* A_TEXT_SEEK(HDR)
143
144If defined, this macro specifies the number of bytes to seek into the
145a.out file before starting to write the text segment.a
146
147* EXEC_MAGIC
148
149For machines using COFF, this macro, if defined, is a value stored
150into the magic number field of the output file.
151
152* ADJUST_EXEC_HEADER
153
154This macro can be used to generate statements to adjust or
155initialize nonstandard fields in the file header
156
157* ADDR_CORRECT(ADDR)
158
159Macro to correct an int which is the bit pattern of a pointer to a byte
160into an int which is the number of a byte.
161
162This macro has a default definition which is usually right.
163This default definition is a no-op on most machines (where a
164pointer looks like an int) but not on all machines.
165
166*/
167
168#include <config.h>
169#define PERROR(file) report_error (file, new)
170
171#include <a.out.h>
172/* Define getpagesize () if the system does not.
173 Note that this may depend on symbols defined in a.out.h
174 */
175#include "getpagesize.h"
176
177#include <sys/types.h>
178#include <stdio.h>
179#include <sys/stat.h>
180#include <errno.h>
181
182extern char *start_of_text (); /* Start of text */
183extern char *start_of_data (); /* Start of initialized data */
184
185#include <machine/filehdr.h>
186#include <machine/opthdr.h>
187#include <machine/scnhdr.h>
188#include <machine/pte.h>
189
190static long block_copy_start; /* Old executable start point */
191static struct filehdr f_hdr; /* File header */
192static struct opthdr f_ohdr; /* Optional file header (a.out) */
193long bias; /* Bias to add for growth */
194#define SYMS_START block_copy_start
195
196static long text_scnptr;
197static long data_scnptr;
198
199static int pagemask;
200static int pagesz;
201
202static
203report_error (file, fd)
204 char *file;
205 int fd;
206{
207 if (fd)
208 close (fd);
209 error ("Failure operating on %s", file);
210}
211
212#define ERROR0(msg) report_error_1 (new, msg, 0, 0); return -1
213#define ERROR1(msg,x) report_error_1 (new, msg, x, 0); return -1
214#define ERROR2(msg,x,y) report_error_1 (new, msg, x, y); return -1
215
216static
217report_error_1 (fd, msg, a1, a2)
218int fd;
219char *msg;
220int a1, a2;
221{
222 close (fd);
223 error (msg, a1, a2);
224}
225
226/* ****************************************************************
227 * unexec
228 *
229 * driving logic.
230 */
231unexec (new_name, a_name, data_start, bss_start, entry_address)
232char *new_name, *a_name;
233unsigned data_start, bss_start, entry_address;
234{
235 int new, a_out = -1;
236
237 if (a_name && (a_out = open (a_name, 0)) < 0) {
238 PERROR (a_name);
239 }
240 if ((new = creat (new_name, 0666)) < 0) {
241 PERROR (new_name);
242 }
243
244 if (make_hdr (new, a_out, data_start, bss_start, entry_address, a_name, new_name) < 0
245 || copy_text_and_data (new) < 0
246 || copy_sym (new, a_out, a_name, new_name) < 0 ) {
247 close (new);
248 return -1;
249 }
250
251 close (new);
252 if (a_out >= 0)
253 close (a_out);
254 mark_x (new_name);
255 return 0;
256}
257
258/* ****************************************************************
259 * make_hdr
260 *
261 * Make the header in the new a.out from the header in core.
262 * Modify the text and data sizes.
263 */
264
265 struct scnhdr *stbl; /* Table of all scnhdr's */
266 struct scnhdr *f_thdr; /* Text section header */
267 struct scnhdr *f_dhdr; /* Data section header */
268 struct scnhdr *f_tdhdr; /* Thread Data section header */
269 struct scnhdr *f_bhdr; /* Bss section header */
270 struct scnhdr *f_tbhdr; /* Thread Bss section header */
271
272static int
273make_hdr (new, a_out, data_start, bss_start, entry_address, a_name, new_name)
274 int new, a_out;
275 unsigned data_start, bss_start, entry_address;
276 char *a_name;
277 char *new_name;
278{
279 register int scns;
280 unsigned int bss_end;
281 unsigned int eo_data; /* End of initialized data in new exec file */
282 int scntype; /* Section type */
283 int i; /* Var for sorting by vaddr */
284 struct scnhdr scntemp; /* For swapping entries in sort */
285 extern char *start_of_data();
286
287 pagemask = (pagesz = getpagesize()) - 1;
288
289 /* Adjust text/data boundary. */
290 if (!data_start)
291 data_start = (unsigned) start_of_data ();
292
293 data_start = data_start & ~pagemask; /* (Down) to page boundary. */
294
295 bss_end = (sbrk(0) + pagemask) & ~pagemask;
296
297 /* Adjust data/bss boundary. */
298 if (bss_start != 0) {
299 bss_start = (bss_start + pagemask) & ~pagemask;/* (Up) to page bdry. */
300 if (bss_start > bss_end) {
301 ERROR1 ("unexec: Specified bss_start (%x) is past end of program",
302 bss_start);
303 }
304 } else
305 bss_start = bss_end;
306
307 if (data_start > bss_start) { /* Can't have negative data size. */
308 ERROR2 ("unexec: data_start (%x) can't be greater than bss_start (%x)",
309 data_start, bss_start);
310 }
311
312 /* Salvage as much info from the existing file as possible */
313 if (a_out < 0) {
314 ERROR0 ("can't build a COFF file from scratch yet");
315 /*NOTREACHED*/
316 }
317
318 if (read (a_out, &f_hdr, sizeof (f_hdr)) != sizeof (f_hdr)) {
319 PERROR (a_name);
320 }
321 block_copy_start += sizeof (f_hdr);
322 if (f_hdr.h_opthdr > 0) {
323 if (read (a_out, &f_ohdr, sizeof (f_ohdr)) != sizeof (f_ohdr)) {
324 PERROR (a_name);
325 }
326 block_copy_start += sizeof (f_ohdr);
327 }
328
329 /* Allocate room for scn headers */
330 stbl = (struct scnhdr *)malloc( sizeof(struct scnhdr) * f_hdr.h_nscns );
331 if( stbl == NULL ) {
332 ERROR0( "unexec: malloc of stbl failed" );
333 }
334
335 f_tdhdr = f_tbhdr = NULL;
336
337 /* Loop through section headers, copying them in */
338 for (scns = 0; scns < f_hdr.h_nscns; scns++) {
339
340 if( read( a_out, &stbl[scns], sizeof(*stbl)) != sizeof(*stbl)) {
341 PERROR (a_name);
342 }
343
344 scntype = stbl[scns].s_flags & S_TYPMASK; /* What type of section */
345
346 if( stbl[scns].s_scnptr > 0L) {
347 if( block_copy_start < stbl[scns].s_scnptr + stbl[scns].s_size )
348 block_copy_start = stbl[scns].s_scnptr + stbl[scns].s_size;
349 }
350
351 if( scntype == S_TEXT) {
352 f_thdr = &stbl[scns];
353 } else if( scntype == S_DATA) {
354 f_dhdr = &stbl[scns];
355#ifdef S_TDATA
356 } else if( scntype == S_TDATA ) {
357 f_tdhdr = &stbl[scns];
358 } else if( scntype == S_TBSS ) {
359 f_tbhdr = &stbl[scns];
360#endif /* S_TDATA (thread stuff) */
361
362 } else if( scntype == S_BSS) {
363 f_bhdr = &stbl[scns];
364 }
365
366 }
367
368 /* We will now convert TEXT and DATA into TEXT, BSS into DATA, and leave
369 * all thread stuff alone.
370 */
371
372 /* Now we alter the contents of all the f_*hdr variables
373 to correspond to what we want to dump. */
374
375 f_thdr->s_vaddr = (long) start_of_text ();
376 f_thdr->s_size = data_start - f_thdr->s_vaddr;
377 f_thdr->s_scnptr = pagesz;
378 f_thdr->s_relptr = 0;
379 f_thdr->s_nrel = 0;
380
381 eo_data = f_thdr->s_scnptr + f_thdr->s_size;
382
383 if( f_tdhdr ) { /* Process thread data */
384
385 f_tdhdr->s_vaddr = data_start;
386 f_tdhdr->s_size += f_dhdr->s_size - (data_start - f_dhdr->s_vaddr);
387 f_tdhdr->s_scnptr = eo_data;
388 f_tdhdr->s_relptr = 0;
389 f_tdhdr->s_nrel = 0;
390
391 eo_data += f_tdhdr->s_size;
392
393 /* And now for DATA */
394
395 f_dhdr->s_vaddr = f_bhdr->s_vaddr; /* Take BSS start address */
396 f_dhdr->s_size = bss_end - f_bhdr->s_vaddr;
397 f_dhdr->s_scnptr = eo_data;
398 f_dhdr->s_relptr = 0;
399 f_dhdr->s_nrel = 0;
400
401 eo_data += f_dhdr->s_size;
402
403 } else {
404
405 f_dhdr->s_vaddr = data_start;
406 f_dhdr->s_size = bss_start - data_start;
407 f_dhdr->s_scnptr = eo_data;
408 f_dhdr->s_relptr = 0;
409 f_dhdr->s_nrel = 0;
410
411 eo_data += f_dhdr->s_size;
412
413 }
414
415 f_bhdr->s_vaddr = bss_start;
416 f_bhdr->s_size = bss_end - bss_start + pagesz /* fudge */;
417 f_bhdr->s_scnptr = 0;
418 f_bhdr->s_relptr = 0;
419 f_bhdr->s_nrel = 0;
420
421 text_scnptr = f_thdr->s_scnptr;
422 data_scnptr = f_dhdr->s_scnptr;
423 bias = eo_data - block_copy_start;
424
425 if (f_ohdr.o_symptr > 0L) {
426 f_ohdr.o_symptr += bias;
427 }
428
429 if (f_hdr.h_strptr > 0) {
430 f_hdr.h_strptr += bias;
431 }
432
433 if (write (new, &f_hdr, sizeof (f_hdr)) != sizeof (f_hdr)) {
434 PERROR (new_name);
435 }
436
437 if (write (new, &f_ohdr, sizeof (f_ohdr)) != sizeof (f_ohdr)) {
438 PERROR (new_name);
439 }
440
441 for( scns = 0; scns < f_hdr.h_nscns; scns++ ) {
442
443 /* This is a cheesy little loop to write out the section headers
444 * in order of increasing virtual address. Dull but effective.
445 */
446
447 for( i = scns+1; i < f_hdr.h_nscns; i++ ) {
448 if( stbl[i].s_vaddr < stbl[scns].s_vaddr ) { /* Swap */
449 scntemp = stbl[i];
450 stbl[i] = stbl[scns];
451 stbl[scns] = scntemp;
452 }
453 }
454
455 }
456
457 for( scns = 0; scns < f_hdr.h_nscns; scns++ ) {
458
459 if( write( new, &stbl[scns], sizeof(*stbl)) != sizeof(*stbl)) {
460 PERROR (new_name);
461 }
462
463 }
464
465 return (0);
466
467}
468
469/* ****************************************************************
470 * copy_text_and_data
471 *
472 * Copy the text and data segments from memory to the new a.out
473 */
474static int
475copy_text_and_data (new)
476int new;
477{
478 register int scns;
479
480 for( scns = 0; scns < f_hdr.h_nscns; scns++ )
481 write_segment( new, &stbl[scns] );
482
483 return 0;
484}
485
486write_segment( new, sptr )
487int new;
488struct scnhdr *sptr;
489{
490 register char *ptr, *end;
491 register int nwrite, ret;
492 char buf[80];
493 extern int errno;
494 char zeros[128];
495
496 if( sptr->s_scnptr == 0 )
497 return; /* Nothing to do */
498
499 if( lseek( new, (long) sptr->s_scnptr, 0 ) == -1 )
500 PERROR( "unexecing" );
501
502 bzero (zeros, sizeof zeros);
503
504 ptr = (char *) sptr->s_vaddr;
505 end = ptr + sptr->s_size;
506
507 while( ptr < end ) {
508
509 /* distance to next multiple of 128. */
510 nwrite = (((int) ptr + 128) & -128) - (int) ptr;
511 /* But not beyond specified end. */
512 if (nwrite > end - ptr) nwrite = end - ptr;
513 ret = write (new, ptr, nwrite);
514 /* If write gets a page fault, it means we reached
515 a gap between the old text segment and the old data segment.
516 This gap has probably been remapped into part of the text segment.
517 So write zeros for it. */
518 if (ret == -1 && errno == EFAULT)
519 write (new, zeros, nwrite);
520 else if (nwrite != ret) {
521 sprintf (buf,
522 "unexec write failure: addr 0x%x, fileno %d, size 0x%x, wrote 0x%x, errno %d",
523 ptr, new, nwrite, ret, errno);
524 PERROR (buf);
525 }
526 ptr += nwrite;
527 }
528}
529
530/* ****************************************************************
531 * copy_sym
532 *
533 * Copy the relocation information and symbol table from the a.out to the new
534 */
535static int
536copy_sym (new, a_out, a_name, new_name)
537 int new, a_out;
538 char *a_name, *new_name;
539{
540 char page[1024];
541 int n;
542
543 if (a_out < 0)
544 return 0;
545
546 if (SYMS_START == 0L)
547 return 0;
548
549 lseek (a_out, SYMS_START, 0); /* Position a.out to symtab. */
550 lseek( new, (long)f_ohdr.o_symptr, 0 );
551
552 while ((n = read (a_out, page, sizeof page)) > 0) {
553 if (write (new, page, n) != n) {
554 PERROR (new_name);
555 }
556 }
557 if (n < 0) {
558 PERROR (a_name);
559 }
560 return 0;
561}
562
563/* ****************************************************************
564 * mark_x
565 *
566 * After successfully building the new a.out, mark it executable
567 */
568static
569mark_x (name)
570char *name;
571{
572 struct stat sbuf;
573 int um;
574 int new = 0; /* for PERROR */
575
576 um = umask (777);
577 umask (um);
578 if (stat (name, &sbuf) == -1) {
579 PERROR (name);
580 }
581 sbuf.st_mode |= 0111 & ~um;
582 if (chmod (name, sbuf.st_mode) == -1)
583 PERROR (name);
584}
585
586/* Find the first pty letter. This is usually 'p', as in ptyp0, but
587 is sometimes configured down to 'm', 'n', or 'o' for some reason. */
588
589first_pty_letter ()
590{
591 struct stat buf;
592 char pty_name[16];
593 char c;
594
595 for (c = 'o'; c >= 'a'; c--)
596 {
597 sprintf (pty_name, "/dev/pty%c0", c);
598 if (stat (pty_name, &buf) < 0)
599 return c + 1;
600 }
601 return 'a';
602}
603
604/* arch-tag: 8199e06d-69b5-4f79-84d8-00f6ea929af9
605 (do not change this comment) */
diff --git a/src/unexenix.c b/src/unexenix.c
deleted file mode 100644
index 343eb6dfbdc..00000000000
--- a/src/unexenix.c
+++ /dev/null
@@ -1,264 +0,0 @@
1/* Unexec for Xenix.
2 Note that the GNU project considers support for Xenix operation
3 a peripheral activity which should not be allowed to divert effort
4 from development of the GNU system. Changes in this code will be
5 installed when Xenix users send them in, but aside from that
6 we don't plan to think about it, or about whether other Emacs
7 maintenance might break it.
8
9 Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004,
10 2005, 2006, 2007 Free Software Foundation, Inc.
11
12This file is part of GNU Emacs.
13
14GNU Emacs is free software; you can redistribute it and/or modify
15it under the terms of the GNU General Public License as published by
16the Free Software Foundation; either version 3, or (at your option)
17any later version.
18
19GNU Emacs is distributed in the hope that it will be useful,
20but WITHOUT ANY WARRANTY; without even the implied warranty of
21MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22GNU General Public License for more details.
23
24You should have received a copy of the GNU General Public License
25along with GNU Emacs; see the file COPYING. If not, write to
26the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
27Boston, MA 02110-1301, USA. */
28
29
30
31/*
32 On 80386 Xenix, segmentation screws prevent us from modifying the text
33 segment at all. We basically just plug a new value for "data segment
34 size" into the countless headers and copy the other records straight
35 through. The data segment is ORG'ed at the xs_rbase value of the data
36 segment's xseg record (always @ 0x1880000, thanks to the "sophisticated
37 memory management hardware" of the chip) and extends to sbrk(0), exactly.
38 This code is afraid to malloc (should it be?), and alloca has to be the
39 wimpy, malloc-based version; consequently, data is usually copied in
40 smallish chunks.
41
42 gb@entity.com
43*/
44
45#include <config.h>
46#include <sys/types.h>
47#include <fcntl.h>
48#include <sys/file.h>
49#include <sys/stat.h>
50#include <stdio.h>
51#include <varargs.h>
52#include <a.out.h>
53
54static void fatal_unexec ();
55
56#define READ(_fd, _buffer, _size, _error_message, _error_arg) \
57 errno = EEOF; \
58 if (read(_fd, _buffer, _size) != _size) \
59 fatal_unexec(_error_message, _error_arg);
60
61#define WRITE(_fd, _buffer, _size, _error_message, _error_arg) \
62 if (write(_fd, _buffer, _size) != _size) \
63 fatal_unexec(_error_message, _error_arg);
64
65#define SEEK(_fd, _position, _error_message, _error_arg) \
66 errno = EEOF; \
67 if (lseek(_fd, _position, L_SET) != _position) \
68 fatal_unexec(_error_message, _error_arg);
69
70extern int errno;
71extern char *strerror ();
72#define EEOF -1
73
74#ifndef L_SET
75#define L_SET 0
76#endif
77
78/* Should check the magic number of the old executable;
79 not yet written. */
80check_exec (x)
81 struct xexec *x;
82{
83}
84
85
86unexec (new_name, a_name, data_start, bss_start, entry_address)
87 char *new_name, *a_name;
88 unsigned data_start, bss_start, entry_address;
89{
90 char *sbrk (), *datalim = sbrk (0), *data_org;
91 long segpos, textseen, textpos, textlen, datapos, datadiff, datalen;
92
93 struct xexec u_xexec, /* a.out header */
94 *u_xexecp = &u_xexec;
95 struct xext u_xext, /* extended header */
96 *u_xextp = &u_xext;
97 struct xseg u_xseg, /* segment table entry */
98 *u_xsegp = &u_xseg;
99 int i, nsegs, isdata = 0, infd, outfd;
100
101 infd = open (a_name, O_RDONLY, 0);
102 if (infd < 0) fatal_unexec ("opening %s", a_name);
103
104 outfd = creat (new_name, 0666);
105 if (outfd < 0) fatal_unexec ("creating %s", new_name);
106
107 READ (infd, u_xexecp, sizeof (struct xexec),
108 "error reading %s", a_name);
109 check_exec (u_xexecp);
110 READ (infd, u_xextp, sizeof (struct xext),
111 "error reading %s", a_name);
112 segpos = u_xextp->xe_segpos;
113 nsegs = u_xextp->xe_segsize / sizeof (struct xseg);
114 SEEK (infd, segpos, "seek error on %s", a_name);
115 for (i = 0; i < nsegs; i ++)
116 {
117 READ (infd, u_xsegp, sizeof (struct xseg),
118 "error reading %s", a_name);
119 switch (u_xsegp->xs_type)
120 {
121 case XS_TTEXT:
122 {
123 if (i == 0)
124 {
125 textpos = u_xsegp->xs_filpos;
126 textlen = u_xsegp->xs_psize;
127 break;
128 }
129 fatal_unexec ("invalid text segment in %s", a_name);
130 }
131 case XS_TDATA:
132 {
133 if (i == 1)
134 {
135 datapos = u_xsegp->xs_filpos;
136 datalen = datalim - (data_org = (char *)(u_xsegp->xs_rbase));
137 datadiff = datalen - u_xsegp->xs_psize;
138 break;
139 }
140 fatal_unexec ("invalid data segment in %s", a_name);
141 }
142 default:
143 {
144 if (i > 1) break;
145 fatal_unexec ("invalid segment record in %s", a_name);
146 }
147 }
148 }
149 u_xexecp->x_data = datalen;
150 u_xexecp->x_bss = 0;
151 WRITE (outfd, u_xexecp, sizeof (struct xexec),
152 "error writing %s", new_name);
153 WRITE (outfd, u_xextp, sizeof (struct xext),
154 "error writing %s", new_name);
155 SEEK (infd, segpos, "seek error on %s", a_name);
156 SEEK (outfd, segpos, "seek error on %s", new_name);
157
158 /* Copy the text segment record verbatim. */
159
160 copyrec (infd, outfd, sizeof (struct xseg), a_name, new_name);
161
162 /* Read, modify, write the data segment record. */
163
164 READ (infd, u_xsegp, sizeof (struct xseg),
165 "error reading %s", a_name);
166 u_xsegp->xs_psize = u_xsegp->xs_vsize = datalen;
167 u_xsegp->xs_attr &= (~XS_AITER & ~XS_ABSS);
168 WRITE (outfd, u_xsegp, sizeof (struct xseg),
169 "error writing %s", new_name);
170
171 /* Now copy any additional segment records, adjusting their
172 file position field */
173
174 for (i = 2; i < nsegs; i++)
175 {
176 READ (infd, u_xsegp, sizeof (struct xseg),
177 "error reading %s", a_name);
178 u_xsegp->xs_filpos += datadiff;
179 WRITE (outfd, u_xsegp, sizeof (struct xseg),
180 "error writing %s", new_name);
181 }
182
183 SEEK (infd, textpos, "seek error on %s", a_name);
184 SEEK (outfd, textpos, "seek error on %s", new_name);
185 copyrec (infd, outfd, textlen, a_name, new_name);
186
187 SEEK (outfd, datapos, "seek error on %s", new_name);
188 WRITE (outfd, data_org, datalen,
189 "write error on %s", new_name);
190
191 for (i = 2, segpos += (2 * sizeof (struct xseg));
192 i < nsegs;
193 i++, segpos += sizeof (struct xseg))
194 {
195 SEEK (infd, segpos, "seek error on %s", a_name);
196 READ (infd, u_xsegp, sizeof (struct xseg),
197 "read error on %s", a_name);
198 SEEK (infd, u_xsegp->xs_filpos, "seek error on %s", a_name);
199 /* We should be at eof in the output file here, but we must seek
200 because the xs_filpos and xs_psize fields in symbol table
201 segments are inconsistent. */
202 SEEK (outfd, u_xsegp->xs_filpos + datadiff, "seek error on %s", new_name);
203 copyrec (infd, outfd, u_xsegp->xs_psize, a_name, new_name);
204 }
205 close (infd);
206 close (outfd);
207 mark_x (new_name);
208 return 0;
209}
210
211copyrec (infd, outfd, len, in_name, out_name)
212 int infd, outfd, len;
213 char *in_name, *out_name;
214{
215 char buf[BUFSIZ];
216 int chunk;
217
218 while (len)
219 {
220 chunk = BUFSIZ;
221 if (chunk > len)
222 chunk = len;
223 READ (infd, buf, chunk, "error reading %s", in_name);
224 WRITE (outfd, buf, chunk, "error writing %s", out_name);
225 len -= chunk;
226 }
227}
228
229/*
230 * mark_x
231 *
232 * After successfully building the new a.out, mark it executable
233 */
234static
235mark_x (name)
236 char *name;
237{
238 struct stat sbuf;
239 int um = umask (777);
240 umask (um);
241 if (stat (name, &sbuf) < 0)
242 fatal_unexec ("getting protection on %s", name);
243 sbuf.st_mode |= 0111 & ~um;
244 if (chmod (name, sbuf.st_mode) < 0)
245 fatal_unexec ("setting protection on %s", name);
246}
247
248static void
249fatal_unexec (s, va_alist)
250 va_dcl
251{
252 va_list ap;
253 if (errno == EEOF)
254 fputs ("unexec: unexpected end of file, ", stderr);
255 else
256 fprintf (stderr, "unexec: %s, ", strerror (errno));
257 va_start (ap);
258 _doprnt (s, ap, stderr);
259 fputs (".\n", stderr);
260 exit (1);
261}
262
263/* arch-tag: ce26be27-370a-438d-83b4-766059749a02
264 (do not change this comment) */
diff --git a/src/unexsni.c b/src/unexsni.c
deleted file mode 100644
index bbf9287e1f2..00000000000
--- a/src/unexsni.c
+++ /dev/null
@@ -1,925 +0,0 @@
1/* Unexec for Siemens machines running Sinix (modified SVR4).
2 Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995, 2001,
3 2002, 2003, 2004, 2005, 2006, 2007
4 Free Software Foundation, Inc.
5
6This file is part of GNU Emacs.
7
8GNU Emacs is free software; you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation; either version 3, or (at your option)
11any later version.
12
13GNU Emacs is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with GNU Emacs; see the file COPYING. If not, write to
20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21Boston, MA 02110-1301, USA.
22
23In other words, you are welcome to use, share and improve this program.
24You are forbidden to forbid anyone else to use, share and improve
25what you give them. Help stamp out software-hoarding! */
26
27/*
28 * unexec.c - Convert a running program into an a.out file.
29 *
30 * Author: Spencer W. Thomas
31 * Computer Science Dept.
32 * University of Utah
33 * Date: Tue Mar 2 1982
34 * Modified heavily since then.
35 *
36 * Synopsis:
37 * unexec (new_name, a_name, data_start, bss_start, entry_address)
38 * char *new_name, *a_name;
39 * unsigned data_start, bss_start, entry_address;
40 *
41 * Takes a snapshot of the program and makes an a.out format file in the
42 * file named by the string argument new_name.
43 * If a_name is non-NULL, the symbol table will be taken from the given file.
44 * On some machines, an existing a_name file is required.
45 *
46 * The boundaries within the a.out file may be adjusted with the data_start
47 * and bss_start arguments. Either or both may be given as 0 for defaults.
48 *
49 * Data_start gives the boundary between the text segment and the data
50 * segment of the program. The text segment can contain shared, read-only
51 * program code and literal data, while the data segment is always unshared
52 * and unprotected. Data_start gives the lowest unprotected address.
53 * The value you specify may be rounded down to a suitable boundary
54 * as required by the machine you are using.
55 *
56 * Specifying zero for data_start means the boundary between text and data
57 * should not be the same as when the program was loaded.
58 * If NO_REMAP is defined, the argument data_start is ignored and the
59 * segment boundaries are never changed.
60 *
61 * Bss_start indicates how much of the data segment is to be saved in the
62 * a.out file and restored when the program is executed. It gives the lowest
63 * unsaved address, and is rounded up to a page boundary. The default when 0
64 * is given assumes that the entire data segment is to be stored, including
65 * the previous data and bss as well as any additional storage allocated with
66 * break (2).
67 *
68 * The new file is set up to start at entry_address.
69 *
70 * If you make improvements I'd like to get them too.
71 * harpo!utah-cs!thomas, thomas@Utah-20
72 *
73 */
74
75/* Even more heavily modified by james@bigtex.cactus.org of Dell Computer Co.
76 * ELF support added.
77 *
78 * Basic theory: the data space of the running process needs to be
79 * dumped to the output file. Normally we would just enlarge the size
80 * of .data, scooting everything down. But we can't do that in ELF,
81 * because there is often something between the .data space and the
82 * .bss space.
83 *
84 * In the temacs dump below, notice that the Global Offset Table
85 * (.got) and the Dynamic link data (.dynamic) come between .data1 and
86 * .bss. It does not work to overlap .data with these fields.
87 *
88 * The solution is to create a new .data segment. This segment is
89 * filled with data from the current process. Since the contents of
90 * various sections refer to sections by index, the new .data segment
91 * is made the last in the table to avoid changing any existing index.
92 */
93
94/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc.
95 *
96 * The above mechanism does not work if the unexeced ELF file is being
97 * re-layout by other applications (such as `strip'). All the applications
98 * that re-layout the internal of ELF will layout all sections in ascending
99 * order of their file offsets. After the re-layout, the data2 section will
100 * still be the LAST section in the section header vector, but its file offset
101 * is now being pushed far away down, and causes part of it not to be mapped
102 * in (ie. not covered by the load segment entry in PHDR vector), therefore
103 * causes the new binary to fail.
104 *
105 * The solution is to modify the unexec algorithm to insert the new data2
106 * section header right before the new bss section header, so their file
107 * offsets will be in the ascending order. Since some of the section's (all
108 * sections AFTER the bss section) indexes are now changed, we also need to
109 * modify some fields to make them point to the right sections. This is done
110 * by macro PATCH_INDEX. All the fields that need to be patched are:
111 *
112 * 1. ELF header e_shstrndx field.
113 * 2. section header sh_link and sh_info field.
114 * 3. symbol table entry st_shndx field.
115 */
116
117/*
118 * New modifications for Siemens Nixdorf's MIPS-based machines.
119 * Marco.Walther@mch.sni.de
120 * marco@inreach.com
121 *
122 * The problem: Before the bss segment we have a so called sbss segment
123 * (small bss) and maybe an sdata segment. These segments
124 * must also be handled correct.
125 *
126 * /home1/marco/emacs/emacs-19.22/src
127 * dump -hv temacs
128 *
129 * temacs:
130 *
131 * **** SECTION HEADER TABLE ****
132 * [No] Type Flags Addr Offset Size Name
133 * Link Info Adralgn Entsize
134 *
135 * [1] PBIT -A-- 0x4000f4 0xf4 0x13 .interp
136 * 0 0 0x1 0
137 *
138 * [2] REGI -A-- 0x400108 0x108 0x18 .reginfo
139 * 0 0 0x4 0x18
140 *
141 * [3] DYNM -A-- 0x400120 0x120 0xb8 .dynamic
142 * 6 0 0x4 0x8
143 *
144 * [4] HASH -A-- 0x4001d8 0x1d8 0x8a0 .hash
145 * 5 0 0x4 0x4
146 *
147 * [5] DYNS -A-- 0x400a78 0xa78 0x11f0 .dynsym
148 * 6 2 0x4 0x10
149 *
150 * [6] STRT -A-- 0x401c68 0x1c68 0xbf9 .dynstr
151 * 0 0 0x1 0
152 *
153 * [7] REL -A-- 0x402864 0x2864 0x18 .rel.dyn
154 * 5 14 0x4 0x8
155 *
156 * [8] PBIT -AI- 0x402880 0x2880 0x60 .init
157 * 0 0 0x10 0x1
158 *
159 * [9] PBIT -AI- 0x4028e0 0x28e0 0x1234 .plt
160 * 0 0 0x4 0x4
161 *
162 * [10] PBIT -AI- 0x403b20 0x3b20 0xee400 .text
163 * 0 0 0x20 0x1
164 *
165 * [11] PBIT -AI- 0x4f1f20 0xf1f20 0x60 .fini
166 * 0 0 0x10 0x1
167 *
168 * [12] PBIT -A-- 0x4f1f80 0xf1f80 0xd90 .rdata
169 * 0 0 0x10 0x1
170 *
171 * [13] PBIT -A-- 0x4f2d10 0xf2d10 0x17e0 .rodata
172 * 0 0 0x10 0x1
173 *
174 * [14] PBIT WA-- 0x5344f0 0xf44f0 0x4b3e4 .data <<<<<
175 * 0 0 0x10 0x1
176 *
177 * [15] PBIT WA-G 0x57f8d4 0x13f8d4 0x2a84 .got
178 * 0 0 0x4 0x4
179 *
180 * [16] PBIT WA-G 0x582360 0x142360 0x10 .sdata <<<<<
181 * 0 0 0x10 0x1
182 *
183 * [17] NOBI WA-G 0x582370 0x142370 0xb84 .sbss <<<<<
184 * 0 0 0x4 0
185 *
186 * [18] NOBI WA-- 0x582f00 0x142370 0x27ec0 .bss <<<<<
187 * 0 0 0x10 0x1
188 *
189 * [19] SYMT ---- 0 0x142370 0x10e40 .symtab
190 * 20 1108 0x4 0x10
191 *
192 * [20] STRT ---- 0 0x1531b0 0xed9e .strtab
193 * 0 0 0x1 0
194 *
195 * [21] STRT ---- 0 0x161f4e 0xb5 .shstrtab
196 * 0 0 0x1 0
197 *
198 * [22] PBIT ---- 0 0x162003 0x28e2a .comment
199 * 0 0 0x1 0x1
200 *
201 * [23] PBIT ---- 0 0x18ae2d 0x592 .debug
202 * 0 0 0x1 0
203 *
204 * [24] PBIT ---- 0 0x18b3bf 0x80 .line
205 * 0 0 0x1 0
206 *
207 * [25] MDBG ---- 0 0x18b440 0x60 .mdebug
208 * 0 0 0x4 0
209 *
210 *
211 * dump -hv emacs
212 *
213 * emacs:
214 *
215 * **** SECTION HEADER TABLE ****
216 * [No] Type Flags Addr Offset Size Name
217 * Link Info Adralgn Entsize
218 *
219 * [1] PBIT -A-- 0x4000f4 0xf4 0x13 .interp
220 * 0 0 0x1 0
221 *
222 * [2] REGI -A-- 0x400108 0x108 0x18 .reginfo
223 * 0 0 0x4 0x18
224 *
225 * [3] DYNM -A-- 0x400120 0x120 0xb8 .dynamic
226 * 6 0 0x4 0x8
227 *
228 * [4] HASH -A-- 0x4001d8 0x1d8 0x8a0 .hash
229 * 5 0 0x4 0x4
230 *
231 * [5] DYNS -A-- 0x400a78 0xa78 0x11f0 .dynsym
232 * 6 2 0x4 0x10
233 *
234 * [6] STRT -A-- 0x401c68 0x1c68 0xbf9 .dynstr
235 * 0 0 0x1 0
236 *
237 * [7] REL -A-- 0x402864 0x2864 0x18 .rel.dyn
238 * 5 14 0x4 0x8
239 *
240 * [8] PBIT -AI- 0x402880 0x2880 0x60 .init
241 * 0 0 0x10 0x1
242 *
243 * [9] PBIT -AI- 0x4028e0 0x28e0 0x1234 .plt
244 * 0 0 0x4 0x4
245 *
246 * [10] PBIT -AI- 0x403b20 0x3b20 0xee400 .text
247 * 0 0 0x20 0x1
248 *
249 * [11] PBIT -AI- 0x4f1f20 0xf1f20 0x60 .fini
250 * 0 0 0x10 0x1
251 *
252 * [12] PBIT -A-- 0x4f1f80 0xf1f80 0xd90 .rdata
253 * 0 0 0x10 0x1
254 *
255 * [13] PBIT -A-- 0x4f2d10 0xf2d10 0x17e0 .rodata
256 * 0 0 0x10 0x1
257 *
258 * [14] PBIT WA-- 0x5344f0 0xf44f0 0x4b3e4 .data <<<<<
259 * 0 0 0x10 0x1
260 *
261 * [15] PBIT WA-G 0x57f8d4 0x13f8d4 0x2a84 .got
262 * 0 0 0x4 0x4
263 *
264 * [16] PBIT WA-G 0x582360 0x142360 0xb94 .sdata <<<<<
265 * 0 0 0x10 0x1
266 *
267 * [17] PBIT WA-- 0x582f00 0x142f00 0x94100 .data <<<<<
268 * 0 0 0x10 0x1
269 *
270 * [18] NOBI WA-G 0x617000 0x1d7000 0 .sbss <<<<<
271 * 0 0 0x4 0
272 *
273 * [19] NOBI WA-- 0x617000 0x1d7000 0 .bss <<<<<
274 * 0 0 0x4 0x1
275 *
276 * [20] SYMT ---- 0 0x1d7000 0x10e40 .symtab
277 * 21 1109 0x4 0x10
278 *
279 * [21] STRT ---- 0 0x1e7e40 0xed9e .strtab
280 * 0 0 0x1 0
281 *
282 * [22] STRT ---- 0 0x1f6bde 0xb5 .shstrtab
283 * 0 0 0x1 0
284 *
285 * [23] PBIT ---- 0 0x1f6c93 0x28e2a .comment
286 * 0 0 0x1 0x1
287 *
288 * [24] PBIT ---- 0 0x21fabd 0x592 .debug
289 * 0 0 0x1 0
290 *
291 * [25] PBIT ---- 0 0x22004f 0x80 .line
292 * 0 0 0x1 0
293 *
294 * [26] MDBG ---- 0 0x2200d0 0x60 .mdebug
295 * 0 0 0x4 0
296 *
297 */
298
299#include <sys/types.h>
300#include <stdio.h>
301#include <sys/stat.h>
302#include <memory.h>
303#include <string.h>
304#include <errno.h>
305#include <unistd.h>
306#include <fcntl.h>
307#include <elf.h>
308#include <sys/mman.h>
309#include <assert.h>
310
311/* #define DEBUG */
312
313#ifndef emacs
314#define fatal(a, b, c) fprintf(stderr, a, b, c), exit(1)
315#else
316extern void fatal(char *, ...);
317#endif
318
319/* Get the address of a particular section or program header entry,
320 * accounting for the size of the entries.
321 */
322
323#define OLD_SECTION_H(n) \
324 (*(Elf32_Shdr *) ((byte *) old_section_h + old_file_h->e_shentsize * (n)))
325#define NEW_SECTION_H(n) \
326 (*(Elf32_Shdr *) ((byte *) new_section_h + new_file_h->e_shentsize * (n)))
327#define OLD_PROGRAM_H(n) \
328 (*(Elf32_Phdr *) ((byte *) old_program_h + old_file_h->e_phentsize * (n)))
329#define NEW_PROGRAM_H(n) \
330 (*(Elf32_Phdr *) ((byte *) new_program_h + new_file_h->e_phentsize * (n)))
331
332#define PATCH_INDEX(n) \
333 do { \
334 if ((n) >= old_sbss_index) \
335 (n) += 1 + (old_sdata_index ? 0 : 1); } while (0)
336
337typedef unsigned char byte;
338
339/* Round X up to a multiple of Y. */
340
341int
342round_up (x, y)
343 int x, y;
344{
345 int rem = x % y;
346 if (rem == 0)
347 return x;
348 return x - rem + y;
349}
350
351/* ****************************************************************
352 * unexec
353 *
354 * driving logic.
355 *
356 * In ELF, this works by replacing the old .bss section with a new
357 * .data section, and inserting an empty .bss immediately afterwards.
358 *
359 */
360void
361unexec (new_name, old_name, data_start, bss_start, entry_address)
362 char *new_name, *old_name;
363 unsigned data_start, bss_start, entry_address;
364{
365 extern unsigned int bss_end;
366 int new_file, old_file, new_file_size;
367
368 /* Pointers to the base of the image of the two files. */
369 caddr_t old_base, new_base;
370
371 /* Pointers to the file, program and section headers for the old and new
372 * files.
373 */
374 Elf32_Ehdr *old_file_h, *new_file_h;
375 Elf32_Phdr *old_program_h, *new_program_h;
376 Elf32_Shdr *old_section_h, *new_section_h;
377
378 /* Point to the section name table in the old file */
379 char *old_section_names;
380
381 Elf32_Addr old_bss_addr, new_bss_addr;
382 Elf32_Addr old_sbss_addr;
383 Elf32_Word old_bss_size, new_data2_size;
384 Elf32_Word old_sbss_size, new_data3_size;
385 Elf32_Off new_data2_offset;
386 Elf32_Off new_data3_offset;
387 Elf32_Addr new_data2_addr;
388 Elf32_Addr new_data3_addr;
389
390
391 Elf32_Addr old_rel_dyn_addr;
392 Elf32_Word old_rel_dyn_size;
393 int old_rel_dyn_index;
394
395 Elf32_Word old_sdata_size, new_sdata_size;
396 int old_sdata_index = 0;
397
398 int n, nn, old_data_index, new_data2_align;
399 int old_bss_index;
400 int old_sbss_index;
401 int old_bss_padding;
402 struct stat stat_buf;
403
404 /* Open the old file & map it into the address space. */
405
406 old_file = open (old_name, O_RDONLY);
407
408 if (old_file < 0)
409 fatal ("Can't open %s for reading: errno %d\n", old_name, errno);
410
411 if (fstat (old_file, &stat_buf) == -1)
412 fatal ("Can't fstat(%s): errno %d\n", old_name, errno);
413
414 old_base = mmap (0, stat_buf.st_size, PROT_READ, MAP_SHARED, old_file, 0);
415
416 if (old_base == (caddr_t) -1)
417 fatal ("Can't mmap(%s): errno %d\n", old_name, errno);
418
419#ifdef DEBUG
420 fprintf (stderr, "mmap(%s, %x) -> %x\n", old_name, stat_buf.st_size,
421 old_base);
422#endif
423
424 /* Get pointers to headers & section names */
425
426 old_file_h = (Elf32_Ehdr *) old_base;
427 old_program_h = (Elf32_Phdr *) ((byte *) old_base + old_file_h->e_phoff);
428 old_section_h = (Elf32_Shdr *) ((byte *) old_base + old_file_h->e_shoff);
429 old_section_names = (char *) old_base
430 + OLD_SECTION_H(old_file_h->e_shstrndx).sh_offset;
431
432 /* Find the old .sbss section.
433 */
434
435 for (old_sbss_index = 1; old_sbss_index < old_file_h->e_shnum;
436 old_sbss_index++)
437 {
438#ifdef DEBUG
439 fprintf (stderr, "Looking for .sbss - found %s\n",
440 old_section_names + OLD_SECTION_H(old_sbss_index).sh_name);
441#endif
442 if (!strcmp (old_section_names + OLD_SECTION_H(old_sbss_index).sh_name,
443 ".sbss"))
444 break;
445 }
446 if (old_sbss_index == old_file_h->e_shnum)
447 fatal ("Can't find .sbss in %s.\n", old_name, 0);
448
449 if (!strcmp(old_section_names + OLD_SECTION_H(old_sbss_index - 1).sh_name,
450 ".sdata"))
451 {
452 old_sdata_index = old_sbss_index - 1;
453 }
454
455
456 /* Find the old .bss section.
457 */
458
459 for (old_bss_index = 1; old_bss_index < old_file_h->e_shnum; old_bss_index++)
460 {
461#ifdef DEBUG
462 fprintf (stderr, "Looking for .bss - found %s\n",
463 old_section_names + OLD_SECTION_H(old_bss_index).sh_name);
464#endif
465 if (!strcmp (old_section_names + OLD_SECTION_H(old_bss_index).sh_name,
466 ".bss"))
467 break;
468 }
469 if (old_bss_index == old_file_h->e_shnum)
470 fatal ("Can't find .bss in %s.\n", old_name, 0);
471
472 if (old_sbss_index != (old_bss_index - 1))
473 fatal (".sbss should come immediately before .bss in %s.\n", old_name, 0);
474
475 /* Find the old .rel.dyn section.
476 */
477
478 for (old_rel_dyn_index = 1; old_rel_dyn_index < old_file_h->e_shnum;
479 old_rel_dyn_index++)
480 {
481#ifdef DEBUG
482 fprintf (stderr, "Looking for .rel.dyn - found %s\n",
483 old_section_names + OLD_SECTION_H(old_rel_dyn_index).sh_name);
484#endif
485 if (!strcmp (old_section_names + OLD_SECTION_H(old_rel_dyn_index).sh_name,
486 ".rel.dyn"))
487 break;
488 }
489 if (old_rel_dyn_index == old_file_h->e_shnum)
490 fatal ("Can't find .rel_dyn in %s.\n", old_name, 0);
491
492 old_rel_dyn_addr = OLD_SECTION_H(old_rel_dyn_index).sh_addr;
493 old_rel_dyn_size = OLD_SECTION_H(old_rel_dyn_index).sh_size;
494
495 /* Figure out parameters of the new data3 and data2 sections.
496 * Change the sbss and bss sections.
497 */
498
499 old_bss_addr = OLD_SECTION_H(old_bss_index).sh_addr;
500 old_bss_size = OLD_SECTION_H(old_bss_index).sh_size;
501
502 old_sbss_addr = OLD_SECTION_H(old_sbss_index).sh_addr;
503 old_sbss_size = OLD_SECTION_H(old_sbss_index).sh_size;
504
505 if (old_sdata_index)
506 {
507 old_sdata_size = OLD_SECTION_H(old_sdata_index).sh_size;
508 }
509
510#if defined(emacs) || !defined(DEBUG)
511 bss_end = (unsigned int) sbrk (0);
512 new_bss_addr = (Elf32_Addr) bss_end;
513#else
514 new_bss_addr = old_bss_addr + old_bss_size + 0x1234;
515#endif
516 if (old_sdata_index)
517 {
518 new_sdata_size = OLD_SECTION_H(old_sbss_index).sh_offset -
519 OLD_SECTION_H(old_sdata_index).sh_offset + old_sbss_size;
520 }
521
522 new_data3_addr = old_sbss_addr;
523 new_data3_size = old_sbss_size;
524 new_data3_offset = OLD_SECTION_H(old_sbss_index).sh_offset;
525
526 new_data2_addr = old_bss_addr;
527 new_data2_size = new_bss_addr - old_bss_addr;
528 new_data2_align = (new_data3_offset + old_sbss_size) %
529 OLD_SECTION_H(old_bss_index).sh_addralign;
530 new_data2_align = new_data2_align ?
531 OLD_SECTION_H(old_bss_index).sh_addralign - new_data2_align :
532 0;
533 new_data2_offset = new_data3_offset + old_sbss_size + new_data2_align;
534
535 old_bss_padding = OLD_SECTION_H(old_bss_index).sh_offset -
536 OLD_SECTION_H(old_sbss_index).sh_offset;
537#ifdef DEBUG
538 fprintf (stderr, "old_bss_index %d\n", old_bss_index);
539 fprintf (stderr, "old_bss_addr %x\n", old_bss_addr);
540 fprintf (stderr, "old_bss_size %x\n", old_bss_size);
541 fprintf (stderr, "new_bss_addr %x\n", new_bss_addr);
542 fprintf (stderr, "new_data2_addr %x\n", new_data2_addr);
543 fprintf (stderr, "new_data2_size %x\n", new_data2_size);
544 fprintf (stderr, "new_data2_offset %x\n", new_data2_offset);
545 fprintf (stderr, "old_sbss_index %d\n", old_sbss_index);
546 fprintf (stderr, "old_sbss_addr %x\n", old_sbss_addr);
547 fprintf (stderr, "old_sbss_size %x\n", old_sbss_size);
548 fprintf (stderr, "old_rel_dyn_addr %x\n", old_rel_dyn_addr);
549 fprintf (stderr, "old_rel_dyn_size %x\n", old_rel_dyn_size);
550 if (old_sdata_index)
551 {
552 fprintf (stderr, "old_sdata_size %x\n", old_sdata_size);
553 fprintf (stderr, "new_sdata_size %x\n", new_sdata_size);
554 }
555 else
556 {
557 fprintf (stderr, "new_data3_addr %x\n", new_data3_addr);
558 fprintf (stderr, "new_data3_size %x\n", new_data3_size);
559 fprintf (stderr, "new_data3_offset %x\n", new_data3_offset);
560 }
561#endif
562
563 if ((unsigned) new_bss_addr < (unsigned) old_bss_addr + old_bss_size)
564 fatal (".bss shrank when undumping???\n", 0, 0);
565
566 /* Set the output file to the right size and mmap(2) it. Set
567 * pointers to various interesting objects. stat_buf still has
568 * old_file data.
569 */
570
571 new_file = open (new_name, O_RDWR | O_CREAT, 0666);
572 if (new_file < 0)
573 fatal ("Can't creat(%s): errno %d\n", new_name, errno);
574
575 new_file_size = stat_buf.st_size +
576 ((1 + (old_sdata_index ? 0 : 1)) * old_file_h->e_shentsize) +
577 new_data2_size + new_data3_size + new_data2_align;
578
579 if (ftruncate (new_file, new_file_size))
580 fatal ("Can't ftruncate(%s): errno %d\n", new_name, errno);
581
582 new_base = mmap (0, new_file_size, PROT_READ | PROT_WRITE, MAP_SHARED,
583 new_file, 0);
584
585 if (new_base == (caddr_t) -1)
586 fatal ("Can't mmap(%s): errno %d\n", new_name, errno);
587
588 new_file_h = (Elf32_Ehdr *) new_base;
589 new_program_h = (Elf32_Phdr *) ((byte *) new_base + old_file_h->e_phoff);
590 new_section_h = (Elf32_Shdr *) ((byte *) new_base +
591 old_file_h->e_shoff +
592 new_data2_size +
593 new_data2_align +
594 new_data3_size);
595
596 /* Make our new file, program and section headers as copies of the
597 * originals.
598 */
599
600 memcpy (new_file_h, old_file_h, old_file_h->e_ehsize);
601 memcpy (new_program_h, old_program_h,
602 old_file_h->e_phnum * old_file_h->e_phentsize);
603
604 /* Modify the e_shstrndx if necessary. */
605 PATCH_INDEX (new_file_h->e_shstrndx);
606
607 /* Fix up file header. We'll add one section. Section header is
608 * further away now.
609 */
610
611 new_file_h->e_shoff += new_data2_size + new_data2_align + new_data3_size;
612 new_file_h->e_shnum += 1 + (old_sdata_index ? 0 : 1);
613
614#ifdef DEBUG
615 fprintf (stderr, "Old section offset %x\n", old_file_h->e_shoff);
616 fprintf (stderr, "Old section count %d\n", old_file_h->e_shnum);
617 fprintf (stderr, "New section offset %x\n", new_file_h->e_shoff);
618 fprintf (stderr, "New section count %d\n", new_file_h->e_shnum);
619#endif
620
621 /* Fix up a new program header. Extend the writable data segment so
622 * that the bss area is covered too. Find that segment by looking
623 * for a segment that ends just before the .bss area. Make sure
624 * that no segments are above the new .data2. Put a loop at the end
625 * to adjust the offset and address of any segment that is above
626 * data2, just in case we decide to allow this later.
627 */
628
629 for (n = new_file_h->e_phnum - 1; n >= 0; n--)
630 {
631 /* Compute maximum of all requirements for alignment of section. */
632 int alignment = (NEW_PROGRAM_H (n)).p_align;
633 if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment)
634 alignment = OLD_SECTION_H (old_bss_index).sh_addralign;
635
636 if ((OLD_SECTION_H (old_sbss_index)).sh_addralign > alignment)
637 alignment = OLD_SECTION_H (old_sbss_index).sh_addralign;
638
639 /* Supposedly this condition is okay for the SGI. */
640#if 0
641 if (NEW_PROGRAM_H(n).p_vaddr + NEW_PROGRAM_H(n).p_filesz > old_bss_addr)
642 fatal ("Program segment above .bss in %s\n", old_name, 0);
643#endif
644
645 if (NEW_PROGRAM_H(n).p_type == PT_LOAD
646 && (round_up ((NEW_PROGRAM_H (n)).p_vaddr
647 + (NEW_PROGRAM_H (n)).p_filesz,
648 alignment)
649 == round_up (old_bss_addr, alignment)))
650 break;
651 }
652 if (n < 0)
653 fatal ("Couldn't find segment next to .bss in %s\n", old_name, 0);
654
655 NEW_PROGRAM_H(n).p_filesz += new_data2_size + new_data2_align +
656 new_data3_size;
657 NEW_PROGRAM_H(n).p_memsz = NEW_PROGRAM_H(n).p_filesz;
658
659#if 1 /* Maybe allow section after data2 - does this ever happen? */
660 for (n = new_file_h->e_phnum - 1; n >= 0; n--)
661 {
662 if (NEW_PROGRAM_H(n).p_vaddr
663 && NEW_PROGRAM_H(n).p_vaddr >= new_data3_addr)
664 NEW_PROGRAM_H(n).p_vaddr += new_data2_size - old_bss_size +
665 new_data3_size - old_sbss_size;
666
667 if (NEW_PROGRAM_H(n).p_offset >= new_data3_offset)
668 NEW_PROGRAM_H(n).p_offset += new_data2_size + new_data2_align +
669 new_data3_size;
670 }
671#endif
672
673 /* Fix up section headers based on new .data2 section. Any section
674 * whose offset or virtual address is after the new .data2 section
675 * gets its value adjusted. .bss size becomes zero and new address
676 * is set. data2 section header gets added by copying the existing
677 * .data header and modifying the offset, address and size.
678 */
679 for (old_data_index = 1; old_data_index < old_file_h->e_shnum;
680 old_data_index++)
681 if (!strcmp (old_section_names + OLD_SECTION_H(old_data_index).sh_name,
682 ".data"))
683 break;
684 if (old_data_index == old_file_h->e_shnum)
685 fatal ("Can't find .data in %s.\n", old_name, 0);
686
687 /* Walk through all section headers, insert the new data2 section right
688 before the new bss section. */
689 for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++)
690 {
691 caddr_t src;
692
693 if (n == old_sbss_index)
694
695 /* If it is sbss section, insert the new data3 section before it. */
696 {
697 /* Steal the data section header for this data3 section. */
698 if (!old_sdata_index)
699 {
700 memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index),
701 new_file_h->e_shentsize);
702
703 NEW_SECTION_H(nn).sh_addr = new_data3_addr;
704 NEW_SECTION_H(nn).sh_offset = new_data3_offset;
705 NEW_SECTION_H(nn).sh_size = new_data3_size;
706 NEW_SECTION_H(nn).sh_flags = OLD_SECTION_H(n).sh_flags;
707 /* Use the sbss section's alignment. This will assure that the
708 new data3 section always be placed in the same spot as the old
709 sbss section by any other application. */
710 NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(n).sh_addralign;
711
712 /* Now copy over what we have in the memory now. */
713 memcpy (NEW_SECTION_H(nn).sh_offset + new_base,
714 (caddr_t) OLD_SECTION_H(n).sh_addr,
715 new_data3_size);
716 /* the new .data2 section should also come before the
717 * new .sbss section */
718 nn += 2;
719 }
720 else
721 {
722 /* We always have a .sdata section: append the contents of the
723 * old .sbss section.
724 */
725 memcpy (new_data3_offset + new_base,
726 (caddr_t) OLD_SECTION_H(n).sh_addr,
727 new_data3_size);
728 nn ++;
729 }
730 }
731 else if (n == old_bss_index)
732
733 /* If it is bss section, insert the new data2 section before it. */
734 {
735 Elf32_Word tmp_align;
736 Elf32_Addr tmp_addr;
737
738 tmp_align = OLD_SECTION_H(n).sh_addralign;
739 tmp_addr = OLD_SECTION_H(n).sh_addr;
740
741 nn -= 2;
742 /* Steal the data section header for this data2 section. */
743 memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index),
744 new_file_h->e_shentsize);
745
746 NEW_SECTION_H(nn).sh_addr = new_data2_addr;
747 NEW_SECTION_H(nn).sh_offset = new_data2_offset;
748 NEW_SECTION_H(nn).sh_size = new_data2_size;
749 /* Use the bss section's alignment. This will assure that the
750 new data2 section always be placed in the same spot as the old
751 bss section by any other application. */
752 NEW_SECTION_H(nn).sh_addralign = tmp_align;
753
754 /* Now copy over what we have in the memory now. */
755 memcpy (NEW_SECTION_H(nn).sh_offset + new_base,
756 (caddr_t) tmp_addr, new_data2_size);
757 nn += 2;
758 }
759
760 memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n),
761 old_file_h->e_shentsize);
762
763 if (old_sdata_index && n == old_sdata_index)
764 /* The old .sdata section has now a new size */
765 NEW_SECTION_H(nn).sh_size = new_sdata_size;
766
767 /* The new bss section's size is zero, and its file offset and virtual
768 address should be off by NEW_DATA2_SIZE. */
769 if (n == old_sbss_index)
770 {
771 /* NN should be `old_sbss_index + 2' at this point. */
772 NEW_SECTION_H(nn).sh_offset += new_data2_size + new_data2_align +
773 new_data3_size;
774 NEW_SECTION_H(nn).sh_addr += new_data2_size + new_data2_align +
775 new_data3_size;
776 /* Let the new bss section address alignment be the same as the
777 section address alignment followed the old bss section, so
778 this section will be placed in exactly the same place. */
779 NEW_SECTION_H(nn).sh_addralign =
780 OLD_SECTION_H(nn + (old_sdata_index ? 1 : 0)).sh_addralign;
781 NEW_SECTION_H(nn).sh_size = 0;
782 }
783 else if (n == old_bss_index)
784 {
785 /* NN should be `old_bss_index + 2' at this point. */
786 NEW_SECTION_H(nn).sh_offset += new_data2_size + new_data2_align +
787 new_data3_size - old_bss_padding;
788 NEW_SECTION_H(nn).sh_addr += new_data2_size;
789 /* Let the new bss section address alignment be the same as the
790 section address alignment followed the old bss section, so
791 this section will be placed in exactly the same place. */
792 NEW_SECTION_H(nn).sh_addralign =
793 OLD_SECTION_H((nn - (old_sdata_index ? 0 : 1))).sh_addralign;
794 NEW_SECTION_H(nn).sh_size = 0;
795 }
796 /* Any section that was original placed AFTER the bss section should now
797 be off by NEW_DATA2_SIZE. */
798 else if (NEW_SECTION_H(nn).sh_offset >= new_data3_offset)
799 NEW_SECTION_H(nn).sh_offset += new_data2_size +
800 new_data2_align +
801 new_data3_size -
802 old_bss_padding;
803
804 /* If any section hdr refers to the section after the new .data
805 section, make it refer to next one because we have inserted
806 a new section in between. */
807
808 PATCH_INDEX(NEW_SECTION_H(nn).sh_link);
809 PATCH_INDEX(NEW_SECTION_H(nn).sh_info);
810
811 /* Now, start to copy the content of sections. */
812 if (NEW_SECTION_H(nn).sh_type == SHT_NULL
813 || NEW_SECTION_H(nn).sh_type == SHT_NOBITS)
814 continue;
815
816 /* Write out the sections. .data, .data1 and .sdata get copied from
817 * the current process instead of the old file.
818 */
819 if (!strcmp (old_section_names + OLD_SECTION_H(n).sh_name, ".data") ||
820 !strcmp (old_section_names + OLD_SECTION_H(n).sh_name, ".data1") ||
821 (old_sdata_index && (n == old_sdata_index)))
822 src = (caddr_t) OLD_SECTION_H(n).sh_addr;
823 else
824 src = old_base + OLD_SECTION_H(n).sh_offset;
825
826 memcpy (NEW_SECTION_H(nn).sh_offset + new_base, src,
827 ((n == old_sdata_index) ?
828 old_sdata_size :
829 NEW_SECTION_H(nn).sh_size));
830
831 /* If it is the symbol table, its st_shndx field needs to be patched. */
832 if (NEW_SECTION_H(nn).sh_type == SHT_SYMTAB
833 || NEW_SECTION_H(nn).sh_type == SHT_DYNSYM)
834 {
835 Elf32_Shdr *spt = &NEW_SECTION_H(nn);
836 unsigned int num = spt->sh_size / spt->sh_entsize;
837 Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset +
838 new_base);
839 for (; num--; sym++)
840 {
841 if ((sym->st_shndx == SHN_UNDEF)
842 || (sym->st_shndx == SHN_ABS)
843 || (sym->st_shndx == SHN_COMMON))
844 continue;
845
846 PATCH_INDEX(sym->st_shndx);
847 }
848 }
849 }
850 {
851 Elf32_Rel *rel_p;
852 unsigned int old_data_addr_start;
853 unsigned int old_data_addr_end;
854 unsigned int old_data_offset;
855 unsigned int new_data_offset;
856 int i;
857
858 rel_p = (Elf32_Rel *)OLD_SECTION_H(old_rel_dyn_index).sh_addr;
859 old_data_addr_start = OLD_SECTION_H(old_data_index).sh_addr;
860 old_data_addr_end = old_data_addr_start +
861 OLD_SECTION_H(old_data_index).sh_size;
862 old_data_offset = (int)OLD_SECTION_H(old_data_index).sh_offset +
863 (unsigned int)old_base;
864 new_data_offset = (int)NEW_SECTION_H(old_data_index).sh_offset +
865 (unsigned int)new_base;
866
867#ifdef DEBUG
868 fprintf(stderr, "old_data.sh_addr= 0x%08x ... 0x%08x\n", old_data_addr_start,
869 old_data_addr_end);
870#endif /* DEBUG */
871
872 for (i = 0; i < old_rel_dyn_size/sizeof(Elf32_Rel); i++)
873 {
874#ifdef DEBUG
875 fprintf(stderr, ".rel.dyn offset= 0x%08x type= %d sym= %d\n",
876 rel_p->r_offset, ELF32_R_TYPE(rel_p->r_info), ELF32_R_SYM(rel_p->r_info));
877#endif /* DEBUG */
878
879 if (rel_p->r_offset)
880 {
881 unsigned int offset;
882
883 assert(old_data_addr_start <= rel_p->r_offset &&
884 rel_p->r_offset <= old_data_addr_end);
885
886 offset = rel_p->r_offset - old_data_addr_start;
887
888#ifdef DEBUG
889 fprintf(stderr, "r_offset= 0x%08x *r_offset= 0x%08x\n",
890 rel_p->r_offset, *((int *)(rel_p->r_offset)));
891 fprintf(stderr, "old = 0x%08x *old =0x%08x\n",
892 (old_data_offset + offset - (unsigned int)old_base),
893 *((int *)(old_data_offset + offset)));
894 fprintf(stderr, "new = 0x%08x *new =0x%08x\n",
895 (new_data_offset + offset - (unsigned int)new_base),
896 *((int *)(new_data_offset + offset)));
897#endif /* DEBUG */
898
899 *((int *)(new_data_offset + offset)) = *((int *)(old_data_offset + offset));
900 }
901
902 rel_p++;
903 }
904 }
905
906 /* Close the files and make the new file executable */
907
908 if (close (old_file))
909 fatal ("Can't close(%s): errno %d\n", old_name, errno);
910
911 if (close (new_file))
912 fatal ("Can't close(%s): errno %d\n", new_name, errno);
913
914 if (stat (new_name, &stat_buf) == -1)
915 fatal ("Can't stat(%s): errno %d\n", new_name, errno);
916
917 n = umask (777);
918 umask (n);
919 stat_buf.st_mode |= 0111 & ~n;
920 if (chmod (new_name, stat_buf.st_mode) == -1)
921 fatal ("Can't chmod(%s): errno %d\n", new_name, errno);
922}
923
924/* arch-tag: c784ead3-7a27-442b-83fe-7af8d08654d3
925 (do not change this comment) */
diff --git a/src/w32.c b/src/w32.c
index d9d11c3094a..c2417f1a24d 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -1269,12 +1269,6 @@ get_emacs_configuration (void)
1269 break; 1269 break;
1270#endif 1270#endif
1271 1271
1272#ifdef PROCESSOR_INTEL_860
1273 case PROCESSOR_INTEL_860:
1274 arch = "i860";
1275 break;
1276#endif
1277
1278#ifdef PROCESSOR_MIPS_R2000 1272#ifdef PROCESSOR_MIPS_R2000
1279 case PROCESSOR_MIPS_R2000: 1273 case PROCESSOR_MIPS_R2000:
1280 case PROCESSOR_MIPS_R3000: 1274 case PROCESSOR_MIPS_R3000: