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.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- export NDK_SYSROOT=${NDK}/platforms/android-24/arch-arm For x86: export NDK_TOOLCHAIN=${NDK}/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android- export NDK_SYSROOT=${NDK}/platforms/android-24/arch-x86 This method is only tested for Android NDK versions Revision 11b and later. perf uses some bionic enhancements that are not included in prior 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: For arm: make WERROR=0 ARCH=arm CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --sysroot=${NDK_SYSROOT}" For x86: make WERROR=0 ARCH=x86 CROSS_COMPILE=${NDK_TOOLCHAIN} EXTRA_CFLAGS="-pie --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 /option>space:mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-12 21:58:13 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-12 21:58:13 -0800
commite7aa8c2eb11ba69b1b69099c3c7bd6be3087b0ba (patch)
treef63906f41699c8e38af9d12b063e2ceab0286ef2 /tools/laptop/dslm/.gitignore
parente34bac726d27056081d0250c0e173e4b155aa340 (diff)
parent868c97a846a73e937d835b09b8c885a69df50ec8 (diff)
Merge tag 'docs-4.10' of git://git.lwn.net/linuxHEADmaster
Pull documentation update from Jonathan Corbet: "These are the documentation changes for 4.10. It's another busy cycle for the docs tree, as the sphinx conversion continues. Highlights include: - Further work on PDF output, which remains a bit of a pain but should be more solid now. - Five more DocBook template files converted to Sphinx. Only 27 to go... Lots of plain-text files have also been converted and integrated. - Images in binary formats have been replaced with more source-friendly versions. - Various bits of organizational work, including the renaming of various files discussed at the kernel summit. - New documentation for the device_link mechanism. ... and, of course, lots of typo fixes and small updates" * tag 'docs-4.10' of git://git.lwn.net/linux: (193 commits) dma-buf: Extract dma-buf.rst Update Documentation/00-INDEX docs: 00-INDEX: document directories/files with no docs docs: 00-INDEX: remove non-existing entries docs: 00-INDEX: add missing entries for documentation files/dirs docs: 00-INDEX: consolidate process/ and admin-guide/ description scripts: add a script to check if Documentation/00-INDEX is sane Docs: change sh -> awk in REPORTING-BUGS Documentation/core-api/device_link: Add initial documentation core-api: remove an unexpected unident ppc/idle: Add documentation for powersave=off Doc: Correct typo, "Introdution" => "Introduction" Documentation/atomic_ops.txt: convert to ReST markup Documentation/local_ops.txt: convert to ReST markup Documentation/assoc_array.txt: convert to ReST markup docs-rst: parse-headers.pl: cleanup the documentation docs-rst: fix media cleandocs target docs-rst: media/Makefile: reorganize the rules docs-rst: media: build SVG from graphviz files docs-rst: replace bayer.png by a SVG image ...
Diffstat (limited to 'tools/laptop/dslm/.gitignore')