456
|
1 /* Definitions file for GNU Emacs running on AT&T's System V Release 4
|
75227
|
2 Copyright (C) 1987, 1990, 1999, 2000, 2001, 2002, 2003, 2004,
|
|
3 2005, 2006, 2007 Free Software Foundation, Inc.
|
456
|
4
|
|
5 This file is part of GNU Emacs.
|
|
6
|
1039
|
7 GNU Emacs is free software; you can redistribute it and/or modify
|
|
8 it under the terms of the GNU General Public License as published by
|
78259
|
9 the Free Software Foundation; either version 3, or (at your option)
|
1039
|
10 any later version.
|
456
|
11
|
1039
|
12 GNU Emacs is distributed in the hope that it will be useful,
|
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15 GNU General Public License for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
|
18 along with GNU Emacs; see the file COPYING. If not, write to
|
64083
|
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
20 Boston, MA 02110-1301, USA. */
|
456
|
21
|
|
22 /* This file written by James Van Artsdalen of Dell Computer Corporation.
|
2116
|
23 * james@bigtex.cactus.org. Subsequently improved for Dell 2.2 by Eric
|
|
24 * S. Raymond <esr@snark.thyrsus.com>.
|
456
|
25 */
|
|
26
|
|
27 /* Use the SysVr3 file for at least base configuration. */
|
|
28
|
1868
|
29 #include "usg5-3.h"
|
456
|
30
|
|
31 #define USG5_4
|
|
32
|
|
33 /* We do have multiple jobs. Handle ^Z. */
|
|
34
|
|
35 #undef NOMULTIPLEJOBS
|
|
36
|
26678
|
37 /* Motif needs -lgen. */
|
|
38 #define LIBS_SYSTEM -lsocket -lnsl -lelf -lgen
|
1179
|
39 #define ORDINARY_LINK
|
456
|
40
|
4336
|
41 #if 0
|
2116
|
42 #ifdef ORDINARY_LINK
|
|
43 #define LIB_STANDARD -lc /usr/ucblib/libucb.a
|
|
44 #else
|
1179
|
45 #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
|
|
46 #define LIB_STANDARD -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
|
|
47 #endif
|
4336
|
48 #else
|
|
49
|
|
50 #ifdef ORDINARY_LINK
|
|
51 #define LIB_STANDARD
|
|
52 #else
|
|
53 #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
|
|
54 #define LIB_STANDARD -lc /usr/ccs/lib/crtn.o
|
|
55 #endif
|
|
56 #endif
|
456
|
57
|
2116
|
58 /* there are no -lg libraries on this system, and no libPW */
|
|
59
|
|
60 #define LIBS_DEBUG
|
456
|
61
|
|
62 /* Undump with ELF */
|
|
63
|
|
64 #undef COFF
|
|
65
|
|
66 #define UNEXEC unexelf.o
|
|
67
|
8300
|
68 /* <sys/stat.h> *defines* stat(2) as a static function. If "static"
|
|
69 * is blank, then many files will have a public definition for stat(2).
|
|
70 */
|
|
71
|
|
72 #undef static
|
|
73
|
456
|
74 /* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct
|
|
75 * tchars. But get <termio.h> first to make sure ttold.h doesn't
|
|
76 * interfere. And don't try to use SIGIO yet.
|
|
77 */
|
|
78
|
13466
|
79 #ifndef NOT_C_CODE
|
|
80 #include <sys/wait.h>
|
|
81 #endif
|
|
82
|
456
|
83 #ifdef emacs
|
15844
|
84 #ifndef NO_FILIO_H
|
456
|
85 #include <sys/filio.h>
|
15844
|
86 #endif
|
456
|
87 #include <termio.h>
|
|
88 #include <sys/ttold.h>
|
|
89 #include <signal.h>
|
1039
|
90 #include <sys/stream.h>
|
|
91 #include <sys/stropts.h>
|
|
92 #include <sys/termios.h>
|
26090
|
93 #define BROKEN_SIGIO
|
456
|
94 #endif
|
|
95
|
2116
|
96 /* Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
|
|
97 * instead, there's a system variable _sys_nsig. Unfortunately, we need the
|
|
98 * constant to dimension an array. So wire in the appropriate value here.
|
|
99 */
|
26090
|
100 #define NSIG_MINIMUM 32
|
2116
|
101
|
456
|
102 /* We need bss_end from emacs.c for undumping */
|
|
103
|
|
104 #ifndef USG_SHARED_LIBRARIES
|
|
105 #define USG_SHARED_LIBRARIES
|
|
106 #endif
|
|
107
|
|
108 /* We can support this */
|
|
109
|
|
110 #define CLASH_DETECTION
|
|
111
|
|
112 #define HAVE_PTYS
|
2116
|
113 #define HAVE_TERMIOS
|
4295
|
114 #undef BROKEN_TIOCGWINSZ
|
|
115 #undef BROKEN_TIOCGETC
|
456
|
116
|
|
117 /* It is possible to receive SIGCHLD when there are no children
|
|
118 waiting, because a previous waitsys(2) cleaned up the carcass of child
|
|
119 without clearing the SIGCHLD pending info. So, use a non-blocking
|
|
120 wait3 instead, which maps to waitpid(2) in SysVr4. */
|
|
121
|
|
122 #define HAVE_WAIT_HEADER
|
|
123 #define WAITTYPE int
|
|
124 #define wait3(status, options, rusage) \
|
8283
|
125 waitpid ((pid_t) -1, (status), (options))
|
456
|
126 #define WRETCODE(w) (w >> 8)
|
|
127
|
|
128 /* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
|
|
129 subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and
|
|
130 this is all we need. */
|
|
131
|
|
132 #define TIOCSIGSEND TIOCSIGNAL
|
|
133
|
|
134 /* This change means that we don't loop through allocate_pty too many
|
|
135 times in the (rare) event of a failure. */
|
|
136
|
|
137 #undef FIRST_PTY_LETTER
|
|
138 #define FIRST_PTY_LETTER 'z'
|
|
139
|
|
140 /* This sets the name of the master side of the PTY. */
|
|
141
|
|
142 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
|
|
143
|
|
144 /* This sets the name of the slave side of the PTY. On SysVr4,
|
|
145 grantpt(3) forks a subprocess, so keep sigchld_handler() from
|
|
146 intercepting that death. If any child but grantpt's should die
|
|
147 within, it should be caught after sigrelse(2). */
|
|
148
|
8283
|
149 #define PTY_TTY_NAME_SPRINTF \
|
|
150 { \
|
|
151 char *ptsname (), *ptyname; \
|
|
152 \
|
|
153 sighold (SIGCLD); \
|
|
154 if (grantpt (fd) == -1) \
|
26090
|
155 { emacs_close (fd); return -1; } \
|
8283
|
156 sigrelse (SIGCLD); \
|
|
157 if (unlockpt (fd) == -1) \
|
26090
|
158 { emacs_close (fd); return -1; } \
|
8283
|
159 if (!(ptyname = ptsname (fd))) \
|
26090
|
160 { emacs_close (fd); return -1; } \
|
8283
|
161 strncpy (pty_name, ptyname, sizeof (pty_name)); \
|
|
162 pty_name[sizeof (pty_name) - 1] = 0; \
|
456
|
163 }
|
|
164
|
|
165 /* Push various streams modules onto a PTY channel. */
|
|
166
|
|
167 #define SETUP_SLAVE_PTY \
|
|
168 if (ioctl (xforkin, I_PUSH, "ptem") == -1) \
|
|
169 fatal ("ioctl I_PUSH ptem", errno); \
|
|
170 if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
|
|
171 fatal ("ioctl I_PUSH ldterm", errno); \
|
|
172 if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
|
|
173 fatal ("ioctl I_PUSH ttcompat", errno);
|
|
174
|
2116
|
175 /* Undo the SVr3 X11 library definition */
|
2165
|
176 #undef LIB_X11_LIB
|
2116
|
177
|
1039
|
178 /* The definition of this in s-usg5-3.h is not needed in 5.4. */
|
|
179 /* liblnsl_s should never be used. The _s suffix implies a shared
|
|
180 library, as opposed to a DLL. Share libraries were used in SVR3, and are
|
|
181 available only in order to allow SVR3 binaries to run. They should not be
|
|
182 linked in to new binaries. -- caraway!pinkas@caraway.intel.com. */
|
|
183 #undef LIBX10_SYSTEM
|
|
184 #undef LIBX11_SYSTEM
|
456
|
185
|
1039
|
186 /* Tell x11term.c and keyboard.c we have the system V streams feature. */
|
|
187 #define SYSV_STREAMS
|
|
188
|
|
189 /* This definition was suggested for next release.
|
|
190 So give it a try. */
|
|
191 #define HAVE_SOCKETS
|
4336
|
192
|
26678
|
193 /* Markus Weiand <weiand@khof.com> says this is needed for Motif on
|
|
194 SINIX. */
|
|
195 #undef LIBS_SYSTEM
|
|
196 #define LIBS_SYSTEM -lgen
|
52401
|
197
|
|
198 /* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6
|
|
199 (do not change this comment) */
|