[omniORB] Omniorb osx-arm64 cross compilation
Benjamin Bertrand
benjamin.bertrand at maxiv.lu.se
Mon Oct 31 07:09:11 UTC 2022
cppTango hasn't moved to 4.3 yet, so we are still using 4.2.
For now, my goal was to cross-compile cpptango, so I actually don't need omniidl and omkdepend built for osx-arm64.
The modification to build the omniorb appl and services directories did the trick.
I could successfully cross-compile cpptango after that.
Thanks!
Benjamin
On 2022-10-27, 22:52, "Duncan Grisby" <duncan at grisby.org> wrote:
Can you use omniORB 4.3.x rather than 4.2.5? Cross compiling support
has been improved in 4.3.
It is by design that omniidl and omkdepend are not built when cross
compiling, because the build of omniORB must be able to run omniidl,
meaning it needs omniidl to be compiled for the system running the
build, not for the cross-compilation target.
Even if you had a native omniidl to use in the build, it would be
tricky to cross compile omniidl for the target architecture. It needs
to build a Python extension module that works with the target system's
Python, but the build runs Python to get various configuration details
from it including Python's name of the architecture that is embedded in
the library name. Obviously the cross-compile cannot run the target
system's Python, so it would run the build system's Python and get the
wrong details.
In 4.2.x, cross-compiling is activated with make variables calling it
an "EmbeddedSystem", with the expectation that it is a minimal small
system, and therefore it does not build things like omniNames or the
COS libraries. In 4.3.x, it now makes a clear split between cross
compiling and minimal embedded systems, so when cross compiling you get
those things. It still does not compile omniidl, though.
You can easily modify the 4.2.x build so it makes those things. If you
look at omniORB/src/dir.mk, you will see:
...
ifndef EmbeddedSystem
SUBDIRS += appl services
endif
Simply removing the ifndef around that will cause it to build the appl
and services directories.
Duncan.
On Mon, 2022-10-17 at 11:14 +0000, Benjamin Bertrand via omniORB-list
wrote:
> Hello,
>
> I have been trying to create a conda package of omniorb for Apple M1.
> On conda-forge we currently have to cross-compile.
> The compilation is successful, but I noticed that many files are
> missing (the COS include and libs, the bin and python omniidl module)
> compared to the intel version:
>
> diff -u osx_64/omniorb-libs/files osx_arm64/omniorb-libs/files
> --- osx_64/omniorb-libs/files 2022-05-10 12:47:44.000000000
> +0200
> +++ osx_arm64/omniorb-libs/files 2022-05-10
> 14:01:24.000000000 +0200
> @@ -1,13 +1,3 @@
> -include/COS/COS_sysdep.h
> -include/COS/CosEventChannelAdmin.hh
> -include/COS/CosEventComm.hh
> -include/COS/CosLifeCycle.hh
> -include/COS/CosNotification.hh
> -include/COS/CosNotifyChannelAdmin.hh
> -include/COS/CosNotifyComm.hh
> -include/COS/CosNotifyFilter.hh
> -include/COS/CosTime.hh
> -include/COS/TimeBase.hh
> include/omniORB4/BiDirPolicy.h
> include/omniORB4/CORBA.h
> include/omniORB4/CORBA_AbstractBase.h
> @@ -196,12 +186,6 @@
> include/omnithread/nt.h
> include/omnithread/posix.h
> include/omnithread/pthread_nt.h
> -lib/libCOS4.2.5.dylib
> -lib/libCOS4.2.dylib
> -lib/libCOS4.dylib
> -lib/libCOSDynamic4.2.5.dylib
> -lib/libCOSDynamic4.2.dylib
> -lib/libCOSDynamic4.dylib
> lib/libomniCodeSets4.2.5.dylib
> lib/libomniCodeSets4.2.dylib
> lib/libomniCodeSets4.dylib
>
> -bin/catior
> -bin/convertior
> -bin/genior
> -bin/nameclt
> -bin/omkdepend
> -bin/omniMapper
> -bin/omniNames
> -bin/omnicpp
> -bin/omniidl
> -bin/omniidlrun.py
>
> Full
> log: https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5ba
> ca359d/_apis/build/builds/508418/logs/252
>
> The bin and omniidl module are maybe not compiled by default when
> cross-compiling? Is there a way to force it?
> What could be the issue regarding the COS include and libs?
>
> Thanks
>
> Benjamin
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> https://www.omniorb-support.com/mailman/listinfo/omniorb-list
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
More information about the omniORB-list
mailing list