Mercurial > emacs
comparison src/s/usg5-4.h @ 456:c0335c02f1d7
Initial revision
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Fri, 13 Dec 1991 18:49:49 +0000 |
parents | |
children | 44213fc1fbb6 |
comparison
equal
deleted
inserted
replaced
455:12af79cf16ee | 456:c0335c02f1d7 |
---|---|
1 /* Definitions file for GNU Emacs running on AT&T's System V Release 4 | |
2 Copyright (C) 1987 Free Software Foundation, Inc. | |
3 | |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is distributed in the hope that it will be useful, | |
7 but WITHOUT ANY WARRANTY. No author or distributor | |
8 accepts responsibility to anyone for the consequences of using it | |
9 or for whether it serves any particular purpose or works at all, | |
10 unless he says so in writing. Refer to the GNU Emacs General Public | |
11 License for full details. | |
12 | |
13 Everyone is granted permission to copy, modify and redistribute | |
14 GNU Emacs, but only under the conditions described in the | |
15 GNU Emacs General Public License. A copy of this license is | |
16 supposed to have been given to you along with GNU Emacs so you | |
17 can know your rights and responsibilities. It should be in a | |
18 file named COPYING. Among other things, the copyright notice | |
19 and this notice must be preserved on all copies. */ | |
20 | |
21 /* This file written by James Van Artsdalen of Dell Computer Corporation. | |
22 * james@bigtex.cactus.org. | |
23 */ | |
24 | |
25 /* Use the SysVr3 file for at least base configuration. */ | |
26 | |
27 #include "usg5-3.h" | |
28 | |
29 #define USG5_4 | |
30 | |
31 /* We do have multiple jobs. Handle ^Z. */ | |
32 | |
33 #undef NOMULTIPLEJOBS | |
34 | |
35 /* If compiled by GNU C, we must have gnulib */ | |
36 | |
37 #ifdef __GNUC__ | |
38 #define GNULIB /usr/local/lib/gcc-gnulib | |
39 #define LIBS_DEBUG | |
40 #else | |
41 #define GNULIB | |
42 #endif | |
43 | |
44 #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o | |
45 | |
46 #define LIB_STANDARD GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o | |
47 | |
48 #define DATA_SEG_BITS 0x08000000 | |
49 | |
50 /* Use ptem.h to get structures related to windows. */ | |
51 | |
52 #define NEED_PTEM_H | |
53 | |
54 /* Undump with ELF */ | |
55 | |
56 #undef COFF | |
57 | |
58 #define UNEXEC unexelf.o | |
59 | |
60 /* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct | |
61 * tchars. But get <termio.h> first to make sure ttold.h doesn't | |
62 * interfere. And don't try to use SIGIO yet. | |
63 */ | |
64 | |
65 #ifdef emacs | |
66 #include <sys/filio.h> | |
67 #include <termio.h> | |
68 #include <sys/ttold.h> | |
69 #include <signal.h> | |
70 #undef SIGIO | |
71 #endif | |
72 | |
73 /* libc has this stuff, but not utimes. */ | |
74 | |
75 #define HAVE_RENAME | |
76 #define HAVE_SELECT | |
77 #define HAVE_TIMEVAL | |
78 #define HAVE_CLOSEDIR | |
79 #define HAVE_GETTIMEOFDAY | |
80 #define HAVE_DUP2 | |
81 | |
82 #define USE_UTIME | |
83 | |
84 /* <sys/stat.h> *defines* stat(2) as a static function. If "static" | |
85 * is blank, then many files will have a public definition for stat(2). | |
86 */ | |
87 | |
88 #undef static | |
89 | |
90 /* We need bss_end from emacs.c for undumping */ | |
91 | |
92 #ifndef USG_SHARED_LIBRARIES | |
93 #define USG_SHARED_LIBRARIES | |
94 #endif | |
95 | |
96 /* We can support this */ | |
97 | |
98 #define CLASH_DETECTION | |
99 | |
100 #define HAVE_PTYS | |
101 #define HAVE_SETSID | |
102 | |
103 /* It is possible to receive SIGCHLD when there are no children | |
104 waiting, because a previous waitsys(2) cleaned up the carcass of child | |
105 without clearing the SIGCHLD pending info. So, use a non-blocking | |
106 wait3 instead, which maps to waitpid(2) in SysVr4. */ | |
107 | |
108 #define HAVE_WAIT_HEADER | |
109 #define WAITTYPE int | |
110 #define wait3(status, options, rusage) \ | |
111 waitpid((pid_t) -1, (status), (options)) | |
112 #define WRETCODE(w) (w >> 8) | |
113 | |
114 /* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY | |
115 subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and | |
116 this is all we need. */ | |
117 | |
118 #define TIOCSIGSEND TIOCSIGNAL | |
119 | |
120 /* This change means that we don't loop through allocate_pty too many | |
121 times in the (rare) event of a failure. */ | |
122 | |
123 #undef FIRST_PTY_LETTER | |
124 #define FIRST_PTY_LETTER 'z' | |
125 | |
126 /* This sets the name of the master side of the PTY. */ | |
127 | |
128 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); | |
129 | |
130 /* This sets the name of the slave side of the PTY. On SysVr4, | |
131 grantpt(3) forks a subprocess, so keep sigchld_handler() from | |
132 intercepting that death. If any child but grantpt's should die | |
133 within, it should be caught after sigrelse(2). */ | |
134 | |
135 #define PTY_TTY_NAME_SPRINTF \ | |
136 { \ | |
137 char *ptsname(), *ptyname; \ | |
138 \ | |
139 sighold(SIGCLD); \ | |
140 if (grantpt(fd) == -1) \ | |
141 fatal("could not grant slave pty"); \ | |
142 sigrelse(SIGCLD); \ | |
143 if (unlockpt(fd) == -1) \ | |
144 fatal("could not unlock slave pty"); \ | |
145 if (!(ptyname = ptsname(fd))) \ | |
146 fatal ("could not enable slave pty"); \ | |
147 strncpy(pty_name, ptyname, sizeof(pty_name)); \ | |
148 pty_name[sizeof(pty_name) - 1] = 0; \ | |
149 } | |
150 | |
151 /* Push various streams modules onto a PTY channel. */ | |
152 | |
153 #define SETUP_SLAVE_PTY \ | |
154 if (ioctl (xforkin, I_PUSH, "ptem") == -1) \ | |
155 fatal ("ioctl I_PUSH ptem", errno); \ | |
156 if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \ | |
157 fatal ("ioctl I_PUSH ldterm", errno); \ | |
158 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \ | |
159 fatal ("ioctl I_PUSH ttcompat", errno); | |
160 | |
161 /* The definition of this in usg5-3.h is not needed in 5.4. */ | |
162 | |
163 #undef LIBX11_SYSTEM |