/* Handle Solaris 2.4. */
+#include "sol2-3.h"
+
+#define SOLARIS2_4
+
+/* Get rid of -traditional and let const really do its thing. */
+
#ifdef __GNUC__
-#ifdef i386
-/* Since we use gcc -traditional, we have to work around a bogus "volatile" in
- <sys/machlock.h>. Must do this before #include "sol2-3.h". */
-#define volatile
-#endif /* i386 */
+#undef C_SWITCH_SYSTEM
+#undef const
#endif /* __GNUC__ */
-#include "sol2-3.h"
+#define HAVE_VFORK
+
+/* solaris does POSIX signals. this bit is from s/usg-5-4-2.h */
+
+#define POSIX_SIGNALS
+#undef sigsetmask
+#undef PTY_TTY_NAME_SPRINTF
+#define PTY_TTY_NAME_SPRINTF \
+ { \
+ char *ptsname(), *ptyname; \
+ \
+ sigblock(sigmask(SIGCLD)); \
+ if (grantpt(fd) == -1) \
+ fatal("could not grant slave pty"); \
+ sigunblock(sigmask(SIGCLD)); \
+ if (unlockpt(fd) == -1) \
+ fatal("could not unlock slave pty"); \
+ if (!(ptyname = ptsname(fd))) \
+ fatal ("could not enable slave pty"); \
+ strncpy(pty_name, ptyname, sizeof(pty_name)); \
+ pty_name[sizeof(pty_name) - 1] = 0; \
+ }