]> code.delx.au - gnu-emacs/blobdiff - src/s/sol2-3.h
(POSIX_SIGNALS): Defined.
[gnu-emacs] / src / s / sol2-3.h
index 36b6de4ed4c618b067907fcc962ef0ef1586add2..b45ec57ef1f270150a70ed7b99a2864a71441b16 100644 (file)
@@ -1,4 +1,53 @@
-#include <s/sol2.h>
+#include "sol2.h"
 
 /* Solaris 2.3 has a bug in XListFontsWithInfo.  */
 #define BROKEN_XLISTFONTSWITHINFO
+
+/* Override LD_SWITCH_SYSTEM: add  -L /usr/ccs/lib to the sol2.h value.  */
+
+#undef LD_SWITCH_SYSTEM
+
+#ifndef __GNUC__
+#define LD_SWITCH_SYSTEM -L /usr/ccs/lib LD_SWITCH_X_SITE_AUX
+#else /* GCC */
+/* We use ./prefix-args because we don't know whether LD_SWITCH_X_SITE_AUX
+   has anything in it.  It can be empty.
+   This works ok in src.  Luckily lib-src does not use LD_SWITCH_SYSTEM.  */
+#define LD_SWITCH_SYSTEM -L /usr/ccs/lib \
+ `./prefix-args -Xlinker LD_SWITCH_X_SITE_AUX`
+#endif /* GCC */
+
+/* Info from fnf@cygnus.com suggests this is appropriate.  */
+#define POSIX_SIGNALS
+
+/* We don't need the definition from usg5-3.h with POSIX_SIGNALS.  */
+#undef sigsetmask
+
+/* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
+   rather than sighold/sigrelse, which appear to be BSD4.1 specific and won't
+   work if POSIX_SIGNALS is defined.  It may also be appropriate for SVR4.x
+   (x<2) but I'm not sure.   fnf@cygnus.com */
+/* This sets the name of the slave side of the PTY.  On SysVr4,
+   grantpt(3) forks a subprocess, so keep sigchld_handler() from
+   intercepting that death.  If any child but grantpt's should die
+   within, it should be caught after sigrelse(2). */
+
+#undef PTY_TTY_NAME_SPRINTF
+#define PTY_TTY_NAME_SPRINTF                   \
+  {                                            \
+    char *ptsname (), *ptyname;                        \
+                                               \
+    sigblock (sigmask (SIGCLD));               \
+    if (grantpt (fd) == -1)                    \
+      { emacs_close (fd); return -1; }         \
+    sigunblock (sigmask (SIGCLD));             \
+    if (unlockpt (fd) == -1)                   \
+      { emacs_close (fd); return -1; }         \
+    if (!(ptyname = ptsname (fd)))             \
+      { emacs_close (fd); return -1; }         \
+    strncpy (pty_name, ptyname, sizeof (pty_name)); \
+    pty_name[sizeof (pty_name) - 1] = 0;       \
+  }
+
+/* arch-tag: a8fe2e15-e517-49cb-a863-f346b80885fe
+   (do not change this comment) */