Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Side by Side Diff: docs/linux_chromium_arm.md

Issue 1489193002: Enable arm/linux chromium to build with gn (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_bfd_linking
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Linux Chromium Arm Recipes 1 # Linux Chromium Arm Recipes
2 2
3 [TOC] 3 [TOC]
4 4
5 ## Recipe1: Building for an ARM CrOS device 5 ## Recipe1: Building for an ARM CrOS device
6 6
7 This recipe uses `ninja` (instead of `make`) so its startup time is much lower
8 (sub-1s, instead of tens of seconds), is integrated with goma (for
9 google-internal users) for very high parallelism, and uses `sshfs` instead of
10 `scp` to significantly speed up the compile-run cycle. It has moved to
11 https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building -for-cros-arm-x64 7 https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building -for-cros-arm-x64
12 (mostly b/c of the ease of attaching files to sites).
13
14 8
15 ## Recipe2: Explicit Cross compiling 9 ## Recipe2: Explicit Cross compiling
16 10
17 Due to the lack of ARM hardware with the grunt to build Chromium native, cross 11 Due to the lack of ARM hardware with the grunt to build Chromium native, cross
18 compiling is currently the recommended method of building for ARM. 12 compiling is currently the recommended method of building for ARM.
19 13
20 These instruction are designed to run on Ubuntu Precise. 14 These instruction are designed to run on Ubuntu Precise.
21 15
22 ### Installing the toolchain 16 ### Installing the toolchain
23 17
24 The install-build-deps script can be used to install all the compiler 18 The install-build-deps script can be used to install all the compiler
25 and library dependencies directly from Ubuntu: 19 and library dependencies directly from Ubuntu:
26 20
27 $ ./build/install-build-deps.sh 21 $ ./build/install-build-deps.sh
28 22
29 ### Installing the sysroot 23 ### Installing the sysroot
30 24
31 A prebuilt sysroot image is kept up-to-date on Cloud Storage. It will 25 A prebuilt sysroot image is kept up-to-date on Cloud Storage. It will
32 automatically be installed by gclient runhooks installed if you have 26 automatically be installed by gclient runhooks installed if you have
33 `target_arch=arm` in your `GYP_DEFINES`. 27 `target_arch=arm` in your `GYP_DEFINES`.
34 28
35 To install the sysroot manually you can run: 29 To install the sysroot manually you can run:
36 30
37 ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \ 31 ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \
38 --arch=arm 32 --arch=arm
39 33
40 ### Building 34 ### Building
41 35
42 To build for ARM, using the clang binary in the chrome tree, use the following 36 To build for ARM, using the clang binary in the chrome tree, use the following
43 settings: 37 gn args:
44 38
45 export GYP_CROSSCOMPILE=1 39 target_cpu = "arm"
46 export GYP_DEFINES="target_arch=arm"
47 40
48 There variables need to be set at gyp-time (when you run `gyp_chromium`), 41 Or the following gyp settings:
49 but are not needed at build-time (when you run make/ninja). 42
43 GYP_CROSSCOMPILE=1
44 GYP_DEFINES="target_arch=arm"
50 45
51 ## Testing 46 ## Testing
52 47
53 ### Automated Build and Testing 48 ### Automated Build and Testing
54 49
55 Chromium's testing infrastructure for ARM/Linux is somewhat limited. 50 Chromium's testing infrastructure for ARM/Linux is somewhat limited.
56 There are currently two builders setup, one on the FYI waterfall and one 51 There are currently two builders setup, one on the FYI waterfall and one
57 the the trybot waterfall: 52 the the trybot waterfall:
58 53
59 * [Linux ARM](http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM) 54 * [Linux ARM](http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM)
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 Modes "1024x768" "800x600" "640x480" 100 Modes "1024x768" "800x600" "640x480"
106 EndSubSection 101 EndSubSection
107 EndSection 102 EndSection
108 ``` 103 ```
109 104
110 ### Notes 105 ### Notes
111 106
112 * To building for thumb reduces the stripped release binary by around 9MB, 107 * To building for thumb reduces the stripped release binary by around 9MB,
113 equating to ~33% of the binary size. To enable thumb, set `'arm_thumb': 1` 108 equating to ~33% of the binary size. To enable thumb, set `'arm_thumb': 1`
114 * TCmalloc does not have an ARM port, so it is disabled. 109 * TCmalloc does not have an ARM port, so it is disabled.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698