What also seems possible is to set HOST_ARCH=DISTRO_ARCH, and use the resulting SDK as sysroot for external cross compiler.
Hello!
In build systems I've seen SDK comprises separate host tools and sysroot. Isar chose the multiarch approach. So I'm asking you to clarify:1) that I must put "*-dev" packages in SDK_PREINSTALL in order for them to be available to the cross-compiler;2) that there is no detached "sysroot" format available.I'm currently trying to install ROS 2 arm64 package to my SDK:
SDK_PREINSTALL += "\
ros-lyrical-ros-base:${DISTRO_ARCH}"
The problem is that it depends on "python3-pytest:arm64". "python3-pytest" package has "Architecture: all" but not "Multi-Arch: foreign". So it is not available with ":arm64" postfix. I'm currently considering investigating two approaches:
1) fake packages with equivs;
2) self-packaging like in "siemens/isar-riscv".
Additional note:
The multiarch SDK approach also is also preventing me from
SDK_PREINSTALL += "\
ros-lyrical-ros-base \
ros-lyrical-ros-base:${DISTRO_ARCH}"
due to lack of proper multiarch support in ROS 2.
So I can't use it as Docker rootfs container (I want it to carry ROS 2 for both architectures - one for host user, one for cross-compilation). I can just add the SDK to a directory in the container and call "./relocate_sdk.sh". But why do I have to carry the whole amd64 rootfs instead of aarch64 sysroot only?