[omniORB] Issue transfering double over the network on x86_64/arvm8

Duncan Grisby duncan at grisby.org
Sat Feb 4 13:04:15 UTC 2023


On Fri, 2023-02-03 at 12:35 +0100, Thomas Braun via omniORB-list wrote:
> Am 03.02.2023 um 11:45 schrieb Duncan Grisby:
> 
> > 
> > I would have hoped that __VFP_FP__ was defined in Apple's compiler,
> > but this would suggest that it is not. I can check what is defined
> > on an M1 system later today, but if you want to look sooner, that
> > is the place to check.
> 
> Yes OMNI_MIXED_ENDIAN_DOUBLE is defined on my M1.

I confirmed that the Apple compiler does not set __VFP_FP__, nor does
it appear to set any defines that correspond to it.

I don't believe there are any 64-bit ARM CPUs that use the ARM FPA
float format, so I have changed code in CORBA_sysdep.h to be this:


--- omniORB/include/omniORB4/CORBA_sysdep.h	(revision 6632)
+++ omniORB/include/omniORB4/CORBA_sysdep.h	(working copy)
@@ -89,7 +89,7 @@
 // __VFP_FP__ means that the floating point format in use is that of the ARM 
 // VFP unit, which is native-endian IEEE-754.
 #if defined(__arm__)
-#  if defined(__armv5teb__) || defined(__VFP_FP__)
+#  if defined(__armv5teb__) || defined(__VFP_FP__) || defined(__aarch64__)
 #    define NO_OMNI_MIXED_ENDIAN_DOUBLE
 #  else
 #    define OMNI_MIXED_ENDIAN_DOUBLE


That is checked in to both the 4_2 and 4_3 branches.

Duncan.

-- 
Duncan Grisby <duncan at grisby.org>



More information about the omniORB-list mailing list