QNX support: cmake modules changes related to cross compiling for multiarchitectures

1 post / 0 new
Last seen: 8 months 2 weeks ago
Joined: 05/09/2021
Posts: 5
QNX support: cmake modules changes related to cross compiling for multiarchitectures

There are a few issues with the cmake modules that help finding connext libraries for QNX

I have noticed that the new package rmw_connextdds has new cmake files that also search for connext installation, rti_connext_dds_cmake_module/cmake/rti_build_helper.cmake and the module that comes with host package rti_connext_dds-6.0.1/resource/cmake/FindRTIConnextDDS.cmake

Issue 1:

FindRTIConnextDDS.cmake only looks for QNX7 which is the older version of QNX. We are currently using QNX7.1 and the compiler version is 8.3.0.

Issue 2:

Normally with new QNX we build for armv8 and x86_64, but incase one of those architectures connext is not available, we would like the build to proceed without building rmw for connext. Currently I was provided target files for x64QNX7.1qcc_cxx8.3.0 but not armv8QNX7.1qcc_cxx8.3.0. When I run the build for ROS2, I build for armv8 and x86_64. Since armv8 is not available but rti host and x64 target files are installed the cmake modules cause the build to fail when building for armv8. Specifically speaking the function rti_guess_connextdds_arch() does not find armv8 and the build fails due to the following message:

--- stderr: rti_connext_dds_cmake_module
CMake Warning at cmake/rti_build_helper.cmake:536 (message):
CONNEXTDDS_ARCH not specified. Please set -DCONNEXTDDS_ARCH= to specify
your RTI Connext DDS architecture
Call Stack (most recent call first):
cmake/rti_build_helper.cmake:562 (rti_guess_connextdds_arch)
CMakeLists.txt:25 (rti_find_connextpro)

CMake Error at /builds/workspace/build/rti_connext_dds-6.0.1/resource/cmake/FindRTIConnextDDS.cmake:771 (message):
architecture is unsupported by this module
Call Stack (most recent call first):
cmake/rti_build_helper.cmake:572 (find_package)
CMakeLists.txt:25 (rti_find_connextpro)

Proposal to solve issue #2 is here https://github.com/ros2/rmw_connextdds/issues/63

Issue 3:

[1.955s] CMake Warning at /builds/workspace/build/build/build/platform/Modules/FindRTIConnextDDS.cmake:565 (message):
[1.955s] The version of target_libraries is, which is incosistent with the
[1.955s] expected version... 6.0.1