Unable to cross compile OpenDDS for linux using CMake #4596
Unanswered
raibopavan
asked this question in
Q&A
Replies: 2 comments 6 replies
-
Please see https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html#cross-compiling and https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html#id3 -- have you tried the current release of OpenDDS? 3.14 is old and many improvements to build/cmake/cross-compile have occurred since then. |
Beta Was this translation helpful? Give feedback.
0 replies
-
@raibopavan |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi I am trying to build OpenDDS for "aarch64" in linux and below mentioned the configuration for the same
Target: aarch64 (variscite imx8mp) | linux | yocto
Host: x86_64 | Ubuntu 20.04
OpenDDS version: 3.14
steps I did for cross compile are below
$ source /hdd/phytec-sdk/environment-setup-aarch64-phytec-linux
$ ./configure --no-tests --target=linux-cross --target-compiler=$(which aarch64-fslc-linux-g++)
$ make
below shows the complete log for the same
raibos@scichip-01:~/temp/DDS-3.14$ source /hdd/variscite-sdk/environment-setup-armv8a-fslc-linux
raibos@scichip-01:~/temp/DDS-3.14$ ./configure --no-tests --target=linux-cross --target-compiler=$(which aarch64-fslc-linux-g++)
Downloading ACE+TAO 2.2a with latest patches
Extracting archive ACE+TAO-2.2a_with_latest_patches_NO_makefiles.tar.gz
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_IN:en",
LC_ALL = (unset),
LANG = "en_IN"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Searching /home/raibos/temp/DDS-3.14 for files...
Found 33232 files and directories in 0 seconds.
Creating /home/raibos/temp/DDS-3.14/build/host
Finished in /home/raibos/temp/DDS-3.14/build/host
Creating /home/raibos/temp/DDS-3.14/build/target
Finished in /home/raibos/temp/DDS-3.14/build/target
Total time: 3 seconds.
Cross-compile configuring host
Running MPC to generate makefiles.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_IN:en",
LC_ALL = (unset),
LANG = "en_IN"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
MPC_ROOT was set to /home/raibos/temp/DDS-3.14/ACE_wrappers/MPC.
Using .../DDS-3.14/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg
Generating 'gnuace' output using build/host/host_tools.mwc
Skipping TAO_IDL_GEN (tao_idl_fe.mpc); it requires tao_idl_fe_gen.
Skipping idl2jni_codegen (idl2jni_codegen.mpc); it requires java.
Generation Time: 1s
Cross-compile configuring target
Running MPC to generate makefiles.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_IN:en",
LC_ALL = (unset),
LANG = "en_IN"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
MPC_ROOT was set to /home/raibos/temp/DDS-3.14/ACE_wrappers/MPC.
Using .../DDS-3.14/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg
Generating 'gnuace' output using build/target/DDS_TAOv2.mwc
Skipping ACE_XML_Utils (XML.mpc); it requires xerces.
Skipping gperf (gperf.mpc); it avoids cross_compile.
Skipping TAO_IDL_GEN (tao_idl_fe.mpc); it requires tao_idl_fe_gen.
Skipping OpenDDS_Security (DdsSecurity.mpc); it requires xerces.
Skipping OpenDDS_XML_QOS_XSC_Generation (qos_xml_handler.mpc); it requires xsc.
Skipping OpenDDS_QOS_XML_XSC_Handler (qos_xml_handler.mpc); it requires xerces.
Skipping OpenDDS_CorbaSeq (CorbaSeq.mpc); it avoids no_opendds_safety_profile.
Skipping opendds_idl (opendds_idl.mpc); it avoids cross_compile.
Skipping OpenDDS_Corba (OpenDDS_Corba.mpc); it avoids no_opendds_safety_profile.
Skipping Monitor_App (Monitor.mpc); it requires qt5.
Skipping dissector (dissector.mpc); it requires wireshark_any.
Skipping ExcelRTD (ExcelRTD.mpc); it requires qt5.
Skipping tao_java (tao_java.mpc); it requires java.
Skipping idl2jni_corba (idl2jni_corba.mpc); it requires java.
Skipping idl2jni_codegen (idl2jni_codegen.mpc); it requires java.
Skipping idl2jni_test_simple (idl2jni_test_simple.mpc); it requires java.
Skipping idl2jni_test_union (idl2jni_test_union.mpc); it requires java.
Skipping idl2jni_runtime (idl2jni_runtime.mpc); it requires java.
Skipping two_idl (two_idl.mpc); it requires java.
Skipping transport_config (transport_config.mpc); it requires java.
Skipping messenger_idl_test (messenger_idl_test.mpc); it requires java.
Skipping publisher_idl_test (publisher_idl_test.mpc); it requires java.
Skipping subscriber_idl_test (subscriber_idl_test.mpc); it requires java.
Skipping java_both_test (java_both_test.mpc); it requires java.
Skipping complex_idl_test (complex_idl_test.mpc); it requires java.
Skipping multirepo_test (multirepo_test.mpc); it requires java.
Skipping builtintopics_test (builtintopics_test.mpc); it requires java.
Skipping hello_java_client (hello_java_client.mpc); it requires java.
Skipping participant_location_test (participant_location_test.mpc); it requires java.
Skipping zerocopy_java_test (zerocopy.mpc); it requires java.
Skipping dcps_java (dcps_java.mpc); it requires java.
Generation Time: 29s
Completed configuring OpenDDS, next run 'make' to compile
the host and target builds of OpenDDS and ACE+TAO.
You can use the generated setenv.sh script in the
build/host and build/target dirs to set environment
variables for future shell sessions.
raibos@scichip-01:~/temp/DDS-3.14$ cd build/target/
raibos@scichip-01:~/temp/DDS-3.14/build/target$ make
make[1]: Entering directory '/home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace'
touch .depend.ACE
GNUmakefile: /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/GNUmakefile.ACE MAKEFLAGS=w
/hdd/variscite-sdk/sysroots/x86_64-fslcsdk-linux/usr/bin/aarch64-fslc-linux/aarch64-fslc-linux-g++ -fvisibility=hidden -fvisibility-inlines-hidden -Wnon-virtual-dtor -ggdb -pthread -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -D_GNU_SOURCE -I/home/raibos/temp/DDS-3.14/build/target/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_BUILD_DLL -c -fPIC -o arm64/.shobj/Local_Name_Space.o Local_Name_Space.cpp
In file included from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/config-linux.h:24,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/config.h:1,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/config-macros.h:24,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/config-lite.h:24,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/ACE_export.h:11,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/Malloc.h:18,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/Malloc_T.h:18,
from /home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/Local_Name_Space.h:20,
from Local_Name_Space.cpp:3:
/home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace/config-linux-common.h:18:10: fatal error: features.h: No such file or directory
18 | #include <features.h>
| ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [/home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/include/makeinclude/rules.local.GNU:190: arm64/.shobj/Local_Name_Space.o] Error 1
make[1]: Leaving directory '/home/raibos/temp/DDS-3.14/build/target/ACE_wrappers/ace'
make: *** [GNUmakefile.dist:109: ACE] Error 2
Beta Was this translation helpful? Give feedback.
All reactions