1 /* Definitions file for GNU Emacs running on AT&T's System V Release 4
2 Copyright (C) 1987 Free Software Foundation, Inc.
4 This file is part of GNU Emacs.
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.
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. */
21 /* This file written by James Van Artsdalen of Dell Computer Corporation.
22 * james@bigtex.cactus.org.
25 /* Use the SysVr3 file for at least base configuration. */
31 /* We do have multiple jobs. Handle ^Z. */
35 /* If compiled by GNU C, we must have gnulib */
38 #define GNULIB /usr/local/lib/gcc-gnulib
44 #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 GNULIB -lsocket -lnsl -lelf -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
48 #define DATA_SEG_BITS 0x08000000
50 /* Use ptem.h to get structures related to windows. */
58 #define UNEXEC unexelf.o
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.
66 #include <sys/filio.h>
68 #include <sys/ttold.h>
73 /* libc has this stuff, but not utimes. */
79 #define HAVE_GETTIMEOFDAY
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).
90 /* We need bss_end from emacs.c for undumping */
92 #ifndef USG_SHARED_LIBRARIES
93 #define USG_SHARED_LIBRARIES
96 /* We can support this */
98 #define CLASH_DETECTION
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. */
108 #define HAVE_WAIT_HEADER
110 #define wait3(status, options, rusage) \
111 waitpid((pid_t) -1, (status), (options))
112 #define WRETCODE(w) (w >> 8)
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. */
118 #define TIOCSIGSEND TIOCSIGNAL
120 /* This change means that we don't loop through allocate_pty too many
121 times in the (rare) event of a failure. */
123 #undef FIRST_PTY_LETTER
124 #define FIRST_PTY_LETTER 'z'
126 /* This sets the name of the master side of the PTY. */
128 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
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). */
135 #define PTY_TTY_NAME_SPRINTF \
137 char *ptsname(), *ptyname; \
140 if (grantpt(fd) == -1) \
141 fatal("could not grant slave pty"); \
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; \
151 /* Push various streams modules onto a PTY channel. */
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);
161 /* The definition of this in usg5-3.h is not needed in 5.4. */