Re: FYI: firefox native build experience on ARM64 Linux

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: FYI: firefox native build experience on ARM64 Linux

Nicholas Alexander
Thierry,

Sorry for the delayed reply.  

On Wed, Jun 6, 2018 at 8:06 AM, Thierry <> wrote:
Hi,

(your e-mail found in a build guide for Android firefox -- feel free to forward to appropriate list or wiki)

I'm replying to dev-builds in case others are interested in your research, and I've tried to keep your full name and email out of the reply in case you don't want them shared.
 
For your information, the ARM64 architecture becoming competitive in low-cost embedded computers (e.g. Hardkernel Odroid C2 with 2GB RAM builds fiferox in circa 11 hours), it may be attractive to do an Android firefox build using a native compiler.

Here is my experience with building kernel and packages for this ARM64 target. I followed the classical cross-compiling method for the kernel (I got the version info and .config from the Odroid C2 / Amlogic SOC support community), but I realized that cross-compilation for packages would be difficult when I noticed that the ldconfig utility does not support cross-development. So I decided that native build would be the routine.

My preferred Linux source-based distribution is Crux (https://crux.nu, https://crux-arm.nu) which provides a simple but effective package management scheme where the firefox prerequisites were readily downloaded, build, and installed. I did the amateur mistake to first attempt the firefox build without an 8GB swap partition, which I finally provided through NFS (a known trick).

The basic X11 software and a primitive windows manager had been almost trivially build and installed. The browser is the monster package in this project, and build from source is not a top priority.

Here are a few ideas:

(1) As written above, an ARM64 Linux might be a build system for Android Firefox.

(2) Maybe the following build documentation quote should be fixed:
"Detailed Requirements
General considerations
[...]
    A 64-bit x86 CPU and a 64-bit OS."
(It needs not be an X86 CPU any more).
Ref: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_build/Linux_and_MacOS_build_preparation

If this is really true, please update the MDN page you link, perhaps with a footnote saying that it is possible to build on ARM64 devices.

(3) Maybe an ARM64 Linux binary firefox package could be offered. It may actually be efficient for Mozilla developer support community to do so because amateurs like me would use the binary distribution instead of begging for source distribution support when they e.g. omit to provision swap for the build.

It's unlikely that Mozilla will do this, since Linux-on-i686+ is already a small population, and Linux-on-ARM is even smaller.  Somehow Debian builds Firefox for arm64 so it can't be that obscure.  (And since Debian manages it, we should _definitely_ update that MDN page you link to!)
 
For Firefox for Android, the real problem is that, IIRC, the Android toolchain distributed by Google is not available for Linux-on-ARM hosts.  (I think it's Windows, macOS, and Linux-on-i686+.)  If that is true there's no real hope for producing Firefox for Android builds on ARM64.  If I'm wrong, please update me!  (By replying to the dev-builds list.)

Thanks for your efforts,
Nick

_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds