[omniORB] Issue transfering double over the network on x86_64/arvm8
Benjamin Bertrand
benjamin.bertrand at maxiv.lu.se
Wed Feb 15 12:36:41 UTC 2023
On 2023-02-11, 20:18, "Duncan Grisby" <duncan at grisby.org <mailto:duncan at grisby.org>> wrote:
>>
>> I have been cross-compiling omniorb for Apple M1 and we haven't seen
>> that issue.
>
>
> Maybe the cross-compiler does set the __VFP_FP preprocessor symbol.
I looked more to understand what is happening.
When cross-compiling I use "configure --host=arm64-apple-darwin20.0.0 --build=x86_64-apple-darwin13.4.0".
I get:
checking build system type... x86_64-apple-darwin13.4.0
checking host system type... aarch64-apple-darwin20.0.0
__arm__ isn't set. I have __arm64__ set by clang.
So it never goes into that block:
#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
When compiling natively on M1, the host system type is set to `uname -p`-apple-darwin${UNAME_RELEASE} for Darwin (by config.guess). And `uname -p` returns "arm".
Is that correct? Or should arm64/aarch64 be used for Apple M1?
Can I trust the cross-compilation I did? Or are some changes required for M1 support?
Thanks
Benjamin
More information about the omniORB-list
mailing list