LMbench是个可移植的,用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写、内存操作、进程创建销毁开销、网络等性能。通过以下步骤操作,即可将LMbench移植到Android上。
1.下载LMbench源码
传送门:http://www.bitmover.com/lmbench/get_lmbench.html
2.编辑scripts/os 添加 OS=arm-linux
$vim scripts/os
-
#!/bin/sh
-
if [ "X$OS" != "X" ] && echo "$OS" | grep -q '`'
-
then
-
OS=
-
fi
-
if [ "X$OS" = "X" ]
-
then OS=bloat-os
-
MACHINE=`uname -m | sed -e 's/ //g' | sed -e 's?/?-?g'`
-
SYSTEM=`uname -s | sed -e 's/ //g' | sed -e 's?/?-?g'`
-
OS="${MACHINE}-${SYSTEM}"
-
if [ -f ../scripts/gnu-os ]
-
then OS=`../scripts/gnu-os | sed s/unknown-//`
-
fi
-
if [ -f ../../scripts/gnu-os ]
-
then OS=`../../scripts/gnu-os | sed s/unknown-//`
-
fi
-
fi
-
#add arm-linux
-
OS=arm-linux
-
echo $OS
3.编辑scripts/compiler 添加 CC=arm-linux-gcc
$vim scripts/compiler
-
#!/bin/sh
-
if [ "X$CC" != "X" ] && echo "$CC" | grep -q '`'
-
then
-
CC=
-
fi
-
if [ X$CC = X ]
-
then CC=cc
-
for p in `echo $PATH | sed 's/:/ /g'`
-
do if [ -f $p/gcc ]
-
then CC=gcc
-
fi
-
done
-
fi
-
#add arm-linux-gcc
-
CC=arm-linux-gcc
-
echo $CC
4.编辑src/Makefile 指定linker
62行,增加 -Wall -Wl,--dynamic-linker=/system/bin/linker
COMPILE=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Wall -Wl,--dynamic-linker=/system/bin/linker
5.编辑src/Makefile 解决无bk.ver问题
用arm-linux-gcc编译,遇到错误
make[2]: *** No rule to make target `../SCCS/s.ChangeSet', needed by
`bk.ver'. Stop.
解决办法:
$vim src/Makefile
231 $O/lmbench : ../scripts/lmbench bk.ver
删除 bk.ver ,再次make , 顺利编译完成后,在bin/arm-linux/下 生成所有工具二进制,并且可以在Android设备上执行。