diff options
Diffstat (limited to 'docs/linux_chromium_arm.md')
-rw-r--r-- | docs/linux_chromium_arm.md | 72 |
1 files changed, 37 insertions, 35 deletions
diff --git a/docs/linux_chromium_arm.md b/docs/linux_chromium_arm.md index 927be6e..2e01d77 100644 --- a/docs/linux_chromium_arm.md +++ b/docs/linux_chromium_arm.md @@ -1,21 +1,21 @@ -Note this currently contains various recipes: +# Linux Chromium Arm Recipes +[TOC] +## Recipe1: Building for an ARM CrOS device ---- +This recipe uses `ninja` (instead of `make`) so its startup time is much lower +(sub-1s, instead of tens of seconds), is integrated with goma (for +google-internal users) for very high parallelism, and uses `sshfs` instead of +`scp` to significantly speed up the compile-run cycle. It has moved to +https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building-for-cros-arm-x64 +(mostly b/c of the ease of attaching files to sites). -# Recipe1: Building for an ARM CrOS device -This recipe uses `ninja` (instead of `make`) so its startup time is much lower (sub-1s, instead of tens of seconds), is integrated with goma (for google-internal users) for very high parallelism, and uses `sshfs` instead of `scp` to significantly speed up the compile-run cycle. It has moved to https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building-for-cros-arm-x64 (mostly b/c of the ease of attaching files to sites). +## Recipe2: Explicit Cross compiling - - ---- - - -# Recipe2: Explicit Cross compiling - -Due to the lack of ARM hardware with the grunt to build Chromium native, cross compiling is currently the recommended method of building for ARM. +Due to the lack of ARM hardware with the grunt to build Chromium native, cross +compiling is currently the recommended method of building for ARM. These instruction are designed to run on Ubuntu Precise. @@ -24,30 +24,28 @@ These instruction are designed to run on Ubuntu Precise. The install-build-deps script can be used to install all the compiler and library dependencies directly from Ubuntu: -``` -$ ./build/install-build-deps.sh --arm -``` + $ ./build/install-build-deps.sh --arm ### Installing the rootfs -A prebuilt rootfs image is kept up-to-date on Cloud Storage. It will -automatically be installed by gclient runhooks installed if you have 'target\_arch=arm' in your GYP\_DEFINES. +A prebuilt rootfs image is kept up-to-date on Cloud Storage. It will +automatically be installed by gclient runhooks installed if you have +`target_arch=arm` in your `GYP_DEFINES`. To install the sysroot manually you can run: -``` -$ ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py --arch=arm -``` + + ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \ + --arch=arm ### Building -To build for ARM, using the clang binary in the chrome tree, use the following settings: +To build for ARM, using the clang binary in the chrome tree, use the following +settings: -``` -export GYP_CROSSCOMPILE=1 -export GYP_DEFINES="target_arch=arm" -``` + export GYP_CROSSCOMPILE=1 + export GYP_DEFINES="target_arch=arm" -There variables need to be set at gyp-time (when you run gyp\_chromium), +There variables need to be set at gyp-time (when you run `gyp_chromium`), but are not needed at build-time (when you run make/ninja). ## Testing @@ -55,21 +53,20 @@ but are not needed at build-time (when you run make/ninja). ### Automated Build and Testing Chromium's testing infrastructure for ARM/Linux is (to say the least) -in its infancy. There are currently two builders setup, one on the +in its infancy. There are currently two builders setup, one on the FYI waterfall and one the the trybot waterfall: http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Cross-Compile http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm - -These builders cross compile on x86-64 and then trigger testing -on real ARM hard bots: +These builders cross compile on x86-64 and then trigger testing on real ARM hard +bots: http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Tests%20%28Panda%29/ http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_tester -Unfortunately, even those the builders are usually green, the testers -are not yet well maintained or monitored. +Unfortunately, even those the builders are usually green, the testers are not +yet well maintained or monitored. There is compile-only trybot and fyi bot also: @@ -78,7 +75,10 @@ http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_compile ### Testing with QEMU -If you don't have a real ARM machine, you can test with QEMU. For instance, there are some prebuilt QEMU Debian images here: http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs generated by rootstock, as mentioned above. +If you don't have a real ARM machine, you can test with QEMU. For instance, +there are some prebuilt QEMU Debian images here: +http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs +generated by rootstock, as mentioned above. Here's a minimal xorg.conf if needed: @@ -119,5 +119,7 @@ EndSection ``` ### Notes - * To building for thumb reduces the stripped release binary by around 9MB, equating to ~33% of the binary size. To enable thumb, set 'arm\_thumb': 1 - * TCmalloc does not have an ARM port, so it is disabled.
\ No newline at end of file + +* To building for thumb reduces the stripped release binary by around 9MB, + equating to ~33% of the binary size. To enable thumb, set `'arm_thumb': 1` +* TCmalloc does not have an ARM port, so it is disabled. |