aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDan Nicolaescu2008-06-26 04:24:54 +0000
committerDan Nicolaescu2008-06-26 04:24:54 +0000
commitf2a77c3a41744e43b52f0ac7a2c9bd7f8d406ae1 (patch)
tree05d027376fd22d8624eefdd512362109f7b2389a /src
parent3617b1eb8da69a836148741cd35a7d8ec59191af (diff)
downloademacs-f2a77c3a41744e43b52f0ac7a2c9bd7f8d406ae1.tar.gz
emacs-f2a77c3a41744e43b52f0ac7a2c9bd7f8d406ae1.zip
* unexnext.c:
* m/ews4800.h: * m/hp9000s300.h: * m/ibm370aix.h: * m/mips-siemens.h: * m/ncr386.h: * m/next.h: * m/pmax.h: * m/powerpcle.h: * m/tandem-s2.h: * s/386bsd.h: * s/bsd386.h: * s/bsd4-1.h: * s/bsd4-2.h: * s/bsdos2-1.h: * s/bsdos2.h: * s/bsdos3.h: * s/bsdos4.h: * s/nextstep.h: * s/ultrix4-3.h: * s/usg5-0.h: * s/usg5-2-2.h: * s/usg5-2.h: * s/usg5-4-3.h: * s/ux4800.h: * s/uxpds.h: * s/uxpv.h: Remove support for obsolete systems. * s/hpux.h, s/hpux10.h, s/hpux8.h, s/hpux9.h, s/hpux9shr.h: Remove, insert contents in s/hpux-10.20.h * s/aix3-1.h, s/aix3-2-5.h, s/aix3-2.h, s/aix4-1.h, s/aix4.h: Remove, insert contents in s/aix-4.2.h * s/usg5-3.h: Remove, insert contents in s/usg5-4.h. * s/bsd4-3.h: Rename to .. * s/bsd-common.h: ... this. * src/data.c: * src/doc.c: * src/ecrt0.c: * src/emacs.c: * src/fileio.c: * src/floatfns.c: * src/keyboard.c: * src/mem-limits.h: * src/print.c: * src/process.c: * src/sysdep.c: * src/syssignal.h: * src/systty.h: * src/syswait.h: * src/term.c: * src/unexec.c: * src/unexelf.c: * src/unexhp9k800.c: * src/m/hp800.h: * src/m/ibmrs6000.h: * src/m/mips.h: * src/m/vax.h: * src/s/darwin.h: * src/s/freebsd.h: * src/s/gnu.h: * src/s/ms-w32.h: * src/s/msdos.h: * src/s/netbsd.h: * src/s/template.h: Remove references to obsolete variables. * Makefile.in: Add dependencies for all unexec files. (admindir): Remove unused variable. (UNEXEC_SRC): Remove references. * config.nt: Remove reference to UNEXEC_SRC. * lwlib.c: Remove references to obsolete variables. * fakemail.c: Remove references to obsolete variables. * os.texi: Remove references to obsolete systems. * configure.in: * configure: Remove references to obsolete systems.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog70
-rw-r--r--src/Makefile.in24
-rw-r--r--src/data.c14
-rw-r--r--src/doc.c2
-rw-r--r--src/ecrt0.c120
-rw-r--r--src/emacs.c12
-rw-r--r--src/fileio.c10
-rw-r--r--src/floatfns.c14
-rw-r--r--src/keyboard.c14
-rw-r--r--src/m/ews4800.h40
-rw-r--r--src/m/hp800.h7
-rw-r--r--src/m/hp9000s300.h212
-rw-r--r--src/m/ibm370aix.h51
-rw-r--r--src/m/ibmrs6000.h12
-rw-r--r--src/m/mips-siemens.h161
-rw-r--r--src/m/mips.h2
-rw-r--r--src/m/ncr386.h18
-rw-r--r--src/m/next.h125
-rw-r--r--src/m/pmax.h127
-rw-r--r--src/m/powerpcle.h61
-rw-r--r--src/m/tandem-s2.h24
-rw-r--r--src/m/vax.h6
-rw-r--r--src/mem-limits.h4
-rw-r--r--src/print.c10
-rw-r--r--src/process.c98
-rw-r--r--src/s/386bsd.h27
-rw-r--r--src/s/aix3-1.h210
-rw-r--r--src/s/aix3-2-5.h33
-rw-r--r--src/s/aix3-2.h73
-rw-r--r--src/s/aix4-1.h65
-rw-r--r--src/s/aix4-2.h206
-rw-r--r--src/s/aix4.h17
-rw-r--r--src/s/bsd-common.h (renamed from src/s/bsd4-3.h)0
-rw-r--r--src/s/bsd386.h67
-rw-r--r--src/s/bsd4-1.h131
-rw-r--r--src/s/bsd4-2.h122
-rw-r--r--src/s/bsdos2-1.h9
-rw-r--r--src/s/bsdos2.h14
-rw-r--r--src/s/bsdos3.h9
-rw-r--r--src/s/bsdos4.h26
-rw-r--r--src/s/darwin.h6
-rw-r--r--src/s/freebsd.h17
-rw-r--r--src/s/gnu.h4
-rw-r--r--src/s/hpux.h218
-rw-r--r--src/s/hpux10-20.h269
-rw-r--r--src/s/hpux10.h85
-rw-r--r--src/s/hpux8.h96
-rw-r--r--src/s/hpux9.h94
-rw-r--r--src/s/hpux9shr.h16
-rw-r--r--src/s/ms-w32.h10
-rw-r--r--src/s/msdos.h10
-rw-r--r--src/s/netbsd.h4
-rw-r--r--src/s/nextstep.h114
-rw-r--r--src/s/template.h3
-rw-r--r--src/s/ultrix4-3.h16
-rw-r--r--src/s/usg5-0.h149
-rw-r--r--src/s/usg5-2-2.h152
-rw-r--r--src/s/usg5-2.h152
-rw-r--r--src/s/usg5-3.h202
-rw-r--r--src/s/usg5-4-3.h11
-rw-r--r--src/s/usg5-4.h173
-rw-r--r--src/s/ux4800.h20
-rw-r--r--src/s/uxpds.h11
-rw-r--r--src/s/uxpv.h14
-rw-r--r--src/sysdep.c295
-rw-r--r--src/syssignal.h7
-rw-r--r--src/systty.h13
-rw-r--r--src/syswait.h4
-rw-r--r--src/term.c7
-rw-r--r--src/unexec.c2
-rw-r--r--src/unexelf.c98
-rw-r--r--src/unexhp9k800.c2
-rw-r--r--src/unexnext.c514
73 files changed, 693 insertions, 4342 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index eea911d7a89..4450763e1a9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,73 @@
12008-06-26 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * unexnext.c:
4 * m/ews4800.h:
5 * m/hp9000s300.h:
6 * m/ibm370aix.h:
7 * m/mips-siemens.h:
8 * m/ncr386.h:
9 * m/next.h:
10 * m/pmax.h:
11 * m/powerpcle.h:
12 * m/tandem-s2.h:
13 * s/386bsd.h:
14 * s/bsd386.h:
15 * s/bsd4-1.h:
16 * s/bsd4-2.h:
17 * s/bsdos2-1.h:
18 * s/bsdos2.h:
19 * s/bsdos3.h:
20 * s/bsdos4.h:
21 * s/nextstep.h:
22 * s/ultrix4-3.h:
23 * s/usg5-0.h:
24 * s/usg5-2-2.h:
25 * s/usg5-2.h:
26 * s/usg5-4-3.h:
27 * s/ux4800.h:
28 * s/uxpds.h:
29 * s/uxpv.h: Remove support for obsolete systems.
30 * s/hpux.h, s/hpux10.h, s/hpux8.h, s/hpux9.h, s/hpux9shr.h:
31 Remove, insert contents in s/hpux-10.20.h
32 * s/aix3-1.h, s/aix3-2-5.h, s/aix3-2.h, s/aix4-1.h, s/aix4.h:
33 Remove, insert contents in s/aix-4.2.h
34 * s/usg5-3.h: Remove, insert contents in s/usg5-4.h.
35 * s/bsd4-3.h: Rename to ..
36 * s/bsd-common.h: ... this.
37 * src/data.c:
38 * src/doc.c:
39 * src/ecrt0.c:
40 * src/emacs.c:
41 * src/fileio.c:
42 * src/floatfns.c:
43 * src/keyboard.c:
44 * src/mem-limits.h:
45 * src/print.c:
46 * src/process.c:
47 * src/sysdep.c:
48 * src/syssignal.h:
49 * src/systty.h:
50 * src/syswait.h:
51 * src/term.c:
52 * src/unexec.c:
53 * src/unexelf.c:
54 * src/unexhp9k800.c:
55 * src/m/hp800.h:
56 * src/m/ibmrs6000.h:
57 * src/m/mips.h:
58 * src/m/vax.h:
59 * src/s/darwin.h:
60 * src/s/freebsd.h:
61 * src/s/gnu.h:
62 * src/s/ms-w32.h:
63 * src/s/msdos.h:
64 * src/s/netbsd.h:
65 * src/s/template.h: Remove references to obsolete variables.
66
67 * Makefile.in: Add dependencies for all unexec files.
68 (admindir): Remove unused variable.
69 (UNEXEC_SRC): Remove references.
70
12008-06-25 Chong Yidong <cyd@stupidchicken.com> 712008-06-25 Chong Yidong <cyd@stupidchicken.com>
2 72
3 * xfns.c (x_default_font_parameter): If Xft is available, first 73 * xfns.c (x_default_font_parameter): If Xft is available, first
diff --git a/src/Makefile.in b/src/Makefile.in
index 60aace0a53e..8acfa014f2b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -52,7 +52,6 @@ version=@version@
52LIBOBJS = @LIBOBJS@ 52LIBOBJS = @LIBOBJS@
53 53
54lispsource = ${srcdir}/../lisp/ 54lispsource = ${srcdir}/../lisp/
55admindir = $(srcdir)/../admin/
56libsrc = ../lib-src/ 55libsrc = ../lib-src/
57etc = ../etc/ 56etc = ../etc/
58oldXMenudir = ../oldXMenu/ 57oldXMenudir = ../oldXMenu/
@@ -94,11 +93,6 @@ SHELL=/bin/sh
94 do not let it interfere with this file. */ 93 do not let it interfere with this file. */
95#undef register 94#undef register
96 95
97/* On some systems we may not be able to use the system make command. */
98#ifdef MAKE_COMMAND
99MAKE = MAKE_COMMAND
100#endif
101
102/* GNU libc requires ORDINARY_LINK so that its own crt0 is used. 96/* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
103 GNU/Linux is an exception because it uses a funny variant of GNU libc. */ 97 GNU/Linux is an exception because it uses a funny variant of GNU libc. */
104#ifdef __GNU_LIBRARY__ 98#ifdef __GNU_LIBRARY__
@@ -500,9 +494,6 @@ TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_S
500#ifndef UNEXEC 494#ifndef UNEXEC
501#define UNEXEC unexec.o 495#define UNEXEC unexec.o
502#endif 496#endif
503#ifndef UNEXEC_SRC
504#define UNEXEC_SRC unexec.c
505#endif
506 497
507INTERVAL_SRC = intervals.h composite.h 498INTERVAL_SRC = intervals.h composite.h
508 499
@@ -1141,10 +1132,17 @@ terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1141terminfo.o: terminfo.c $(config_h) 1132terminfo.o: terminfo.c $(config_h)
1142tparam.o: tparam.c $(config_h) 1133tparam.o: tparam.c $(config_h)
1143undo.o: undo.c buffer.h commands.h window.h $(config_h) 1134undo.o: undo.c buffer.h commands.h window.h $(config_h)
1144/* This hack is to discard any space that cpp might put at the beginning 1135unexaix.o: unexaix.c $(config_h)
1145 of UNEXEC when substituting it in. */ 1136unexalpha.o: unexalpha.c $(config_h)
1146UNEXEC_ALIAS=UNEXEC 1137unexcw.o: unexcw.c $(config_h)
1147$(UNEXEC_ALIAS): UNEXEC_SRC $(config_h) 1138unexec.o: unexec.c $(config_h)
1139unexelf.o: unexelf.c $(config_h)
1140unexhp9k800.o: unexhp9k800.c $(config_h)
1141unexmacosx.o: unexmacosx.c $(config_h)
1142unexmips.o: unexmips.c $(config_h)
1143unexnext.o: unexnext.c $(config_h)
1144unexsol.o: unexsol.c $(config_h)
1145unexw32.o: unexw32.c $(config_h)
1148w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \ 1146w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1149 msdos.h buffer.h charset.h coding.h composite.h $(config_h) 1147 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1150widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \ 1148widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
diff --git a/src/data.c b/src/data.c
index a695c4d56b2..ab52c20c77f 100644
--- a/src/data.c
+++ b/src/data.c
@@ -45,16 +45,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
45#endif 45#endif
46#endif 46#endif
47 47
48/* Work around a problem that happens because math.h on hpux 7
49 defines two static variables--which, in Emacs, are not really static,
50 because `static' is defined as nothing. The problem is that they are
51 here, in floatfns.c, and in lread.c.
52 These macros prevent the name conflict. */
53#if defined (HPUX) && !defined (HPUX8)
54#define _MAXLDBL data_c_maxldbl
55#define _NMAXLDBL data_c_nmaxldbl
56#endif
57
58#include <math.h> 48#include <math.h>
59 49
60#if !defined (atof) 50#if !defined (atof)
@@ -3285,11 +3275,7 @@ arith_error (signo)
3285 /* VMS systems are like USG. */ 3275 /* VMS systems are like USG. */
3286 signal (signo, arith_error); 3276 signal (signo, arith_error);
3287#endif /* VMS */ 3277#endif /* VMS */
3288#ifdef BSD4_1
3289 sigrelse (SIGFPE);
3290#else /* not BSD4_1 */
3291 sigsetmask (SIGEMPTYMASK); 3278 sigsetmask (SIGEMPTYMASK);
3292#endif /* not BSD4_1 */
3293 3279
3294 SIGNAL_THREAD_CHECK (signo); 3280 SIGNAL_THREAD_CHECK (signo);
3295 xsignal0 (Qarith_error); 3281 xsignal0 (Qarith_error);
diff --git a/src/doc.c b/src/doc.c
index c307119eaf9..433a6109afc 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -22,7 +22,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
22#include <config.h> 22#include <config.h>
23 23
24#include <sys/types.h> 24#include <sys/types.h>
25#include <sys/file.h> /* Must be after sys/types.h for USG and BSD4_1*/ 25#include <sys/file.h> /* Must be after sys/types.h for USG*/
26#include <ctype.h> 26#include <ctype.h>
27 27
28#ifdef HAVE_FCNTL_H 28#ifdef HAVE_FCNTL_H
diff --git a/src/ecrt0.c b/src/ecrt0.c
index fcf4fee26e8..4c4f297c9ca 100644
--- a/src/ecrt0.c
+++ b/src/ecrt0.c
@@ -200,120 +200,6 @@ start1 (ignore, argc, xargv)
200 200
201#endif /* not CRT0_DUMMIES */ 201#endif /* not CRT0_DUMMIES */
202 202
203#ifdef hp9000s300
204int argc_value;
205char **argv_value;
206#ifdef OLD_HP_ASSEMBLER
207 asm(" text");
208 asm(" globl __start");
209 asm(" globl _exit");
210 asm(" globl _main");
211 asm("__start");
212 asm(" dc.l 0");
213 asm(" subq.w #0x1,d0");
214 asm(" move.w d0,float_soft");
215 asm(" move.l 0x4(a7),d0");
216 asm(" beq.s skip_1");
217 asm(" move.l d0,a0");
218 asm(" clr.l -0x4(a0)");
219 asm("skip_1");
220 asm(" move.l a7,a0");
221 asm(" subq.l #0x8,a7");
222 asm(" move.l (a0),(a7)");
223 asm(" move.l (a0),_argc_value");
224 asm(" addq.l #0x4,a0");
225 asm(" move.l a0,0x4(a7)");
226 asm(" move.l a0,_argv_value");
227 asm("incr_loop");
228 asm(" tst.l (a0)+");
229 asm(" bne.s incr_loop");
230 asm(" move.l 0x4(a7),a1");
231 asm(" cmp.l (a1),a0");
232 asm(" blt.s skip_2");
233 asm(" subq.l #0x4,a0");
234 asm("skip_2");
235 asm(" move.l a0,0x8(a7)");
236 asm(" move.l a0,_environ");
237 asm(" jsr _main");
238 asm(" addq.l #0x8,a7");
239 asm(" move.l d0,-(a7)");
240 asm(" jsr _exit");
241 asm(" move.w #0x1,d0");
242 asm(" trap #0x0");
243 asm(" comm float_soft,4");
244/* float_soft is allocated in this way because C would
245 put an underscore character in its name otherwise. */
246
247#else /* new hp assembler */
248
249 asm(" text");
250 asm(" global float_loc");
251 asm(" set float_loc,0xFFFFB000");
252 asm(" global fpa_loc");
253 asm(" set fpa_loc,0xfff08000");
254 asm(" global __start");
255 asm(" global _exit");
256 asm(" global _main");
257 asm("__start:");
258 asm(" byte 0,0,0,0");
259 asm(" subq.w &1,%d0");
260 asm(" mov.w %d0,float_soft");
261 asm(" mov.w %d1,flag_68881");
262#ifndef HPUX_68010
263 asm(" beq.b skip_float");
264 asm(" fmov.l &0x7400,%fpcr");
265/* asm(" fmov.l &0x7480,%fpcr"); */
266#endif /* HPUX_68010 */
267 asm("skip_float:");
268 asm(" mov.l %a0,%d0");
269 asm(" add.l %d0,%d0");
270 asm(" subx.w %d1,%d1");
271 asm(" mov.w %d1,flag_68010");
272 asm(" add.l %d0,%d0");
273 asm(" subx.w %d1,%d1");
274 asm(" mov.w %d1,flag_fpa");
275 asm(" tst.l %d2");
276 asm(" ble.b skip_3");
277 asm(" lsl flag_68881");
278 asm(" lsl flag_fpa");
279 asm("skip_3:");
280 asm(" mov.l 4(%a7),%d0");
281 asm(" beq.b skip_1");
282 asm(" mov.l %d0,%a0");
283 asm(" clr.l -4(%a0)");
284 asm("skip_1:");
285 asm(" mov.l %a7,%a0");
286 asm(" subq.l &8,%a7");
287 asm(" mov.l (%a0),(%a7)");
288 asm(" mov.l (%a0),_argc_value");
289 asm(" addq.l &4,%a0");
290 asm(" mov.l %a0,4(%a7)");
291 asm(" mov.l %a0,_argv_value");
292 asm("incr_loop:");
293 asm(" tst.l (%a0)+");
294 asm(" bne.b incr_loop");
295 asm(" mov.l 4(%a7),%a1");
296 asm(" cmp.l %a0,(%a1)");
297 asm(" blt.b skip_2");
298 asm(" subq.l &4,%a0");
299 asm("skip_2:");
300 asm(" mov.l %a0,8(%a7)");
301 asm(" mov.l %a0,_environ");
302 asm(" jsr _main");
303 asm(" addq.l &8,%a7");
304 asm(" mov.l %d0,-(%a7)");
305 asm(" jsr _exit");
306 asm(" mov.w &1,%d0");
307 asm(" trap &0");
308 asm(" comm float_soft, 4");
309 asm(" comm flag_68881, 4");
310 asm(" comm flag_68010, 4");
311 asm(" comm flag_68040, 4");
312 asm(" comm flag_fpa, 4");
313
314#endif /* new hp assembler */
315#endif /* hp9000s300 */
316
317#ifdef sparc 203#ifdef sparc
318asm (".global __start"); 204asm (".global __start");
319asm (".text"); 205asm (".text");
@@ -337,12 +223,6 @@ asm (" nop");
337#if __FreeBSD__ == 2 223#if __FreeBSD__ == 2
338char *__progname; 224char *__progname;
339#endif 225#endif
340#ifdef __bsdi__
341#include <sys/param.h> /* for version number */
342#if defined(_BSDI_VERSION) && (_BSDI_VERSION >= 199501)
343char *__progname;
344#endif
345#endif /* __bsdi__ */
346 226
347/* arch-tag: 4025c2fb-d6b1-4d29-b1b6-8100b6bd1e74 227/* arch-tag: 4025c2fb-d6b1-4d29-b1b6-8100b6bd1e74
348 (do not change this comment) */ 228 (do not change this comment) */
diff --git a/src/emacs.c b/src/emacs.c
index 517b39e828d..b27e787e7e0 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -922,16 +922,6 @@ main (argc, argv
922 } 922 }
923#endif 923#endif
924 924
925#ifdef NeXT
926 {
927 extern int malloc_cookie;
928 /* This helps out unexnext.c. */
929 if (initialized)
930 if (malloc_jumpstart (malloc_cookie) != 0)
931 printf ("malloc jumpstart failed!\n");
932 }
933#endif /* NeXT */
934
935#ifdef MAC_OSX 925#ifdef MAC_OSX
936 /* Skip process serial number passed in the form -psn_x_y as 926 /* Skip process serial number passed in the form -psn_x_y as
937 command-line argument. The WindowServer adds this option when 927 command-line argument. The WindowServer adds this option when
@@ -1505,7 +1495,7 @@ main (argc, argv
1505 if this is not done. Do it after set_global_environment so that we 1495 if this is not done. Do it after set_global_environment so that we
1506 don't pollute Vglobal_environment. */ 1496 don't pollute Vglobal_environment. */
1507 /* Setting LANG here will defeat the startup locale processing... */ 1497 /* Setting LANG here will defeat the startup locale processing... */
1508#ifdef AIX3_2 1498#ifdef AIX
1509 putenv ("LANG=C"); 1499 putenv ("LANG=C");
1510#endif 1500#endif
1511 1501
diff --git a/src/fileio.c b/src/fileio.c
index 2a700a69f97..ffb65497a40 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -122,11 +122,6 @@ extern int errno;
122 122
123#ifdef HPUX 123#ifdef HPUX
124#include <netio.h> 124#include <netio.h>
125#ifndef HPUX8
126#ifndef HPUX9
127#include <errnet.h>
128#endif
129#endif
130#endif 125#endif
131 126
132#include "commands.h" 127#include "commands.h"
@@ -2792,12 +2787,7 @@ This is what happens in interactive use with M-x. */)
2792 || INTEGERP (ok_if_already_exists)) 2787 || INTEGERP (ok_if_already_exists))
2793 barf_or_query_if_file_exists (newname, "rename to it", 2788 barf_or_query_if_file_exists (newname, "rename to it",
2794 INTEGERP (ok_if_already_exists), 0, 0); 2789 INTEGERP (ok_if_already_exists), 0, 0);
2795#ifndef BSD4_1
2796 if (0 > rename (SDATA (encoded_file), SDATA (encoded_newname))) 2790 if (0 > rename (SDATA (encoded_file), SDATA (encoded_newname)))
2797#else
2798 if (0 > link (SDATA (encoded_file), SDATA (encoded_newname))
2799 || 0 > unlink (SDATA (encoded_file)))
2800#endif
2801 { 2791 {
2802 if (errno == EXDEV) 2792 if (errno == EXDEV)
2803 { 2793 {
diff --git a/src/floatfns.c b/src/floatfns.c
index 5600d980652..8ee28210e43 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -62,16 +62,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
62#endif 62#endif
63#endif 63#endif
64 64
65/* Work around a problem that happens because math.h on hpux 7
66 defines two static variables--which, in Emacs, are not really static,
67 because `static' is defined as nothing. The problem is that they are
68 defined both here and in lread.c.
69 These macros prevent the name conflict. */
70#if defined (HPUX) && !defined (HPUX8)
71#define _MAXLDBL floatfns_maxldbl
72#define _NMAXLDBL floatfns_nmaxldbl
73#endif
74
75#include <math.h> 65#include <math.h>
76 66
77/* This declaration is omitted on some systems, like Ultrix. */ 67/* This declaration is omitted on some systems, like Ultrix. */
@@ -972,11 +962,7 @@ float_error (signo)
972 fatal_error_signal (signo); 962 fatal_error_signal (signo);
973 963
974#ifdef BSD_SYSTEM 964#ifdef BSD_SYSTEM
975#ifdef BSD4_1
976 sigrelse (SIGILL);
977#else /* not BSD4_1 */
978 sigsetmask (SIGEMPTYMASK); 965 sigsetmask (SIGEMPTYMASK);
979#endif /* not BSD4_1 */
980#else 966#else
981 /* Must reestablish handler each time it is called. */ 967 /* Must reestablish handler each time it is called. */
982 signal (SIGILL, float_error); 968 signal (SIGILL, float_error);
diff --git a/src/keyboard.c b/src/keyboard.c
index 5ac28a55247..e42e17525e6 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -7305,10 +7305,6 @@ tty_read_avail_input (struct terminal *terminal,
7305void 7305void
7306handle_async_input () 7306handle_async_input ()
7307{ 7307{
7308#ifdef BSD4_1
7309 extern int select_alarmed;
7310#endif
7311
7312 interrupt_input_pending = 0; 7308 interrupt_input_pending = 0;
7313 7309
7314 while (1) 7310 while (1)
@@ -7321,9 +7317,6 @@ handle_async_input ()
7321 if (nread <= 0) 7317 if (nread <= 0)
7322 break; 7318 break;
7323 7319
7324#ifdef BSD4_1
7325 select_alarmed = 1; /* Force the select emulator back to life */
7326#endif
7327 } 7320 }
7328} 7321}
7329 7322
@@ -7342,10 +7335,6 @@ input_available_signal (signo)
7342 signal (signo, input_available_signal); 7335 signal (signo, input_available_signal);
7343#endif /* USG */ 7336#endif /* USG */
7344 7337
7345#ifdef BSD4_1
7346 sigisheld (SIGIO);
7347#endif
7348
7349#ifdef SYNC_INPUT 7338#ifdef SYNC_INPUT
7350 interrupt_input_pending = 1; 7339 interrupt_input_pending = 1;
7351#else 7340#else
@@ -7359,9 +7348,6 @@ input_available_signal (signo)
7359 handle_async_input (); 7348 handle_async_input ();
7360#endif 7349#endif
7361 7350
7362#ifdef BSD4_1
7363 sigfree ();
7364#endif
7365 errno = old_errno; 7351 errno = old_errno;
7366} 7352}
7367#endif /* SIGIO */ 7353#endif /* SIGIO */
diff --git a/src/m/ews4800.h b/src/m/ews4800.h
deleted file mode 100644
index 5badc7ecf1a..00000000000
--- a/src/m/ews4800.h
+++ /dev/null
@@ -1,40 +0,0 @@
1/* m- file for NEC EWS4800 RISC series.
2 Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20#undef LIB_STANDARD
21#undef C_DEBUG_SWITCH
22#define INHIBIT_BSD_TIME
23#undef USG
24#include "mips.h"
25#define USG
26#undef UNEXEC
27#define UNEXEC unexelf.o
28#undef LIBS_MACHINE
29#undef LD_SWITCH_MACHINE
30#undef START_FILES
31#undef DATA_START
32#undef LIB_STANDARD
33#undef C_SWITCH_MACHINE
34#ifndef __GNUC__
35#undef C_DEBUG_SWITCH
36#define C_DEBUG_SWITCH -O -KOlimit=3000 -ZXNd=5000
37#endif /* !__GNUC__ */
38
39/* arch-tag: 27f72f54-45cd-40a3-b182-345127f04955
40 (do not change this comment) */
diff --git a/src/m/hp800.h b/src/m/hp800.h
index 28d7e4d7371..1a1a6abc465 100644
--- a/src/m/hp800.h
+++ b/src/m/hp800.h
@@ -62,13 +62,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
62/* Common definitions for HPUX and GNU/Linux. */ 62/* Common definitions for HPUX and GNU/Linux. */
63 63
64#if defined (__hpux) || defined (GNU_LINUX) 64#if defined (__hpux) || defined (GNU_LINUX)
65/* Now define a symbol for the cpu type, if your compiler
66 does not define it automatically:
67 Ones defined so far include vax, m68000, ns16000, pyramid,
68 orion, tahoe, APOLLO and many others */
69#ifndef hp9000s800
70# define hp9000s800
71#endif
72 65
73/* Define CANNOT_DUMP on machines where unexec does not work. 66/* Define CANNOT_DUMP on machines where unexec does not work.
74 Then the function dump-emacs will not be defined 67 Then the function dump-emacs will not be defined
diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h
deleted file mode 100644
index d7fb8b4015a..00000000000
--- a/src/m/hp9000s300.h
+++ /dev/null
@@ -1,212 +0,0 @@
1/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
2 Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/* The following line tells the configuration script what sort of
22 operating system this machine is likely to run.
23 USUAL-OPSYS="note"
24
25NOTE-START
26HP 9000 series 200 or 300 (-machine=hp9000s300)
27
28 These machines are 68000-series CPUs running HP-UX
29 (a derivative of sysV with some BSD features) or BSD 4.3 ported by Utah.
30
31 If you're running HP-UX, specify `-opsystem=hpux'.
32 If you're running BSD, specify `-opsystem=bsd4-3'.
33NOTE-END */
34
35/* I don't understand why we have to do this at all! -JimB */
36
37/* Define NOMULTIPLEJOBS on versions of HPUX before 6.5. */
38
39/* #define NOMULTIPLEJOBS */
40
41/* Define this symbol if you are running a version of HP-UX
42 which predates version 6.01 */
43
44/* #define HPUX_5 */
45
46/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
47 is the most significant byte. */
48
49#define WORDS_BIG_ENDIAN
50
51/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
52 * group of arguments and treat it as an array of the arguments. */
53
54/* #define NO_ARG_ARRAY */
55
56/* Define WORD_MACHINE if addresses and such have
57 * to be corrected before they can be used as byte counts. */
58
59/* #define WORD_MACHINE */
60
61/* Now define a symbol for the cpu type, if your compiler
62 does not define it automatically. */
63
64#ifndef hp9000s300
65#define hp9000s300
66#endif
67
68/* Use type int rather than a union, to represent Lisp_Object */
69/* This is desirable for most machines. */
70
71#define NO_UNION_TYPE
72
73/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
74 the 24-bit bit field into an int. In other words, if bit fields
75 are always unsigned.
76
77 If you use NO_UNION_TYPE, this flag does not matter. */
78
79#define EXPLICIT_SIGN_EXTEND
80
81/* Define CANNOT_DUMP on machines where unexec does not work.
82 Then the function dump-emacs will not be defined
83 and temacs will do (load "loadup") automatically unless told otherwise. */
84
85/* #define CANNOT_DUMP */
86
87/* Define VIRT_ADDR_VARIES if the virtual addresses of
88 pure and impure space as loaded can vary, and even their
89 relative order cannot be relied on.
90
91 Otherwise Emacs assumes that text space precedes data space,
92 numerically. */
93
94/* #define VIRT_ADDR_VARIES */
95
96/* For University of Utah 4.3bsd implementation on HP300s.
97 The #ifndef __GNUC__ definitions are required for the "standard" cc,
98 a very old, brain-dead version of PCC. */
99
100#ifdef BSD4_3
101
102/* Tell crt0.c that this is an ordinary 68020. */
103#undef hp9000s300
104#define m68000
105
106#define CRT0_DUMMIES bogus_a6,
107
108#ifndef __GNUC__
109#define LIBS_DEBUG /* don't have -lg that works */
110#define C_DEBUG_SWITCH /* don't support -g */
111#endif
112
113#undef LOAD_AVE_TYPE
114#undef LOAD_AVE_CVT
115#define LOAD_AVE_TYPE long
116#define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
117
118#endif /* BSD4_3 */
119
120#ifndef BSD4_3
121/* The following definitions are for HPUX only. */
122
123/* The symbol in the kernel where the load average is found
124 is named _avenrun on this machine. */
125
126#define LDAV_SYMBOL "_avenrun"
127
128/* Data type of load average, as read out of kmem. */
129
130#define LOAD_AVE_TYPE double
131
132/* Convert that into an integer that is 100 for a load average of 1.0 */
133
134#define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
135
136/* This library is needed with -g, on the 200/300 only. */
137
138#if !defined(__GNUC__) || defined(__HPUX_ASM__)
139#define LIBS_DEBUG /usr/lib/end.o
140#endif
141
142/* Need a TEXT_START. On the HP9000/s300 that is 0. */
143#ifdef __GNUC__
144#define TEXT_START 0
145#endif
146
147/* The symbol FIONREAD is defined, but the feature does not work
148 on the 200/300. */
149
150#define BROKEN_FIONREAD
151
152/* In older versions of hpux, for unknown reasons, S_IFLNK is defined
153 even though symbolic links do not exist.
154 Make sure our conditionals based on S_IFLNK are not confused.
155
156 Here we assume that stat.h is included before config.h
157 so that we can override it here.
158
159 Version 6 of HP-UX has symbolic links. */
160
161#ifdef HPUX_5
162#undef S_IFLNK
163#endif
164
165/* Define the BSTRING functions in terms of the sysV functions.
166 Version 6 of HP-UX supplies these in the BSD library,
167 but that library has reported bugs in `signal'. */
168
169/* #ifdef HPUX_5 */
170#define bcopy(a,b,s) memcpy (b,a,s)
171#define bzero(a,s) memset (a,0,s)
172#define bcmp memcmp
173/* #endif */
174
175/* On USG systems these have different names.
176 Version 6 of HP-UX supplies these in the BSD library,
177 which we currently want to avoid using. */
178
179/* #ifdef HPUX_5 */
180#define index strchr
181#define rindex strrchr
182/* #endif */
183
184/* Define C_SWITCH_MACHINE to be +X if you want the s200/300
185 * Emacs to run on both 68010 and 68020 based hp-ux's.
186 *
187 * Define OLD_HP_ASSEMBLER if you have an ancient assembler
188 *
189 * Define HPUX_68010 if you are using the new assembler but
190 * compiling for a s200 (upgraded) or s310. 68010 based
191 * processor without 68881.
192 */
193
194/* These switches increase the size of some internal C compiler tables.
195 They are required for compiling the X11 interface files. */
196
197#ifndef HPUX_5
198#ifndef __GNUC__
199#define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000
200#endif
201#endif
202
203/* Define NEED_BSDTTY if you have such. */
204
205#ifndef NOMULTIPLEJOBS
206#define NEED_BSDTTY
207#endif
208
209#endif /* not BSD4_3 */
210
211/* arch-tag: 6e0001a5-ed62-4258-9235-204348f6bdb9
212 (do not change this comment) */
diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h
deleted file mode 100644
index daaa4ddff02..00000000000
--- a/src/m/ibm370aix.h
+++ /dev/null
@@ -1,51 +0,0 @@
1/* m/ file for IBM 370 running AIX.
2 Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20#define AIX
21
22/* Include unistd.h, even though we don't define POSIX. */
23#define NEED_UNISTD_H
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#undef TEXT_START
31#undef SEGMENT_MASK
32#undef DATA_SECTION_ALIGNMENT
33
34#define TEXT_START 0
35#define SEGMENT_MASK 0
36#define DATA_SECTION_ALIGNMENT 0x00001000
37
38#undef LOAD_AVE_CVT
39#undef LOAD_AVE_TYPE
40/* Data type of load average, as read out of kmem. */
41#define LOAD_AVE_CVT(x) (int)(((double) (x)) * 100.0 / 1.0)
42#define LOAD_AVE_TYPE double
43
44#undef LIBS_MACHINE
45#define LIBS_MACHINE
46
47#undef LD_SWITCH_MACHINE
48#define LD_SWITCH_MACHINE -xa
49
50/* arch-tag: 8605b600-0580-4e49-9ba9-8b4a977f860a
51 (do not change this comment) */
diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h
index fcbb8f28864..db6ebee0d78 100644
--- a/src/m/ibmrs6000.h
+++ b/src/m/ibmrs6000.h
@@ -107,15 +107,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
107 107
108/* Here override various assumptions in ymakefile */ 108/* Here override various assumptions in ymakefile */
109 109
110#ifdef AIXHFT
111#define OBJECTS_MACHINE hftctl.o
112#endif
113
114#ifndef USG5 110#ifndef USG5
115#define C_SWITCH_MACHINE -D_BSD 111#define C_SWITCH_MACHINE -D_BSD
116#endif 112#endif
117 113
118#ifdef AIX3_2 114#ifdef AIX
119/* -lpthreads seems to be necessary for Xlib in X11R6, and should be harmless 115/* -lpthreads seems to be necessary for Xlib in X11R6, and should be harmless
120 on older versions of X where it happens to exist. */ 116 on older versions of X where it happens to exist. */
121#ifdef HAVE_LIBPTHREADS 117#ifdef HAVE_LIBPTHREADS
@@ -159,15 +155,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
159 because .inp is a better convention to use in make-dist for naming 155 because .inp is a better convention to use in make-dist for naming
160 random input files. */ 156 random input files. */
161#ifdef THIS_IS_MAKEFILE /* Don't use this in configure. */ 157#ifdef THIS_IS_MAKEFILE /* Don't use this in configure. */
162#ifdef AIX4 158#ifdef AIX
163#define LD_SWITCH_MACHINE -Wl,-bnodelcsect 159#define LD_SWITCH_MACHINE -Wl,-bnodelcsect
164#else /* not AIX4 */ 160#else /* not AIX */
165#ifdef HAVE_AIX_SMT_EXP 161#ifdef HAVE_AIX_SMT_EXP
166#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp,-bI:/usr/lpp/X11/bin/smt.exp 162#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp,-bI:/usr/lpp/X11/bin/smt.exp
167#else 163#else
168#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp 164#define LD_SWITCH_MACHINE -Wl,-bnso,-bnodelcsect,-bI:/lib/syscalls.exp,-bI:$(srcdir)/m/ibmrs6000.inp
169#endif 165#endif
170#endif /* not AIX4 */ 166#endif /* not AIX */
171#endif /* THIS_IS_MAKEFILE */ 167#endif /* THIS_IS_MAKEFILE */
172 168
173/* Avoid gcc 2.7.x collect2 bug by using /bin/ld instead. */ 169/* Avoid gcc 2.7.x collect2 bug by using /bin/ld instead. */
diff --git a/src/m/mips-siemens.h b/src/m/mips-siemens.h
deleted file mode 100644
index 1fa475e95d7..00000000000
--- a/src/m/mips-siemens.h
+++ /dev/null
@@ -1,161 +0,0 @@
1/* m- file for Mips machines.
2 Copyright (C) 1987, 1992, 1993, 1995, 2001, 2002, 2003, 2004, 2005,
3 2006, 2007, 2008 Free Software Foundation, Inc.
4
5 This file contains some changes for our SVR4 based SINIX-Mips 5.4.
6 I hope this is helpful to port the emacs to our RM?00 series and
7 maybe to the DC/OSx (Mips-based) machines of Pyramid Inc.
8 (Marco.Walther@mch.sni.de)
9
10This file is part of GNU Emacs.
11
12GNU Emacs is free software: you can redistribute it and/or modify
13it under the terms of the GNU General Public License as published by
14the Free Software Foundation, either version 3 of the License, or
15(at your option) any later version.
16
17GNU Emacs is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
23along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24
25
26/* The following line tells the configuration script what sort of
27 operating system this machine is likely to run.
28 USUAL-OPSYS="note"
29
30NOTE-START
31Use m-mips4.h for RISCOS version 4; use s-bsd4-3.h with the BSD world.
32Note that the proper m- file for the Decstation is m-pmax.h.
33This is the m- file for SNI RM*00 machines. Use s- sinix5-4.h file!
34With this the file mips-siemens.h is obsolete.
35NOTE-END */
36
37/* Define BIG_ENDIAN if lowest-numbered byte in a word
38 is the most significant byte. */
39
40#define BIG_ENDIAN
41
42/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
43 * group of arguments and treat it as an array of the arguments. */
44
45#define NO_ARG_ARRAY
46
47/* Define WORD_MACHINE if addresses and such have
48 * to be corrected before they can be used as byte counts. */
49
50#undef WORD_MACHINE
51
52/* Define how to take a char and sign-extend into an int.
53 On machines where char is signed, this is a no-op. */
54
55#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
56
57/* Now define a symbol for the cpu type, if your compiler
58 does not define it automatically:
59 Ones defined so far include vax, m68000, ns16000, pyramid,
60 orion, tahoe, APOLLO and many others */
61#ifndef mips
62# define mips
63#endif
64
65/* Use type int rather than a union, to represent Lisp_Object */
66/* This is desirable for most machines. */
67
68#define NO_UNION_TYPE
69
70/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
71 the 24-bit bit field into an int. In other words, if bit fields
72 are always unsigned.
73
74 If you use NO_UNION_TYPE, this flag does not matter. */
75
76#define EXPLICIT_SIGN_EXTEND
77
78/* Data type of load average, as read out of kmem. */
79
80#define LOAD_AVE_TYPE long
81
82/* Convert that into an integer that is 100 for a load average of 1.0 */
83
84#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / 256.0)
85
86/* CDC EP/IX 1.4.3 uses /unix */
87
88#undef KERNEL_FILE
89#define KERNEL_FILE "/unix"
90
91/* Define CANNOT_DUMP on machines where unexec does not work.
92 Then the function dump-emacs will not be defined
93 and temacs will do (load "loadup") automatically unless told otherwise. */
94
95#undef CANNOT_DUMP
96
97/* Define VIRT_ADDR_VARIES if the virtual addresses of
98 pure and impure space as loaded can vary, and even their
99 relative order cannot be relied on.
100
101 Otherwise Emacs assumes that text space precedes data space,
102 numerically. */
103
104/* #define VIRT_ADDR_VARIES */
105
106/* Define NO_REMAP if memory segmentation makes it not work well
107 to change the boundary between the text section and data section
108 when Emacs is dumped. If you define this, the preloaded Lisp
109 code will not be sharable; but that's better than failing completely. */
110
111#define NO_REMAP
112
113/* Describe layout of the address space in an executing process. */
114/* MARCO ???
115*/
116#define TEXT_START 0x400000
117/*
118#define DATA_START 0x10000000
119#define DATA_SEG_BITS 0x10000000
120*/
121#ifdef UNEXEC
122#undef UNEXEC
123#endif
124#define UNEXEC unexsni.o
125
126#undef ORDINARY_LINK
127
128#undef LIBS_DEBUG
129
130/* Alter some of the options used when linking. */
131
132#define LIBS_MACHINE -lmld
133#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
134
135#ifdef LIB_STANDARD
136#undef LIB_STANDARD
137#endif
138#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o
139
140#ifdef __GNUC__
141#define C_DEBUG_SWITCH
142#define LD_SWITCH_MACHINE
143#else
144#define C_DEBUG_SWITCH -DSYSV
145#define C_OPTIMIZE_SWITCH -DSYSV
146#define LD_SWITCH_MACHINE
147#endif
148
149
150/* The standard definitions of these macros would work ok,
151 but these are faster because the constants are short. */
152
153#define XUINT(a) (((unsigned)(a) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
154
155#define XSET(var, type, ptr) \
156 ((var) = \
157 ((int)(type) << VALBITS) \
158 + (((unsigned) (ptr) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS)))
159
160/* arch-tag: a4f5c090-0bd5-48f0-9724-b7d531f9b6c8
161 (do not change this comment) */
diff --git a/src/m/mips.h b/src/m/mips.h
index b3192d75de7..877e4e4c900 100644
--- a/src/m/mips.h
+++ b/src/m/mips.h
@@ -187,7 +187,7 @@ NOTE-END */
187 187
188#define HAVE_SYSVIPC 188#define HAVE_SYSVIPC
189 189
190#if defined(emacs) && !defined(INHIBIT_BSD_TIME) 190#if defined(emacs)
191#include <bsd/sys/time.h> 191#include <bsd/sys/time.h>
192#endif 192#endif
193 193
diff --git a/src/m/ncr386.h b/src/m/ncr386.h
deleted file mode 100644
index f98566a2959..00000000000
--- a/src/m/ncr386.h
+++ /dev/null
@@ -1,18 +0,0 @@
1#include "intel386.h"
2
3#ifndef __GNUC__
4/* Allow emacs to link with "bcopy()" unresolved. Works around a
5 problem where /usr/lib/libX11.so provides bcopy, but
6 /usr/ccs/lib/libX11.so does not. */
7#define LD_SWITCH_X_DEFAULT -Wl,-z,nodefs
8#else /* __GNUC__ */
9
10/* Assuming we are using GNU ld, pass a -R option to it
11 so that shared libraries will be found at execution time
12 just as they are found at link time. */
13#define LD_SWITCH_X_DEFAULT -Xlinker LD_SWITCH_X_SITE_AUX
14
15#endif /* __GNUC__ */
16
17/* arch-tag: 79c76283-7d50-499b-b910-8ef980357758
18 (do not change this comment) */
diff --git a/src/m/next.h b/src/m/next.h
deleted file mode 100644
index c6e2358fdd9..00000000000
--- a/src/m/next.h
+++ /dev/null
@@ -1,125 +0,0 @@
1/* Configuration file for the NeXT machine.
2 Copyright (C) 1990, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/* Say this machine is a next if not previously defined */
22
23#ifndef NeXT
24#define NeXT
25#endif
26
27/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
28 is the most significant byte. */
29
30/* Let the compiler tell us. */
31#ifdef __BIG_ENDIAN__
32#define WORDS_BIG_ENDIAN
33#endif
34
35/* Define how to take a char and sign-extend into an int.
36 On machines where char is signed, this is a no-op. */
37
38#define SIGN_EXTEND_CHAR(c) (c)
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
50#define LOAD_AVE_TYPE long
51
52/* Convert that into an integer that is 100 for a load average of 1.0 */
53
54#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
55
56/* Say that the text segment of a.out includes the header;
57 the header actually occupies the first few bytes of the text segment
58 and is counted in hdr.a_text. */
59
60#define A_TEXT_OFFSET(HDR) sizeof (HDR)
61
62/* Mask for address bits within a memory segment */
63
64#define SEGSIZ 0x20000
65#define SEGMENT_MASK (SEGSIZ - 1)
66
67#define SYSTEM_MALLOC
68
69#define HAVE_UNIX_DOMAIN
70
71#define LIB_X11_LIB -L/usr/lib/X11 -lX11
72
73/* This avoids a problem in Xos.h when using co-Xist 3.01. */
74#define X_NOT_POSIX
75
76/* Conflicts in process.c between ioctl.h & tty.h use of t_foo fields */
77
78#define NO_T_CHARS_DEFINES
79
80/* Use our own unexec routines */
81
82#define UNEXEC unexnext.o
83
84/* We don't have a g library either, so override the -lg LIBS_DEBUG switch */
85
86#define LIBS_DEBUG
87
88/* We don't have a libgcc.a, so we can't let LIB_GCC default to -lgcc */
89
90#define LIB_GCC
91
92#if 0 /* ohl@chico.harvard.edu says to do this. */
93/* Compile "strict bsd" to avoid warnings from include files */
94
95#define C_SWITCH_MACHINE -bsd
96#endif
97
98/* Link this program just by running cc. */
99#define ORDINARY_LINK
100
101/* start_of_text isn't actually used, so make it compile without error. */
102#define TEXT_START 0
103/* This seems to be right for end_of_text, but it may not be used anyway. */
104#define TEXT_END get_etext ()
105/* This seems to be right for end_of_data, but it may not be used anyway. */
106#define DATA_END get_edata ()
107
108/* Defining KERNEL_FILE causes lossage because sys/file.h
109 stupidly gets confused by it. */
110#undef KERNEL_FILE
111
112#define LD_SWITCH_MACHINE -X -noseglinkedit
113
114#define environ _environ
115
116#if 0 /* This is ok for NeXT system version 3.0 or above. */
117/* Where to find the kernel, for load average. */
118#define KERNEL_FILE "/mach"
119#endif
120
121/* This should be true for recent NeXT systems. At least since 3.2. */
122#define HAVE_MACH_MACH_H
123
124/* arch-tag: 1155cdcb-1f6c-4208-a2da-22c7473060a1
125 (do not change this comment) */
diff --git a/src/m/pmax.h b/src/m/pmax.h
deleted file mode 100644
index ad884ca8b36..00000000000
--- a/src/m/pmax.h
+++ /dev/null
@@ -1,127 +0,0 @@
1/* Machine description file for DEC MIPS machines.
2
3 Copyright (C) 1992, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22#include "mips.h"
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
29The operating system would be either osf1, ultrix, or NetBSD.
30NOTE-END */
31
32#ifndef __MIPSEB__
33#undef WORDS_BIG_ENDIAN
34#endif
35#if defined (__NetBSD__)
36#define BROKEN_NOCOMBRELOC
37#else
38#undef LIB_STANDARD
39#undef START_FILES
40#endif
41#undef COFF
42#undef TERMINFO
43#define MAIL_USE_FLOCK
44#define HAVE_UNION_WAIT
45
46
47#ifdef MACH
48#define START_FILES pre-crt0.o /usr/lib/crt0.o
49#else
50#if !defined (__NetBSD__)
51/* This line starts being needed with ultrix 4.0. */
52/* You must delete it for version 3.1. */
53#define START_FILES pre-crt0.o /usr/lib/cmplrs/cc/crt0.o
54#endif
55#endif
56
57/* Supposedly the following will overcome a kernel bug. */
58#undef LD_SWITCH_MACHINE
59#undef DATA_START
60#define DATA_START 0x10000000
61#define DATA_SEG_BITS 0x10000000
62
63#if 0
64/* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3. And
65 the relocating allocator is a real win. -JimB */
66
67/* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist
68 on defining malloc itself. This should avoid conflicting with it. */
69#define SYSTEM_MALLOC
70#endif
71
72/* Override what mips.h says about this. */
73#if !defined (__NetBSD__)
74#undef LINKER
75#endif
76
77#ifdef ultrix
78/* Ultrix 4.2 (perhaps also 4.1) implements O_NONBLOCK
79 but it doesn't work right;
80 and it causes hanging in read_process_output. */
81#define BROKEN_O_NONBLOCK
82#endif
83
84#ifndef __NetBSD__
85/* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet. */
86#ifdef HAVE_LIBDNET
87#define LIBS_MACHINE -ldnet
88#endif
89
90/* mcc@timessqr.gc.cuny.edu says it is /vmunix on Ultrix 4.2a. */
91#undef KERNEL_FILE
92#define KERNEL_FILE "/vmunix"
93#endif
94
95#ifdef ultrix
96/* Jim Wilson writes:
97 [...] The X11 include files that Dec distributes with Ultrix
98 are bogus.
99
100 When __STDC__ is defined (which is true with gcc), the X11 include files
101 try to define prototypes. The prototypes however use types which haven't
102 been defined yet, and thus we get syntax/parse errors.
103
104 You can not fix this by changing the include files, because the prototypes
105 create circular dependencies, in particular Xutil.h depends on types defined
106 in Xlib.h, and Xlib.h depends on types defined in Xutil.h. So, no matter
107 which order you try to include them in, it will still fail.
108
109 Compiling with -DNeedFunctionPrototypes=0 will solve the problem by
110 directly inhibiting the bad prototypes. This could perhaps just be put in
111 an a Ultrix configuration file.
112
113 Using the MIT X11 distribution instead of the one provided by Dec will
114 also solve the problem, but I doubt you can convince everyone to do this. */
115/* Addendum: the MIT X11 distribution neglects to define certain symbols
116 when NeedFunctionPrototypes is 0, but still tries to use them when
117 NeedVarargsPrototypes is 1 (which is its default value). So if we're
118 going to disable non-variadic prototypes, we also need to disable
119 variadic prototypes. --kwzh@gnu.ai.mit.edu */
120#define C_SWITCH_X_MACHINE -DNeedFunctionPrototypes=0 -DNeedVarargsPrototypes=0
121#endif
122
123/* Enable a fix in process.c. */
124#define SET_CHILD_PTY_PGRP
125
126/* arch-tag: 45d5070e-d2b7-479f-b336-3fd497c36e15
127 (do not change this comment) */
diff --git a/src/m/powerpcle.h b/src/m/powerpcle.h
deleted file mode 100644
index 071ea29d61e..00000000000
--- a/src/m/powerpcle.h
+++ /dev/null
@@ -1,61 +0,0 @@
1/* machine description file for PowerPC.
2 Copyright (C) 1987, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20/* The following line tells the configuration script what sort of
21 operating system this machine is likely to run.
22 USUAL-OPSYS="Solaris2.5.1 Windows/NT AIX 4.1.2"
23*/
24
25/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
26 is the most significant byte. */
27
28#undef 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
33#define NO_ARG_ARRAY
34
35/* Say this machine is a PowerPC Refernce Platform */
36
37#ifndef prep
38#define prep
39#endif
40
41/* Use type int rather than a union, to represent Lisp_Object */
42
43#define NO_UNION_TYPE
44
45/* XINT must explicitly sign-extend */
46
47#define EXPLICIT_SIGN_EXTEND
48
49/* Data type of load average, as read out of kmem. */
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 / FSCALE)
56
57/* Control a conditional in unexelf.c. */
58#define SOLARIS_POWERPC
59
60/* arch-tag: dc2c3cb6-4683-45ae-961f-0a4f2bda3c61
61 (do not change this comment) */
diff --git a/src/m/tandem-s2.h b/src/m/tandem-s2.h
deleted file mode 100644
index b22f9bb66af..00000000000
--- a/src/m/tandem-s2.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/* machine description file for the Tandem Integrity S2. */
2
3#include "mips.h"
4
5/* The following line tells the configuration script what sort of
6 operating system this machine is likely to run.
7 USUAL-OPSYS="usg5-3" */
8
9/* This overrides some of the usual support for the mips and system V.3. */
10
11/* The operating system apparently defines TIOCGETC
12 but it doesn't work. */
13#undef BROKEN_TIOCGETC
14
15/* rs@ai.mit.edu said this was necessary for it to work. However, some
16 user of this machine ought to try to get subprocesses to work. */
17#undef subprocesses
18
19/* Correct some library file names. */
20#define START_FILES pre-crt0.o /usr/lib/crt1.o1.31
21#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o1.31
22
23/* arch-tag: ae34a1a6-6408-4b23-a6d3-ce4e8f124916
24 (do not change this comment) */
diff --git a/src/m/vax.h b/src/m/vax.h
index 631a25d50c9..35050a11e10 100644
--- a/src/m/vax.h
+++ b/src/m/vax.h
@@ -100,12 +100,6 @@ NOTE-END */
100#ifdef USG 100#ifdef USG
101#define LIB_STANDARD -lPW -lc 101#define LIB_STANDARD -lPW -lc
102 102
103/* There is some bug in unexec in for usg 5.2 on a vax
104 which nobody who runs such a system has yet tracked down. */
105#ifndef USG5_0
106#define NO_REMAP
107#endif /* USG 5_0 */
108
109#define TEXT_START 0 103#define TEXT_START 0
110#endif /* USG */ 104#endif /* USG */
111 105
diff --git a/src/mem-limits.h b/src/mem-limits.h
index a6cb43d1d81..7341295fa31 100644
--- a/src/mem-limits.h
+++ b/src/mem-limits.h
@@ -45,10 +45,6 @@ extern int etext, __data_start; weak_extern (__data_start)
45# endif 45# endif
46#endif 46#endif
47 47
48#ifdef __bsdi__
49#define BSD4_2
50#endif
51
52#ifdef CYGWIN 48#ifdef CYGWIN
53#define BSD4_2 49#define BSD4_2
54#endif 50#endif
diff --git a/src/print.c b/src/print.c
index c88951880e8..8fac2660d0f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -45,16 +45,6 @@ extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
45 45
46Lisp_Object Vfloat_output_format, Qfloat_output_format; 46Lisp_Object Vfloat_output_format, Qfloat_output_format;
47 47
48/* Work around a problem that happens because math.h on hpux 7
49 defines two static variables--which, in Emacs, are not really static,
50 because `static' is defined as nothing. The problem is that they are
51 defined both here and in lread.c.
52 These macros prevent the name conflict. */
53#if defined (HPUX) && !defined (HPUX8)
54#define _MAXLDBL print_maxldbl
55#define _NMAXLDBL print_nmaxldbl
56#endif
57
58#include <math.h> 48#include <math.h>
59 49
60#if STDC_HEADERS 50#if STDC_HEADERS
diff --git a/src/process.c b/src/process.c
index fdeb0aa9e91..73bbb34fd01 100644
--- a/src/process.c
+++ b/src/process.c
@@ -80,10 +80,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
80#endif /* HAVE_PTYS and no O_NDELAY */ 80#endif /* HAVE_PTYS and no O_NDELAY */
81#endif /* BSD_SYSTEM */ 81#endif /* BSD_SYSTEM */
82 82
83#ifdef BROKEN_O_NONBLOCK
84#undef O_NONBLOCK
85#endif /* BROKEN_O_NONBLOCK */
86
87#ifdef NEED_BSDTTY 83#ifdef NEED_BSDTTY
88#include <bsdtty.h> 84#include <bsdtty.h>
89#endif 85#endif
@@ -2006,9 +2002,6 @@ create_process (process, new_argv, current_dir)
2006 sigprocmask (SIG_BLOCK, &blocked, &procmask); 2002 sigprocmask (SIG_BLOCK, &blocked, &procmask);
2007#else /* !POSIX_SIGNALS */ 2003#else /* !POSIX_SIGNALS */
2008#ifdef SIGCHLD 2004#ifdef SIGCHLD
2009#ifdef BSD4_1
2010 sighold (SIGCHLD);
2011#else /* not BSD4_1 */
2012#if defined (BSD_SYSTEM) || defined (HPUX) 2005#if defined (BSD_SYSTEM) || defined (HPUX)
2013 sigsetmask (sigmask (SIGCHLD)); 2006 sigsetmask (sigmask (SIGCHLD));
2014#else /* ordinary USG */ 2007#else /* ordinary USG */
@@ -2017,7 +2010,6 @@ create_process (process, new_argv, current_dir)
2017 sigchld = signal (SIGCHLD, create_process_sigchld); 2010 sigchld = signal (SIGCHLD, create_process_sigchld);
2018#endif 2011#endif
2019#endif /* ordinary USG */ 2012#endif /* ordinary USG */
2020#endif /* not BSD4_1 */
2021#endif /* SIGCHLD */ 2013#endif /* SIGCHLD */
2022#endif /* !POSIX_SIGNALS */ 2014#endif /* !POSIX_SIGNALS */
2023 2015
@@ -2134,9 +2126,6 @@ create_process (process, new_argv, current_dir)
2134 This makes the pty the controlling terminal of the subprocess. */ 2126 This makes the pty the controlling terminal of the subprocess. */
2135 if (pty_flag) 2127 if (pty_flag)
2136 { 2128 {
2137#ifdef SET_CHILD_PTY_PGRP
2138 int pgrp = getpid ();
2139#endif
2140 2129
2141 /* I wonder if emacs_close (emacs_open (pty_name, ...)) 2130 /* I wonder if emacs_close (emacs_open (pty_name, ...))
2142 would work? */ 2131 would work? */
@@ -2152,10 +2141,6 @@ create_process (process, new_argv, current_dir)
2152 _exit (1); 2141 _exit (1);
2153 } 2142 }
2154 2143
2155#ifdef SET_CHILD_PTY_PGRP
2156 ioctl (xforkin, TIOCSPGRP, &pgrp);
2157 ioctl (xforkout, TIOCSPGRP, &pgrp);
2158#endif
2159 } 2144 }
2160#endif /* not DONT_REOPEN_PTY */ 2145#endif /* not DONT_REOPEN_PTY */
2161 2146
@@ -2181,9 +2166,6 @@ create_process (process, new_argv, current_dir)
2181 sigprocmask (SIG_SETMASK, &procmask, 0); 2166 sigprocmask (SIG_SETMASK, &procmask, 0);
2182#else /* !POSIX_SIGNALS */ 2167#else /* !POSIX_SIGNALS */
2183#ifdef SIGCHLD 2168#ifdef SIGCHLD
2184#ifdef BSD4_1
2185 sigrelse (SIGCHLD);
2186#else /* not BSD4_1 */
2187#if defined (BSD_SYSTEM) || defined (HPUX) 2169#if defined (BSD_SYSTEM) || defined (HPUX)
2188 sigsetmask (SIGEMPTYMASK); 2170 sigsetmask (SIGEMPTYMASK);
2189#else /* ordinary USG */ 2171#else /* ordinary USG */
@@ -2191,7 +2173,6 @@ create_process (process, new_argv, current_dir)
2191 signal (SIGCHLD, sigchld); 2173 signal (SIGCHLD, sigchld);
2192#endif 2174#endif
2193#endif /* ordinary USG */ 2175#endif /* ordinary USG */
2194#endif /* not BSD4_1 */
2195#endif /* SIGCHLD */ 2176#endif /* SIGCHLD */
2196#endif /* !POSIX_SIGNALS */ 2177#endif /* !POSIX_SIGNALS */
2197 2178
@@ -2273,9 +2254,6 @@ create_process (process, new_argv, current_dir)
2273 sigprocmask (SIG_SETMASK, &procmask, 0); 2254 sigprocmask (SIG_SETMASK, &procmask, 0);
2274#else /* !POSIX_SIGNALS */ 2255#else /* !POSIX_SIGNALS */
2275#ifdef SIGCHLD 2256#ifdef SIGCHLD
2276#ifdef BSD4_1
2277 sigrelse (SIGCHLD);
2278#else /* not BSD4_1 */
2279#if defined (BSD_SYSTEM) || defined (HPUX) 2257#if defined (BSD_SYSTEM) || defined (HPUX)
2280 sigsetmask (SIGEMPTYMASK); 2258 sigsetmask (SIGEMPTYMASK);
2281#else /* ordinary USG */ 2259#else /* ordinary USG */
@@ -2287,7 +2265,6 @@ create_process (process, new_argv, current_dir)
2287 kill (getpid (), SIGCHLD); 2265 kill (getpid (), SIGCHLD);
2288#endif 2266#endif
2289#endif /* ordinary USG */ 2267#endif /* ordinary USG */
2290#endif /* not BSD4_1 */
2291#endif /* SIGCHLD */ 2268#endif /* SIGCHLD */
2292#endif /* !POSIX_SIGNALS */ 2269#endif /* !POSIX_SIGNALS */
2293 2270
@@ -2700,19 +2677,6 @@ OPTION is not a supported option, return nil instead; otherwise return t. */)
2700} 2677}
2701 2678
2702 2679
2703/* A version of request_sigio suitable for a record_unwind_protect. */
2704
2705#ifdef __ultrix__
2706static Lisp_Object
2707unwind_request_sigio (dummy)
2708 Lisp_Object dummy;
2709{
2710 if (interrupt_input)
2711 request_sigio ();
2712 return Qnil;
2713}
2714#endif
2715
2716#ifdef HAVE_SERIAL 2680#ifdef HAVE_SERIAL
2717DEFUN ("serial-process-configure", 2681DEFUN ("serial-process-configure",
2718 Fserial_process_configure, 2682 Fserial_process_configure,
@@ -3502,28 +3466,6 @@ usage: (make-network-process &rest ARGS) */)
3502 3466
3503 open_socket: 3467 open_socket:
3504 3468
3505#ifdef __ultrix__
3506 /* Previously this was compiled unconditionally, but that seems
3507 unnecessary on modern systems, and `unrequest_sigio' was a noop
3508 under X anyway. --lorentey */
3509 /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR)
3510 when connect is interrupted. So let's not let it get interrupted.
3511 Note we do not turn off polling, because polling is only used
3512 when not interrupt_input, and thus not normally used on the systems
3513 which have this bug. On systems which use polling, there's no way
3514 to quit if polling is turned off. */
3515 if (interrupt_input
3516 && !is_server && socktype == SOCK_STREAM)
3517 {
3518 /* Comment from KFS: The original open-network-stream code
3519 didn't unwind protect this, but it seems like the proper
3520 thing to do. In any case, I don't see how it could harm to
3521 do this -- and it makes cleanup (using unbind_to) easier. */
3522 record_unwind_protect (unwind_request_sigio, Qnil);
3523 unrequest_sigio ();
3524 }
3525#endif
3526
3527 /* Do this in case we never enter the for-loop below. */ 3469 /* Do this in case we never enter the for-loop below. */
3528 count1 = SPECPDL_INDEX (); 3470 count1 = SPECPDL_INDEX ();
3529 s = -1; 3471 s = -1;
@@ -4651,16 +4593,6 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
4651 EMACS_SET_SECS_USECS (timeout, time_limit, microsecs); 4593 EMACS_SET_SECS_USECS (timeout, time_limit, microsecs);
4652 EMACS_ADD_TIME (end_time, end_time, timeout); 4594 EMACS_ADD_TIME (end_time, end_time, timeout);
4653 } 4595 }
4654#ifdef POLL_INTERRUPTED_SYS_CALL
4655 /* AlainF 5-Jul-1996
4656 HP-UX 10.10 seem to have problems with signals coming in
4657 Causes "poll: interrupted system call" messages when Emacs is run
4658 in an X window
4659 Turn off periodic alarms (in case they are in use),
4660 and then turn off any other atimers. */
4661 stop_polling ();
4662 turn_on_atimers (0);
4663#endif /* POLL_INTERRUPTED_SYS_CALL */
4664 4596
4665 while (1) 4597 while (1)
4666 { 4598 {
@@ -4975,15 +4907,6 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
4975 { 4907 {
4976 if (xerrno == EINTR) 4908 if (xerrno == EINTR)
4977 no_avail = 1; 4909 no_avail = 1;
4978#ifdef ultrix
4979 /* Ultrix select seems to return ENOMEM when it is
4980 interrupted. Treat it just like EINTR. Bleah. Note
4981 that we want to test for the "ultrix" CPP symbol, not
4982 "__ultrix__"; the latter is only defined under GCC, but
4983 not by DEC's bundled CC. -JimB */
4984 else if (xerrno == ENOMEM)
4985 no_avail = 1;
4986#endif
4987 else if (xerrno == EBADF) 4910 else if (xerrno == EBADF)
4988 { 4911 {
4989#ifdef AIX 4912#ifdef AIX
@@ -5295,14 +5218,6 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
5295 clear_input_pending (); 5218 clear_input_pending ();
5296 QUIT; 5219 QUIT;
5297 } 5220 }
5298#ifdef POLL_INTERRUPTED_SYS_CALL
5299 /* AlainF 5-Jul-1996
5300 HP-UX 10.10 seems to have problems with signals coming in
5301 Causes "poll: interrupted system call" messages when Emacs is run
5302 in an X window
5303 Turn periodic alarms back on */
5304 start_polling ();
5305#endif /* POLL_INTERRUPTED_SYS_CALL */
5306 5221
5307 return got_some_input; 5222 return got_some_input;
5308} 5223}
@@ -5712,10 +5627,6 @@ SIGTYPE
5712send_process_trap () 5627send_process_trap ()
5713{ 5628{
5714 SIGNAL_THREAD_CHECK (SIGPIPE); 5629 SIGNAL_THREAD_CHECK (SIGPIPE);
5715#ifdef BSD4_1
5716 sigrelse (SIGPIPE);
5717 sigrelse (SIGALRM);
5718#endif /* BSD4_1 */
5719 sigunblock (sigmask (SIGPIPE)); 5630 sigunblock (sigmask (SIGPIPE));
5720 longjmp (send_process_frame, 1); 5631 longjmp (send_process_frame, 1);
5721} 5632}
@@ -6784,11 +6695,6 @@ sigchld_handler (signo)
6784 6695
6785 SIGNAL_THREAD_CHECK (signo); 6696 SIGNAL_THREAD_CHECK (signo);
6786 6697
6787#ifdef BSD4_1
6788 extern int sigheld;
6789 sigheld |= sigbit (SIGCHLD);
6790#endif
6791
6792 while (1) 6698 while (1)
6793 { 6699 {
6794 pid_t pid; 6700 pid_t pid;
@@ -6817,10 +6723,6 @@ sigchld_handler (signo)
6817#if defined (USG) && !defined (POSIX_SIGNALS) 6723#if defined (USG) && !defined (POSIX_SIGNALS)
6818 signal (signo, sigchld_handler); /* WARNING - must come after wait3() */ 6724 signal (signo, sigchld_handler); /* WARNING - must come after wait3() */
6819#endif 6725#endif
6820#ifdef BSD4_1
6821 sigheld &= ~sigbit (SIGCHLD);
6822 sigrelse (SIGCHLD);
6823#endif
6824 errno = old_errno; 6726 errno = old_errno;
6825 return; 6727 return;
6826 } 6728 }
diff --git a/src/s/386bsd.h b/src/s/386bsd.h
deleted file mode 100644
index 706fbf23acb..00000000000
--- a/src/s/386bsd.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* s/ file for 386bsd system. */
2
3/* Get most of the stuff from bsd4.3 */
4#include "bsd4-3.h"
5
6#undef LIB_STANDARD
7#define LIB_STANDARD -lc $(GNULIB_VAR)
8
9/* The following should be set to /netbsd if you are running netbsd > 0.8
10 Or just link /netbsd -> /386bsd */
11#undef KERNEL_FILE
12#define KERNEL_FILE "/386bsd"
13
14#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
15
16/* Need to use GNU make, as system make has problems */
17#define MAKE_COMMAND gmake
18#define LIBS_DEBUG
19
20/* For mem-limits.h. */
21#define BSD4_2
22
23/* This affects a declaration in xrdb.c. */
24#define DECLARE_GETPWUID_WITH_UID_T
25
26/* arch-tag: 8a114892-0863-4285-a4cb-3d66ba2d8e7b
27 (do not change this comment) */
diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h
deleted file mode 100644
index bcc4b10dc7a..00000000000
--- a/src/s/aix3-1.h
+++ /dev/null
@@ -1,210 +0,0 @@
1/* Definitions file for GNU Emacs running on IBM AIX version 3.1
2 Copyright (C) 1985, 1986, 1990, 1999, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27#define USG5
28
29/* Specify IBM AIX version of system */
30
31#ifndef AIX
32#define AIX
33#endif
34
35/* turn off c prototypes */
36#ifndef _NO_PROTO
37#define _NO_PROTO
38#endif
39
40/* This symbol should be defined on AIX Version 3 ??????? */
41#ifndef _AIX
42#define _AIX
43#endif
44
45/* Specify "_BSD" to invoke Berkeley compatibility in header files */
46/*#ifndef _BSD
47#define _BSD
48#endif
49*/
50
51/* SYSTEM_TYPE should indicate the kind of system you are using.
52 It sets the Lisp variable system-type. */
53
54#define SYSTEM_TYPE "aix"
55
56
57/* nomultiplejobs should be defined if your system's shell
58 does not have "job control" (the ability to stop a program,
59 run some other program, then continue the first one). */
60
61/* #define NOMULTIPLEJOBS */
62
63/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
64
65/* #define INTERRUPT_INPUT */
66
67/* In AIX, you allocate a pty by opening /dev/ptc to get the master side.
68 To get the name of the slave side, you just ttyname() the master side. */
69
70#define PTY_ITERATION for (c = 0; !c ; c++)
71#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc");
72#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd));
73
74/*
75 * Define HAVE_TERMIO if the system provides sysV-style ioctls
76 * for terminal control.
77 */
78
79#define HAVE_TERMIOS
80
81/*
82 * Define HAVE_PTYS if the system supports pty devices.
83 */
84
85#define HAVE_PTYS
86
87/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
88
89#define HAVE_SOCKETS
90
91/*
92 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
93 * The 4.2 opendir, etc., library functions.
94 */
95
96/* #define NONSYSTEM_DIR_LIBRARY */
97
98/*
99 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
100 * library functions. Almost, but not quite the same as
101 * the 4.2 functions
102 */
103
104#define SYSV_SYSTEM_DIR
105
106/* Define this symbol if your system has the functions bcopy, etc. */
107
108#define BSTRING
109
110/* subprocesses should be defined if you want to
111 have code for asynchronous subprocesses
112 (as used in M-x compile and M-x shell).
113 This is supposed to work now on system V release 2. */
114
115#define subprocesses
116
117/* If your system uses COFF (Common Object File Format) then define the
118 preprocessor symbol "COFF". */
119
120/* #define COFF */
121
122/* define MAIL_USE_FLOCK if the mailer uses flock
123 to interlock access to /usr/spool/mail/$USER.
124 The alternative is that a lock file named
125 /usr/spool/mail/$USER.lock. */
126
127/* #define MAIL_USE_FLOCK */
128
129/* Define CLASH_DETECTION if you want lock files to be written
130 so that Emacs can tell instantly when you try to modify
131 a file that someone else has modified in his Emacs. */
132
133/* #define CLASH_DETECTION */
134
135/* The file containing the kernel's symbol table is called /unix. */
136
137#define KERNEL_FILE "/unix"
138
139/* The symbol in the kernel where the load average is found
140 is named avenrun. */
141
142#define LDAV_SYMBOL "avenrun"
143
144/* Special itemss needed to make Emacs run on this system. */
145
146/*
147 * Make the sigsetmask function go away. Don't know what the
148 * ramifications of this are, but doesn't seem possible to
149 * emulate it properly anyway at this point.
150 */
151
152#define sigsetmask(mask) /* Null expansion */
153
154/* setjmp and longjmp can safely replace _setjmp and _longjmp,
155 but they will run slower. */
156
157#define _setjmp setjmp
158#define _longjmp longjmp
159
160/* On USG systems these have different names */
161
162#define index strchr
163#define rindex strrchr
164
165/* USG systems tend to put everything declared static
166 into the initialized data area, which becomes pure after dumping Emacs.
167 Foil this. Emacs carefully avoids static vars inside functions. */
168
169#undef static
170
171/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
172
173/* #define ADDR_CORRECT(x) (x) */
174
175#ifndef __GNUC__
176#define LINKER cc
177#endif
178
179/* Prevent -lg from being used for debugging. Not needed. */
180
181#define LIBS_DEBUG
182
183/* No need to specify -lc when linking. */
184
185#define LIB_STANDARD
186
187/* Use terminfo instead of termcap. */
188
189#define TERMINFO
190
191/* The following definition seems to be needed in AIX version 3.1.6.8.
192 It may not have been needed in certain earlier versions. */
193#define HAVE_TCATTR
194
195#define SYSTEM_MALLOC
196
197/* Include unistd.h, even though we don't define POSIX. */
198#define NEED_UNISTD_H
199
200/* AIX doesn't define this. */
201#define unix 1
202
203/* AIX 3.1 has the HFT features. */
204#define AIXHFT
205
206/* For unexaix.c. */
207#define ALIGN_DATA_RELOC
208
209/* arch-tag: bfff798c-542d-4290-91f2-267394c85b7b
210 (do not change this comment) */
diff --git a/src/s/aix3-2-5.h b/src/s/aix3-2-5.h
deleted file mode 100644
index 6c8458cc8a4..00000000000
--- a/src/s/aix3-2-5.h
+++ /dev/null
@@ -1,33 +0,0 @@
1/* s- file for building Emacs on AIX 3.2.5. */
2
3#include "aix3-2.h"
4
5/* For AIX, it turns out compiling emacs under AIX 3.2.4 REQUIRES "cc -g"
6 because "cc -O" crashes. Under AIX 3.2.5, "cc -O" is required because
7 "cc -g" crashes. Go figure. --floppy@merlin.mit.edu */
8/* The above isn't generally true. If it occurs with some compiler
9 release, seek a fixed version, be it XLC or GCC. The XLC version
10 isn't tied to the OS version on AIX any more than elsewhere. XLC
11 (the IBM compiler) can use -g with -O. (-O3 is also a possibility
12 for the optimization level.) -- fx, after David Edelsohn. */
13#undef C_DEBUG_SWITCH
14#define C_DEBUG_SWITCH -g -O
15
16/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct. */
17#define SIGNALS_VIA_CHARACTERS
18#define MAIL_USE_LOCKF
19#define CLASH_DETECTION
20
21/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct. */
22#define POSIX_SIGNALS
23#undef sigmask
24#undef sigsetmask
25#undef _setjmp
26#undef _longjmp
27
28/* Bill Woodward <wpwood@austin.ibm.com> says:
29 libIM *must* precede libXm, to avoid getting aixLoadIM error messages. */
30#define LIB_MOTIF -lIM -lXm
31
32/* arch-tag: 692b3acb-5383-4cfb-93f6-378b5c48c75e
33 (do not change this comment) */
diff --git a/src/s/aix3-2.h b/src/s/aix3-2.h
deleted file mode 100644
index 6d6c734c07f..00000000000
--- a/src/s/aix3-2.h
+++ /dev/null
@@ -1,73 +0,0 @@
1/* s- file for building Emacs on AIX 3.2.
2
3 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22#include "aix3-1.h"
23
24#define AIX3_2
25
26/* No need to define this--the header files indicate X11R4,
27 and that's supposedly what 3.2 will come with. */
28#undef SPECIFY_X11R4
29
30#ifndef __GNUC__
31/* Some programs in src produce warnings saying certain subprograms
32 are to comples and need a MAXMEM value greater than 2000 for
33 additional optimization. --nils@exp-math.uni-essen.de */
34#define C_SWITCH_SYSTEM -ma -qmaxmem=4000
35#endif
36
37/* Adrian Colley <Adrian.Colley@three.serpentine.com> says this is needed. */
38#ifndef NOT_C_CODE
39#ifndef AIX4
40 #pragma alloca
41#endif
42#endif
43
44#undef rindex
45#undef index
46
47/* With this defined, a gcc-compiled Emacs crashed in realloc under AIX
48 3.2, and a cc-compiled Emacs works with this undefined.
49 --karl@cs.umb.edu. */
50#undef SYSTEM_MALLOC
51
52/* For AIX, it turns out compiling emacs under AIX 3.2.4 REQUIRES "cc -g"
53 because "cc -O" crashes. Under AIX 3.2.5, "cc -O" is required because
54 "cc -g" crashes. Go figure. --floppy@merlin.mit.edu */
55/* See comments about this in aix3-2-5.h. -- fx */
56#ifndef __GNUC__
57#define C_DEBUG_SWITCH -g -O
58#endif
59
60/* The character-composition stuff is broken in X11R5.
61 Even with XIMStatusNothing aliased to XIMStatusNone,
62 tranle@intellicorp.com (Minh Tran-Le) reports that enabling
63 the internationalization code causes the modifier keys C, M and Shift
64 to beep after a mouse click. */
65#define X11R5_INHIBIT_I18N
66
67/* string.h defines rindex as a macro, at least with native cc, so we
68 lose declaring char * rindex without this.
69 It is just a guess which versions of AIX need this definition. */
70#undef HAVE_STRING_H
71
72/* arch-tag: 0935754d-67e1-4697-978a-3e9976da05c3
73 (do not change this comment) */
diff --git a/src/s/aix4-1.h b/src/s/aix4-1.h
deleted file mode 100644
index 6b8361420a5..00000000000
--- a/src/s/aix4-1.h
+++ /dev/null
@@ -1,65 +0,0 @@
1/*
2Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
3 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21#define AIX4_1
22
23#include "aix4.h"
24
25/* olson@mcs.anl.gov says -li18n is needed by -lXm. */
26#undef LIB_MOTIF
27#define LIB_MOTIF -lXm -li18n
28
29#ifdef __GNUC__
30#undef _NO_PROTO
31#endif
32
33/* For AIX, it turns out compiling emacs under AIX 3.2.4 REQUIRES "cc -g"
34 because "cc -O" crashes. Under AIX 3.2.5, "cc -O" is required because
35 "cc -g" crashes. Go figure. --floppy@merlin.mit.edu.
36 4.1 seems to need -g again. -- larry@vaquita.mitra.com. */
37/* David Edelsohn <dje@watson.ibm.com> says that this actually depends
38 on the version of XLC, which can't be predicted from the system version.
39 What a mess! */
40/* No more of a mess than other systems, GNU+GCC included. See
41 comments in aix3-2-5.h. -- fx */
42#if 0
43#ifndef __GNUC__
44#undef C_DEBUG_SWITCH
45#undef C_OPTIMIZE_SWITCH
46#define C_DEBUG_SWITCH -g
47#endif
48#endif
49
50/* The X internationalization stuff is still broken in AIX 4.1, so
51 don't #undef X11R5_INHIBIT_I18N
52 It still causes shift, ctrl, and alt to resend the last character,
53 if it was a control character like tab, enter, backspace, or ESC.
54 Bill_Mann @ PraxisInt.com */
55/* #undef X11R5_INHIBIT_I18N */
56
57#ifndef HAVE_LIBXMU
58#define LIBXMU
59
60/* Unfortunately without libXmu we cannot support EditRes. */
61#define NO_EDITRES
62#endif
63
64/* arch-tag: 72d598e1-bc3e-48e0-bfd2-693917c3738e
65 (do not change this comment) */
diff --git a/src/s/aix4-2.h b/src/s/aix4-2.h
index c23987d2d9b..2b31e2c8167 100644
--- a/src/s/aix4-2.h
+++ b/src/s/aix4-2.h
@@ -1,6 +1,194 @@
1#include "aix4-1.h" 1/*
2Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
3 Free Software Foundation, Inc.
2 4
3#undef ALIGN_DATA_RELOC 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20/*
21 * Define symbols to identify the version of Unix this is.
22 * Define all the symbols that apply correctly.
23 */
24
25#define USG /* System III, System V, etc */
26#define USG5
27
28/* This symbol should be defined on AIX Version 3 ??????? */
29#ifndef _AIX
30#define _AIX
31#endif
32
33/* SYSTEM_TYPE should indicate the kind of system you are using.
34 It sets the Lisp variable system-type. */
35
36#define SYSTEM_TYPE "aix"
37
38/* In AIX, you allocate a pty by opening /dev/ptc to get the master side.
39 To get the name of the slave side, you just ttyname() the master side. */
40
41#define PTY_ITERATION for (c = 0; !c ; c++)
42#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc");
43#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd));
44
45/*
46 * Define HAVE_TERMIO if the system provides sysV-style ioctls
47 * for terminal control.
48 */
49
50#define HAVE_TERMIOS
51
52/*
53 * Define HAVE_PTYS if the system supports pty devices.
54 */
55
56#define HAVE_PTYS
57
58/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
59
60#define HAVE_SOCKETS
61
62/*
63 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
64 * The 4.2 opendir, etc., library functions.
65 */
66
67/* #define NONSYSTEM_DIR_LIBRARY */
68
69/*
70 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
71 * library functions. Almost, but not quite the same as
72 * the 4.2 functions
73 */
74
75#define SYSV_SYSTEM_DIR
76
77/* Define this symbol if your system has the functions bcopy, etc. */
78
79#define BSTRING
80
81/* subprocesses should be defined if you want to
82 have code for asynchronous subprocesses
83 (as used in M-x compile and M-x shell).
84 This is supposed to work now on system V release 2. */
85
86#define subprocesses
87
88/* The file containing the kernel's symbol table is called /unix. */
89
90#define KERNEL_FILE "/unix"
91
92/* The symbol in the kernel where the load average is found
93 is named avenrun. */
94
95#define LDAV_SYMBOL "avenrun"
96
97/* Special itemss needed to make Emacs run on this system. */
98
99
100
101/* USG systems tend to put everything declared static
102 into the initialized data area, which becomes pure after dumping Emacs.
103 Foil this. Emacs carefully avoids static vars inside functions. */
104
105#undef static
106
107/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
108
109/* #define ADDR_CORRECT(x) (x) */
110
111#ifndef __GNUC__
112#define LINKER cc
113#endif
114
115/* Prevent -lg from being used for debugging. Not needed. */
116
117#define LIBS_DEBUG
118
119/* No need to specify -lc when linking. */
120
121#define LIB_STANDARD
122
123/* Use terminfo instead of termcap. */
124
125#define TERMINFO
126
127/* The following definition seems to be needed in AIX version 3.1.6.8.
128 It may not have been needed in certain earlier versions. */
129#define HAVE_TCATTR
130
131/* Include unistd.h, even though we don't define POSIX. */
132#define NEED_UNISTD_H
133
134/* AIX doesn't define this. */
135#define unix 1
136
137#ifndef __GNUC__
138/* Some programs in src produce warnings saying certain subprograms
139 are to comples and need a MAXMEM value greater than 2000 for
140 additional optimization. --nils@exp-math.uni-essen.de */
141#define C_SWITCH_SYSTEM -ma -qmaxmem=4000
142#endif
143
144/* The character-composition stuff is broken in X11R5.
145 Even with XIMStatusNothing aliased to XIMStatusNone,
146 tranle@intellicorp.com (Minh Tran-Le) reports that enabling
147 the internationalization code causes the modifier keys C, M and Shift
148 to beep after a mouse click. */
149#define X11R5_INHIBIT_I18N
150
151/* string.h defines rindex as a macro, at least with native cc, so we
152 lose declaring char * rindex without this.
153 It is just a guess which versions of AIX need this definition. */
154#undef HAVE_STRING_H
155
156/* For AIX, it turns out compiling emacs under AIX 3.2.4 REQUIRES "cc -g"
157 because "cc -O" crashes. Under AIX 3.2.5, "cc -O" is required because
158 "cc -g" crashes. Go figure. --floppy@merlin.mit.edu */
159/* The above isn't generally true. If it occurs with some compiler
160 release, seek a fixed version, be it XLC or GCC. The XLC version
161 isn't tied to the OS version on AIX any more than elsewhere. XLC
162 (the IBM compiler) can use -g with -O. (-O3 is also a possibility
163 for the optimization level.) -- fx, after David Edelsohn. */
164#define C_DEBUG_SWITCH -g -O
165
166/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct. */
167#define SIGNALS_VIA_CHARACTERS
168#define MAIL_USE_LOCKF
169#define CLASH_DETECTION
170
171/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct. */
172#define POSIX_SIGNALS
173#undef sigmask
174
175/* Dave Love <d.love@dl.ac.uk> reported this as needed on AIX 4.1.
176 It is just a guess which versions of AIX need this definition. */
177#define HAVE_WAIT_HEADER
178
179/* Specify the type that the 3rd arg of `accept' points to.
180 It is just a guess which versions of AIX need this definition. */
181#define SOCKLEN_TYPE int
182
183/* olson@mcs.anl.gov says -li18n is needed by -lXm. */
184#define LIB_MOTIF -lXm -li18n
185
186#ifndef HAVE_LIBXMU
187#define LIBXMU
188
189/* Unfortunately without libXmu we cannot support EditRes. */
190#define NO_EDITRES
191#endif
4 192
5/* On AIX Emacs uses the gmalloc.c malloc implementation. But given 193/* On AIX Emacs uses the gmalloc.c malloc implementation. But given
6 the way this system works, libc functions that return malloced 194 the way this system works, libc functions that return malloced
@@ -20,19 +208,5 @@
20*/ 208*/
21#define BROKEN_GET_CURRENT_DIR_NAME 1 209#define BROKEN_GET_CURRENT_DIR_NAME 1
22 210
23/* aix3-1.h defined _NO_PROTO, probably to work around an AIX compiler
24 that did not handle prototypes. On (at least) AIX 5.2, this causes
25 the proper prototype to be thrown away for lseek64, so compiled
26 Lisp files do not load correctly and compilation fails.
27
28 The AIX compiler should have learned about function prototypes long
29 ago, so we can probably go ahead and undefine _NO_PROTO. However,
30 if someone can demonstrate that this problem still exists for AIX
31 4, this should be moved into a new file (aix5.h).
32*/
33
34#undef _NO_PROTO
35
36
37/* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562 211/* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562
38 (do not change this comment) */ 212 (do not change this comment) */
diff --git a/src/s/aix4.h b/src/s/aix4.h
deleted file mode 100644
index b2ed15f75ea..00000000000
--- a/src/s/aix4.h
+++ /dev/null
@@ -1,17 +0,0 @@
1#define AIX4
2
3#include "aix3-2-5.h"
4
5/* AIX 4 does not have HFT any more. */
6#undef AIXHFT
7
8/* Dave Love <d.love@dl.ac.uk> reported this as needed on AIX 4.1.
9 It is just a guess which versions of AIX need this definition. */
10#define HAVE_WAIT_HEADER
11
12/* Specify the type that the 3rd arg of `accept' points to.
13 It is just a guess which versions of AIX need this definition. */
14#define SOCKLEN_TYPE int
15
16/* arch-tag: b9471dfc-ccdc-4980-a8a1-80c7627ec6b2
17 (do not change this comment) */
diff --git a/src/s/bsd4-3.h b/src/s/bsd-common.h
index 2a94916eb19..2a94916eb19 100644
--- a/src/s/bsd4-3.h
+++ b/src/s/bsd-common.h
diff --git a/src/s/bsd386.h b/src/s/bsd386.h
deleted file mode 100644
index ee869ac62d0..00000000000
--- a/src/s/bsd386.h
+++ /dev/null
@@ -1,67 +0,0 @@
1/* s/ file for bsd386 system.
2
3 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22#include "bsd4-3.h"
23
24#ifndef __bsdi__
25#define __bsdi__ 1
26#endif
27
28#define DECLARE_GETPWUID_WITH_UID_T
29
30#define SIGNALS_VIA_CHARACTERS
31
32#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
33#define A_TEXT_OFFSET(x) (sizeof (struct exec))
34#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
35
36#define LIBS_DEBUG
37#define LIB_X11_LIB -L/usr/X11/lib -lX11
38#define LIBS_SYSTEM -lutil -lkvm -lcompat
39
40#define HAVE_GETLOADAVG 1
41
42#undef BSD_PGRPS
43
44/* System uses OXTABS instead of the expected TAB3.
45 (Copied from netbsd.h.) */
46#define TABDLY OXTABS
47#define TAB3 OXTABS
48
49#define SYSV_SYSTEM_DIR
50
51#define HAVE_TERMIOS
52#define NO_TERMIO
53
54#define WAITTYPE int
55/* get this since it won't be included if WAITTYPE is defined */
56#ifdef emacs
57#include <sys/wait.h>
58#endif
59#define WRETCODE(w) WEXITSTATUS(w)
60#ifndef WCOREDUMP
61#define WCOREDUMP(w) ((w) & 0200)
62#endif
63
64#define GETPGRP_NO_ARG 1
65
66/* arch-tag: 867e3bb8-e9df-4763-9c82-8f4accb8209e
67 (do not change this comment) */
diff --git a/src/s/bsd4-1.h b/src/s/bsd4-1.h
deleted file mode 100644
index 9a08b5ea9c7..00000000000
--- a/src/s/bsd4-1.h
+++ /dev/null
@@ -1,131 +0,0 @@
1/* Definitions file for GNU Emacs running on bsd 4.1.
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define BSD4_1
27
28#define BSD_SYSTEM
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "berkeley-unix"
34
35/* nomultiplejobs should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39/* #define NOMULTIPLEJOBS */
40
41/* Default is to set interrupt_input to 1: do input buffering within Emacs */
42
43#define INTERRUPT_INPUT
44
45/* First pty name is /dev/ptyp0. */
46
47#define FIRST_PTY_LETTER 'p'
48
49/*
50 * Define HAVE_PTYS if the system supports pty devices.
51 */
52
53/* #define HAVE_PTYS */
54
55/* Define this macro if system defines a type `union wait'. */
56
57#define HAVE_UNION_WAIT
58
59/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
60
61/* #define HAVE_SOCKETS */
62
63/*
64 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
65 * The 4.2 opendir, etc., library functions.
66 */
67
68#define NONSYSTEM_DIR_LIBRARY
69
70/* Define this symbol if your system has the functions bcopy, etc. */
71
72/* #define BSTRING */
73
74/* subprocesses should be defined if you want to
75 have code for asynchronous subprocesses
76 (as used in M-x compile and M-x shell).
77 This is generally OS dependent, and not supported
78 under most USG systems. */
79
80#define subprocesses
81
82/* If your system uses COFF (Common Object File Format) then define the
83 preprocessor symbol "COFF". */
84
85/* #define COFF */
86
87/* define MAIL_USE_FLOCK if the mailer uses flock
88 to interlock access to /usr/spool/mail/$USER.
89 The alternative is that a lock file named
90 /usr/spool/mail/$USER.lock. */
91
92/* #define MAIL_USE_FLOCK */
93
94/* Define CLASH_DETECTION if you want lock files to be written
95 so that Emacs can tell instantly when you try to modify
96 a file that someone else has modified in his Emacs. */
97
98#undef CLASH_DETECTION /* Might work; not tried yet. */
99
100/* The file containing the kernel's symbol table is called /vmunix. */
101
102#define KERNEL_FILE "/vmunix"
103
104/* The symbol in the kernel where the load average is found
105 is named _avenrun. */
106
107#define LDAV_SYMBOL "_avenrun"
108
109/* Special hacks needed to make Emacs run on this system. */
110
111/* Make the function `signal' act as in 4.2. */
112
113#define signal sigset
114
115#define _longjmp longjmp
116#define _setjmp setjmp
117
118#define lstat stat
119
120/* Names of flags for open. */
121#define O_RDONLY 0
122#define O_WRONLY 1
123#define O_RDWR 2
124#define O_EXCL 2000
125#define O_CREAT 1000
126
127/* Special library needed for linking for 4.1. */
128#define LIBS_SYSTEM -ljobs
129
130/* arch-tag: de56716a-ed9b-4851-a5c5-c882efaf9931
131 (do not change this comment) */
diff --git a/src/s/bsd4-2.h b/src/s/bsd4-2.h
deleted file mode 100644
index 665e12a5352..00000000000
--- a/src/s/bsd4-2.h
+++ /dev/null
@@ -1,122 +0,0 @@
1/* Definitions file for GNU Emacs running on bsd 4.2
2 Copyright (C) 1985, 1986, 1994, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#ifndef BSD4_2
27#define BSD4_2 1
28#endif /* BSD4_2 */
29
30#ifndef BSD_SYSTEM
31#define BSD_SYSTEM 42
32#endif /* BSD_SYSTEM */
33
34/* SYSTEM_TYPE should indicate the kind of system you are using.
35 It sets the Lisp variable system-type. */
36
37#define SYSTEM_TYPE "berkeley-unix"
38
39/* nomultiplejobs should be defined if your system's shell
40 does not have "job control" (the ability to stop a program,
41 run some other program, then continue the first one). */
42
43/* #define NOMULTIPLEJOBS */
44
45/* Default is to set interrupt_input to 1: do input buffering within Emacs */
46
47#define INTERRUPT_INPUT
48
49/* First pty name is /dev/ptyp0. */
50
51#define FIRST_PTY_LETTER 'p'
52
53/*
54 * Define HAVE_PTYS if the system supports pty devices.
55 */
56
57#define HAVE_PTYS
58
59/* Define this macro if system defines a type `union wait'. */
60
61#define HAVE_UNION_WAIT
62
63/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
64
65#define HAVE_SOCKETS
66
67/*
68 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
69 * The 4.2 opendir, etc., library functions.
70 */
71
72/* #define NONSYSTEM_DIR_LIBRARY */
73
74/* Define this symbol if your system has the functions bcopy, etc. */
75
76#define BSTRING
77
78/* subprocesses should be defined if you want to
79 have code for asynchronous subprocesses
80 (as used in M-x compile and M-x shell).
81 This is generally OS dependent, and not supported
82 under most USG systems. */
83
84#define subprocesses
85
86/* If your system uses COFF (Common Object File Format) then define the
87 preprocessor symbol "COFF". */
88
89/* #define COFF */
90
91/* define MAIL_USE_FLOCK if the mailer uses flock
92 to interlock access to /usr/spool/mail/$USER.
93 The alternative is that a lock file named
94 /usr/spool/mail/$USER.lock. */
95
96/* #define MAIL_USE_FLOCK */
97
98/* Define CLASH_DETECTION if you want lock files to be written
99 so that Emacs can tell instantly when you try to modify
100 a file that someone else has modified in his Emacs. */
101
102#define CLASH_DETECTION
103
104/* The file containing the kernel's symbol table is called /vmunix. */
105
106#define KERNEL_FILE "/vmunix"
107
108/* The symbol in the kernel where the load average is found
109 is named _avenrun. */
110
111#define LDAV_SYMBOL "_avenrun"
112
113/* Send signals to subprocesses by "typing" special chars at them. */
114
115#define SIGNALS_VIA_CHARACTERS
116
117/* Process groups work in the traditional BSD manner. */
118
119#define BSD_PGRPS
120
121/* arch-tag: 38ca640f-549e-4726-a257-71048ab4c480
122 (do not change this comment) */
diff --git a/src/s/bsdos2-1.h b/src/s/bsdos2-1.h
deleted file mode 100644
index 244d58f5137..00000000000
--- a/src/s/bsdos2-1.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/* s/ file for BSDI BSD/OS 2.1 system. */
2
3#include "bsdos2.h"
4
5#undef LIB_X11_LIB
6#define LIB_X11_LIB -L/usr/X11/lib -lX11 -lipc
7
8/* arch-tag: cf1ada4a-cdbf-452b-a264-ff84dd523e97
9 (do not change this comment) */
diff --git a/src/s/bsdos2.h b/src/s/bsdos2.h
deleted file mode 100644
index 9e1e82fd75a..00000000000
--- a/src/s/bsdos2.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/* s/ file for BSDI BSD/OS 2.0 system. */
2
3#include "bsd386.h"
4
5#define TEXT_START 0x1020 /* for QMAGIC */
6#define START_FILES pre-crt0.o /usr/lib/crt0.o
7#define HAVE_TERMIOS
8#define NO_TERMIO
9
10#undef KERNEL_FILE
11#define KERNEL_FILE "/bsd"
12
13/* arch-tag: 25ce1827-1511-4305-9058-24dd2118b5b4
14 (do not change this comment) */
diff --git a/src/s/bsdos3.h b/src/s/bsdos3.h
deleted file mode 100644
index 20a9704e14f..00000000000
--- a/src/s/bsdos3.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/* s/ file for BSDI BSD/OS 3.0 system. */
2
3#include "bsdos2.h"
4
5#undef LIBS_SYSTEM
6#define LIBS_SYSTEM -lkvm
7
8/* arch-tag: 726766f3-5a62-48bf-8e21-3b21ec6abe6f
9 (do not change this comment) */
diff --git a/src/s/bsdos4.h b/src/s/bsdos4.h
deleted file mode 100644
index 540e4a7d790..00000000000
--- a/src/s/bsdos4.h
+++ /dev/null
@@ -1,26 +0,0 @@
1/* s/ file for BSDI BSD/OS 4.0 system. */
2
3#include "bsdos3.h"
4
5/* BSD/OS 4.1 and later have ncurses */
6#ifdef HAVE_LIBNCURSES
7#define TERMINFO
8#define LIBS_TERMCAP -lncurses
9#endif /* HAVE_LIBNCURSES */
10
11/* copied from freebsd.h */
12#ifdef __ELF__
13
14#define LD_SWITCH_SYSTEM
15#undef START_FILES
16#define START_FILES \
17 pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o
18#define UNEXEC unexelf.o
19#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
20#undef LIB_GCC
21#define LIB_GCC
22
23#endif /* not __ELF__ */
24
25/* arch-tag: 7659632a-a879-4153-bb8b-3765a1463ca1
26 (do not change this comment) */
diff --git a/src/s/darwin.h b/src/s/darwin.h
index d7f7cf2234f..aa509b75af5 100644
--- a/src/s/darwin.h
+++ b/src/s/darwin.h
@@ -23,12 +23,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
23 * Define all the symbols that apply correctly. 23 * Define all the symbols that apply correctly.
24 */ 24 */
25 25
26/* #define UNIPLUS */
27/* #define USG5 */
28/* #define USG */
29/* #define HPUX */
30/* #define UMAX */
31/* #define BSD4_1 */
32#define BSD4_2 26#define BSD4_2
33/* BSD4_3 and BSD4_4 are already defined in sys/param.h */ 27/* BSD4_3 and BSD4_4 are already defined in sys/param.h */
34/* #define BSD4_3 */ 28/* #define BSD4_3 */
diff --git a/src/s/freebsd.h b/src/s/freebsd.h
index 9a21b0931ee..843a34b6fe0 100644
--- a/src/s/freebsd.h
+++ b/src/s/freebsd.h
@@ -40,19 +40,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
40#define NO_SHARED_LIBS 40#define NO_SHARED_LIBS
41#endif 41#endif
42 42
43 43/* Get most of the stuff from bsd-common */
44#if 0 /* This much, alone, seemed sufficient as of 19.23. 44#include "bsd-common.h"
45 But it seems better to be independent of netbsd.h. */
46#include "netbsd.h"
47
48#undef LIB_GCC
49#define LIB_GCC -lgcc
50#undef NEED_ERRNO
51#endif /* 0 */
52
53
54/* Get most of the stuff from bsd4.3 */
55#include "bsd4-3.h"
56 45
57/* For mem-limits.h. */ 46/* For mem-limits.h. */
58#define BSD4_2 47#define BSD4_2
@@ -161,7 +150,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
161 ioctl TIOCSCTTY. */ 150 ioctl TIOCSCTTY. */
162#define DONT_REOPEN_PTY 151#define DONT_REOPEN_PTY
163 152
164/* CLASH_DETECTION is defined in bsd4-3.h. 153/* CLASH_DETECTION is defined in bsd-common.h.
165 In FreeBSD 2.1.5 (and other 2.1.x), this results useless symbolic links 154 In FreeBSD 2.1.5 (and other 2.1.x), this results useless symbolic links
166 remaining in /tmp or other directories with +t bit. 155 remaining in /tmp or other directories with +t bit.
167 To avoid this problem, you could #undef it to use no file lock. */ 156 To avoid this problem, you could #undef it to use no file lock. */
diff --git a/src/s/gnu.h b/src/s/gnu.h
index fbc3f944e66..b5a839ec98a 100644
--- a/src/s/gnu.h
+++ b/src/s/gnu.h
@@ -18,8 +18,8 @@ You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19 19
20 20
21/* Get most of the stuff from bsd4.3 */ 21/* Get most of the stuff from bsd-common */
22#include "bsd4-3.h" 22#include "bsd-common.h"
23 23
24/* For mem-limits.h. */ 24/* For mem-limits.h. */
25#define BSD4_2 25#define BSD4_2
diff --git a/src/s/hpux.h b/src/s/hpux.h
deleted file mode 100644
index 785fff12623..00000000000
--- a/src/s/hpux.h
+++ /dev/null
@@ -1,218 +0,0 @@
1/* Definitions file for GNU Emacs running on HPUX release 7.0.
2 Based on AT&T System V.2.
3 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
4 2007, 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22/*
23 * Define symbols to identify the version of Unix this is.
24 * Define all the symbols that apply correctly.
25 */
26
27#define USG /* System III, System V, etc */
28
29#define USG5
30
31#define HPUX
32
33/* SYSTEM_TYPE should indicate the kind of system you are using.
34 It sets the Lisp variable system-type. */
35
36#define SYSTEM_TYPE "hpux"
37
38/* `nomultiplejobs' should be defined if your system's shell
39 does not have "job control" (the ability to stop a program,
40 run some other program, then continue the first one).
41
42 On hpux this depends on the precise kind of machine in use,
43 so the m- file defines this symbol if appropriate. */
44
45/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
46
47/* #define INTERRUPT_INPUT */
48
49/* Letter to use in finding device name of first pty,
50 if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
51
52#define FIRST_PTY_LETTER 'p'
53
54/*
55 * Define HAVE_TERMIO if the system provides sysV-style ioctls
56 * for terminal control.
57 */
58
59#define HAVE_TERMIO
60
61/*
62 * Define HAVE_PTYS if the system supports pty devices.
63 */
64
65#define HAVE_PTYS
66
67/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
68
69#define HAVE_SOCKETS
70
71/*
72 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
73 * The 4.2 opendir, etc., library functions.
74 */
75
76/* #define NONSYSTEM_DIR_LIBRARY */
77
78/* Define this symbol if your system has the functions bcopy, etc.
79 * s800 and later versions of s300 (s200) kernels have equivalents
80 * of the BSTRING functions of BSD. If your s200 kernel doesn't have
81 * em comment out this section.
82 */
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. */
91
92#define subprocesses
93
94/* If your system uses COFF (Common Object File Format) then define the
95 preprocessor symbol "COFF". */
96
97/* #define COFF */
98
99/* define MAIL_USE_FLOCK if the mailer uses flock
100 to interlock access to /usr/spool/mail/$USER.
101 The alternative is that a lock file named
102 /usr/spool/mail/$USER.lock. */
103
104/* #define MAIL_USE_FLOCK */
105
106/* Say we have the SYSV style of interprocess communication. */
107
108#define HAVE_SYSVIPC
109
110/* Define CLASH_DETECTION if you want lock files to be written
111 so that Emacs can tell instantly when you try to modify
112 a file that someone else has modified in his Emacs. */
113
114#define CLASH_DETECTION
115
116/* The file containing the kernel's symbol table is called /hp-ux. */
117
118#define KERNEL_FILE "/hp-ux"
119
120/* The symbol in the kernel where the load average is found
121 depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
122
123/* Special hacks needed to make Emacs run on this system. */
124
125/*
126 * Make the sigsetmask function go away. Don't know what the
127 * ramifications of this are, but doesn't seem possible to
128 * emulate it properly anyway at this point.
129 */
130
131/* HPUX has sigsetmask */
132/* #define sigsetmask(mask) / * Null expansion * / */
133
134/* setjmp and longjmp can safely replace _setjmp and _longjmp,
135 but they will run slower. */
136
137/* HP-UX has _setjmp and _longjmp */
138/*
139#define _setjmp setjmp
140#define _longjmp longjmp
141*/
142
143/* Use the system provided termcap(3) library */
144#define TERMINFO
145
146/* The 48-bit versions are more winning for Emacs;
147 the ordinary ones don't give even 32 bits. */
148#define random lrand48
149#define srandom srand48
150
151/* In hpux, the symbol SIGIO is defined, but the feature
152 doesn't work in the way Emacs needs it to. */
153
154#define BROKEN_SIGIO
155
156/* USG systems tend to put everything declared static
157 into the initialized data area, which becomes pure after dumping Emacs.
158 Foil this. Emacs carefully avoids static vars inside functions.
159 http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00368.html
160 As of at least HPUX 11.11 (2000), it seems this workaround is no
161 longer needed. Try uncommenting the following if you have problems
162 on older versions. */
163
164/* This is unnecessary in HPUX versions 10.20, 11.0, 11.11, 11.23. */
165
166/* #define static */
167
168/* Define extra libraries to load.
169 This should have -lBSD, but that library is said to make
170 `signal' fail to work. */
171
172#ifdef HPUX_NET
173#define LIBS_SYSTEM -ln
174#else
175#define LIBS_SYSTEM
176#endif
177
178/* Some additional system facilities exist. */
179
180#define HAVE_PERROR /* Delete this line for version 6. */
181
182/* The following maps shared exec file to demand loaded exec.
183 Don't do this as demand loaded exec is broken in hpux. */
184
185#if 0
186
187/* Adjust a header field for the executable file about to be dumped. */
188
189#define ADJUST_EXEC_HEADER \
190 hdr.a_magic = ((ohdr.a_magic.file_type == OLDMAGIC.file_type) ? \
191 NEWMAGIC : ohdr.a_magic);
192
193#endif
194
195/* Baud-rate values in tty status have nonstandard meanings. */
196
197#define BAUD_CONVERT \
198{ 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \
199 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
200
201/* This is how to get the device name of the tty end of a pty. */
202#define PTY_TTY_NAME_SPRINTF \
203 sprintf (pty_name, "/dev/pty/tty%c%x", c, i);
204
205/* This is how to get the device name of the control end of a pty. */
206#define PTY_NAME_SPRINTF \
207 sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);
208
209/* This triggers a conditional in xfaces.c. */
210#define XOS_NEEDS_TIME_H
211
212#ifndef HPUX8
213/* It's possible that HPUX 7 has sys/wait.h but it does not work right. */
214#undef HAVE_SYS_WAIT_H
215#endif
216
217/* arch-tag: 75c1239f-fedb-4f64-8f86-7893e75699e8
218 (do not change this comment) */
diff --git a/src/s/hpux10-20.h b/src/s/hpux10-20.h
index a15b81a5e90..8ea24fc4dc8 100644
--- a/src/s/hpux10-20.h
+++ b/src/s/hpux10-20.h
@@ -1,13 +1,270 @@
1#include "hpux10.h" 1/* System description file for hpux version 10.20.
2 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 Free Software Foundation, Inc.
2 4
3#define HPUX10_20 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21#define RUN_TIME_REMAP
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 HPUX
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 "hpux"
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 On hpux this depends on the precise kind of machine in use,
44 so the m- file defines this symbol if appropriate. */
45
46/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
47
48/* #define INTERRUPT_INPUT */
49
50/* Letter to use in finding device name of first pty,
51 if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
52
53#define FIRST_PTY_LETTER 'p'
54
55/*
56 * Define HAVE_TERMIO if the system provides sysV-style ioctls
57 * for terminal control.
58 */
59
60#define HAVE_TERMIO
61
62/*
63 * Define HAVE_PTYS if the system supports pty devices.
64 */
65
66#define HAVE_PTYS
67
68/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
69
70#define HAVE_SOCKETS
71
72/* Define this symbol if your system has the functions bcopy, etc.
73 * s800 and later versions of s300 (s200) kernels have equivalents
74 * of the BSTRING functions of BSD. If your s200 kernel doesn't have
75 * em comment out this section.
76 */
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/* Say we have the SYSV style of interprocess communication. */
101
102#define HAVE_SYSVIPC
103
104/* Define CLASH_DETECTION if you want lock files to be written
105 so that Emacs can tell instantly when you try to modify
106 a file that someone else has modified in his Emacs. */
107
108#define CLASH_DETECTION
109
110/* The symbol in the kernel where the load average is found
111 depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
112
113/* Special hacks needed to make Emacs run on this system. */
114
115/*
116 * Make the sigsetmask function go away. Don't know what the
117 * ramifications of this are, but doesn't seem possible to
118 * emulate it properly anyway at this point.
119 */
120
121/* HPUX has sigsetmask */
122/* #define sigsetmask(mask) / * Null expansion * / */
123
124/* setjmp and longjmp can safely replace _setjmp and _longjmp,
125 but they will run slower. */
126
127/* HP-UX has _setjmp and _longjmp */
128/*
129#define _setjmp setjmp
130#define _longjmp longjmp
131*/
132
133/* Use the system provided termcap(3) library */
134#define TERMINFO
135
136/* In hpux, the symbol SIGIO is defined, but the feature
137 doesn't work in the way Emacs needs it to. */
138
139#define BROKEN_SIGIO
140
141/* USG systems tend to put everything declared static
142 into the initialized data area, which becomes pure after dumping Emacs.
143 Foil this. Emacs carefully avoids static vars inside functions.
144 http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00368.html
145 As of at least HPUX 11.11 (2000), it seems this workaround is no
146 longer needed. Try uncommenting the following if you have problems
147 on older versions. */
148
149/* This is unnecessary in HPUX versions 10.20, 11.0, 11.11, 11.23. */
150
151/* #define static */
152
153/* Some additional system facilities exist. */
154
155#define HAVE_PERROR /* Delete this line for version 6. */
156
157/* The following maps shared exec file to demand loaded exec.
158 Don't do this as demand loaded exec is broken in hpux. */
159
160/* Baud-rate values in tty status have nonstandard meanings. */
161
162#define BAUD_CONVERT \
163{ 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \
164 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
165
166/* This is how to get the device name of the tty end of a pty. */
167#define PTY_TTY_NAME_SPRINTF \
168 sprintf (pty_name, "/dev/pty/tty%c%x", c, i);
169
170/* This is how to get the device name of the control end of a pty. */
171#define PTY_NAME_SPRINTF \
172 sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);
173
174/* This triggers a conditional in xfaces.c. */
175#define XOS_NEEDS_TIME_H
176
177/* Don't use shared libraries. unexec doesn't handle them.
178 Note GCC automatically passes -a archive to ld, and it has its own
179 conflicting -a. */
180#ifdef __GNUC__
181
182#define LD_SWITCH_SYSTEM_TEMACS
183
184#else /* not __GNUC__ */
185/* Note, -a only works for hpux ld, not cc. And "cc LD_SWITCH_SYSTEM"
186 is used in configure's $ac_link to do various autoconf checks.
187 Since we only need -a when unexec'ing, only pass in -a to
188 "ld temacs" (ghazi@caip.rutgers.edu 7/10/97). */
189#if (defined(hp9000s700) || defined(__hp9000s700))
190#define LD_SWITCH_SYSTEM_TEMACS -L/lib/pa1.1
191#else /* not (defined(hp9000s700) || defined(__hp9000s700)) */
192#define LD_SWITCH_SYSTEM_TEMACS
193#endif /* not (defined(hp9000s700) || defined(__hp9000s700)) */
194#endif /* not __GNUC__ */
195
196/* Some hpux 8 machines seem to have TIOCGWINSZ,
197 and none have sioctl.h, so might as well define this. */
198#define NO_SIOCTL_H
199
200#ifndef HAVE_LIBXMU
201/* HP-UX doesn't supply Xmu. */
202#define LIBXMU
203
204#endif
205
206/* Assar Westerlund <assar@sics.se> says this is necessary for
207 HP-UX 10.20, and that it works for HP-UX 0 as well. */
208#define NO_EDITRES
209
210/* Tested in getloadavg.c. */
211#define HAVE_PSTAT_GETDYNAMIC
212
213/* Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
214 has a broken `rint' in some library versions including math library
215 version number A.09.05.
216
217 You can fix the math library by installing patch number PHSS_4630.
218 But we can fix it more reliably for Emacs like this. */
219#undef HAVE_RINT
220
221/* We have to go this route, rather than hpux9's approach of renaming the
222 functions via macros. The system's stdlib.h has fully prototyped
223 declarations, which yields a conflicting definition of srand48; it
224 tries to redeclare what was once srandom to be srand48. So we go
225 with HAVE_LRAND48 being defined. */
226#undef srandom
227#undef random
228#undef HAVE_RANDOM
229
230#define FORCE_ALLOCA_H
231
232/* AlainF 20-Jul-1996 says this is right. */
233#define KERNEL_FILE "/stand/vmunix"
234
235#ifdef HPUX_NET
236#define LIBS_SYSTEM -ln -l:libdld.sl
237#else
238#define LIBS_SYSTEM -l:libdld.sl
239#endif
240
241/* Rainer Malzbender <rainer@displaytech.com> says definining
242 HAVE_XRMSETDATABASE allows Emacs to compile on HP-UX 10.20
243 using GCC. */
244
245#ifndef HAVE_XRMSETDATABASE
246#define HAVE_XRMSETDATABASE
247#endif
248
249/* Make sure we get select from libc rather than from libcurses
250 because libcurses on HPUX 10.10 has a broken version of select.
251 We used to use -lc -lcurses, but this may be cleaner. */
252#define LIBS_TERMCAP -ltermcap
253
254/* However, HPUX 10 puts Xaw and Xmu in a strange place
255 (if you install them at all). So search that place. */
256#define C_SWITCH_X_SYSTEM -I/usr/include/X11R6 -I/usr/include/X11R5 -I/usr/include/Motif1.2 -I/usr/contrib/X11R6/include -I/usr/contrib/X11R5/include
257#define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R6 -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -L/usr/contrib/X11R5/lib
258
259/* 2000-11-21: Temporarily disable Unix 98 large file support found by
260 configure. It fails on HPUX 11, at least, because it enables
261 header sections which lose when `static' is defined away, as it is
262 on HP-UX. (You get duplicate symbol errors on linking). */
263
264#undef _FILE_OFFSET_BITS
4 265
5/* otherwise sigunblock wont be defined */ 266/* otherwise sigunblock wont be defined */
6#define POSIX_SIGNALS 267#define POSIX_SIGNALS
7 268
8/* Polling problems (interrupted system call) reported for HP-UX 10.10
9 don't exist from 10.20 on (see process.c) */
10#undef POLL_INTERRUPTED_SYS_CALL
11
12/* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6 269/* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6
13 (do not change this comment) */ 270 (do not change this comment) */
diff --git a/src/s/hpux10.h b/src/s/hpux10.h
deleted file mode 100644
index 646ef07d4eb..00000000000
--- a/src/s/hpux10.h
+++ /dev/null
@@ -1,85 +0,0 @@
1/* System description file for hpux version 10.
2 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21#include "hpux9shr.h"
22
23#define HPUX10
24
25/* We have to go this route, rather than hpux9's approach of renaming the
26 functions via macros. The system's stdlib.h has fully prototyped
27 declarations, which yields a conflicting definition of srand48; it
28 tries to redeclare what was once srandom to be srand48. So we go
29 with HAVE_LRAND48 being defined. */
30#undef srandom
31#undef random
32#undef HAVE_RANDOM
33
34#define FORCE_ALLOCA_H
35
36/* AlainF 20-Jul-1996 says this is right. */
37#undef KERNEL_FILE
38#define KERNEL_FILE "/stand/vmunix"
39
40#ifdef LIBS_SYSTEM
41#undef LIBS_SYSTEM
42#endif
43#ifdef HPUX_NET
44#define LIBS_SYSTEM -ln -l:libdld.sl
45#else
46#define LIBS_SYSTEM -l:libdld.sl
47#endif
48
49/* Rainer Malzbender <rainer@displaytech.com> says definining
50 HAVE_XRMSETDATABASE allows Emacs to compile on HP-UX 10.20
51 using GCC. */
52
53#ifndef HAVE_XRMSETDATABASE
54#define HAVE_XRMSETDATABASE
55#endif
56
57/* Make sure we get select from libc rather than from libcurses
58 because libcurses on HPUX 10.10 has a broken version of select.
59 We used to use -lc -lcurses, but this may be cleaner. */
60#define LIBS_TERMCAP -ltermcap
61
62#undef C_SWITCH_X_SYSTEM
63#undef LD_SWITCH_X_DEFAULT
64/* However, HPUX 10 puts Xaw and Xmu in a strange place
65 (if you install them at all). So search that place. */
66#define C_SWITCH_X_SYSTEM -I/usr/include/X11R6 -I/usr/include/X11R5 -I/usr/include/Motif1.2 -I/usr/contrib/X11R6/include -I/usr/contrib/X11R5/include
67#define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R6 -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -L/usr/contrib/X11R5/lib
68
69/* 2000-11-21: Temporarily disable Unix 98 large file support found by
70 configure. It fails on HPUX 11, at least, because it enables
71 header sections which lose when `static' is defined away, as it is
72 on HP-UX. (You get duplicate symbol errors on linking). */
73
74#undef _FILE_OFFSET_BITS
75
76/* Don't define _BSD */
77#undef C_SWITCH_SYSTEM
78
79/* HP-UX 10.10 seem to have problems with signals coming in
80 Causes "poll: interrupted system call" messages when Emacs is run
81 in an X window (see process.c) */
82#define POLL_INTERRUPTED_SYS_CALL
83
84/* arch-tag: 1b95d569-a3c1-4fb0-8f69-fef264c17c24
85 (do not change this comment) */
diff --git a/src/s/hpux8.h b/src/s/hpux8.h
deleted file mode 100644
index 9333038b077..00000000000
--- a/src/s/hpux8.h
+++ /dev/null
@@ -1,96 +0,0 @@
1/* system description file for hpux version 8.
2
3 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21/*
22Commentary:
23
24This contains changes that were suggested "for the hp700".
25They were not needed for the 800.
26Our conjecture that they are needed for hpux version 8,
27which is what runs on the 700. */
28
29#define HPUX8
30
31#include "hpux.h"
32
33/* dob@inel.gov says HPUX 8.07 needs this. He was using X11R5, I think. */
34#define LIBX11_SYSTEM -lXext
35
36#define LIB_X11_LIB -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lX11
37#define C_SWITCH_X_SYSTEM -I/usr/include/X11R5 -I/usr/include/X11R4
38#define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R5 -L/usr/lib/X11R4
39
40/* Don't use shared libraries. unexec doesn't handle them.
41 Note GCC automatically passes -a archive to ld, and it has its own
42 conflicting -a. */
43#ifdef __GNUC__
44/* No need to specify roundabout way of linking temacs. */
45#define ORDINARY_LINK
46
47#ifdef HPUX_USE_SHLIBS
48#define LD_SWITCH_SYSTEM_TEMACS
49#else
50#define LD_SWITCH_SYSTEM_TEMACS -Xlinker -a -Xlinker archive
51#endif
52
53#else /* not __GNUC__ */
54/* Note, -a only works for hpux ld, not cc. And "cc LD_SWITCH_SYSTEM"
55 is used in configure's $ac_link to do various autoconf checks.
56 Since we only need -a when unexec'ing, only pass in -a to
57 "ld temacs" (ghazi@caip.rutgers.edu 7/10/97). */
58#if (defined(hp9000s700) || defined(__hp9000s700))
59#ifdef HPUX_USE_SHLIBS
60#define LD_SWITCH_SYSTEM_TEMACS -L/lib/pa1.1
61#else
62#define LD_SWITCH_SYSTEM_TEMACS -a archive -L/lib/pa1.1
63#endif
64#else /* not (defined(hp9000s700) || defined(__hp9000s700)) */
65#ifdef HPUX_USE_SHLIBS
66#define LD_SWITCH_SYSTEM_TEMACS
67#else
68#define LD_SWITCH_SYSTEM_TEMACS -a archive
69#endif
70#endif /* not (defined(hp9000s700) || defined(__hp9000s700)) */
71#endif /* not __GNUC__ */
72
73/* Some hpux 8 machines seem to have TIOCGWINSZ,
74 and none have sioctl.h, so might as well define this. */
75#define NO_SIOCTL_H
76
77#if 0 /* autoconf should be detecting the presence or absence of
78 random and srandom now. */
79/* If you use X11R4 you must define this. If you use
80 X11R5 you must comment this out */
81/* #define HAVE_RANDOM */
82#define random foo_random
83#define srandom foo_srandom
84#endif
85
86#if 0 /* This seems to be spurious. */
87/* "X11R5" on hpux8 doesn't have this function, which is supposed to exist
88 in X11R5. Maybe things will work if we just don't call it. */
89#define NO_XRM_SET_DATABASE
90#endif
91
92/* Enable a special hack in XTread_socket. */
93#define X_IO_BUG
94
95/* arch-tag: 25fafe5c-b26c-43ab-8144-1629d59207ee
96 (do not change this comment) */
diff --git a/src/s/hpux9.h b/src/s/hpux9.h
deleted file mode 100644
index 9c915eb6cc2..00000000000
--- a/src/s/hpux9.h
+++ /dev/null
@@ -1,94 +0,0 @@
1/* System description file for hpux version 9.
2
3 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4 2008 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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22#include "hpux8.h"
23
24#define HPUX9
25
26/* If Emacs doesn't seem to work when built to use GNU malloc, you
27 probably need to get the latest patches to the HP/UX compiler.
28 See `etc/MACHINES' for more information. */
29#if 0
30#define SYSTEM_MALLOC 1
31#undef GNU_MALLOC
32#undef REL_ALLOC
33#endif
34
35#ifndef __GNUC__
36/* Make room for enough symbols, so dispnew.c does not fail. */
37#define C_SWITCH_SYSTEM -Wp,-H200000 -D_BSD
38#else
39#define C_SWITCH_SYSTEM -D_BSD
40#endif
41
42#if 0 /* These definitions run into a bug in hpux
43 whereby trying to disable the vdsusp character has no effect.
44 supposedly there is no particular need for this. */
45/* neal@ctd.comsat.com */
46#undef HAVE_TERMIO
47#define HAVE_TERMIOS
48#define NO_TERMIO
49#endif
50
51/* According to ngorelic@speclab.cr.usgs.gov,
52 references to the X11R4 directories in these variables
53 (inherited from hpux8.h)
54 cause the wrong libraries to be found,
55 and the options to specify the X11R5 directories are unnecessary
56 since the R5 files are found without them. */
57#undef LIB_X11_LIB
58#undef C_SWITCH_X_SYSTEM
59#undef LD_SWITCH_X_DEFAULT
60/* However, HPUX 9 has Motif includes in a strange place.
61 So search that place. These definitions assume that X11R5 is being
62 used -- if X11R4 is used, "s/hpux9-x11r4.h" gets loaded instead. */
63/* horst@tkm.physik.uni-karlsruhe.de says that the /usr/contrib/... dirs
64 are needed to find the Xmu and Xaw libraries. */
65#define C_SWITCH_X_SYSTEM -I/usr/include/X11R5 -I/usr/contrib/X11R5/include -I/usr/include/Motif1.2
66#define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R5 -L/usr/contrib/X11R5/lib -L/usr/lib/Motif1.2
67
68#ifndef HAVE_LIBXMU
69/* HP-UX doesn't supply Xmu. */
70#define LIBXMU
71
72#endif
73
74/* Assar Westerlund <assar@sics.se> says this is necessary for
75 HP-UX 10.20, and that it works for HP-UX 0 as well. */
76#define NO_EDITRES
77
78/* zoo@armadillo.com says we don't need -lXext in HPUX 9. */
79#undef LIBX11_SYSTEM
80
81/* Tested in getloadavg.c. */
82#define HAVE_PSTAT_GETDYNAMIC
83
84/* Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
85 has a broken `rint' in some library versions including math library
86 version number A.09.05.
87
88 You can fix the math library by installing patch number PHSS_4630.
89 But we can fix it more reliably for Emacs like this. */
90#undef HAVE_RINT
91
92
93/* arch-tag: 0a5e9f05-012c-4962-a222-a7a3a7fe0ab7
94 (do not change this comment) */
diff --git a/src/s/hpux9shr.h b/src/s/hpux9shr.h
deleted file mode 100644
index d273d2e7787..00000000000
--- a/src/s/hpux9shr.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#define ORDINARY_LINK
2#define HPUX_USE_SHLIBS
3#define RUN_TIME_REMAP
4
5#include "hpux9.h"
6
7#if 0 /* No longer needed, since in current GCC -g no longer does that. */
8/* We must turn off -g since it forces -static. */
9#ifdef __GNUC__
10#undef C_DEBUG_SWITCH
11#define C_DEBUG_SWITCH
12#endif
13#endif
14
15/* arch-tag: 1b259627-c5f6-4260-866f-781b06d72f6b
16 (do not change this comment) */
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index 3e043c84fc8..f617490bef2 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -22,16 +22,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
22 * Define all the symbols that apply correctly. 22 * Define all the symbols that apply correctly.
23 */ 23 */
24 24
25/* #define UNIPLUS */
26/* #define USG5 */
27/* #define USG */
28/* #define HPUX */
29/* #define UMAX */
30/* #define BSD4_1 */
31/* #define BSD4_2 */
32/* #define BSD4_3 */
33/* #define BSD_SYSTEM */
34/* #define VMS */
35#ifndef WINDOWSNT 25#ifndef WINDOWSNT
36#define WINDOWSNT 26#define WINDOWSNT
37#endif 27#endif
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 2f5280f1749..ea940e5383c 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -26,16 +26,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
26 * Define all the symbols that apply correctly. 26 * Define all the symbols that apply correctly.
27 */ 27 */
28 28
29/* #define UNIPLUS */
30/* #define USG5 */
31/* #define USG */
32/* #define HPUX */
33/* #define UMAX */
34/* #define BSD4_1 */
35/* #define BSD4_2 */
36/* #define BSD4_3 */
37/* #define BSD_SYSTEM */
38/* #define VMS */
39#ifndef MSDOS 29#ifndef MSDOS
40#define MSDOS 30#define MSDOS
41#endif 31#endif
diff --git a/src/s/netbsd.h b/src/s/netbsd.h
index a61a4e74366..0e9b0a8443d 100644
--- a/src/s/netbsd.h
+++ b/src/s/netbsd.h
@@ -19,8 +19,8 @@ You should have received a copy of the GNU General Public License
19along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 19along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20 20
21 21
22/* Get most of the stuff from bsd4.3 */ 22/* Get most of the stuff from bsd-common */
23#include "bsd4-3.h" 23#include "bsd-common.h"
24 24
25#if defined (__alpha__) && !defined (__ELF__) 25#if defined (__alpha__) && !defined (__ELF__)
26#define NO_SHARED_LIBS 26#define NO_SHARED_LIBS
diff --git a/src/s/nextstep.h b/src/s/nextstep.h
deleted file mode 100644
index 03b5d86cbb0..00000000000
--- a/src/s/nextstep.h
+++ /dev/null
@@ -1,114 +0,0 @@
1/* Configuration file for the NeXTstep system.
2 Copyright (C) 1990, 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20#include "bsd4-3.h"
21
22/* SYSTEM_TYPE should indicate the kind of system you are using.
23 It sets the Lisp variable system-type. We'll need to undo the bsd one. */
24
25#undef SYSTEM_TYPE
26#define SYSTEM_TYPE "next-mach"
27
28#ifndef NeXT
29#define NeXT
30#endif
31
32
33/* Data type of load average, as read out of kmem. */
34
35#define LOAD_AVE_TYPE long
36
37/* Convert that into an integer that is 100 for a load average of 1.0 */
38
39#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
40
41/* Defining KERNEL_FILE causes lossage because sys/file.h
42 stupidly gets confused by it. */
43#undef KERNEL_FILE
44
45#define SYSTEM_MALLOC
46
47#define environ _environ
48
49/* This should be true for recent NeXT systems. At least since 3.2. */
50#define HAVE_MACH_MACH_H
51
52#if 0 /* I think these are never used--let's see. -- rms. */
53/* Mask for address bits within a memory segment */
54
55#define SEGSIZ 0x20000
56#define SEGMENT_MASK (SEGSIZ - 1)
57
58#define HAVE_UNIX_DOMAIN
59
60/* Conflicts in process.c between ioctl.h & tty.h use of t_foo fields */
61
62#define NO_T_CHARS_DEFINES
63
64/* This avoids a problem in Xos.h when using co-Xist 3.01. */
65#define X_NOT_POSIX
66#endif /* 0 */
67
68/* Definitions for how to link. */
69
70/* Link this program just by running cc. */
71#define ORDINARY_LINK
72
73#define LD_SWITCH_SYSTEM -X
74
75/* Don't use -lc on the NeXT. */
76#ifdef NS_TARGET /* We use the dynamic libraries under Openstep for Mach 4.0 */
77#define LIB_STANDARD
78#else
79#define LIB_STANDARD -lsys_s
80#endif
81
82#define LIB_MATH -lm
83
84#define START_FILES pre-crt0.o
85
86#define LIB_X11_LIB -L/usr/lib/X11 -lX11
87
88/* We don't have a g library either, so override the -lg LIBS_DEBUG switch */
89
90#define LIBS_DEBUG
91
92/* We don't have a libgcc.a, so we can't let LIB_GCC default to -lgcc */
93
94#define LIB_GCC
95
96/* Definitions for how to dump. */
97
98#define UNEXEC unexnext.o
99
100/* start_of_text isn't actually used, so make it compile without error. */
101#define TEXT_START 0
102/* This seems to be right for end_of_text, but it may not be used anyway. */
103#define TEXT_END get_etext ()
104/* This seems to be right for end_of_data, but it may not be used anyway. */
105#define DATA_END get_edata ()
106
107/* Don't include string.h--it causes trouble. */
108#undef HAVE_STRING_H
109
110/* Tell emacs.c not to define abort. */
111#define NO_ABORT
112
113/* arch-tag: 5cd6fed4-a0be-4402-9349-85a80bc01d57
114 (do not change this comment) */
diff --git a/src/s/template.h b/src/s/template.h
index 9745d8b6d66..b79e3370b75 100644
--- a/src/s/template.h
+++ b/src/s/template.h
@@ -25,12 +25,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
25 * Define all the symbols that apply correctly. 25 * Define all the symbols that apply correctly.
26 */ 26 */
27 27
28/* #define UNIPLUS */
29/* #define USG5 */ 28/* #define USG5 */
30/* #define USG */ 29/* #define USG */
31/* #define HPUX */ 30/* #define HPUX */
32/* #define UMAX */
33/* #define BSD4_1 */
34/* #define BSD4_2 */ 31/* #define BSD4_2 */
35/* #define BSD4_3 */ 32/* #define BSD4_3 */
36/* #define BSD_SYSTEM */ 33/* #define BSD_SYSTEM */
diff --git a/src/s/ultrix4-3.h b/src/s/ultrix4-3.h
deleted file mode 100644
index 2b4f379d3d1..00000000000
--- a/src/s/ultrix4-3.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#include "bsd4-3.h"
2
3#define NEED_UNISTD_H
4#define HAVE_TERMIOS
5#define PREFER_VSUSP
6
7/* Must set the line discipline to this, to make termio work. */
8#define SET_LINE_DISCIPLINE TERMIODISC
9
10#ifndef NOT_C_CODE
11/* The address of this is used, but Ultrix header files don't declare it. */
12extern double rint ();
13#endif
14
15/* arch-tag: 927a396a-d50f-494b-960b-533671184ce1
16 (do not change this comment) */
diff --git a/src/s/usg5-0.h b/src/s/usg5-0.h
deleted file mode 100644
index 941c48dc5df..00000000000
--- a/src/s/usg5-0.h
+++ /dev/null
@@ -1,149 +0,0 @@
1/* Definitions file for GNU Emacs running on AT&T's System V.0
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27
28#define USG5
29#define USG5_0
30
31/* SYSTEM_TYPE should indicate the kind of system you are using.
32 It sets the Lisp variable system-type. */
33
34#define SYSTEM_TYPE "usg-unix-v"
35
36/* nomultiplejobs should be defined if your system's shell
37 does not have "job control" (the ability to stop a program,
38 run some other program, then continue the first one). */
39
40#define NOMULTIPLEJOBS
41
42/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
43
44/* #define INTERRUPT_INPUT */
45
46/* Letter to use in finding device name of first pty,
47 if system supports pty's. 'p' means it is /dev/ptyp0 */
48
49#define FIRST_PTY_LETTER 'p'
50
51/*
52 * Define HAVE_TERMIO if the system provides sysV-style ioctls
53 * for terminal control.
54 */
55
56#define HAVE_TERMIO
57
58/*
59 * Define HAVE_PTYS if the system supports pty devices.
60 */
61
62/* #define HAVE_PTYS */
63
64/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
65
66/* #define HAVE_SOCKETS */
67
68/*
69 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
70 * The 4.2 opendir, etc., library functions.
71 */
72
73#define NONSYSTEM_DIR_LIBRARY
74
75/* Define this symbol if your system has the functions bcopy, etc. */
76
77/* #define BSTRING */
78
79/* subprocesses should be defined if you want to
80 have code for asynchronous subprocesses
81 (as used in M-x compile and M-x shell).
82 This is supposed to work now on system V release 2. */
83
84#define subprocesses
85
86/* If your system uses COFF (Common Object File Format) then define the
87 preprocessor symbol "COFF". */
88
89#define COFF
90
91/* define MAIL_USE_FLOCK if the mailer uses flock
92 to interlock access to /usr/spool/mail/$USER.
93 The alternative is that a lock file named
94 /usr/spool/mail/$USER.lock. */
95
96/* #define MAIL_USE_FLOCK */
97
98/* Define CLASH_DETECTION if you want lock files to be written
99 so that Emacs can tell instantly when you try to modify
100 a file that someone else has modified in his Emacs. */
101
102/* #define CLASH_DETECTION */
103
104/* The file containing the kernel's symbol table is called /unix. */
105
106#define KERNEL_FILE "/unix"
107
108/* The symbol in the kernel where the load average is found
109 is named avenrun. */
110
111#define LDAV_SYMBOL "avenrun"
112
113/* Special hacks needed to make Emacs run on this system. */
114
115/*
116 * Make the sigsetmask function go away. Don't know what the
117 * ramifications of this are, but doesn't seem possible to
118 * emulate it properly anyway at this point.
119 */
120
121#define sigsetmask(mask) /* Null expansion */
122
123/* setjmp and longjmp can safely replace _setjmp and _longjmp,
124 but they will run slower. */
125
126#define _setjmp setjmp
127#define _longjmp longjmp
128
129/* On USG systems these have different names */
130
131#define index strchr
132#define rindex strrchr
133
134/* USG systems tend to put everything declared static
135 into the initialized data area, which becomes pure after dumping Emacs.
136 Foil this. Emacs carefully avoids static vars inside functions. */
137
138#define static
139
140/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
141
142#define ADDR_CORRECT(x) (x)
143
144/* Prevent -lg from being used for debugging. Not implemented? */
145
146#define LIBS_DEBUG
147
148/* arch-tag: a18bdba9-506d-40ed-9877-49fc27ce8cac
149 (do not change this comment) */
diff --git a/src/s/usg5-2-2.h b/src/s/usg5-2-2.h
deleted file mode 100644
index ae57e0f9eb3..00000000000
--- a/src/s/usg5-2-2.h
+++ /dev/null
@@ -1,152 +0,0 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 2.2
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27
28#define USG5
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "usg-unix-v"
34
35/* nomultiplejobs should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39#define NOMULTIPLEJOBS
40
41/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
42
43/* #define INTERRUPT_INPUT */
44
45/* Letter to use in finding device name of first pty,
46 if system supports pty's. 'p' means it is /dev/ptyp0 */
47
48#define FIRST_PTY_LETTER 'p'
49
50/*
51 * Define HAVE_TERMIO if the system provides sysV-style ioctls
52 * for terminal control.
53 */
54
55#define HAVE_TERMIO
56
57/*
58 * Define HAVE_PTYS if the system supports pty devices.
59 */
60
61/* #define HAVE_PTYS */
62
63/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
64
65/* #define HAVE_SOCKETS */
66
67/*
68 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
69 * The 4.2 opendir, etc., library functions.
70 */
71
72#define NONSYSTEM_DIR_LIBRARY
73
74/* Define this symbol if your system has the functions bcopy, etc. */
75
76/* #define BSTRING */
77
78/* subprocesses should be defined if you want to
79 have code for asynchronous subprocesses
80 (as used in M-x compile and M-x shell).
81 This is supposed to work now on system V release 2. */
82
83#define subprocesses
84
85/* If your system uses COFF (Common Object File Format) then define the
86 preprocessor symbol "COFF". */
87
88#define COFF
89
90/* define MAIL_USE_FLOCK if the mailer uses flock
91 to interlock access to /usr/spool/mail/$USER.
92 The alternative is that a lock file named
93 /usr/spool/mail/$USER.lock. */
94
95/* #define MAIL_USE_FLOCK */
96
97/* Define CLASH_DETECTION if you want lock files to be written
98 so that Emacs can tell instantly when you try to modify
99 a file that someone else has modified in his Emacs. */
100
101/* #define CLASH_DETECTION */
102
103/* The file containing the kernel's symbol table is called /unix. */
104
105#define KERNEL_FILE "/unix"
106
107/* The symbol in the kernel where the load average is found
108 is named avenrun. */
109
110#define LDAV_SYMBOL "avenrun"
111
112/* Special hacks needed to make Emacs run on this system. */
113
114/*
115 * Make the sigsetmask function go away. Don't know what the
116 * ramifications of this are, but doesn't seem possible to
117 * emulate it properly anyway at this point.
118 */
119
120#define sigsetmask(mask) /* Null expansion */
121
122/* setjmp and longjmp can safely replace _setjmp and _longjmp,
123 but they will run slower. */
124
125#define _setjmp setjmp
126#define _longjmp longjmp
127
128/* On USG systems these have different names */
129
130#define index strchr
131#define rindex strrchr
132
133/* USG systems tend to put everything declared static
134 into the initialized data area, which becomes pure after dumping Emacs.
135 Foil this. Emacs carefully avoids static vars inside functions. */
136
137#define static
138
139/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
140
141#define ADDR_CORRECT(x) (x)
142
143/* Prevent -lg from being used for debugging. Not implemented? */
144
145#define LIBS_DEBUG
146
147/* Use terminfo instead of termcap. */
148
149#define TERMINFO
150
151/* arch-tag: 56923f22-9e2b-4814-b922-88c87657ff6b
152 (do not change this comment) */
diff --git a/src/s/usg5-2.h b/src/s/usg5-2.h
deleted file mode 100644
index fe1a873d78a..00000000000
--- a/src/s/usg5-2.h
+++ /dev/null
@@ -1,152 +0,0 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 2.0
2 Copyright (C) 1985, 1986, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27
28#define USG5
29
30/* SYSTEM_TYPE should indicate the kind of system you are using.
31 It sets the Lisp variable system-type. */
32
33#define SYSTEM_TYPE "usg-unix-v"
34
35/* nomultiplejobs should be defined if your system's shell
36 does not have "job control" (the ability to stop a program,
37 run some other program, then continue the first one). */
38
39#define NOMULTIPLEJOBS
40
41/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
42
43/* #define INTERRUPT_INPUT */
44
45/* Letter to use in finding device name of first pty,
46 if system supports pty's. 'p' means it is /dev/ptyp0 */
47
48#define FIRST_PTY_LETTER 'p'
49
50/*
51 * Define HAVE_TERMIO if the system provides sysV-style ioctls
52 * for terminal control.
53 */
54
55#define HAVE_TERMIO
56
57/*
58 * Define HAVE_PTYS if the system supports pty devices.
59 */
60
61/* #define HAVE_PTYS */
62
63/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
64
65/* #define HAVE_SOCKETS */
66
67/*
68 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
69 * The 4.2 opendir, etc., library functions.
70 */
71
72#define NONSYSTEM_DIR_LIBRARY
73
74/* Define this symbol if your system has the functions bcopy, etc. */
75
76/* #define BSTRING */
77
78/* subprocesses should be defined if you want to
79 have code for asynchronous subprocesses
80 (as used in M-x compile and M-x shell).
81 This is supposed to work now on system V release 2. */
82
83#define subprocesses
84
85/* If your system uses COFF (Common Object File Format) then define the
86 preprocessor symbol "COFF". */
87
88#define COFF
89
90/* define MAIL_USE_FLOCK if the mailer uses flock
91 to interlock access to /usr/spool/mail/$USER.
92 The alternative is that a lock file named
93 /usr/spool/mail/$USER.lock. */
94
95/* #define MAIL_USE_FLOCK */
96
97/* Define CLASH_DETECTION if you want lock files to be written
98 so that Emacs can tell instantly when you try to modify
99 a file that someone else has modified in his Emacs. */
100
101/* #define CLASH_DETECTION */
102
103/* The file containing the kernel's symbol table is called /unix. */
104
105#define KERNEL_FILE "/unix"
106
107/* The symbol in the kernel where the load average is found
108 is named avenrun. */
109
110#define LDAV_SYMBOL "avenrun"
111
112/* Special hacks needed to make Emacs run on this system. */
113
114/*
115 * Make the sigsetmask function go away. Don't know what the
116 * ramifications of this are, but doesn't seem possible to
117 * emulate it properly anyway at this point.
118 */
119
120#define sigsetmask(mask) /* Null expansion */
121
122/* setjmp and longjmp can safely replace _setjmp and _longjmp,
123 but they will run slower. */
124
125#define _setjmp setjmp
126#define _longjmp longjmp
127
128/* On USG systems these have different names */
129
130#define index strchr
131#define rindex strrchr
132
133/* USG systems tend to put everything declared static
134 into the initialized data area, which becomes pure after dumping Emacs.
135 Foil this. Emacs carefully avoids static vars inside functions. */
136
137#define static
138
139/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
140
141#define ADDR_CORRECT(x) (x)
142
143/* Prevent -lg from being used for debugging. Not implemented? */
144
145#define LIBS_DEBUG
146
147/* Use terminfo instead of termcap. */
148
149#define TERMINFO
150
151/* arch-tag: cfd9500f-0284-4a88-8f07-3f56b42db13b
152 (do not change this comment) */
diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h
deleted file mode 100644
index 3a03f421fda..00000000000
--- a/src/s/usg5-3.h
+++ /dev/null
@@ -1,202 +0,0 @@
1/* Definitions file for GNU Emacs running on AT&T's System V Release 3
2 Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004, 2005, 2006,
3 2007, 2008 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 of the License, or
10(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
19
20
21/*
22 * Define symbols to identify the version of Unix this is.
23 * Define all the symbols that apply correctly.
24 */
25
26#define USG /* System III, System V, etc */
27
28#define USG5
29
30#define USG5_3
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 "usg-unix-v"
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. 'p' means it is /dev/ptyp0 */
49
50#define FIRST_PTY_LETTER 'p'
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/* Some versions of V.3 have this, but not all.
64 #define HAVE_PTYS
65 #define SYSV_PTYS */
66
67/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
68
69/* #define HAVE_SOCKETS */
70
71/*
72 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
73 * The 4.2 opendir, etc., library functions.
74 */
75
76/* #define NONSYSTEM_DIR_LIBRARY */
77
78/*
79 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
80 * library functions. Almost, but not quite the same as
81 * the 4.2 functions
82 */
83#define SYSV_SYSTEM_DIR
84
85/* Define this symbol if your system has the functions bcopy, etc. */
86
87/* #define BSTRING */
88
89/* subprocesses should be defined if you want to
90 have code for asynchronous subprocesses
91 (as used in M-x compile and M-x shell).
92 This is supposed to work now on system V release 2. */
93
94#define subprocesses
95
96/* If your system uses COFF (Common Object File Format) then define the
97 preprocessor symbol "COFF". */
98
99#define COFF
100
101/* define MAIL_USE_FLOCK if the mailer uses flock
102 to interlock access to /usr/spool/mail/$USER.
103 The alternative is that a lock file named
104 /usr/spool/mail/$USER.lock. */
105
106/* #define MAIL_USE_FLOCK */
107
108/* Define CLASH_DETECTION if you want lock files to be written
109 so that Emacs can tell instantly when you try to modify
110 a file that someone else has modified in his Emacs. */
111
112/* #define CLASH_DETECTION */
113
114/* The file containing the kernel's symbol table is called /unix. */
115
116#define KERNEL_FILE "/unix"
117
118/* The symbol in the kernel where the load average is found
119 is named avenrun. */
120
121#define LDAV_SYMBOL "avenrun"
122
123/* Define this if system V IPC is available. */
124
125#define HAVE_SYSVIPC
126
127/* Special hacks needed to make Emacs run on this system. */
128
129/*
130 * Make the sigsetmask function go away. Don't know what the
131 * ramifications of this are, but doesn't seem possible to
132 * emulate it properly anyway at this point.
133 */
134
135#define sigsetmask(mask) /* Null expansion */
136
137/* setjmp and longjmp can safely replace _setjmp and _longjmp,
138 but they will run slower. */
139
140#define _setjmp setjmp
141#define _longjmp longjmp
142
143/* On USG systems these have different names */
144#ifndef HAVE_INDEX
145#define index strchr
146#endif /* ! defined (HAVE_INDEX) */
147#ifndef HAVE_RINDEX
148#define rindex strrchr
149#endif /* ! defined (HAVE_RINDEX) */
150
151/* USG systems tend to put everything declared static
152 into the initialized data area, which becomes pure after dumping Emacs.
153 Foil this. Emacs carefully avoids static vars inside functions. */
154
155#define static
156
157/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
158
159#define ADDR_CORRECT(x) (x)
160
161/* Use terminfo instead of termcap. */
162
163#define TERMINFO
164
165/* Some variants have TIOCGETC, but the structures to go with it
166 are not declared. */
167
168#define BROKEN_TIOCGETC
169
170/* AT&T SVr3 X wants to be linked with shared libraries */
171
172#define LIB_X11_LIB -lX11_s
173
174/* X needs to talk on the network, so search the network library. */
175
176#define LIBX11_SYSTEM -lpt -lnls -lnsl_s -lc_s
177
178/* The docs for system V/386 suggest v.3 has sigpause,
179 so let's give it a try. */
180#define HAVE_SYSV_SIGPAUSE
181
182/* Some variants have TIOCGWINSZ, but the structures to go with it
183 are not declared. */
184
185#define BROKEN_TIOCGWINSZ
186
187/* If we're using the System V X port, BSD bstring functions will be handy */
188
189#ifdef HAVE_X_WINDOWS
190#define BSTRING
191#endif /* HAVE_X_WINDOWS */
192
193/* Enable support for shared libraries in unexec. */
194
195#define USG_SHARED_LIBRARIES
196
197/* On USG systems signal handlers return void */
198
199#define SIGTYPE void
200
201/* arch-tag: 2bca65fd-f015-44b9-a2aa-9f8170ce89ca
202 (do not change this comment) */
diff --git a/src/s/usg5-4-3.h b/src/s/usg5-4-3.h
deleted file mode 100644
index 8d05e8b3fa6..00000000000
--- a/src/s/usg5-4-3.h
+++ /dev/null
@@ -1,11 +0,0 @@
1/* s/ file for System V release 4.3. */
2
3#include "usg5-4-2.h"
4
5/* Bill_Mann@PraxisInt.com: without this switch emacs generates this error
6 on start up for an i486-ncr-sysv4.3 (running the X toolkit):
7 _XipOpenIM() Unable to find Atom _XIM_INPUTMETHOD */
8#define X11R5_INHIBIT_I18N
9
10/* arch-tag: 03ac8b3a-c3d4-4441-a773-1c1d9f111f1a
11 (do not change this comment) */
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
index 2fa70435549..79cc10ac031 100644
--- a/src/s/usg5-4.h
+++ b/src/s/usg5-4.h
@@ -24,34 +24,155 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24 24
25/* Use the SysVr3 file for at least base configuration. */ 25/* Use the SysVr3 file for at least base configuration. */
26 26
27#include "usg5-3.h" 27#define USG /* System III, System V, etc */
28 28
29#define USG5
29#define USG5_4 30#define USG5_4
30 31
31/* We do have multiple jobs. Handle ^Z. */ 32/* SYSTEM_TYPE should indicate the kind of system you are using.
33 It sets the Lisp variable system-type. */
32 34
33#undef NOMULTIPLEJOBS 35#define SYSTEM_TYPE "usg-unix-v"
34 36
35/* Motif needs -lgen. */ 37/* Default is to set interrupt_input to 0: don't do input buffering within Emacs */
36#define LIBS_SYSTEM -lsocket -lnsl -lelf -lgen
37#define ORDINARY_LINK
38 38
39#if 0 39/* #define INTERRUPT_INPUT */
40#ifdef ORDINARY_LINK 40
41#define LIB_STANDARD -lc /usr/ucblib/libucb.a 41/*
42#else 42 * Define HAVE_TERMIO if the system provides sysV-style ioctls
43#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o 43 * for terminal control.
44#define LIB_STANDARD -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o 44 */
45#endif 45
46#else 46#define HAVE_TERMIO
47
48/*
49 * Define HAVE_PTYS if the system supports pty devices.
50 */
51
52/* Some versions of V.3 have this, but not all.
53 #define HAVE_PTYS
54 #define SYSV_PTYS */
55
56/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
57
58/* #define HAVE_SOCKETS */
59
60/*
61 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
62 * The 4.2 opendir, etc., library functions.
63 */
64
65/* #define NONSYSTEM_DIR_LIBRARY */
66
67/*
68 * Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir
69 * library functions. Almost, but not quite the same as
70 * the 4.2 functions
71 */
72#define SYSV_SYSTEM_DIR
73
74/* Define this symbol if your system has the functions bcopy, etc. */
75
76/* #define BSTRING */
77
78/* subprocesses should be defined if you want to
79 have code for asynchronous subprocesses
80 (as used in M-x compile and M-x shell).
81 This is supposed to work now on system V release 2. */
82
83#define subprocesses
84
85/* If your system uses COFF (Common Object File Format) then define the
86 preprocessor symbol "COFF". */
87
88#define COFF
89
90/* define MAIL_USE_FLOCK if the mailer uses flock
91 to interlock access to /usr/spool/mail/$USER.
92 The alternative is that a lock file named
93 /usr/spool/mail/$USER.lock. */
94
95/* #define MAIL_USE_FLOCK */
96
97/* Define CLASH_DETECTION if you want lock files to be written
98 so that Emacs can tell instantly when you try to modify
99 a file that someone else has modified in his Emacs. */
100
101/* #define CLASH_DETECTION */
102
103/* The file containing the kernel's symbol table is called /unix. */
104
105#define KERNEL_FILE "/unix"
106
107/* The symbol in the kernel where the load average is found
108 is named avenrun. */
109
110#define LDAV_SYMBOL "avenrun"
111
112/* Define this if system V IPC is available. */
113
114#define HAVE_SYSVIPC
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/* setjmp and longjmp can safely replace _setjmp and _longjmp,
127 but they will run slower. */
128
129#define _setjmp setjmp
130#define _longjmp longjmp
131
132/* On USG systems these have different names */
133#ifndef HAVE_INDEX
134#define index strchr
135#endif /* ! defined (HAVE_INDEX) */
136#ifndef HAVE_RINDEX
137#define rindex strrchr
138#endif /* ! defined (HAVE_RINDEX) */
139
140/* USG systems tend to put everything declared static
141 into the initialized data area, which becomes pure after dumping Emacs.
142 Foil this. Emacs carefully avoids static vars inside functions. */
143
144#define static
145
146/* Compiler bug bites on many systems when default ADDR_CORRECT is used. */
147
148#define ADDR_CORRECT(x) (x)
149
150/* Use terminfo instead of termcap. */
151
152#define TERMINFO
153
154
155/* The docs for system V/386 suggest v.3 has sigpause,
156 so let's give it a try. */
157#define HAVE_SYSV_SIGPAUSE
158
159
160/* If we're using the System V X port, BSD bstring functions will be handy */
161
162#ifdef HAVE_X_WINDOWS
163#define BSTRING
164#endif /* HAVE_X_WINDOWS */
165
166/* Enable support for shared libraries in unexec. */
167
168#define USG_SHARED_LIBRARIES
169
170/* On USG systems signal handlers return void */
171
172#define SIGTYPE void
47 173
48#ifdef ORDINARY_LINK
49#define LIB_STANDARD
50#else
51#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o 174#define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
52#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o 175#define LIB_STANDARD -lc /usr/ccs/lib/crtn.o
53#endif
54#endif
55 176
56/* there are no -lg libraries on this system, and no libPW */ 177/* there are no -lg libraries on this system, and no libPW */
57 178
@@ -109,8 +230,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
109 230
110#define HAVE_PTYS 231#define HAVE_PTYS
111#define HAVE_TERMIOS 232#define HAVE_TERMIOS
112#undef BROKEN_TIOCGWINSZ
113#undef BROKEN_TIOCGETC
114 233
115/* It is possible to receive SIGCHLD when there are no children 234/* It is possible to receive SIGCHLD when there are no children
116 waiting, because a previous waitsys(2) cleaned up the carcass of child 235 waiting, because a previous waitsys(2) cleaned up the carcass of child
@@ -132,7 +251,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
132/* This change means that we don't loop through allocate_pty too many 251/* This change means that we don't loop through allocate_pty too many
133 times in the (rare) event of a failure. */ 252 times in the (rare) event of a failure. */
134 253
135#undef FIRST_PTY_LETTER
136#define FIRST_PTY_LETTER 'z' 254#define FIRST_PTY_LETTER 'z'
137 255
138/* This sets the name of the master side of the PTY. */ 256/* This sets the name of the master side of the PTY. */
@@ -170,16 +288,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
170 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \ 288 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
171 fatal ("ioctl I_PUSH ttcompat", errno); 289 fatal ("ioctl I_PUSH ttcompat", errno);
172 290
173/* Undo the SVr3 X11 library definition */
174#undef LIB_X11_LIB
175
176/* The definition of this in s-usg5-3.h is not needed in 5.4. */
177/* liblnsl_s should never be used. The _s suffix implies a shared
178 library, as opposed to a DLL. Share libraries were used in SVR3, and are
179 available only in order to allow SVR3 binaries to run. They should not be
180 linked in to new binaries. -- caraway!pinkas@caraway.intel.com. */
181#undef LIBX11_SYSTEM
182
183/* Tell x11term.c and keyboard.c we have the system V streams feature. */ 291/* Tell x11term.c and keyboard.c we have the system V streams feature. */
184#define SYSV_STREAMS 292#define SYSV_STREAMS
185 293
@@ -189,7 +297,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
189 297
190/* Markus Weiand <weiand@khof.com> says this is needed for Motif on 298/* Markus Weiand <weiand@khof.com> says this is needed for Motif on
191 SINIX. */ 299 SINIX. */
192#undef LIBS_SYSTEM
193#define LIBS_SYSTEM -lgen 300#define LIBS_SYSTEM -lgen
194 301
195/* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6 302/* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6
diff --git a/src/s/ux4800.h b/src/s/ux4800.h
deleted file mode 100644
index 1c8729f416b..00000000000
--- a/src/s/ux4800.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/* Definitions file for GNU Emacs running on NEC's UX/4800 (SVR4.2MP) */
2#include "usg5-4-2.h"
3#undef LIB_MOTIF
4#ifndef nec_ews
5#define nec_ews
6#endif
7#ifndef nec_ews_svr4
8#define nec_ews_svr4
9#endif
10#define XOS_NEEDS_TIME_H
11#define HAVE_CLOCK
12#ifdef __STDC__
13#define MKDIR_PROTOTYPE int mkdir(char *dpath, mode_t dmode)
14#endif
15#ifndef __GNUC__
16#define C_DEBUG_SWITCH -O -KOlimit=3000 -ZXNd=5000
17#endif
18
19/* arch-tag: e42eeb13-028a-490b-8427-0b57010f2ab9
20 (do not change this comment) */
diff --git a/src/s/uxpds.h b/src/s/uxpds.h
deleted file mode 100644
index c3ddf1039c1..00000000000
--- a/src/s/uxpds.h
+++ /dev/null
@@ -1,11 +0,0 @@
1/* Handle uxpds */
2
3#include "usg5-4-2.h"
4
5/* This triggers a conditional in xfaces.c. */
6#define XOS_NEEDS_TIME_H
7
8#define FSCALE 256
9
10/* arch-tag: c02db2a6-c725-4a6b-adee-66e0303df2a8
11 (do not change this comment) */
diff --git a/src/s/uxpv.h b/src/s/uxpv.h
deleted file mode 100644
index 95715455984..00000000000
--- a/src/s/uxpv.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/* System description file for Fujitsu UXP/V
2 This file describes the parameters that system description files
3 should define or not. */
4
5#include "usg5-4-2.h"
6
7/* SYSTEM_TYPE should indicate the kind of system you are using.
8 It sets the Lisp variable system-type. */
9
10#undef SYSTEM_TYPE
11#define SYSTEM_TYPE "uxpv"
12
13/* arch-tag: 3f00cfe7-f44c-45ce-a2fe-2b17fc411a1e
14 (do not change this comment) */
diff --git a/src/sysdep.c b/src/sysdep.c
index bac8a638182..c2a7d1a0815 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -206,10 +206,6 @@ struct utimbuf {
206#define LPASS8 0 206#define LPASS8 0
207#endif 207#endif
208 208
209#ifdef BSD4_1
210#define LNOFLSH 0100000
211#endif
212
213static int baud_convert[] = 209static int baud_convert[] =
214#ifdef BAUD_CONVERT 210#ifdef BAUD_CONVERT
215 BAUD_CONVERT; 211 BAUD_CONVERT;
@@ -235,11 +231,6 @@ int emacs_ospeed;
235 231
236void croak P_ ((char *)) NO_RETURN; 232void croak P_ ((char *)) NO_RETURN;
237 233
238#ifdef AIXHFT
239void hft_init P_ ((struct tty_display_info *));
240void hft_reset P_ ((struct tty_display_info *));
241#endif
242
243/* Temporary used by `sigblock' when defined in terms of signprocmask. */ 234/* Temporary used by `sigblock' when defined in terms of signprocmask. */
244 235
245SIGMASKTYPE sigprocmask_set; 236SIGMASKTYPE sigprocmask_set;
@@ -483,7 +474,7 @@ wait_for_termination (pid)
483 status = SYS$FORCEX (&pid, 0, 0); 474 status = SYS$FORCEX (&pid, 0, 0);
484 break; 475 break;
485#else /* not VMS */ 476#else /* not VMS */
486#if defined (BSD_SYSTEM) || (defined (HPUX) && !defined (HPUX_5)) 477#if defined (BSD_SYSTEM) || defined (HPUX)
487 /* Note that kill returns -1 even if the process is just a zombie now. 478 /* Note that kill returns -1 even if the process is just a zombie now.
488 But inevitably a SIGCHLD interrupt should be generated 479 But inevitably a SIGCHLD interrupt should be generated
489 and child_sig will do wait3 and make the process go away. */ 480 and child_sig will do wait3 and make the process go away. */
@@ -542,16 +533,9 @@ wait_for_termination (pid)
542#if __DJGPP__ > 1 533#if __DJGPP__ > 1
543 break; 534 break;
544#else /* not __DJGPP__ > 1 */ 535#else /* not __DJGPP__ > 1 */
545#ifndef BSD4_1
546 if (kill (pid, 0) < 0) 536 if (kill (pid, 0) < 0)
547 break; 537 break;
548 wait (0); 538 wait (0);
549#else /* BSD4_1 */
550 int status;
551 status = wait (0);
552 if (status == pid || status == -1)
553 break;
554#endif /* BSD4_1 */
555#endif /* not __DJGPP__ > 1*/ 539#endif /* not __DJGPP__ > 1*/
556#endif /* not subprocesses */ 540#endif /* not subprocesses */
557 } 541 }
@@ -695,10 +679,6 @@ child_setup_tty (out)
695 679
696 EMACS_SET_TTY (out, &s, 0); 680 EMACS_SET_TTY (out, &s, 0);
697 681
698#ifdef BSD4_1
699 if (interrupt_input)
700 reset_sigio (0);
701#endif /* BSD4_1 */
702#endif /* not DOS_NT */ 682#endif /* not DOS_NT */
703} 683}
704#endif /* not VMS */ 684#endif /* not VMS */
@@ -1267,12 +1247,6 @@ emacs_set_tty (fd, settings, flushp)
1267 1247
1268 1248
1269 1249
1270#ifdef BSD4_1
1271/* BSD 4.1 needs to keep track of the lmode bits in order to start
1272 sigio. */
1273int lmode;
1274#endif
1275
1276#ifdef F_SETOWN 1250#ifdef F_SETOWN
1277int old_fcntl_owner[MAXDESC]; 1251int old_fcntl_owner[MAXDESC];
1278#endif /* F_SETOWN */ 1252#endif /* F_SETOWN */
@@ -1281,15 +1255,11 @@ int old_fcntl_owner[MAXDESC];
1281 but if so, this does no harm, 1255 but if so, this does no harm,
1282 and using the same name avoids wasting the other one's space. */ 1256 and using the same name avoids wasting the other one's space. */
1283 1257
1284#ifdef nec_ews_svr4
1285extern char *_sobuf ;
1286#else
1287#if defined (USG) || defined (DGUX) 1258#if defined (USG) || defined (DGUX)
1288unsigned char _sobuf[BUFSIZ+8]; 1259unsigned char _sobuf[BUFSIZ+8];
1289#else 1260#else
1290char _sobuf[BUFSIZ]; 1261char _sobuf[BUFSIZ];
1291#endif 1262#endif
1292#endif
1293 1263
1294#ifdef HAVE_LTCHARS 1264#ifdef HAVE_LTCHARS
1295static struct ltchars new_ltchars = {-1,-1,-1,-1,-1,-1}; 1265static struct ltchars new_ltchars = {-1,-1,-1,-1,-1,-1};
@@ -1495,11 +1465,6 @@ init_sys_modes (tty_out)
1495 } 1465 }
1496#endif /* mips or HAVE_TCATTR */ 1466#endif /* mips or HAVE_TCATTR */
1497 1467
1498#ifdef SET_LINE_DISCIPLINE
1499 /* Need to explicitly request TERMIODISC line discipline or
1500 Ultrix's termios does not work correctly. */
1501 tty.main.c_line = SET_LINE_DISCIPLINE;
1502#endif
1503#ifdef AIX 1468#ifdef AIX
1504#ifndef IBMR2AIX 1469#ifndef IBMR2AIX
1505 /* AIX enhanced edit loses NULs, so disable it. */ 1470 /* AIX enhanced edit loses NULs, so disable it. */
@@ -1566,16 +1531,7 @@ init_sys_modes (tty_out)
1566 } 1531 }
1567 1532
1568 tty.lmode = LDECCTQ | LLITOUT | LPASS8 | LNOFLSH | tty_out->old_tty.lmode; 1533 tty.lmode = LDECCTQ | LLITOUT | LPASS8 | LNOFLSH | tty_out->old_tty.lmode;
1569#ifdef ultrix
1570 /* Under Ultrix 4.2a, leaving this out doesn't seem to hurt
1571 anything, and leaving it in breaks the meta key. Go figure. */
1572 tty.lmode &= ~LLITOUT;
1573#endif
1574 1534
1575#ifdef BSD4_1
1576 lmode = tty.lmode;
1577#endif
1578
1579#endif /* HAVE_TCHARS */ 1535#endif /* HAVE_TCHARS */
1580#endif /* not HAVE_TERMIO */ 1536#endif /* not HAVE_TERMIO */
1581 1537
@@ -1600,26 +1556,12 @@ init_sys_modes (tty_out)
1600 if (!tty_out->flow_control) ioctl (fileno (tty_out->input), TIOCSTART, 0); 1556 if (!tty_out->flow_control) ioctl (fileno (tty_out->input), TIOCSTART, 0);
1601#endif 1557#endif
1602 1558
1603#if defined (HAVE_TERMIOS) || defined (HPUX9) 1559#if defined (HAVE_TERMIOS) || defined (HPUX)
1604#ifdef TCOON 1560#ifdef TCOON
1605 if (!tty_out->flow_control) tcflow (fileno (tty_out->input), TCOON); 1561 if (!tty_out->flow_control) tcflow (fileno (tty_out->input), TCOON);
1606#endif 1562#endif
1607#endif 1563#endif
1608 1564
1609#ifdef AIXHFT
1610 hft_init (tty_out);
1611#ifdef IBMR2AIX
1612 {
1613 /* IBM's HFT device usually thinks a ^J should be LF/CR. We need it
1614 to be only LF. This is the way that is done. */
1615 struct termio tty;
1616
1617 if (ioctl (1, HFTGETID, &tty) != -1)
1618 write (1, "\033[20l", 5);
1619 }
1620#endif
1621#endif /* AIXHFT */
1622
1623#ifdef VMS 1565#ifdef VMS
1624/* Appears to do nothing when in PASTHRU mode. 1566/* Appears to do nothing when in PASTHRU mode.
1625 SYS$QIOW (0, fileno (tty_out->input), IO$_SETMODE|IO$M_OUTBAND, 0, 0, 0, 1567 SYS$QIOW (0, fileno (tty_out->input), IO$_SETMODE|IO$M_OUTBAND, 0, 0, 0,
@@ -1649,11 +1591,6 @@ init_sys_modes (tty_out)
1649#endif /* F_GETOWN */ 1591#endif /* F_GETOWN */
1650#endif /* F_SETFL */ 1592#endif /* F_SETFL */
1651 1593
1652#ifdef BSD4_1
1653 if (interrupt_input)
1654 init_sigio (fileno (tty_out->input));
1655#endif
1656
1657#ifdef VMS /* VMS sometimes has this symbol but lacks setvbuf. */ 1594#ifdef VMS /* VMS sometimes has this symbol but lacks setvbuf. */
1658#undef _IOFBF 1595#undef _IOFBF
1659#endif 1596#endif
@@ -1868,26 +1805,13 @@ reset_sys_modes (tty_out)
1868 cmgoto (tty_out, FrameRows (tty_out) - 1, 0); 1805 cmgoto (tty_out, FrameRows (tty_out) - 1, 0);
1869 fflush (tty_out->output); 1806 fflush (tty_out->output);
1870 1807
1871#if defined (IBMR2AIX) && defined (AIXHFT)
1872 {
1873 /* HFT devices normally use ^J as a LF/CR. We forced it to
1874 do the LF only. Now, we need to reset it. */
1875 struct termio tty;
1876
1877 if (ioctl (1, HFTGETID, &tty) != -1)
1878 write (1, "\033[20h", 5);
1879 }
1880#endif
1881
1882 if (tty_out->terminal->reset_terminal_modes_hook) 1808 if (tty_out->terminal->reset_terminal_modes_hook)
1883 tty_out->terminal->reset_terminal_modes_hook (tty_out->terminal); 1809 tty_out->terminal->reset_terminal_modes_hook (tty_out->terminal);
1884 1810
1885#ifdef BSD_SYSTEM 1811#ifdef BSD_SYSTEM
1886#ifndef BSD4_1
1887 /* Avoid possible loss of output when changing terminal modes. */ 1812 /* Avoid possible loss of output when changing terminal modes. */
1888 fsync (fileno (tty_out->output)); 1813 fsync (fileno (tty_out->output));
1889#endif 1814#endif
1890#endif
1891 1815
1892#ifdef F_SETFL 1816#ifdef F_SETFL
1893#ifdef F_SETOWN /* F_SETFL does not imply existence of F_SETOWN */ 1817#ifdef F_SETOWN /* F_SETFL does not imply existence of F_SETOWN */
@@ -1903,10 +1827,6 @@ reset_sys_modes (tty_out)
1903 fcntl (fileno (tty_out->input), F_GETFL, 0) & ~O_NDELAY); 1827 fcntl (fileno (tty_out->input), F_GETFL, 0) & ~O_NDELAY);
1904#endif 1828#endif
1905#endif /* F_SETFL */ 1829#endif /* F_SETFL */
1906#ifdef BSD4_1
1907 if (interrupt_input)
1908 reset_sigio (fileno (tty_out->input));
1909#endif /* BSD4_1 */
1910 1830
1911 if (tty_out->old_tty) 1831 if (tty_out->old_tty)
1912 while (EMACS_SET_TTY (fileno (tty_out->input), 1832 while (EMACS_SET_TTY (fileno (tty_out->input),
@@ -1917,17 +1837,6 @@ reset_sys_modes (tty_out)
1917 dos_ttcooked (); 1837 dos_ttcooked ();
1918#endif 1838#endif
1919 1839
1920#ifdef SET_LINE_DISCIPLINE
1921 /* Ultrix's termios *ignores* any line discipline except TERMIODISC.
1922 A different old line discipline is therefore not restored, yet.
1923 Restore the old line discipline by hand. */
1924 ioctl (0, TIOCSETD, &tty_out->old_tty.main.c_line);
1925#endif
1926
1927#ifdef AIXHFT
1928 hft_reset ();
1929#endif
1930
1931#ifdef BSD_PGRPS 1840#ifdef BSD_PGRPS
1932 widen_foreground_group (fileno (tty_out->input)); 1841 widen_foreground_group (fileno (tty_out->input));
1933#endif 1842#endif
@@ -2318,20 +2227,14 @@ start_of_data ()
2318/* init_system_name sets up the string for the Lisp function 2227/* init_system_name sets up the string for the Lisp function
2319 system-name to return. */ 2228 system-name to return. */
2320 2229
2321#ifdef BSD4_1
2322#include <whoami.h>
2323#endif
2324
2325extern Lisp_Object Vsystem_name; 2230extern Lisp_Object Vsystem_name;
2326 2231
2327#ifndef BSD4_1
2328#ifndef VMS 2232#ifndef VMS
2329#ifdef HAVE_SOCKETS 2233#ifdef HAVE_SOCKETS
2330#include <sys/socket.h> 2234#include <sys/socket.h>
2331#include <netdb.h> 2235#include <netdb.h>
2332#endif /* HAVE_SOCKETS */ 2236#endif /* HAVE_SOCKETS */
2333#endif /* not VMS */ 2237#endif /* not VMS */
2334#endif /* not BSD4_1 */
2335 2238
2336#ifdef TRY_AGAIN 2239#ifdef TRY_AGAIN
2337#ifndef HAVE_H_ERRNO 2240#ifndef HAVE_H_ERRNO
@@ -2342,9 +2245,6 @@ extern int h_errno;
2342void 2245void
2343init_system_name () 2246init_system_name ()
2344{ 2247{
2345#ifdef BSD4_1
2346 Vsystem_name = build_string (sysname);
2347#else
2348#ifdef VMS 2248#ifdef VMS
2349 char *sp, *end; 2249 char *sp, *end;
2350 if ((sp = egetenv ("SYS$NODE")) == 0) 2250 if ((sp = egetenv ("SYS$NODE")) == 0)
@@ -2525,7 +2425,6 @@ init_system_name ()
2525 Vsystem_name = build_string (hostname); 2425 Vsystem_name = build_string (hostname);
2526#endif /* HAVE_GETHOSTNAME */ 2426#endif /* HAVE_GETHOSTNAME */
2527#endif /* VMS */ 2427#endif /* VMS */
2528#endif /* BSD4_1 */
2529 { 2428 {
2530 unsigned char *p; 2429 unsigned char *p;
2531 for (p = SDATA (Vsystem_name); *p; p++) 2430 for (p = SDATA (Vsystem_name); *p; p++)
@@ -2567,11 +2466,7 @@ SIGTYPE
2567select_alarm () 2466select_alarm ()
2568{ 2467{
2569 select_alarmed = 1; 2468 select_alarmed = 1;
2570#ifdef BSD4_1
2571 sigrelse (SIGALRM);
2572#else /* not BSD4_1 */
2573 signal (SIGALRM, SIG_IGN); 2469 signal (SIGALRM, SIG_IGN);
2574#endif /* not BSD4_1 */
2575 SIGNAL_THREAD_CHECK (SIGALRM); 2470 SIGNAL_THREAD_CHECK (SIGALRM);
2576 if (read_alarm_should_throw) 2471 if (read_alarm_should_throw)
2577 longjmp (read_alarm_throw, 1); 2472 longjmp (read_alarm_throw, 1);
@@ -2782,93 +2677,6 @@ read_input_waiting ()
2782#endif /* not VMS */ 2677#endif /* not VMS */
2783#endif /* not MSDOS */ 2678#endif /* not MSDOS */
2784 2679
2785#ifdef BSD4_1
2786void
2787init_sigio (fd)
2788 int fd;
2789{
2790 if (noninteractive)
2791 return;
2792 lmode = LINTRUP | lmode;
2793 ioctl (fd, TIOCLSET, &lmode);
2794}
2795
2796void
2797reset_sigio (fd)
2798 int fd;
2799{
2800 if (noninteractive)
2801 return;
2802 lmode = ~LINTRUP & lmode;
2803 ioctl (fd, TIOCLSET, &lmode);
2804}
2805
2806void
2807request_sigio ()
2808{
2809 if (noninteractive)
2810 return;
2811 sigrelse (SIGTINT);
2812
2813 interrupts_deferred = 0;
2814}
2815
2816void
2817unrequest_sigio ()
2818{
2819 if (noninteractive)
2820 return;
2821 sighold (SIGTINT);
2822
2823 interrupts_deferred = 1;
2824}
2825
2826/* still inside #ifdef BSD4_1 */
2827#ifdef subprocesses
2828
2829int sigheld; /* Mask of held signals */
2830
2831void
2832sigholdx (signum)
2833 int signum;
2834{
2835 sigheld |= sigbit (signum);
2836 sighold (signum);
2837}
2838
2839void
2840sigisheld (signum)
2841 int signum;
2842{
2843 sigheld |= sigbit (signum);
2844}
2845
2846void
2847sigunhold (signum)
2848 int signum;
2849{
2850 sigheld &= ~sigbit (signum);
2851 sigrelse (signum);
2852}
2853
2854void
2855sigfree () /* Free all held signals */
2856{
2857 int i;
2858 for (i = 0; i < NSIG; i++)
2859 if (sigheld & sigbit (i))
2860 sigrelse (i);
2861 sigheld = 0;
2862}
2863
2864int
2865sigbit (i)
2866{
2867 return 1 << (i - 1);
2868}
2869#endif /* subprocesses */
2870#endif /* BSD4_1 */
2871
2872/* POSIX signals support - DJB */ 2680/* POSIX signals support - DJB */
2873/* Anyone with POSIX signals should have ANSI C declarations */ 2681/* Anyone with POSIX signals should have ANSI C declarations */
2874 2682
@@ -3327,11 +3135,6 @@ emacs_open (path, oflag, mode)
3327{ 3135{
3328 register int rtnval; 3136 register int rtnval;
3329 3137
3330#ifdef BSD4_1
3331 if (oflag & O_CREAT)
3332 return creat (path, mode);
3333#endif
3334
3335 while ((rtnval = open (path, oflag, mode)) == -1 3138 while ((rtnval = open (path, oflag, mode)) == -1
3336 && (errno == EINTR)) 3139 && (errno == EINTR))
3337 QUIT; 3140 QUIT;
@@ -5189,100 +4992,6 @@ srandom (seed)
5189} 4992}
5190#endif /* VMS */ 4993#endif /* VMS */
5191 4994
5192#ifdef AIXHFT
5193
5194/* Called from init_sys_modes. */
5195void
5196hft_init (struct tty_display_info *tty_out)
5197{
5198 int junk;
5199
5200 /* If we're not on an HFT we shouldn't do any of this. We determine
5201 if we are on an HFT by trying to get an HFT error code. If this
5202 call fails, we're not on an HFT. */
5203#ifdef IBMR2AIX
5204 if (ioctl (0, HFQERROR, &junk) < 0)
5205 return;
5206#else /* not IBMR2AIX */
5207 if (ioctl (0, HFQEIO, 0) < 0)
5208 return;
5209#endif /* not IBMR2AIX */
5210
5211 /* On AIX the default hft keyboard mapping uses backspace rather than delete
5212 as the rubout key's ASCII code. Here this is changed. The bug is that
5213 there's no way to determine the old mapping, so in reset_sys_modes
5214 we need to assume that the normal map had been present. Of course, this
5215 code also doesn't help if on a terminal emulator which doesn't understand
5216 HFT VTD's. */
5217 {
5218 struct hfbuf buf;
5219 struct hfkeymap keymap;
5220
5221 buf.hf_bufp = (char *)&keymap;
5222 buf.hf_buflen = sizeof (keymap);
5223 keymap.hf_nkeys = 2;
5224 keymap.hfkey[0].hf_kpos = 15;
5225 keymap.hfkey[0].hf_kstate = HFMAPCHAR | HFSHFNONE;
5226#ifdef IBMR2AIX
5227 keymap.hfkey[0].hf_keyidh = '<';
5228#else /* not IBMR2AIX */
5229 keymap.hfkey[0].hf_page = '<';
5230#endif /* not IBMR2AIX */
5231 keymap.hfkey[0].hf_char = 127;
5232 keymap.hfkey[1].hf_kpos = 15;
5233 keymap.hfkey[1].hf_kstate = HFMAPCHAR | HFSHFSHFT;
5234#ifdef IBMR2AIX
5235 keymap.hfkey[1].hf_keyidh = '<';
5236#else /* not IBMR2AIX */
5237 keymap.hfkey[1].hf_page = '<';
5238#endif /* not IBMR2AIX */
5239 keymap.hfkey[1].hf_char = 127;
5240 hftctl (0, HFSKBD, &buf);
5241 }
5242}
5243
5244/* Reset the rubout key to backspace. */
5245
5246void
5247hft_reset (struct tty_display_info *tty_out)
5248{
5249 struct hfbuf buf;
5250 struct hfkeymap keymap;
5251 int junk;
5252
5253#ifdef IBMR2AIX
5254 if (ioctl (0, HFQERROR, &junk) < 0)
5255 return;
5256#else /* not IBMR2AIX */
5257 if (ioctl (0, HFQEIO, 0) < 0)
5258 return;
5259#endif /* not IBMR2AIX */
5260
5261 buf.hf_bufp = (char *)&keymap;
5262 buf.hf_buflen = sizeof (keymap);
5263 keymap.hf_nkeys = 2;
5264 keymap.hfkey[0].hf_kpos = 15;
5265 keymap.hfkey[0].hf_kstate = HFMAPCHAR | HFSHFNONE;
5266#ifdef IBMR2AIX
5267 keymap.hfkey[0].hf_keyidh = '<';
5268#else /* not IBMR2AIX */
5269 keymap.hfkey[0].hf_page = '<';
5270#endif /* not IBMR2AIX */
5271 keymap.hfkey[0].hf_char = 8;
5272 keymap.hfkey[1].hf_kpos = 15;
5273 keymap.hfkey[1].hf_kstate = HFMAPCHAR | HFSHFSHFT;
5274#ifdef IBMR2AIX
5275 keymap.hfkey[1].hf_keyidh = '<';
5276#else /* not IBMR2AIX */
5277 keymap.hfkey[1].hf_page = '<';
5278#endif /* not IBMR2AIX */
5279 keymap.hfkey[1].hf_char = 8;
5280 hftctl (0, HFSKBD, &buf);
5281}
5282
5283#endif /* AIXHFT */
5284
5285
5286#ifndef BSTRING 4995#ifndef BSTRING
5287 4996
5288#ifndef bzero 4997#ifndef bzero
diff --git a/src/syssignal.h b/src/syssignal.h
index 6aeb0ad768c..9451fa22f7e 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -143,9 +143,7 @@ extern SIGMASKTYPE sigprocmask_set;
143{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); } 143{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
144#endif 144#endif
145 145
146#ifndef BSD4_1
147#define sigfree() sigsetmask (SIGEMPTYMASK) 146#define sigfree() sigsetmask (SIGEMPTYMASK)
148#endif /* not BSD4_1 */
149 147
150#if defined (SIGINFO) && defined (BROKEN_SIGINFO) 148#if defined (SIGINFO) && defined (BROKEN_SIGINFO)
151#undef SIGINFO 149#undef SIGINFO
@@ -180,11 +178,6 @@ extern SIGMASKTYPE sigprocmask_set;
180# define NSIG NSIG_MINIMUM 178# define NSIG NSIG_MINIMUM
181#endif 179#endif
182 180
183#ifdef BSD4_1
184#define SIGIO SIGTINT
185/* sigfree is in sysdep.c */
186#endif /* BSD4_1 */
187
188/* On bsd, [man says] kill does not accept a negative number to kill a pgrp. 181/* On bsd, [man says] kill does not accept a negative number to kill a pgrp.
189 Must do that using the killpg call. */ 182 Must do that using the killpg call. */
190#ifdef BSD_SYSTEM 183#ifdef BSD_SYSTEM
diff --git a/src/systty.h b/src/systty.h
index 4623a2ccebe..4d9bd792a3c 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -93,19 +93,6 @@ static struct sensemode {
93#include <termios.h> 93#include <termios.h>
94#endif 94#endif
95 95
96#ifdef AIXHFT
97/* Get files for keyboard remapping */
98#define HFNKEYS 2
99#include <sys/hft.h>
100#include <sys/devinfo.h>
101#endif
102
103/* Get rid of LLITOUT in 4.1, since it is said to stimulate kernel bugs. */
104#ifdef BSD4_1
105#undef LLITOUT
106#define LLITOUT 0
107#endif /* 4.1 */
108
109#ifdef NEED_BSDTTY 96#ifdef NEED_BSDTTY
110#include <sys/bsdtty.h> 97#include <sys/bsdtty.h>
111#endif 98#endif
diff --git a/src/syswait.h b/src/syswait.h
index 786cb622262..8079737343c 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -91,11 +91,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
91 91
92#else 92#else
93 93
94#ifdef BSD4_1
95#include <wait.h>
96#else
97#include <sys/wait.h> 94#include <sys/wait.h>
98#endif /* not BSD 4.1 */
99 95
100#define WAITTYPE union wait 96#define WAITTYPE union wait
101#define WRETCODE(w) w.w_retcode 97#define WRETCODE(w) w.w_retcode
diff --git a/src/term.c b/src/term.c
index 533104dc040..f08b800163c 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3801,13 +3801,6 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.",
3801 3801
3802 init_baud_rate (fileno (tty->input)); 3802 init_baud_rate (fileno (tty->input));
3803 3803
3804#ifdef AIXHFT
3805 /* The HFT system on AIX doesn't optimize for scrolling, so it's
3806 really ugly at times. */
3807 terminal->line_ins_del_ok = 0;
3808 terminal->char_ins_del_ok = 0;
3809#endif
3810
3811 /* Don't do this. I think termcap may still need the buffer. */ 3804 /* Don't do this. I think termcap may still need the buffer. */
3812 /* xfree (buffer); */ 3805 /* xfree (buffer); */
3813 3806
diff --git a/src/unexec.c b/src/unexec.c
index 93fc603ac30..6b46c00150e 100644
--- a/src/unexec.c
+++ b/src/unexec.c
@@ -197,7 +197,7 @@ struct aouthdr
197#include <sys/stat.h> 197#include <sys/stat.h>
198#include <errno.h> 198#include <errno.h>
199 199
200#include <sys/file.h> /* Must be after sys/types.h for USG and BSD4_1*/ 200#include <sys/file.h> /* Must be after sys/types.h for USG*/
201 201
202#ifdef USG5 202#ifdef USG5
203#include <fcntl.h> 203#include <fcntl.h>
diff --git a/src/unexelf.c b/src/unexelf.c
index db05c55fb8d..199352d4e6e 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -433,9 +433,6 @@ extern void fatal (const char *msgid, ...);
433#if __sgi 433#if __sgi
434#include <syms.h> /* for HDRR declaration */ 434#include <syms.h> /* for HDRR declaration */
435#endif /* __sgi */ 435#endif /* __sgi */
436#ifdef BROKEN_NOCOMBRELOC
437#include <assert.h>
438#endif
439 436
440#ifndef MAP_ANON 437#ifndef MAP_ANON
441#ifdef MAP_ANONYMOUS 438#ifdef MAP_ANONYMOUS
@@ -690,9 +687,6 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
690 int old_mdebug_index; 687 int old_mdebug_index;
691 struct stat stat_buf; 688 struct stat stat_buf;
692 int old_file_size; 689 int old_file_size;
693#ifdef BROKEN_NOCOMBRELOC
694 int unreloc_sections[10], n_unreloc_sections;
695#endif
696 690
697 /* Open the old file, allocate a buffer of the right size, and read 691 /* Open the old file, allocate a buffer of the right size, and read
698 in the file contents. */ 692 in the file contents. */
@@ -982,23 +976,11 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
982 section just before .bss has less-strict alignment; this 976 section just before .bss has less-strict alignment; this
983 was observed between .symtab and .bss on Solaris 2.5.1 977 was observed between .symtab and .bss on Solaris 2.5.1
984 (sparc) with GCC snapshot 960602. */ 978 (sparc) with GCC snapshot 960602. */
985#ifdef SOLARIS_POWERPC 979
986 /* On PPC Reference Platform running Solaris 2.5.1
987 the plt section is also of type NOBI like the bss section.
988 (not really stored) and therefore sections after the bss
989 section start at the plt offset. The plt section is always
990 the one just before the bss section.
991 It would be better to put the new data section before
992 the .plt section, or use libelf instead.
993 Erik Deumens, deumens@qtp.ufl.edu. */
994 if (NEW_SECTION_H (nn).sh_offset
995 >= OLD_SECTION_H (old_bss_index-1).sh_offset)
996 NEW_SECTION_H (nn).sh_offset += new_data2_size;
997#else
998 if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size 980 if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size
999 > new_data2_offset) 981 > new_data2_offset)
1000 NEW_SECTION_H (nn).sh_offset += new_data2_size; 982 NEW_SECTION_H (nn).sh_offset += new_data2_size;
1001#endif 983
1002 /* Any section that was originally placed after the section 984 /* Any section that was originally placed after the section
1003 header table should now be off by the size of one section 985 header table should now be off by the size of one section
1004 header table entry. */ 986 header table entry. */
@@ -1224,7 +1206,6 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
1224 1206
1225 /* This loop seeks out relocation sections for the data section, so 1207 /* This loop seeks out relocation sections for the data section, so
1226 that it can undo relocations performed by the runtime linker. */ 1208 that it can undo relocations performed by the runtime linker. */
1227#ifndef BROKEN_NOCOMBRELOC
1228 for (n = new_file_h->e_shnum - 1; n; n--) 1209 for (n = new_file_h->e_shnum - 1; n; n--)
1229 { 1210 {
1230 ElfW(Shdr) section = NEW_SECTION_H (n); 1211 ElfW(Shdr) section = NEW_SECTION_H (n);
@@ -1279,81 +1260,6 @@ unexec (new_name, old_name, data_start, bss_start, entry_address)
1279 break; 1260 break;
1280 } 1261 }
1281 } 1262 }
1282#else /* BROKEN_NOCOMBRELOC */
1283 for (n = 1, n_unreloc_sections = 0; n < new_file_h->e_shnum; n++)
1284 if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data")
1285 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".sdata")
1286 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".lit4")
1287 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".lit8")
1288#ifdef IRIX6_5 /* see above */
1289 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".got")
1290#endif
1291 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".sdata1")
1292 || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data1"))
1293 {
1294 assert (n_unreloc_sections
1295 < (sizeof (unreloc_sections) / sizeof (unreloc_sections[0])));
1296 unreloc_sections[n_unreloc_sections++] = n;
1297#ifdef DEBUG
1298 fprintf (stderr, "section %d: %s\n", n,
1299 old_section_names + NEW_SECTION_H (n).sh_name);
1300#endif
1301 }
1302
1303 for (n = new_file_h->e_shnum - 1; n; n--)
1304 {
1305 ElfW(Shdr) section = NEW_SECTION_H (n);
1306 caddr_t reloc, end;
1307 ElfW(Addr) addr, offset;
1308 int target;
1309
1310 switch (section.sh_type)
1311 {
1312 default:
1313 break;
1314 case SHT_REL:
1315 case SHT_RELA:
1316 /* This code handles two different size structs, but there should
1317 be no harm in that provided that r_offset is always the first
1318 member. */
1319 for (reloc = old_base + section.sh_offset,
1320 end = reloc + section.sh_size;
1321 reloc < end;
1322 reloc += section.sh_entsize)
1323 {
1324 addr = ((ElfW(Rel) *) reloc)->r_offset;
1325#ifdef __alpha__
1326 /* The Alpha ELF binutils currently have a bug that
1327 sometimes results in relocs that contain all
1328 zeroes. Work around this for now... */
1329 if (addr == 0)
1330 continue;
1331#endif
1332 for (nn = 0; nn < n_unreloc_sections; nn++)
1333 {
1334 target = unreloc_sections[nn];
1335 if (NEW_SECTION_H (target).sh_addr <= addr
1336 && addr < (NEW_SECTION_H (target).sh_addr +
1337 NEW_SECTION_H (target).sh_size))
1338 {
1339 offset = (NEW_SECTION_H (target).sh_addr -
1340 NEW_SECTION_H (target).sh_offset);
1341 memcpy (new_base + addr - offset,
1342 old_base + addr - offset,
1343 sizeof (ElfW(Addr)));
1344#ifdef DEBUG
1345 fprintf (stderr, "unrelocate: [%08lx] <= %08lx\n",
1346 (long) addr,
1347 (long) *((long *) (new_base + addr - offset)));
1348#endif
1349 break;
1350 }
1351 }
1352 }
1353 break;
1354 }
1355 }
1356#endif /* BROKEN_NOCOMBRELOC */
1357 1263
1358 /* Write out new_file, and free the buffers. */ 1264 /* Write out new_file, and free the buffers. */
1359 1265
diff --git a/src/unexhp9k800.c b/src/unexhp9k800.c
index 96eb985f857..cad2a5025ab 100644
--- a/src/unexhp9k800.c
+++ b/src/unexhp9k800.c
@@ -59,9 +59,7 @@
59 59
60#include <a.out.h> 60#include <a.out.h>
61 61
62#ifdef HPUX_USE_SHLIBS
63#include <dl.h> 62#include <dl.h>
64#endif
65 63
66/* brk value to restore, stored as a global. 64/* brk value to restore, stored as a global.
67 This is really used only if we used shared libraries. */ 65 This is really used only if we used shared libraries. */
diff --git a/src/unexnext.c b/src/unexnext.c
deleted file mode 100644
index 3ed54a59db8..00000000000
--- a/src/unexnext.c
+++ /dev/null
@@ -1,514 +0,0 @@
1/* Dump Emacs in macho format.
2 Copyright (C) 1990, 1993, 2001, 2002, 2003, 2004,
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
4 Written by Bradley Taylor (btaylor@next.com).
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 of the License, or
11(at your option) any 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. If not, see <http://www.gnu.org/licenses/>. */
20
21
22#undef __STRICT_BSD__
23
24#include <stdio.h>
25#include <stdlib.h>
26#include <stdarg.h>
27#include <mach/mach.h>
28#include <mach-o/loader.h>
29#include <mach-o/reloc.h>
30#include <sys/file.h>
31#include <sys/stat.h>
32#include <unistd.h>
33/* Instead of unistd.h, this used to include libc.h.
34 "Nelson H. F. Beebe" <beebe@math.utah.edu> says that doesn't work
35 in system version 3.3. */
36
37
38int malloc_cookie;
39
40/*
41 * Kludge: we don't expect any program data beyond VM_HIGHDATA
42 * What is really needed is a way to find out from malloc() which
43 * pages it vm_allocated and write only those out into the data segment.
44 *
45 * This kludge may break when we stop using fixed virtual address
46 * shared libraries. Actually, emacs will probably continue working, but be
47 * much larger on disk than it needs to be (because non-malloced data will
48 * be in the file).
49 */
50static const unsigned VM_HIGHDATA = 0x2000000;
51
52typedef struct region_t {
53 vm_address_t address;
54 vm_size_t size;
55 vm_prot_t protection;
56 vm_prot_t max_protection;
57 vm_inherit_t inheritance;
58 boolean_t shared;
59 port_t object_name;
60 vm_offset_t offset;
61} region_t;
62
63
64static void
65grow(
66 struct load_command ***the_commands,
67 unsigned *the_commands_len
68 )
69{
70 if (*the_commands == NULL) {
71 *the_commands_len = 1;
72 *the_commands = malloc(sizeof(*the_commands));
73 } else {
74 (*the_commands_len)++;
75 *the_commands = realloc(*the_commands,
76 (*the_commands_len *
77 sizeof(**the_commands)));
78 }
79}
80
81
82static void
83save_command(
84 struct load_command *command,
85 struct load_command ***the_commands,
86 unsigned *the_commands_len
87 )
88{
89 struct load_command **tmp;
90
91 grow(the_commands, the_commands_len);
92 tmp = &(*the_commands)[*the_commands_len - 1];
93 *tmp = malloc(command->cmdsize);
94 bcopy(command, *tmp, command->cmdsize);
95}
96
97static void
98fatal_unexec(char *format, ...)
99{
100 va_list ap;
101
102 va_start(ap, format);
103 fprintf(stderr, "unexec: ");
104 vfprintf(stderr, format, ap);
105 fprintf(stderr, "\n");
106 va_end(ap);
107}
108
109static int
110read_macho(
111 int fd,
112 struct mach_header *the_header,
113 struct load_command ***the_commands,
114 unsigned *the_commands_len
115 )
116{
117 struct load_command command;
118 struct load_command *buf;
119 int i;
120 int size;
121
122 if (read(fd, the_header, sizeof(*the_header)) != sizeof(*the_header)) {
123 fatal_unexec("cannot read macho header");
124 return (0);
125 }
126 for (i = 0; i < the_header->ncmds; i++) {
127 if (read(fd, &command, sizeof(struct load_command)) !=
128 sizeof(struct load_command)) {
129 fatal_unexec("cannot read macho load command header");
130 return (0);
131 }
132 size = command.cmdsize - sizeof(struct load_command);
133 if (size < 0) {
134 fatal_unexec("bogus load command size");
135 return (0);
136 }
137 buf = malloc(command.cmdsize);
138 buf->cmd = command.cmd;
139 buf->cmdsize = command.cmdsize;
140 if (read(fd, ((char *)buf +
141 sizeof(struct load_command)),
142 size) != size) {
143 fatal_unexec("cannot read load command data");
144 return (0);
145 }
146 save_command(buf, the_commands, the_commands_len);
147 }
148 return (1);
149}
150
151static int
152filldatagap(
153 vm_address_t start_address,
154 vm_size_t *size,
155 vm_address_t end_address
156 )
157{
158 vm_address_t address;
159 vm_size_t gapsize;
160
161 address = (start_address + *size);
162 gapsize = end_address - address;
163 *size += gapsize;
164 if (vm_allocate(task_self(), &address, gapsize,
165 FALSE) != KERN_SUCCESS) {
166 fatal_unexec("cannot vm_allocate");
167 return (0);
168 }
169 return (1);
170}
171
172static int
173get_data_region(
174 vm_address_t *address,
175 vm_size_t *size
176 )
177{
178 region_t region;
179 kern_return_t ret;
180 struct section *sect;
181
182 sect = (struct section *) getsectbyname(SEG_DATA, SECT_DATA);
183 region.address = 0;
184 *address = 0;
185 for (;;) {
186 ret = vm_region(task_self(),
187 &region.address,
188 &region.size,
189 &region.protection,
190 &region.max_protection,
191 &region.inheritance,
192 &region.shared,
193 &region.object_name,
194 &region.offset);
195 if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
196 break;
197 }
198 if (*address != 0) {
199 if (region.address > *address + *size) {
200 if (!filldatagap(*address, size,
201 region.address)) {
202 return (0);
203 }
204 }
205 *size += region.size;
206 } else {
207 if (region.address == sect->addr) {
208 *address = region.address;
209 *size = region.size;
210 }
211 }
212 region.address += region.size;
213 }
214 return (1);
215}
216
217static char *
218my_malloc(
219 vm_size_t size
220 )
221{
222 vm_address_t address;
223
224 if (vm_allocate(task_self(), &address, size, TRUE) != KERN_SUCCESS) {
225 return (NULL);
226 }
227 return ((char *)address);
228}
229
230static void
231my_free(
232 char *buf,
233 vm_size_t size
234 )
235{
236 vm_deallocate(task_self(), (vm_address_t)buf, size);
237}
238
239static int
240unexec_doit(
241 int infd,
242 int outfd
243 )
244{
245 int i;
246 struct load_command **the_commands = NULL;
247 unsigned the_commands_len;
248 struct mach_header the_header;
249 int fgrowth = 0;
250 int fdatastart;
251 int fdatasize;
252 int size;
253 struct stat st;
254 char *buf;
255 vm_address_t data_address;
256 vm_size_t data_size;
257 vm_size_t vmaddr_growth = 0;
258 vm_size_t dataseg_vmaddr, dataseg_vmend;
259
260 struct segment_command *segment;
261
262#ifdef NS_TARGET
263 unsigned long extreloff = 0;
264 unsigned long nextrel = 0;
265 struct dysymtab_command *dysymtab;
266 struct relocation_info reloc_info;
267#endif
268
269 if (!read_macho(infd, &the_header, &the_commands, &the_commands_len)) {
270 return (0);
271 }
272
273
274 malloc_cookie = malloc_freezedry ();
275 if (!get_data_region(&data_address, &data_size)) {
276 return (0);
277 }
278
279
280 /*
281 * DO NOT USE MALLOC IN THIS SECTION
282 */
283 {
284 /*
285 * Fix offsets
286 */
287 for (i = 0; i < the_commands_len; i++) {
288 switch (the_commands[i]->cmd) {
289 case LC_SEGMENT:
290 segment = ((struct segment_command *)
291 the_commands[i]);
292 if (strcmp(segment->segname, SEG_DATA) == 0) {
293 fdatastart = segment->fileoff;
294 fdatasize = segment->filesize;
295 fgrowth = (data_size -
296 segment->filesize);
297 segment->vmsize = data_size;
298 segment->filesize = data_size;
299 dataseg_vmaddr = segment->vmaddr;
300 dataseg_vmend = segment->vmaddr + segment->vmsize;
301 vmaddr_growth = segment->vmaddr + segment->vmsize;
302 } else {
303 ((struct segment_command *)the_commands[i])->fileoff += fgrowth;
304 }
305
306 if( strcmp( segment->segname, SEG_LINKEDIT ) == 0 ) {
307 segment->vmaddr = vmaddr_growth;
308 }
309
310 break;
311 case LC_SYMTAB:
312 ((struct symtab_command *)
313 the_commands[i])->symoff += fgrowth;
314 ((struct symtab_command *)
315 the_commands[i])->stroff += fgrowth;
316 break;
317 case LC_SYMSEG:
318 ((struct symseg_command *)
319 the_commands[i])->offset += fgrowth;
320 break;
321#ifdef NS_TARGET
322 case LC_DYSYMTAB:
323 dysymtab = ((struct dysymtab_command *)the_commands[i]);
324 extreloff = dysymtab->extreloff;
325 nextrel = dysymtab->nextrel;
326 dysymtab->indirectsymoff += fgrowth;
327 dysymtab->extreloff += fgrowth;
328 break;
329#endif
330 default:
331 break;
332 }
333 }
334
335 /*
336 * Write header
337 */
338 if (write(outfd, &the_header,
339 sizeof(the_header)) != sizeof(the_header)) {
340 fatal_unexec("cannot write output file");
341 return (0);
342 }
343
344 /*
345 * Write commands
346 */
347 for (i = 0; i < the_commands_len; i++) {
348 if (write(outfd, the_commands[i],
349 the_commands[i]->cmdsize) !=
350 the_commands[i]->cmdsize) {
351 fatal_unexec("cannot write output file");
352 return (0);
353 }
354 }
355
356 /*
357 * Write original text
358 */
359 if (lseek(infd, the_header.sizeofcmds + sizeof(the_header),
360 L_SET) < 0) {
361 fatal_unexec("cannot seek input file");
362 return (0);
363 }
364 size = fdatastart - (sizeof(the_header) +
365 the_header.sizeofcmds);
366 buf = my_malloc(size);
367 if (read(infd, buf, size) != size) {
368 my_free(buf, size);
369 fatal_unexec("cannot read input file");
370 }
371 if (write(outfd, buf, size) != size) {
372 my_free(buf, size);
373 fatal_unexec("cannot write output file");
374 return (0);
375 }
376 my_free(buf, size);
377
378
379 /*
380 * Write new data
381 */
382 if (write(outfd, (char *)data_address,
383 data_size) != data_size) {
384 fatal_unexec("cannot write output file");
385 return (0);
386 }
387
388 }
389
390 /*
391 * OKAY TO USE MALLOC NOW
392 */
393
394 /*
395 * Write rest of file
396 */
397 fstat(infd, &st);
398 if (lseek(infd, fdatasize, L_INCR) < 0) {
399 fatal_unexec("cannot seek input file");
400 return (0);
401 }
402 size = st.st_size - lseek(infd, 0, L_INCR);
403
404 buf = malloc(size);
405 if (read(infd, buf, size) != size) {
406 free(buf);
407 fatal_unexec("cannot read input file");
408 return (0);
409 }
410 if (write(outfd, buf, size) != size) {
411 free(buf);
412 fatal_unexec("cannot write output file");
413 return (0);
414 }
415 free(buf);
416
417#ifdef NS_TARGET
418 /*
419 * Fix up relocation entries in the data segment.
420 */
421
422 if (lseek(infd, extreloff, L_SET) < 0) {
423 fatal_unexec("cannot seek input file");
424 return (0);
425 }
426
427 for (i = 0; i < nextrel; i++)
428 {
429 long zeroval = 0;
430
431 if (read(infd, &reloc_info, sizeof (reloc_info)) != sizeof (reloc_info)) {
432 fatal_unexec("cannot read input file");
433 return (0);
434 }
435 if (reloc_info.r_address >= dataseg_vmaddr && reloc_info.r_address < dataseg_vmend)
436 {
437 if (lseek (outfd, fdatastart + reloc_info.r_address - dataseg_vmaddr, L_SET) < 0 ) {
438 fatal_unexec("cannot seek input file");
439 return (0);
440 }
441 switch (reloc_info.r_length) {
442 case 0:
443 if (write(outfd, &zeroval, 1) != 1) {
444 fatal_unexec("cannot write output file");
445 return (0);
446 }
447 break;
448 case 1:
449 if (write(outfd, &zeroval, 2) != 2) {
450 fatal_unexec("cannot write output file");
451 return (0);
452 }
453 break;
454 case 2:
455 if (write(outfd, &zeroval, 4) != 4) {
456 fatal_unexec("cannot write output file");
457 return (0);
458 }
459 break;
460 }
461 }
462 }
463#endif
464
465 return (1);
466}
467
468void
469unexec(
470 char *outfile,
471 char *infile
472 )
473{
474 int infd;
475 int outfd;
476 char tmpbuf[L_tmpnam];
477 char *tmpfile;
478
479 infd = open(infile, O_RDONLY, 0);
480 if (infd < 0) {
481 fatal_unexec("cannot open input file `%s'", infile);
482 exit(1);
483 }
484
485 tmpnam(tmpbuf);
486 tmpfile = rindex(tmpbuf, '/');
487 if (tmpfile == NULL) {
488 tmpfile = tmpbuf;
489 } else {
490 tmpfile++;
491 }
492 outfd = open(tmpfile, O_WRONLY|O_TRUNC|O_CREAT, 0755);
493 if (outfd < 0) {
494 close(infd);
495 fatal_unexec("cannot open tmp file `%s'", tmpfile);
496 exit(1);
497 }
498 if (!unexec_doit(infd, outfd)) {
499 close(infd);
500 close(outfd);
501 unlink(tmpfile);
502 exit(1);
503 }
504 close(infd);
505 close(outfd);
506 if (rename(tmpfile, outfile) < 0) {
507 unlink(tmpfile);
508 fatal_unexec("cannot rename `%s' to `%s'", tmpfile, outfile);
509 exit(1);
510 }
511}
512
513/* arch-tag: 9796bdc3-c050-417a-b2f5-4cfd31032634
514 (do not change this comment) */