raspberry-pi-cross-compilers
raspberry-pi-cross-compilers copied to clipboard
Sysroot of this toolchain is incompatible to sysroot in official Raspbian images
I am trying to cross-build a complex project with CMake and VCPKG and a sysroot configuration. My sysroot content is extracted from the official Raspbian RFS image.
Neither compilation nor linking works properly which is caused by a file layout deviation:
- Raspbian images follow the multi-arch layout where includes are found under
/usr/include/arm-linux-gnueabihf
and libs under/usr/lib/arm-linux-gnueabihf
- The sysroot delivered with these toolchains here does not have such an architecture subfolder, but puts everything directly under
/usr/include
or/usr/lib
respectively.
Example:
- Raspbian image:
/usr/include/arm-linux-gnueabihf/sys/cdefs.h
- This toolchain:
/usr/include/sys/cfefs.h
I cannot work around by simply passing additional include paths and rpaths to the compiler/linker driver. That is because VCPKG swallows additional include paths outside of the vcpkg build tree but passes CMAKE_SYSROOT
.
I would expect the sysroot of this toolchain to match Rapsbians RFS 100%, except that it contains less. The cross toolchain for Windows actually does that.
Actually, I think the problem is a missing --enable-multiarch
in this toolchain's configuration.