From 49bfc728fab29bafaba49cf58867906390986852 Mon Sep 17 00:00:00 2001 From: dscho Date: Tue, 23 Apr 2002 08:21:39 +0000 Subject: solaris endian changes --- main.c | 5 ++++- rfb.h | 15 ++++++++++++++- 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 #define _BYTE_ORDER BYTE_ORDER #define _LITTLE_ENDIAN LITTLE_ENDIAN -#elif sparc +#elif defined (__SVR4) && defined (__sun) /* Solaris */ +#include +#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 -- cgit v1.2.1