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?