summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordscho <dscho>2002-04-23 08:21:39 +0000
committerdscho <dscho>2002-04-23 08:21:39 +0000
commit49bfc728fab29bafaba49cf58867906390986852 (patch)
treeb4afe80d4efec08aacdb6d793ac65c1221028dbd
parentab4126d1ec05d7c078ac7635aae339bd96ce7863 (diff)
downloadlibtdevnc-49bfc728.tar.gz
libtdevnc-49bfc728.zip
solaris endian changes
-rw-r--r--main.c5
-rw-r--r--rfb.h15
2 files changed, 18 insertions, 2 deletions
diff --git a/main.c b/main.c
index 3f4580d..a6458f8 100644
--- a/main.c
+++ b/main.c
@@ -34,7 +34,10 @@
MUTEX(logMutex);
-char rfbEndianTest = (_BYTE_ORDER == _LITTLE_ENDIAN);
+/* we cannot compare to _LITTLE_ENDIAN, because some systems
+ (as Solaris) assume little endian if _LITTLE_ENDIAN is
+ defined, even if _BYTE_ORDER is not _LITTLE_ENDIAN */
+char rfbEndianTest = (_BYTE_ORDER == 1234);
/*
* rfbLog prints a time-stamped message to the log file (stderr).
diff --git a/rfb.h b/rfb.h
index e39c2a6..71ea774 100644
--- a/rfb.h
+++ b/rfb.h
@@ -62,9 +62,22 @@ typedef unsigned long KeySym;
#include <machine/endian.h>
#define _BYTE_ORDER BYTE_ORDER
#define _LITTLE_ENDIAN LITTLE_ENDIAN
-#elif sparc
+#elif defined (__SVR4) && defined (__sun) /* Solaris */
+#include <sys/types.h>
+#if defined(__sparc)
+ /* SPARC here (big endian) */
+#ifndef _BIG_ENDIAN
+#define _BIG_ENDIAN 4321
+#endif
+#define _BYTE_ORDER _BIG_ENDIAN
+#elif defined(__i386)
+#ifndef _LITTLE_ENDIAN
#define _LITTLE_ENDIAN 1234
+#endif
#define _BYTE_ORDER _LITTLE_ENDIAN
+#else
+#error Solaris 2.5.1 had ppc support did it not? :-)
+#endif
#undef Bool
#define Bool char
#undef SIGNED