Method 1: Compilation perf on Debian/ARM64 platform
# apt-get install flex bison libelf-dev libaudit-dev libdw-dev libunwind* \
python-dev binutils-dev libnuma-dev libgtk2.0-dev libbfd-dev libelf1 \
libperl-dev libnuma-dev libslang2 libslang2-dev libunwind8 libunwind8-dev \
binutils-multiarch-dev elfutils libiberty-dev libncurses5-dev
# git clone https://github.com/Linaro/OpenCSD
# cd OpenCSD/decoder/build/linux/
# make DEBUG=1 LINUX64=1 & make install
# cd $KERNEL_DIR
# make VF=1 -C tools/perf/
Method 2: Cross-Compilation perf for ARM64 on x86 PC 驗證可以通過
# export CROSS_COMPILE=aarch64-linux-gnu-
# export ARCH=arm64
# git clone https://github.com/Linaro/OpenCSD my-opencsd
# cd OpenCSD/decoder/build/linux/
# make DEBUG=1 LINUX64=1
# export CSINCLUDES=my-opencsd/decoder/include/
# export CSLIBS=my-opencsd/decoder/lib/builddir
# export LD_LIBRARY_PATH=$CSLIBS
# cd $KERNEL_DIR
# make LDFLAGS=-static NO_LIBELF=1 NO_JVMTI=1 VF=1 -C tools/perf/
這里記錄一下出錯問題
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
編譯出錯
1、配置交叉工具鏈
export CROSS_COMPILE=arm-linux-gnueabihf-
2、配置架構
export ARCH=arm
3、克隆opencsd
git clone https://github.com/Linaro/OpenCSD my-opencsd
4、編譯opencsd
cd my-opencsd/decoder/build/linux make DEBUG=1 LINUX64=1
5、設置CSINCLUDES、CSLIBS、LD_LIBRARY_PATH
export CSINCLUDES=/home/picohood/gitrepo/fpstu_tisdk/board-support/linux-4.4.x-mainline/tools/perf/my-opencsd/decoder/include export CSLIBS=/home/picohood/gitrepo/fpstu_tisdk/board-support/linux-4.4.x-mainline/tools/perf/my-opencsd/decoder/lib/builddir export LD_LIBRARY_PATH=$CSLIBS
6、編譯perf
失敗
cd /home/picohood/gitrepo/fpstu_tisdk/board-support/linux-4.4.x-mainline make LDFLAGS=-static NO_LIBELF=1 NO_JVMTI=1 VF=1 -C tools/perf/
試了好多方法,最后是只需要設置 NO_LIBELF=1 成功,前面編譯opencsd應該也不需要
make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm NO_LIBELF=1