tags 360482 + patch

On Sun, Apr 02, 2006 at 04:43:18PM +0200, Bastian Blank wrote:
> > ../../include/IceUtil/Config.h:27:5: error: #error "Unknown architecture"
> > make[3]: *** [Base64.o] Error 1

The following patch takes advantage of <endian.h> and <limits.h> to
support all linux/glibc architectures.

lamont

diff -ur t/zeroc-ice-3.0.1/debian/patches/bugs-arch.diff 
zeroc-ice-3.0.1/debian/patches/bugs-arch.diff
--- t/zeroc-ice-3.0.1/debian/patches/bugs-arch.diff     2006-04-12 
05:38:57.000000000 +0000
+++ zeroc-ice-3.0.1/debian/patches/bugs-arch.diff       2006-04-12 
05:42:30.000000000 +0000
@@ -4,39 +4,59 @@
 Date: Mon, 20 Mar 2006 05:23:57 +0000
 
 Added __alpha__ to icecpp config.h too.
+Use endian.h and limits.h to determine endianness and size (on __linux)
 
 Index: include/IceUtil/Config.h
 ===================================================================
---- 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 @@
+--- include/IceUtil/Config.h.orig      2006-04-11 23:28:51.000000000 -0600
++++ include/IceUtil/Config.h   2006-04-11 23:34:23.000000000 -0600
+@@ -16,7 +16,16 @@
+ // Most CPUs support only one endianness, with the notable exceptions
+ // of Itanium (IA64) and MIPS.
  //
- #if defined(__i386)   || defined(_M_IX86)    || \
+-#if defined(__i386)   || defined(_M_IX86)    || \
++#if defined(__linux)
++#   include <endian.h>
++#   if __BYTE_ORDER==__LITTLE_ENDIAN
++#      define ICE_LITTLE_ENDIAN
++#   elif __BYTE_ORDER==__BIG_ENDIAN
++#      define ICE_BIG_ENDIAN
++#   else
++#      error "Unknown endian type"
++#   endif
++#elif defined(__i386)   || defined(_M_IX86)    || \
      defined(__x86_64) || defined(_M_X64)     || \
--    defined(_M_IA64)  || defined(__alpha__)
-+    defined(_M_IA64)  || defined(__alpha__)  || defined(__MIPSEL__)
+     defined(_M_IA64)  || defined(__alpha__)
  #   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"
+@@ -30,7 +39,14 @@
+ //
+ // 32 or 64 bit mode?
+ //
+-#if defined(__linux) && defined(__sparc__)
++#if defined(__linux)
++#   include <limits.h>
++#   if __WORDSIZE == 64
++#      define ICE_64
++#   else
++#      define ICE_32
++#   endif
++#elif defined(__linux) && defined(__sparc__)
+ //
+ // We are a linux sparc, which forces 32 bit usr land, no matter 
+ // the architecture
 Index: src/icecpp/config.h
 ===================================================================
---- src/icecpp/config.h~        2005-09-22 16:01:13.000000000 +0200
-+++ src/icecpp/config.h 2006-03-24 13:39:00.000000000 +0100
-@@ -72,7 +72,8 @@
- #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)) || \
+--- src/icecpp/config.h.orig   2006-04-11 23:28:51.000000000 -0600
++++ src/icecpp/config.h        2006-04-11 23:36:58.000000000 -0600
+@@ -76,6 +76,8 @@
         defined (__sun) || defined(__hpux) || defined(__APPLE__) || \
         defined(_AIX) || defined(__osf1__)
  #   define WCHAR_TYPE_SIZE 4
++#elif defined(__linux)
++#   define WCHAR_TYPE_SIZE 4
+ #else
+ #   error "unsupported operating system or platform"
+ #endif
 Index: src/icecpp/prefix.c
 ===================================================================
 --- src/icecpp/prefix.c~       2006-04-01 23:37:09.000000000 +0200


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to