Comment 48 for bug 1711337

Revision history for this message
James Donald (jdonald) wrote :

Thanks Chituc. That's spot-on with the identical error in Firefox. Specifically, it's not an illegal instruction so much as a misaligned (+2 bytes) instruction, plus at that point it's in Thumb mode when anything inside SkJumper should be in ARM mode.

Technically both firefox and chromium-browser are cross-compiled because the Launchpad logs show the host system as aarch64 while the target is armhf:
* https://launchpadlibrarian.net/356307711/buildlog_ubuntu-xenial-armhf.firefox_58.0.2+build1-0ubuntu0.16.04.1_BUILDING.txt.gz
* https://launchpadlibrarian.net/357154172/buildlog_ubuntu-xenial-armhf.chromium-browser_64.0.3282.167-0ubuntu0.16.04.1_BUILDING.txt.gz

Chromium adds a few more flags that might affect NEON i.e. -mfloat-abi=hard -mtune=generic-armv7-a -mfpu=vfpv3-d16 -mthumb, but as you've pointed out the biggest difference is compiling with clang. Apparently clang is actually supported for building Firefox on Linux, so maybe the Launchpad script could be augmented to just add two required lines to mozconfig.

Looks like Firefox 58 for 18.04 Bionic armhf built successfully and uses gcc 7: https://launchpad.net/ubuntu/+source/firefox/58.0.2+build1-0ubuntu1/+build/14326274
Anyone able to try it out?