linuxperfarm,perfarm交叉编译
前⾔
perf⼯具源码位于linux内核⽬录的tools下
perf⼯具的编译需要依赖于内核
perf⼯具必须使⽤编译linux内核源码的同⼀个编译器编译
gnu编译器步骤
编译zlib
⽹上查到资料说需要编译zlib,我编译的时候貌似不⽤也⾏,可以尝试先不⽤zlib
下载地址:zlib
配置:
CC=arm-linux-gnueabihf-gcc ./configure –prefix={你的gcc⽬录}arm-linux-gnueabihf/libc/usr/
编译: make && make install
编译elfutils
我的gcc版本:gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux
下载elfutils-0.159 elfutils(我⽤最新的没问题)
配置:
./configure --host=arm-linux-gnueabihf --prefix=/home/tofu/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-
20121123_linux/arm-linux-gnueabihf/libc/usr/
(注意:host参数的gnueabihf后⾯没有“-”,错写了要悲剧)
修改Makefile: 删除elfutils根⽬录下Makefile⾥⾯的libcup (没让你删除cpu⽂件夹啊)
修改backends/Makefile: 删除backends/Makefile中的libebl_i386.so和libebl_x86_64.so
编译: make&&make install
编译binutils
在GNU官⽅⽹站下载binutils源码,考虑到与编译器版本匹配,我下载了binutils-2.23.2
GNU官⽅推荐在⼀个单独的⽂件夹进⾏编译。在源码⽂件夹的同级⽬录建⽴编译⽂件夹 mkdir ../binutils-build
进⼊binutils-build⽂件夹,执⾏命令
../binutils-2.23.2/configure –target=arm-linux-gnueabihf –host=arm-linux-gnueabihf –prefix=/tmp/binutils
make&&make install 即可
编译perf
修改perf根⽬录下的Makefile: 在前⾯增加
EXTLIBS += -lpthread -lrt -lelf -lm -lebl -ldl -L/home/tofu/dji/linux-sofpga-next-preempt/tools/elfutils/lib
修改config/Makefile⽂件,注释掉以下⼏⾏,本来已经加⼊了elfutils,但是这⾥⾃动检测总是检测不到,
直接注释了。
ifneq ((calltry−cc,(SOURCE_DWARF),(FLAGSDWARF),libdw),y)msg:=(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。