[omniORB] Patches for AIX XLC 5.0

Gary D. Duzan gdd0@gte.com
Tue, 20 Feb 2001 10:52:49 -0500


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <1868.982684336.1@gte.com>

In Message <9AF728C3B988D411B3F000805F0DD5C3079338@swserv3.lisec.com> ,
   Andreas Eglseer - Entwicklung <andreas.eglseer@lisec.com> wrote:

=>Hi OmniORBers
=>
=>I wanted to compile omniORB on our AIX 4.3 with xlC 5.0, to do this I must
=>apply a patch, wich resides in the omni/patches
=>directory.
=>I recognized, that this patch isn`t up to date ( This patch was made before
=>omniORB could handle LongLong ).
=>
=>Is there somewere an updated patch ?

   Nowhere official that I know of, but I'll attach the changes I
made when building it here recently. Most of the changes should
be generally applicable and platform neutral except for a few.
One change I made but won't include is one to change the path
to Python in several dir.mk files. There should really be a
config variable like PYTHON_LOCAL_PREFIX for locating the Python lib
installation. The change to src/lib/omniORB2/dynamic/sharedlib/dir.mk
to set the path to makeC++SharedLib_r should really be a config
variable, too, as the included patch will break with earlier xlC
compilers. I don't recall why I had to comment out the include of
iostream.h in CORBA_sysdep.h, but it was causing some sort of
problem. The rest should be analagous to the existing patch.

					Gary Duzan
					Verizon Laboratories



------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <1868.982684336.2@gte.com>
Content-Description: xlc5.diff

Index: include/omniORB3/CORBA_sysdep.h
===================================================================
RCS file: /cvsroot/omni/include/omniORB3/CORBA_sysdep.h,v
retrieving revision 1.1.2.20
diff -c -r1.1.2.20 CORBA_sysdep.h
*** CORBA_sysdep.h	2000/12/04 13:46:43	1.1.2.20
--- CORBA_sysdep.h	2001/02/20 15:36:50
***************
*** 771,777 ****
  #ifndef USE_omniORB_logStream
  // New stubs use omniORB::logStream. Old stubs still need cerr. Include
  // the necessary iostream header if that is the case.
! #include <iostream.h>
  #endif
  
  // #define ENABLE_CLIENT_IR_SUPPORT
--- 771,777 ----
  #ifndef USE_omniORB_logStream
  // New stubs use omniORB::logStream. Old stubs still need cerr. Include
  // the necessary iostream header if that is the case.
! //#include <iostream.h>
  #endif
  
  // #define ENABLE_CLIENT_IR_SUPPORT
Index: include/omniORB3/bufferedStream.h
===================================================================
RCS file: /cvsroot/omni/include/omniORB3/bufferedStream.h,v
retrieving revision 1.1.2.3
diff -c -r1.1.2.3 bufferedStream.h
*** bufferedStream.h	2000/08/07 15:34:33	1.1.2.3
--- bufferedStream.h	2001/02/20 15:36:50
***************
*** 175,344 ****
  		    size_t Bufsize=0);
    ~NetBufferedStream();
  
!   friend inline void operator>>= (_CORBA_Char a, NetBufferedStream& s) {
!     MARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
!   }
! 
!   friend inline void operator<<= (_CORBA_Char& a, NetBufferedStream& s) {
!     UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
!   }
  
  #ifdef HAS_Cplusplus_Bool
- 
-   friend inline void operator>>= (_CORBA_Boolean b, NetBufferedStream& s) {
-     _CORBA_Char c = b ? 1 : 0;
-     MARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
-   }
  
!   friend inline void operator<<= (_CORBA_Boolean& b, NetBufferedStream& s) {
!     _CORBA_Char c;
!     UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
!     b = c ? true : false;
!   }
  
  #endif
- 
-   friend inline void operator>>= (_CORBA_Short a, NetBufferedStream& s) {
-     MARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_Short& a, NetBufferedStream& s) {
-     if (s.RdMessageByteOrder() != omni::myByteOrder) {
-       _CORBA_Short t;
-       UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,t);
-       a = Swap16(t);
-     }
-     else {
-       UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
-     }
-     return;
-   }
- 
-   friend inline void operator>>= (_CORBA_UShort a, NetBufferedStream& s) {
-     MARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_UShort& a, NetBufferedStream& s) {
-     if (s.RdMessageByteOrder() != omni::myByteOrder) {
-       _CORBA_UShort t;
-       UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,t);
-       a = Swap16(t);
-     }
-     else {
-       UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
-     }
-     return;
-   }
  
! 
!   friend inline void operator>>= (_CORBA_Long a, NetBufferedStream& s) {
!     MARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
!   }
  
!   friend inline void operator<<= (_CORBA_Long& a, NetBufferedStream& s) {
!     if (s.RdMessageByteOrder() != omni::myByteOrder) {
!       _CORBA_Long t;
!       UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,t);
!       a = Swap32(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
!     }
!     return;
!   }
  
!   friend inline void operator>>= (_CORBA_ULong a, NetBufferedStream& s) {
!     MARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
!   }
  
!   friend inline void operator<<= (_CORBA_ULong& a, NetBufferedStream& s) {
!     if (s.RdMessageByteOrder() != omni::myByteOrder) {
!       _CORBA_ULong t;
!       UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,t);
!       a = Swap32(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
!     }
!     return;
!   }
  
  #ifdef HAS_LongLong
- 
-   friend inline void operator>>= (_CORBA_LongLong a, NetBufferedStream& s) {
-     MARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_LongLong& a, NetBufferedStream& s) {
-     if (s.RdMessageByteOrder() != omni::myByteOrder) {
-       _CORBA_LongLong t;
-       UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,t);
-       a = Swap64(t);
-     }
-     else {
-       UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
-     }
-     return;
-   }
  
!   friend inline void operator>>= (_CORBA_ULongLong a, NetBufferedStream& s) {
!     MARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
!   }
  
!   friend inline void operator<<= (_CORBA_ULongLong& a, NetBufferedStream& s) {
!     if (s.RdMessageByteOrder() != omni::myByteOrder) {
!       _CORBA_ULongLong t;
!       UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,t);
!       a = Swap64(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
!     }
!     return;
!   }
  
  #endif
  
  #if !defined(NO_FLOAT)
- 
-   friend inline void operator>>= (_CORBA_Float a, NetBufferedStream& s) {
-     MARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_Float& a, NetBufferedStream& s) {
-     if (s.RdMessageByteOrder() != omni::myByteOrder) {
-       _CORBA_Float t;
-       UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,t);
-       _CORBA_ULong tl1 = *((_CORBA_ULong *)&t);
-       _CORBA_ULong tl2 = Swap32(tl1);
-       a = *((_CORBA_Float *) &tl2);
-     }
-     else {
-       UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
-     }
-     return;
-   }
  
!   friend inline void operator>>= (_CORBA_Double a, NetBufferedStream& s) {
!     MARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
!   }
  
!   friend inline void operator<<= (_CORBA_Double& a, NetBufferedStream& s) {
!     if (s.RdMessageByteOrder() != omni::myByteOrder) {
!       _CORBA_Double t;
!       UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,t);
!       _CORBA_ULong tl1 = ((_CORBA_ULong *)&t)[1];
!       _CORBA_ULong tl2 = Swap32(tl1);
!       ((_CORBA_ULong *)&a)[0] = tl2;
!       tl1 = ((_CORBA_ULong *)&t)[0];
!       tl2 = Swap32(tl1);
!       ((_CORBA_ULong *)&a)[1] = tl2;
!     }
!     else {
!       UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
!     }
!     return;
!   }
  
  #ifdef HAS_LongDouble
  #error "long double is not supported yet"
--- 175,219 ----
  		    size_t Bufsize=0);
    ~NetBufferedStream();
  
!   friend inline void operator>>= (_CORBA_Char a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Char& a, NetBufferedStream& s);
  
  #ifdef HAS_Cplusplus_Bool
  
!   friend inline void operator>>= (_CORBA_Boolean b, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Boolean& b, NetBufferedStream& s);
  
  #endif
  
!   friend inline void operator>>= (_CORBA_Short a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Short& a, NetBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_UShort a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_UShort& a, NetBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_Long a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Long& a, NetBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_ULong a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_ULong& a, NetBufferedStream& s);
  
  #ifdef HAS_LongLong
  
!   friend inline void operator>>= (_CORBA_LongLong a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_LongLong& a, NetBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_ULongLong a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_ULongLong& a, NetBufferedStream& s);
  
  #endif
  
  #if !defined(NO_FLOAT)
  
!   friend inline void operator>>= (_CORBA_Float a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Float& a, NetBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_Double a, NetBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Double& a, NetBufferedStream& s);
  
  #ifdef HAS_LongDouble
  #error "long double is not supported yet"
***************
*** 531,536 ****
--- 406,580 ----
  };
  
  //////////////////////////////////////////////////////////////////////
+ 
+ inline void operator>>= (_CORBA_Char a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Char& a, NetBufferedStream& s) {
+   UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
+ }
+ 
+ #ifdef HAS_Cplusplus_Bool
+ 
+ inline void operator>>= (_CORBA_Boolean b, NetBufferedStream& s) {
+   _CORBA_Char c = b ? 1 : 0;
+   MARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
+ }
+ 
+ inline void operator<<= (_CORBA_Boolean& b, NetBufferedStream& s) {
+   _CORBA_Char c;
+   UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
+   b = c ? true : false;
+ }
+ 
+ #endif
+ 
+ inline void operator>>= (_CORBA_Short a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Short& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_Short t;
+     UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,t);
+     a = Swap16(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_UShort a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
+ }
+ 
+ inline void operator<<= (_CORBA_UShort& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_UShort t;
+     UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,t);
+     a = Swap16(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
+   }
+   return;
+ }
+ 
+ 
+ inline void operator>>= (_CORBA_Long a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Long& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_Long t;
+     UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,t);
+     a = Swap32(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_ULong a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_ULong& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_ULong t;
+     UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,t);
+     a = Swap32(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ #ifdef HAS_LongLong
+ 
+ inline void operator>>= (_CORBA_LongLong a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_LongLong& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_LongLong t;
+     UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,t);
+     a = Swap64(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_ULongLong a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_ULongLong& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_ULongLong t;
+     UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,t);
+     a = Swap64(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ #endif
+ 
+ #if !defined(NO_FLOAT)
+ 
+ inline void operator>>= (_CORBA_Float a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Float& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_Float t;
+     UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,t);
+     _CORBA_ULong tl1 = *((_CORBA_ULong *)&t);
+     _CORBA_ULong tl2 = Swap32(tl1);
+     a = *((_CORBA_Float *) &tl2);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_Double a, NetBufferedStream& s) {
+   MARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Double& a, NetBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_Double t;
+     UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,t);
+     _CORBA_ULong tl1 = ((_CORBA_ULong *)&t)[1];
+     _CORBA_ULong tl2 = Swap32(tl1);
+     ((_CORBA_ULong *)&a)[0] = tl2;
+     tl1 = ((_CORBA_ULong *)&t)[0];
+     tl2 = Swap32(tl1);
+     ((_CORBA_ULong *)&a)[1] = tl2;
+   }
+   else {
+     UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ #endif
+ 
+ //////////////////////////////////////////////////////////////////////
  ////////////////////////// MemBufferedStream /////////////////////////
  //////////////////////////////////////////////////////////////////////
  
***************
*** 546,715 ****
    MemBufferedStream(void* databuffer, size_t maxLen);
    // Constructors for a read-only buffered stream.
  
!   friend inline void operator>>= (_CORBA_Char a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
!   }
! 
!   friend inline void operator<<= (_CORBA_Char& a, MemBufferedStream& s) {
!     UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
!   }
  
  #ifdef HAS_Cplusplus_Bool
  
!   friend inline void operator>>= (_CORBA_Boolean b, MemBufferedStream& s) {
!     _CORBA_Char c = b ? 1 : 0;
!     MARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
!   }
! 
!   friend inline void operator<<= (_CORBA_Boolean& b, MemBufferedStream& s) {
!     _CORBA_Char c;
!     UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
!     b = c ? true : false;
!   }
  
  #endif
  
!   friend inline void operator>>= (_CORBA_Short a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
!   }
  
!   friend inline void operator<<= (_CORBA_Short& a, MemBufferedStream& s) {
!     if (s.byteOrder() != omni::myByteOrder) {
!       _CORBA_Short t;
!       UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,t);
!       a = Swap16(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
!     }
!     return;
!   }
! 
!   friend inline void operator>>= (_CORBA_UShort a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
!   }
! 
!   friend inline void operator<<= (_CORBA_UShort& a, MemBufferedStream& s) {
!     if (s.byteOrder() != omni::myByteOrder) {
!       _CORBA_UShort t;
!       UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,t);
!       a = Swap16(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
!     }
!     return;
!   }
! 
! 
!   friend inline void operator>>= (_CORBA_Long a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
!   }
! 
!   friend inline void operator<<= (_CORBA_Long& a, MemBufferedStream& s) {
!     if (s.byteOrder() != omni::myByteOrder) {
!       _CORBA_Long t;
!       UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,t);
!       a = Swap32(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
!     }
!     return;
!   }
  
!   friend inline void operator>>= (_CORBA_ULong a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
!   }
  
!   friend inline void operator<<= (_CORBA_ULong& a, MemBufferedStream& s) {
!     if (s.byteOrder() != omni::myByteOrder) {
!       _CORBA_ULong t;
!       UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,t);
!       a = Swap32(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
!     }
!     return;
!   }
  
  #ifdef HAS_LongLong
- 
-   friend inline void operator>>= (_CORBA_LongLong a, MemBufferedStream& s) {
-     MARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_LongLong& a, MemBufferedStream& s) {
-     if (s.RdMessageByteOrder() != omni::myByteOrder) {
-       _CORBA_LongLong t;
-       UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,t);
-       a = Swap64(t);
-     }
-     else {
-       UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
-     }
-     return;
-   }
  
!   friend inline void operator>>= (_CORBA_ULongLong a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
!   }
  
!   friend inline void operator<<= (_CORBA_ULongLong& a, MemBufferedStream& s) {
!     if (s.RdMessageByteOrder() != omni::myByteOrder) {
!       _CORBA_ULongLong t;
!       UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,t);
!       a = Swap64(t);
!     }
!     else {
!       UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
!     }
!     return;
!   }
  
  #endif
  
  #if !defined(NO_FLOAT)
- 
-   friend inline void operator>>= (_CORBA_Float a, MemBufferedStream& s) {
-     MARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
-   }
- 
-   friend inline void operator<<= (_CORBA_Float& a, MemBufferedStream& s) {
-     if (s.byteOrder() != omni::myByteOrder) {
-       _CORBA_Float t;
-       UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,t);
-       _CORBA_ULong tl1 = *((_CORBA_ULong *)&t);
-       _CORBA_ULong tl2 = Swap32(tl1);
-       a = *((_CORBA_Float *) &tl2);
-     }
-     else {
-       UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
-     }
-     return;
-   }
  
!   friend inline void operator>>= (_CORBA_Double a, MemBufferedStream& s) {
!     MARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
!   }
  
!   friend inline void operator<<= (_CORBA_Double& a, MemBufferedStream& s) {
!     if (s.byteOrder() != omni::myByteOrder) {
!       _CORBA_Double t;
!       UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,t);
!       _CORBA_ULong tl1 = ((_CORBA_ULong *)&t)[1];
!       _CORBA_ULong tl2 = Swap32(tl1);
!       ((_CORBA_ULong *)&a)[0] = tl2;
!       tl1 = ((_CORBA_ULong *)&t)[0];
!       tl2 = Swap32(tl1);
!       ((_CORBA_ULong *)&a)[1] = tl2;
!     }
!     else {
!       UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
!     }
!     return;
!   }
  
  #ifdef HAS_LongDouble
  #error "long double is not supported yet"
--- 590,634 ----
    MemBufferedStream(void* databuffer, size_t maxLen);
    // Constructors for a read-only buffered stream.
  
!   friend inline void operator>>= (_CORBA_Char a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Char& a, MemBufferedStream& s);
  
  #ifdef HAS_Cplusplus_Bool
  
!   friend inline void operator>>= (_CORBA_Boolean b, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Boolean& b, MemBufferedStream& s);
  
  #endif
  
!   friend inline void operator>>= (_CORBA_Short a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Short& a, MemBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_UShort a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_UShort& a, MemBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_Long a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Long& a, MemBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_ULong a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_ULong& a, MemBufferedStream& s);
  
  #ifdef HAS_LongLong
  
!   friend inline void operator>>= (_CORBA_LongLong a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_LongLong& a, MemBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_ULongLong a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_ULongLong& a, MemBufferedStream& s);
  
  #endif
  
  #if !defined(NO_FLOAT)
  
!   friend inline void operator>>= (_CORBA_Float a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Float& a, MemBufferedStream& s);
  
!   friend inline void operator>>= (_CORBA_Double a, MemBufferedStream& s);
!   friend inline void operator<<= (_CORBA_Double& a, MemBufferedStream& s);
  
  #ifdef HAS_LongDouble
  #error "long double is not supported yet"
***************
*** 849,854 ****
--- 768,944 ----
    void overrun_error();
    void write_to_readonly_error(const char* file, int line);
  };
+ 
+ //////////////////////////////////////////////////////////////////////
+ 
+ inline void operator>>= (_CORBA_Char a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Char& a, MemBufferedStream& s) {
+   UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,a);
+ }
+ 
+ #ifdef HAS_Cplusplus_Bool
+ 
+ inline void operator>>= (_CORBA_Boolean b, MemBufferedStream& s) {
+   _CORBA_Char c = b ? 1 : 0;
+   MARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
+ }
+ 
+ inline void operator<<= (_CORBA_Boolean& b, MemBufferedStream& s) {
+   _CORBA_Char c;
+   UMARSHAL(s,_CORBA_Char,omni::ALIGN_1,c);
+   b = c ? true : false;
+ }
+ 
+ #endif
+ 
+ inline void operator>>= (_CORBA_Short a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Short& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_Short t;
+     UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,t);
+     a = Swap16(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Short,omni::ALIGN_2,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_UShort a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
+ }
+ 
+ inline void operator<<= (_CORBA_UShort& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_UShort t;
+     UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,t);
+     a = Swap16(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_UShort,omni::ALIGN_2,a);
+   }
+   return;
+ }
+ 
+ 
+ inline void operator>>= (_CORBA_Long a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Long& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_Long t;
+     UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,t);
+     a = Swap32(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Long,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_ULong a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_ULong& a, MemBufferedStream& s);
+ 
+ inline void operator<<= (_CORBA_ULong& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_ULong t;
+     UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,t);
+     a = Swap32(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_ULong,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ #ifdef HAS_LongLong
+ 
+ inline void operator>>= (_CORBA_LongLong a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_LongLong& a, MemBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_LongLong t;
+     UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,t);
+     a = Swap64(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_LongLong,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_ULongLong a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_ULongLong& a, MemBufferedStream& s) {
+   if (s.RdMessageByteOrder() != omni::myByteOrder) {
+     _CORBA_ULongLong t;
+     UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,t);
+     a = Swap64(t);
+   }
+   else {
+     UMARSHAL(s,_CORBA_ULongLong,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ #endif
+ 
+ #if !defined(NO_FLOAT)
+ 
+ inline void operator>>= (_CORBA_Float a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Float& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_Float t;
+     UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,t);
+     _CORBA_ULong tl1 = *((_CORBA_ULong *)&t);
+     _CORBA_ULong tl2 = Swap32(tl1);
+     a = *((_CORBA_Float *) &tl2);
+   }
+   else {
+     UMARSHAL(s,_CORBA_Float,omni::ALIGN_4,a);
+   }
+   return;
+ }
+ 
+ inline void operator>>= (_CORBA_Double a, MemBufferedStream& s) {
+   MARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
+ }
+ 
+ inline void operator<<= (_CORBA_Double& a, MemBufferedStream& s) {
+   if (s.byteOrder() != omni::myByteOrder) {
+     _CORBA_Double t;
+     UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,t);
+     _CORBA_ULong tl1 = ((_CORBA_ULong *)&t)[1];
+     _CORBA_ULong tl2 = Swap32(tl1);
+     ((_CORBA_ULong *)&a)[0] = tl2;
+     tl1 = ((_CORBA_ULong *)&t)[0];
+     tl2 = Swap32(tl1);
+     ((_CORBA_ULong *)&a)[1] = tl2;
+   }
+   else {
+     UMARSHAL(s,_CORBA_Double,omni::ALIGN_8,a);
+   }
+   return;
+ }
+ 
+ #endif
  
  //////////////////////////////////////////////////////////////////////
  /////////////////////////// CdrStreamHelper //////////////////////////
Index: src/lib/omniORB2/dynamic/sharedlib/dir.mk
===================================================================
RCS file: /cvsroot/omni/src/lib/omniORB2/dynamic/sharedlib/dir.mk,v
retrieving revision 1.13.6.6
diff -c -r1.13.6.6 dir.mk
*** dir.mk	2000/11/23 13:05:05	1.13.6.6
--- dir.mk	2001/02/20 15:36:50
***************
*** 354,360 ****
  $(dynlib): $(DYN_OBJS)
  	(set -x; \
          $(RM) $@; \
!         /usr/lpp/xlC/bin/makeC++SharedLib_r \
               -o $(dynsoname) $(IMPORT_LIBRARY_FLAGS) \
           $(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
           -L../../orbcore/sharedlib -l$(libcorename) -p 40; \
--- 354,360 ----
  $(dynlib): $(DYN_OBJS)
  	(set -x; \
          $(RM) $@; \
!         /usr/vacpp/bin/makeC++SharedLib_r \
               -o $(dynsoname) $(IMPORT_LIBRARY_FLAGS) \
           $(filter-out $(LibSuffixPattern),$^) $(OMNITHREAD_LIB) \
           -L../../orbcore/sharedlib -l$(libcorename) -p 40; \
Index: src/lib/omniORB2/orbcore/portableserver.cc
===================================================================
RCS file: /cvsroot/omni/src/lib/omniORB2/orbcore/portableserver.cc,v
retrieving revision 1.1.2.12
diff -c -r1.1.2.12 portableserver.cc
*** portableserver.cc	2000/10/18 16:07:45	1.1.2.12
--- portableserver.cc	2001/02/20 15:36:50
***************
*** 220,226 ****
    if( 0 /*?? in context of invocation on this servant */ ) {
  
      // Return a reference to the object being invoked.
! #if defined(__DECCXX) && __DECCXX_VER >= 60000000
      // Compaq C++ 6.2 warns about this even though this code 
      // cannot ever execute
      return 0;
--- 220,226 ----
    if( 0 /*?? in context of invocation on this servant */ ) {
  
      // Return a reference to the object being invoked.
! #if (defined(__DECCXX) && __DECCXX_VER >= 60000000) || defined(__xlC__)
      // Compaq C++ 6.2 warns about this even though this code 
      // cannot ever execute
      return 0;

------- =_aaaaaaaaaa0--