-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 338874 b: refs/heads/master c: 7747e2f h: refs/heads/master v: v3
- Loading branch information
Irina Tirdea
authored and
Arnaldo Carvalho de Melo
committed
Oct 8, 2012
1 parent
76e6e2a
commit 999c8a7
Showing
2 changed files
with
76 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: d816ec2d1bea55cfeac373f0ab0ab8a3105e49b4 | ||
refs/heads/master: 7747e2f4fb5fb840994613dd1474c17cddb7836b |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
How to compile perf for Android | ||
========================================= | ||
|
||
I. Set the Android NDK environment | ||
------------------------------------------------ | ||
|
||
(a). Use the Android NDK | ||
------------------------------------------------ | ||
1. You need to download and install the Android Native Development Kit (NDK). | ||
Set the NDK variable to point to the path where you installed the NDK: | ||
export NDK=/path/to/android-ndk | ||
|
||
2. Set cross-compiling environment variables for NDK toolchain and sysroot. | ||
For arm: | ||
export NDK_TOOLCHAIN=${NDK}/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi- | ||
export NDK_SYSROOT=${NDK}/platforms/android-9/arch-arm | ||
For x86: | ||
export NDK_TOOLCHAIN=${NDK}/toolchains/x86-4.6/prebuilt/linux-x86/bin/i686-linux-android- | ||
export NDK_SYSROOT=${NDK}/platforms/android-9/arch-x86 | ||
|
||
This method is not working for Android NDK versions up to Revision 8b. | ||
perf uses some bionic enhancements that are not included in these NDK versions. | ||
You can use method (b) described below instead. | ||
|
||
(b). Use the Android source tree | ||
----------------------------------------------- | ||
1. Download the master branch of the Android source tree. | ||
Set the environment for the target you want using: | ||
source build/envsetup.sh | ||
lunch | ||
|
||
2. Build your own NDK sysroot to contain latest bionic changes and set the | ||
NDK sysroot environment variable. | ||
cd ${ANDROID_BUILD_TOP}/ndk | ||
For arm: | ||
./build/tools/build-ndk-sysroot.sh --abi=arm | ||
export NDK_SYSROOT=${ANDROID_BUILD_TOP}/ndk/build/platforms/android-3/arch-arm | ||
For x86: | ||
./build/tools/build-ndk-sysroot.sh --abi=x86 | ||
export NDK_SYSROOT=${ANDROID_BUILD_TOP}/ndk/build/platforms/android-3/arch-x86 | ||
|
||
3. Set the NDK toolchain environment variable. | ||
For arm: | ||
export NDK_TOOLCHAIN=${ANDROID_TOOLCHAIN}/arm-linux-androideabi- | ||
For x86: | ||
export NDK_TOOLCHAIN=${ANDROID_TOOLCHAIN}/i686-linux-android- | ||
|
||
II. Compile perf for Android | ||
------------------------------------------------ | ||
You need to run make with the NDK toolchain and sysroot defined above: | ||
make CROSS_COMPILE=${NDK_TOOLCHAIN} CFLAGS="--sysroot=${NDK_SYSROOT}" | ||
|
||
III. Install perf | ||
----------------------------------------------- | ||
You need to connect to your Android device/emulator using adb. | ||
Install perf using: | ||
adb push perf /data/perf | ||
|
||
If you also want to use perf-archive you need busybox tools for Android. | ||
For installing perf-archive, you first need to replace #!/bin/bash with #!/system/bin/sh: | ||
sed 's/#!\/bin\/bash/#!\/system\/bin\/sh/g' perf-archive >> /tmp/perf-archive | ||
chmod +x /tmp/perf-archive | ||
adb push /tmp/perf-archive /data/perf-archive | ||
|
||
IV. Environment settings for running perf | ||
------------------------------------------------ | ||
Some perf features need environment variables to run properly. | ||
You need to set these before running perf on the target: | ||
adb shell | ||
# PERF_PAGER=cat | ||
|
||
IV. Run perf | ||
------------------------------------------------ | ||
Run perf on your device/emulator to which you previously connected using adb: | ||
# ./data/perf |