Re: Marshalling issue on Windows with DevLong64
Duncan Grisby via omniORB-list <[email protected]> Thu, 23 Mar 2023 10:12:15 +0000
| Newsgroups | gmane.comp.corba.omniorb.user |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 2023-03-21 at 12:53 +0000, Benjamin Bertrand via omniORB-list wrote: > We found some issue with the omniorb library compiled on conda-forge > for Windows (4.2.5) with cpptango. > If a client sends a DevLong64 in BigEndian, it is incorrectly > converted. > It works fine if LittleEndian is used. Presumably the omniORB build has gone wrong, and it thinks it is a big endian system, even though it is little endian. That would mean a broken omniORB talking to another broken omniORB would work, but for the wrong reason, whereas any other ORB, whether big- or little-endian would fail. > This issue is specific to the conda-forge build. > It was built from a fork using cmake > (https://github.com/beenje/omniORB-cmake) as the original build > system was difficult to make work with conda ( I don't know what that does or how it does it, but it has got it wrong, and I'm afraid I can't really help with it. When omniORB compiles, it uses a preprocessor define _OMNIORB_HOST_BYTE_ORDER_ that must be 1 for little-endian, 0 for big- endian. In the normal build, that is either based on autoconf or based on defines of which processor is in use. The autoconf version is in CORBA_sysdep_auto.h, and the non-autoconf version is in CORBA_sysdep_trad.h. Duncan. -- -- Duncan Grisby -- -- [email protected] -- -- http://www.grisby.org --