Index: third_party/crashpad/crashpad/doc/developing.md |
diff --git a/third_party/crashpad/crashpad/doc/developing.md b/third_party/crashpad/crashpad/doc/developing.md |
index 4505d6103a7ee7a120375847b6fc52600463596f..65d62356f65958f166f89a3f7ef2ca05a819dc47 100644 |
--- a/third_party/crashpad/crashpad/doc/developing.md |
+++ b/third_party/crashpad/crashpad/doc/developing.md |
@@ -91,7 +91,9 @@ crashpad`, `gclient sync`, or `gclient runhooks`. |
The Ninja build files and build output are in the `out` directory. Both debug- |
and release-mode configurations are available. The examples below show the debug |
configuration. To build and test the release configuration, substitute `Release` |
-for `Debug`. |
+for `Debug`. On Windows, four configurations are available: `Debug` and |
+`Release` produce 32-bit x86 executables, and `Debug_x64` and `Release_x64` |
+produce x86_64 executables. |
``` |
$ cd ~/crashpad/crashpad |
@@ -112,7 +114,7 @@ Kit)](https://developer.android.com/ndk/) runs on. |
If it’s not already present on your system, [download the NDK package for your |
system](https://developer.android.com/ndk/downloads/) and expand it to a |
suitable location. These instructions assume that it’s been expanded to |
-`~/android-ndk-r13`. |
+`~/android-ndk-r14`. |
To build Crashpad, portions of the NDK must be reassembled into a [standalone |
toolchain](https://developer.android.com/ndk/guides/standalone_toolchain.html). |
@@ -126,8 +128,8 @@ desired. To build a standalone toolchain targeting 64-bit ARM and API level 21 |
``` |
$ cd ~ |
-$ python android-ndk-r13/build/tools/make_standalone_toolchain.py \ |
- --arch=arm64 --api=21 --install-dir=android-ndk-r13_arm64_api21 |
+$ python android-ndk-r14/build/tools/make_standalone_toolchain.py \ |
+ --arch=arm64 --api=21 --install-dir=android-ndk-r14_arm64_api21 |
``` |
Note that Chrome uses Android API level 21 for 64-bit platforms and 16 for |
@@ -135,46 +137,35 @@ Note that Chrome uses Android API level 21 for 64-bit platforms and 16 for |
[`build/config/android/config.gni`](https://chromium.googlesource.com/chromium/src/+/master/build/config/android/config.gni) |
which sets `_android_api_level` and `_android64_api_level`. |
-To configure a Crashpad build for Android using this standalone toolchain, set |
-several environment variables directing the build to the standalone toolchain, |
-along with GYP options to identify an Android build. This must be done after any |
-`gclient sync`, or instead of any `gclient runhooks` operation. The environment |
-variables only need to be set for this `gyp_crashpad.py` invocation, and need |
-not be permanent. |
+To configure a Crashpad build for Android using the standalone toolchain |
+assembled above, use `gyp_crashpad_android.py`. This script is a wrapper for |
+`gyp_crashpad.py` that sets several environment variables directing the build to |
+the standalone toolchain, and several GYP options to identify an Android build. |
+This must be done after any `gclient sync`, or instead of any `gclient runhooks` |
+operation. |
``` |
$ cd ~/crashpad/crashpad |
-$ CC_target=~/android-ndk-r13_arm64_api21/bin/clang \ |
- CXX_target=~/android-ndk-r13_arm64_api21/bin/clang++ \ |
- AR_target=~/android-ndk-r13_arm64_api21/bin/aarch64-linux-android-ar \ |
- NM_target=~/android-ndk-r13_arm64_api21/bin/aarch64-linux-android-nm \ |
- READELF_target=~/android-ndk-r13_arm64_api21/bin/aarch64-linux-android-readelf \ |
- python build/gyp_crashpad.py \ |
- -DOS=android -Dtarget_arch=arm64 -Dclang=1 \ |
- --generator-output=out_android_arm64_api21 -f ninja-android |
+$ python build/gyp_crashpad_android.py \ |
+ --ndk ~/android-ndk-r14_arm64_api21 \ |
+ --generator-output out/android_arm64_api21 |
``` |
-It is also possible to use GCC instead of Clang by making the appropriate |
-substitutions: `aarch64-linux-android-gcc` for `CC_target`; |
-`aarch64-linux-android-g++` for `CXX_target`; and `-Dclang=0` as an argument to |
-`gyp_crashpad.py`. |
+`gyp_crashpad_android.py` detects the build type based on the characteristics of |
+the standalone toolchain given in its `--ndk` argument. |
-Target “triplets” to use for `ar`, `nm`, `readelf`, `gcc`, and `g++` are: |
+`gyp_crashpad_android.py` sets the build up to use Clang by default. It’s also |
+possible to use GCC by providing the `--compiler=gcc` argument to |
+`gyp_crashpad_android.py`. |
-| Architecture | Target “triplet” | |
-|:-------------|:------------------------| |
-| `arm` | `arm-linux-androideabi` | |
-| `arm64` | `aarch64-linux-android` | |
-| `x86` | `i686-linux-android` | |
-| `x86_64` | `x86_64-linux-android` | |
- |
-The port is incomplete, but targets known to be working include `crashpad_util`, |
-`crashpad_test`, and `crashpad_test_test`. This list will grow over time. To |
-build, direct `ninja` to the specific `out` directory chosen by |
-`--generator-output` above. |
+The Android port is incomplete, but targets known to be working include |
+`crashpad_test`, `crashpad_util`, and their tests. This list will grow over |
+time. To build, direct `ninja` to the specific `out` directory chosen by the |
+`--generator-output` argument to `gyp_crashpad_android.py`. |
``` |
-$ ninja -C out_android_arm64_api21/out/Debug crashpad_test_test |
+$ ninja -C out/android_arm64_api21/out/Debug \ |
+ crashpad_test_test crashpad_util_test |
``` |
## Testing |
@@ -193,11 +184,11 @@ $ out/Debug/crashpad_util_test |
``` |
A script is provided to run all of Crashpad’s tests. It accepts a single |
-argument that tells it which configuration to test. |
+argument, a path to the directory containing the test executables. |
``` |
$ cd ~/crashpad/crashpad |
-$ python build/run_tests.py Debug |
+$ python build/run_tests.py out/Debug |
``` |
### Android |
@@ -216,10 +207,10 @@ transferred to the device prior to running the test. |
``` |
$ cd ~/crashpad/crashpad |
-$ adb push out_android_arm64_api21/out/Debug/crashpad_test_test /data/local/tmp/ |
+$ adb push out/android_arm64_api21/out/Debug/crashpad_test_test /data/local/tmp/ |
[100%] /data/local/tmp/crashpad_test_test |
$ adb push \ |
- out_android_arm64_api21/out/Debug/crashpad_test_test_multiprocess_exec_test_child \ |
+ out/android_arm64_api21/out/Debug/crashpad_test_test_multiprocess_exec_test_child \ |
/data/local/tmp/ |
[100%] /data/local/tmp/crashpad_test_test_multiprocess_exec_test_child |
$ adb shell mkdir -p /data/local/tmp/crashpad_test_data_root/test |