Chromium Code Reviews| Index: tools/gn/docs/cross_compiles.md | 
| diff --git a/tools/gn/docs/cross_compiles.md b/tools/gn/docs/cross_compiles.md | 
| index 68d9bcb8570a3b623bb35ad0b1ecc2f426a64807..36f01db7523b2e0c62e10a59c1ae93527d423493 100644 | 
| --- a/tools/gn/docs/cross_compiles.md | 
| +++ b/tools/gn/docs/cross_compiles.md | 
| @@ -73,11 +73,42 @@ which target\_arch is requested; the values are constant across all | 
| toolchains. You can do similar things for the `host_cpu` and `host_os` | 
| variables, but should generally never need to. | 
| +For the default toolchain, `target_cpu` and `current_cpu` are the same. For a | 
| +secondary toolchain, `current_cpu` is set based on the toolchain definition | 
| +and `target_cpu` remains the same. When writing rules, **`current_cpu` should | 
| +be used rather than `target_cpu` most of the time**. | 
| + | 
| By default, dependencies listed in the `deps` variable of a rule use the | 
| same (currently active) toolchain. You may specify a different toolchain | 
| using the `foo(bar)` label notation as described in | 
| [GNLanguage#Labels](language.md#Labels). | 
| +Here's an example of when to use `target_cpu` vs `current_cpu`: | 
| + | 
| +``` | 
| +config("my_config") { | 
| + # Uses current_cpu because compile flags are toolchain-dependent. | 
| + if (current_cpu == "arm") { | 
| + defines = [ "CPU_IS_32_BIT" ] | 
| + } else { | 
| + defines = [ "CPU_IS_64_BIT" ] | 
| + } | 
| +} | 
| + | 
| +group("fat_bundle") { | 
| 
 
agrieve
2016/06/08 17:43:56
hmm, actually, I don't think this example is corre
 
 | 
| + deps = [ | 
| + ":shared_library", | 
| + ] | 
| + # Uses target_cpu because 64 bit devices require both 64 bit and 32 bit | 
| + # libraries, but 32 bit devices require only 32 bit libraries. | 
| + if (target_cpu == "arm64") { | 
| + deps += [ | 
| + ":shared_library(//build/toolchain/android:arm)", | 
| + ] | 
| + } | 
| +} | 
| +``` | 
| + | 
| ## As a //build/config or //build/toolchain author | 
| As described in |