summaryrefslogtreecommitdiffstats
path: root/testing/geckodriver/doc/ARM.md
diff options
context:
space:
mode:
Diffstat (limited to 'testing/geckodriver/doc/ARM.md')
-rw-r--r--testing/geckodriver/doc/ARM.md50
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/geckodriver/doc/ARM.md b/testing/geckodriver/doc/ARM.md
new file mode 100644
index 0000000000..8ae9afae58
--- /dev/null
+++ b/testing/geckodriver/doc/ARM.md
@@ -0,0 +1,50 @@
+# Self-serving an ARM build
+
+Mozilla announced the intent to deprecate ARMv7 HF builds of
+geckodriver in September 2018. This does not mean you can no longer
+use geckodriver on ARM systems, and this document explains how you
+can self-service a build for ARMv7 HF.
+
+Assuming you have already checked out [central], the steps to
+cross-compile ARMv7 from a Linux host system is as follows:
+
+ 1. If you don’t have Rust installed:
+
+ ```shell
+ % curl https://sh.rustup.rs -sSf | sh
+ ```
+
+ 2. Install cross-compiler toolchain:
+
+ ```shell
+ % apt install gcc-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross
+ ```
+
+ 3. Create a new shell, or to reuse the existing shell:
+
+ ```shell
+ % source $HOME/.cargo/env
+ ```
+
+ 4. Install rustc target toolchain:
+
+ ```shell
+ % rustup target install armv7-unknown-linux-gnueabihf
+ ```
+
+ 5. Put this in [testing/geckodriver/.cargo/config]:
+
+ ```rust
+ [target.armv7-unknown-linux-gnueabihf]
+ linker = "arm-linux-gnueabihf-gcc"
+ ```
+
+ 6. Build geckodriver from testing/geckodriver:
+
+ ```shell
+ % cd testing/geckodriver
+ % cargo build --release --target armv7-unknown-linux-gnueabihf
+ ```
+
+[central]: https://hg.mozilla.org/mozilla-central/
+[testing/geckodriver/.cargo/config]: https://searchfox.org/mozilla-central/source/testing/geckodriver/.cargo/config