Archived

This forum has been archived. Please start a new discussion on GitHub.

MIPS and Alpha support

Hi,

Would it be possible to apply the following patch to IceUtil/Config.h and icecpp/config.h?

This is just to select the proper endianness in MIPS and to set the wchar_t size in Alpha.
===================================================================
--- include/IceUtil/Config.h~   2006-02-01 06:56:14.000000000 +0100
+++ include/IceUtil/Config.h    2006-03-20 12:15:48.000000000 +0100
@@ -18,10 +18,10 @@
 //
 #if defined(__i386)   || defined(_M_IX86)    || \
     defined(__x86_64) || defined(_M_X64)     || \
-    defined(_M_IA64)  || defined(__alpha__)
+    defined(_M_IA64)  || defined(__alpha__)  || defined(__MIPSEL__)
 #   define ICE_LITTLE_ENDIAN
-#elif defined(__sparc) || defined(__sparc__) || defined(__hppa) || \
-      defined(__ppc__) || defined(_ARCH_COM)
+#elif defined(__sparc) || defined(__sparc__)  || defined(__hppa) || \
+      defined(__ppc__) || defined(__MIPSEB__) || defined(_ARCH_COM)
 #   define ICE_BIG_ENDIAN
 #else
 #   error "Unknown architecture"
--- src/icecpp/config.h~	2006-03-20 00:42:36.000000000 +0000
+++ src/icecpp/config.h		2006-03-20 00:47:51.000000000 +0000
@@ -63,7 +63,7 @@
 #if defined(_WIN32)
 #   define WCHAR_TYPE_SIZE 2
 #elif (defined(__linux) || defined(__FreeBSD__)) && \
-      (defined(__i386) || defined(__x86_64) || defined(__sparc)) || \
+      (defined(__i386) || defined(__x86_64) || defined(__sparc) || \
+       defined(__mips) || defined(__alpha__)) || \
        defined (__sun) || defined(__hpux) || defined(__APPLE__) || \
        defined(_AIX) || defined(__osf1__)
 #   define WCHAR_TYPE_SIZE 4

Indeed, for WCHAR_TYPE_SIZE a Debian developer (Falk Hueffner) reports the following alternative that relies on having a complete limits.h (since icecpp defines HAVE_LIMITS_H I don't think it would cause any harm to any supported plattform):
#if WCHAR_MAX == 32767 || WCHAR_MAX == 65536
#   define WCHAR_TYPE_SIZE 2
#elif WCHAR_MAX == 2147483647 || WCHAR_MAX == 4294967295
#   define WCHAR_TYPE_SIZE 4
#else
#   error "unsupported operating system or platform"
#endif

Comments welcome.

F. Moya

Comments

  • marc
    marc Florida
    Thank you very much, we will add this.
  • bernard
    bernard Jupiter, FL
    We no longer use WCHAR_TYPE_SIZE on our mainline, so incorporating this patch very easy :) .

    Bernard