Regular cross-compilation. This can be complicated to configure for regular users since they would need to e.g. build Crosstool-NG, build a toolchain, probably patch multiple ROS2 packages...
However, ROS Tooling group works on putting cross-compilation tools in Docker image (https://github.com/ros-tooling/cross_compile/issues/69). From my point of view, this is the ultimate solution! A user would install our container with toolchain simply with docker pull OUR_CONTAINER, allocate a pseudo-tty (docker run -it) and run any build command at native speed. If successful, we could merge the solution with cross_compile.
I got a request to solve ROS2 cross-compilation issue. There are two possible solutions:
cross_compile
doesn't support custom sysroots or compiler toolchains (https://github.com/ros-tooling/cross_compile/issues/69) andcross_compile
(e.g. https://github.com/ros-tooling/cross_compile/issues/140 and https://github.com/ros-tooling/cross_compile/issues/141)However, ROS Tooling group works on putting cross-compilation tools in Docker image (https://github.com/ros-tooling/cross_compile/issues/69). From my point of view, this is the ultimate solution! A user would install our container with toolchain simply with
docker pull OUR_CONTAINER
, allocate a pseudo-tty (docker run -it
) and run any build command at native speed. If successful, we could merge the solution withcross_compile
.A few resources to start with: