Comment 123 for bug 1711337

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

@herrtimson from my tests that patch does not resolve the strd r2, r3, [r1] crash on Xenial. However, I do believe it's entirely possible that it indirectly fixed the issue with your gcc-7 toolchain. I'm starting to wonder if this crash does not have a single cause but rather is a codepath that Firefox goes down if there is one of many possible failures in startup.

In addition to the Bionic build above, this weekend I got a Raspbian Stretch build working: https://www.dropbox.com/s/sdqwuda5eaw0cks/firefox_59.0.2%2Bbuild1-stretch-rpi2_armhf.deb?dl=0 with some overview on the forums: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=150438

I used Bionic sources (deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted) in a Stretch container (gcc-6). Initially it crashed on the same strd, so I tried switching to clang and then encountered the same "undefined reference to `free'" errors you guys had mentioned. These come about mainly due it not being supported to call free() before declaration in C99, so then the fix was to add #include <stdlib.h> in a couple places.

I don't think I'll attempt another Xenial or Trusty build anytime soon. I'd like to get some fixes documented and patches submitted upstream so that others can start building Firefox armhf across more platforms. Anyone can still run the 18.04 binary I linked earlier on 16.04 (and possibly 14.04) using the LD_PRELOAD trick.

As for how Arch Linux has been working, I've confirmed it's due to --disable-stylo (mentioned a while ago on the Raspberry Pi forum thread). If I add that flag (while leaving SK_JUMPER_USE_ASSEMBLY intact) then Firefox runs. For some reason the Stylo flag does not get listed in about:buildconfig but it's a very different build path when MOZ_STYLO is disabled, and Stylo is still disabled for Android nightly too.