|
|
1.1 root 1: /* Definitions file for GNU Emacs running on AT&T's System V Release 4
2: Copyright (C) 1987, 1990 Free Software Foundation, Inc.
3:
4: This file is part of GNU Emacs.
5:
6: GNU Emacs is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 1, or (at your option)
9: any later version.
10:
11: GNU Emacs is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with GNU Emacs; see the file COPYING. If not, write to
18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20: /* This file written by James Van Artsdalen of Dell Computer Corporation.
21: * [email protected].
22: */
23:
24: /* Use the SysVr3 file for at least base configuration. */
25:
26: #include "s-usg5-3.h"
27:
28: #define USG5_4
29:
30: /* We do have multiple jobs. Handle ^Z. */
31:
32: #undef NOMULTIPLEJOBS
33:
34: #define LIBS_SYSTEM -lsocket -lnsl -lelf
35: #define ORDINARY_LINK
36:
37: #if 0 /* These should be unnecessary now because of ORDINARY_LINK. */
38: #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
39: #define LIB_STANDARD -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
40: #endif
41:
42: /* No <sioctl.h> */
43:
44: #define NO_SIOCTL_H
45:
46: /* Undump with ELF */
47:
48: #undef COFF
49:
50: #define UNEXEC unexelf.o
51:
52: /* Get FIONREAD from <sys/filio.h>. Get <sys/ttold.h> to get struct
53: * tchars. But get <termio.h> first to make sure ttold.h doesn't
54: * interfere. And don't try to use SIGIO yet.
55: */
56:
57: #ifdef emacs
58: #include <sys/filio.h>
59: #include <termio.h>
60: #include <sys/ttold.h>
61: #include <signal.h>
62: #include <sys/wait.h>
63: #include <sys/stream.h>
64: #include <sys/stropts.h>
65: #include <sys/termios.h>
66: #undef SIGIO
67: #endif
68:
69: /* libc has this stuff, but not utimes. */
70:
71: #define HAVE_RENAME
72: #define HAVE_SELECT
73: #define HAVE_TIMEVAL
74: #define HAVE_CLOSEDIR
75: #define HAVE_GETTIMEOFDAY
76: #define HAVE_DUP2
77:
78: #define USE_UTIME
79:
80: /* <sys/stat.h> *defines* stat(2) as a static function. If "static"
81: * is blank, then many files will have a public definition for stat(2).
82: */
83:
84: #undef static
85:
86: /* We need bss_end from emacs.c for undumping */
87:
88: #ifndef USG_SHARED_LIBRARIES
89: #define USG_SHARED_LIBRARIES
90: #endif
91:
92: /* We can support this */
93:
94: #define CLASH_DETECTION
95:
96: #define HAVE_PTYS
97: #define HAVE_SETSID
98: #define HAVE_TCATTR
99:
100: /* It is possible to receive SIGCHLD when there are no children
101: waiting, because a previous waitsys(2) cleaned up the carcass of child
102: without clearing the SIGCHLD pending info. So, use a non-blocking
103: wait3 instead, which maps to waitpid(2) in SysVr4. */
104:
105: #define HAVE_WAIT_HEADER
106: #define WAITTYPE int
107: #define wait3(status, options, rusage) \
108: waitpid((pid_t) -1, (status), (options))
109: #define WRETCODE(w) (w >> 8)
110:
111: /* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
112: subprocesses the usual way. But TIOCSIGNAL does work for PTYs, and
113: this is all we need. */
114:
115: #define TIOCSIGSEND TIOCSIGNAL
116:
117: /* This change means that we don't loop through allocate_pty too many
118: times in the (rare) event of a failure. */
119:
120: #undef FIRST_PTY_LETTER
121: #define FIRST_PTY_LETTER 'z'
122:
123: /* This sets the name of the master side of the PTY. */
124:
125: #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
126:
127: /* This sets the name of the slave side of the PTY. On SysVr4,
128: grantpt(3) forks a subprocess, so keep sigchld_handler() from
129: intercepting that death. If any child but grantpt's should die
130: within, it should be caught after sigrelse(2). */
131:
132: #define PTY_TTY_NAME_SPRINTF \
133: { \
134: char *ptsname(), *ptyname; \
135: \
136: sighold(SIGCLD); \
137: if (grantpt(fd) == -1) \
138: fatal("could not grant slave pty"); \
139: sigrelse(SIGCLD); \
140: if (unlockpt(fd) == -1) \
141: fatal("could not unlock slave pty"); \
142: if (!(ptyname = ptsname(fd))) \
143: fatal ("could not enable slave pty"); \
144: strncpy(pty_name, ptyname, sizeof(pty_name)); \
145: pty_name[sizeof(pty_name) - 1] = 0; \
146: }
147:
148: /* Push various streams modules onto a PTY channel. */
149:
150: #define SETUP_SLAVE_PTY \
151: if (ioctl (xforkin, I_PUSH, "ptem") == -1) \
152: fatal ("ioctl I_PUSH ptem", errno); \
153: if (ioctl (xforkin, I_PUSH, "ldterm") == -1) \
154: fatal ("ioctl I_PUSH ldterm", errno); \
155: if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
156: fatal ("ioctl I_PUSH ttcompat", errno);
157:
158: /* The definition of this in s-usg5-3.h is not needed in 5.4. */
159: /* liblnsl_s should never be used. The _s suffix implies a shared
160: library, as opposed to a DLL. Share libraries were used in SVR3, and are
161: available only in order to allow SVR3 binaries to run. They should not be
162: linked in to new binaries. -- [email protected]. */
163: #undef LIBX10_SYSTEM
164: #undef LIBX11_SYSTEM
165:
166: /* Tell x11term.c and keyboard.c we have the system V streams feature. */
167: #define SYSV_STREAMS
168:
169: /* This definition was suggested for next release.
170: So give it a try. */
171: #define HAVE_SOCKETS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.