summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--include/rfb.h37
-rw-r--r--main.c9
3 files changed, 8 insertions, 39 deletions
diff --git a/configure.ac b/configure.ac
index 23e4e07..1467688 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,7 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
+AC_C_BIGENDIAN
AC_TYPE_SIZE_T
AC_HEADER_TIME
diff --git a/include/rfb.h b/include/rfb.h
index fcaa995..52a0804 100644
--- a/include/rfb.h
+++ b/include/rfb.h
@@ -60,50 +60,17 @@ typedef signed char Bool;
#include "rfbproto.h"
-#ifdef __linux__
-#include <endian.h>
-#elif defined(__APPLE__) || defined(__FreeBSD__)
#include <sys/types.h>
-#include <machine/endian.h>
-#define _BYTE_ORDER BYTE_ORDER
-#define _LITTLE_ENDIAN LITTLE_ENDIAN
-#elif defined (__SVR4) && defined (__sun) /* Solaris */
-#include <sys/types.h>
-#if defined(__sparc)
- /* SPARC here (big endian) */
-#define _BYTE_ORDER 4321
-#elif defined(__i386)
-#define _BYTE_ORDER 1234
-#else
-#error Solaris 2.5.1 had ppc support did it not? :-)
-#endif
-#undef Bool
-#define Bool char
-#undef SIGNED
-#define SIGNED
-#include <sys/types.h>
-/* typedef unsigned int pthread_t; */
-#elif defined(WIN32)
-#define _LITTLE_ENDIAN 1234
-#define _BYTE_ORDER _LITTLE_ENDIAN
+#if defined(WIN32)
+#define WORDS_BIGENDIAN
#undef Bool
#define Bool int
-#else
-#include <sys/endian.h>
#endif
#ifdef __sgi__
typedef int socklen_t;
#endif
-#ifndef _BYTE_ORDER
-#define _BYTE_ORDER __BYTE_ORDER
-#endif
-
-#if !defined(_LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN)
-#define _LITTLE_ENDIAN __LITTLE_ENDIAN
-#endif
-
#ifdef WIN32
#include <sys/timeb.h>
#include <winsock.h>
diff --git a/main.c b/main.c
index dddd961..59ddf93 100644
--- a/main.c
+++ b/main.c
@@ -38,10 +38,11 @@ MUTEX(logMutex);
int rfbEnableLogging=1;
-/* 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);
+#ifdef WORDS_BIGENDIAN
+char rfbEndianTest = 0;
+#else
+char rfbEndianTest = -1;
+#endif
/* from rfbserver.c */
void rfbIncrClientRef(rfbClientPtr cl);