diff src/s/sol2.h @ 428:3ecd8885ac67 r21-2-22

Import from CVS: tag r21-2-22
author cvs
date Mon, 13 Aug 2007 11:28:15 +0200
parents
children abe6d1db359e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/sol2.h	Mon Aug 13 11:28:15 2007 +0200
@@ -0,0 +1,154 @@
+/* Synched up with: Completely divergent from FSF. */
+#define SOLARIS2 1
+#define POSIX 1
+
+#ifndef USG
+#define USG
+#endif
+
+#ifndef USG5_4
+#define USG5_4
+#endif
+
+#undef  _POSIX_C_SOURCE
+
+#if OS_RELEASE > 54
+/* There were some bugs with preprocessor symbol interaction, which
+   were not fixed until 2.5. */
+#define __EXTENSIONS__ 1
+
+#undef  _XOPEN_SOURCE
+#define _XOPEN_SOURCE 1
+
+#undef  _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif /* > Solaris 2.4 */
+
+#if OS_RELEASE >= 57
+#define HAVE_GETLOADAVG
+#endif
+
+/* Fix understandable GCC lossage on Solaris 2.6 */
+#if defined(__GNUC__) && OS_RELEASE >= 56 && !defined(NOT_C_CODE)
+
+/* GCC va_list munging is a little messed up */
+#define __GNUC_VA_LIST
+#define _VA_LIST_
+#define _VA_LIST va_list
+typedef void *__gnuc_va_list;
+typedef __gnuc_va_list va_list;
+
+/* Missing prototypes for functions added in Solaris 2.6 */
+#include <sys/types.h>
+struct msghdr;
+struct sockaddr;
+extern int     __xnet_bind    (int, const struct sockaddr *, size_t);
+extern int     __xnet_listen  (int, int);
+extern int     __xnet_connect (int, const struct sockaddr *, size_t);
+extern ssize_t __xnet_recvmsg (int, struct msghdr *, int);
+extern ssize_t __xnet_sendmsg (int, const struct msghdr *, int);
+extern ssize_t __xnet_sendto  (int, const void *, size_t, int, const struct sockaddr *, size_t);
+extern int     __xnet_socket  (int, int, int);
+extern int     __xnet_socketpair (int, int, int, int *);
+extern int     __xnet_getsockopt (int, int, int, void *, size_t *);
+#endif /* GCC && >= Solaris 2.6 && C code */
+
+#include "usg5-4-2.h"	/* XEmacs change from 5-4 to 5-4-2 */
+#undef PC /* Defined in x86 /usr/include/sys/reg.h */
+
+/* SIGIO seems to be working under Solaris and it makes ^G work better... */
+#undef BROKEN_SIGIO
+
+/* eggert@twinsun.com said these work in Solaris.
+   Perhaps they work in all kinds of SVR4, but this is more conservative.  */
+#undef BROKEN_TIOCGETC
+#undef BROKEN_TIOCGWINSZ
+
+#ifdef NOT_C_CODE
+#define ORDINARY_LINK
+/* XEmacs change -- some Motif packages need -lgen to get regex and regcmp */
+
+#undef LIBS_SYSTEM
+#define LIBS_SYSTEM "-lsocket -lnsl -lelf -lgen -ldl"
+
+/* SYSTEM_MALLOC must be defined if dbx/RTC is going to be used.  dbx/RTC does
+   not work with a static definition of malloc(). */
+/* We want to be able to test out ralloc.c. */
+/* #define SYSTEM_MALLOC */
+
+/* XEmacs: there used to be a special definition of
+   PTY_TTY_NAME_SPRINTF here that was identical to the
+   other SYSV R4 definitions except that it didn't
+   block SIGCHLD around the call to grantpt().  This
+   is *not* in 19.29 and is almost certainly incorrect.
+ */
+
+#undef UNEXEC
+#if OS_RELEASE < 56
+#define UNEXEC "unexsol2.o"
+#else
+#define UNEXEC "unexsol2-6.o"
+#endif
+
+#else /* C_CODE */
+
+#if OS_RELEASE <= 53
+/* Solaris 2.3 has a bug in XListFontsWithInfo.  */
+#define BROKEN_XLISTFONTSWITHINFO
+#endif
+
+/* XEmacs addition: Raymond Toy says XEmacs completely misses SIGCHLD
+   when compiled with GCC 2.7.0 (but not, apparently, with SunPro C?),
+   X11R6, and Solaris 2.4.
+
+   Someone else submitted a simple test program that duplicates this
+   behavior, and says it has something to do with the fact that X11R6
+   links with the threads library. */
+
+#ifdef THIS_IS_X11R6
+#define BROKEN_SIGCHLD
+#endif
+
+#if OS_RELEASE < 55
+
+#if __STDC__ == 1 && defined(__SUNPRO_C)
+#define _POSIX_C_SOURCE 1
+#include <setjmp.h>
+#undef _POSIX_C_SOURCE
+#endif /* cc -Xc */
+
+/* Missing prototype, added in Solaris 2.5 */
+extern void *__builtin_alloca (size_t);
+#endif /* before SunOS 5.5 */
+
+#if OS_RELEASE == 55
+/* The following functions were added in Solaris 2.5,
+   but they forgot to add prototypes to the system header files. */
+int getpagesize (void);
+long random (void);
+void srandom (unsigned int seed);
+int usleep (unsigned int useconds);
+#endif /* SunOS 5.5 */
+
+/* 2.5 now has `random' back in libc but we don't want to use it. */
+#if OS_RELEASE >= 55
+#undef HAVE_RANDOM
+/* Apparently not necessary here, and it causes 10% CPU chewage. */
+#undef BROKEN_SIGCHLD
+#endif /* >= SunOS 5.5 */
+
+#if OS_RELEASE < 56
+/* Missing prototypes, added in Solaris 2.6 */
+struct timeval;
+int utimes (char *file, struct timeval *tvp);
+int gethostname (char *name, int namelen);
+#endif /* before SunOS 5.6 */
+
+#include <sys/utsname.h> /* warning: macro redefined: SYS_NMLN */
+
+/* XEmacs: Solaris has sigsetjmp but using it leads to core dumps at
+   least under 2.4 */
+#undef _setjmp
+#define _setjmp setjmp
+
+#endif /* C_CODE */