exquo / signal-libs-build

Automatic compilation of native libraries for the Signal messenger
GNU General Public License v3.0
32 stars 9 forks source link

Provide build for armv6l #15

Open daCaPo opened 1 year ago

daCaPo commented 1 year ago

Would it be possible to create a binary buld for a Raspberry Pi B (armv6l)?

exquo commented 1 year ago

Compiling for ARMv6 turns out to be not very straightforward: the gcc-arm-linux-gnueabihf toolchain from the distros' repos is configured with armv7 flags, so the binaries it produces rely on armv7 instructions and don't run on armv6 (1, 2, 3, 4).

One recommended workaround is to use gcc from https://github.com/raspberrypi/tools. But when building libsignal it stumbles on the boringssl step due to the missing header files (logs). Attempting to use cross-rs fails on configuring Cmake for boringssl. Using a QEMU container to avoid cross-compilation hits a QEMU bug with large filesizes on 32-bit systems.

Some of the these methods could probably be made to work, but I haven't had the time to troubleshoot it further. PRs welcome!

Other ideas: