ARM Cross-compiling issues with OmniORB-4.2.2+ for Tango 9.4.2

I've been using cppTango 9.3.3 on an ARM processor but need to upgrade to cppTango 9.4.2.
In order to do that I'm required to also upgrade OmniORB 4.2.1 to 4.2.2 (or greater).

I'm using the steps (that does works for OmniORB 4.2.1) described here for overcoming some previous issues.
I'm using these configure values:
../configure –disable-longdouble –prefix=/mnt/angstrom/armlibs/omniORB CC=arm-angstrom-linux-gnueabi-gcc CXX=arm-angstrom-linux-gnueabi-g++ AR=arm-angstrom-linux-gnueabi-ar –host=arm-angstrom-linux-gnueabi –build=x86_64-unknown-linux-gnu

It seems to work up to a point, but then I encounter the following errors:

arm-angstrom-linux-gnueabi-g++ -c -I/mnt/angstrom/rsc-angstrom/build/tmp-angstrom_v2012_12-eglibc/sysroots/stamp9g20evb/usr/include -Wall -Wno-unused -fexceptions  -I/mnt/angstrom/rsc-angstrom/build/tmp-angstrom_v2012_12-eglibc/sysroots/stamp9g20evb/usr/include -I.. -I../../../../../src/lib/omniORB/orbcore/.. -I../../../../include/omniORB4/internal -I../../../../../include/omniORB4/internal -D_REENTRANT -DUSE_omniORB_logStream -D_OMNIORB_LIBRARY -DOMNIORB_VERSION_STRING='"4.2.2"' -DOMNIORB_VERSION_HEX='0x040202F1' -DCONFIG_DEFAULT_LOCATION='"/etc/omniORB.cfg"' -DCONFIG_ENV='"OMNIORB_CONFIG"' -DUnixArchitecture -I. -I../../../../../src/lib/omniORB/orbcore -I../../../../include -I../../../../../include -D__OSVERSION__=2 -D__linux__ -D__arm__ -o static/anonObject.o ../../../../../src/lib/omniORB/orbcore/anonObject.cc
In file included from ../../../../../include/omniORB4/CORBA.h:122:0,
from ../../../../../src/lib/omniORB/orbcore/anonObject.cc:29:
../omniORB4/corbaidl_defs.hh:2076:57: error: 'LongDouble' is not a member of 'CORBA'
../omniORB4/corbaidl_defs.hh:2076:57: error: 'LongDouble' is not a member of 'CORBA'
../omniORB4/corbaidl_defs.hh:2076:77: error: template argument 1 is invalid
../omniORB4/corbaidl_defs.hh:2085:71: error: 'CORBA::LongDouble' has not been declared
../omniORB4/corbaidl_defs.hh: In copy constructor 'CORBA::LongDoubleSeq::LongDoubleSeq(const CORBA::LongDoubleSeq&)':


I've tried to fix it using these patches that I manually apply. And it seems to work, but then I get the same issues with error: 'LongLong' is not a member of 'CORBA'.

I've also tried to cross-compile OmniORB 4.2.4, 4.3.0 & 4.3.1 all with the same errors.

Does anyone else maybe have the same issue, or maybe have a work around?
Thanks in advance
Edited 10 months ago
The omniORB build seems to work on conda, see [1] for the recipe. Does that shine any light?

[1]: https://github.com/conda-forge/omniorb-feedstock/blob/main/recipe/build.sh
Thanks Thomas,

Yes, this did help a lot, specifically this part:
# Compile for native platform first.
# … we have to pass –disable-longdouble here as well,
# otherwise arm compilation fails

I've managed to successfully cross-compile OmniORB 4.2.4 for ARM!
 
Register or login to create to post a reply.