Building packages for Raspberry Pi using qemu-user
When I first packaged Kerberos.io for Arch Linux ARM, I merely adapted binaries built for Raspbian (see the kerberosio-alarm). It worked for a while until I upgraded to the version 2.4.0 as the machinery service started to crash. Apparently, due to lost ABI compatibility. So it’s time to build the application from the source code. Building on Raspberry PI is impractical due to limited resources, and setting up cross-compilation tools requires a great deal of accuracy. Luckily, I encountered a quick workaround: use qemu-user to allow running native compiler on an x86_64 machine (see the original post).
To automate setting up and launching the shell, I prepared the repository scripts with the shell script arch-qemu-rpi.sh in it.
Then the Kerberos.io machinery can be built either for x86_64 or for armv7h from AUR kerberosio-machinery.
One step further is to go install and configure distcc in the ALARM and cross-build distccd in x86_64 as described in the same article. Now the compilation will be substantially faster, because while the preprocessing will be done under qemu, the actual compilation will be conducted in the host system.