SPEC CPU2006测试

一、测试步骤

1. 下载附件中的压缩包speccpu2006.tar.gz,在终端中输入:
$tar xzvf speccpu2006.tar.gz –C /home > /dev/null


2. 继续执行如下命令:
$ cd /home/speccpu2006/tools/src/perl-5.8.7/ext/IPC/SysV
修改SysV.xs文件,注释 #include <asm/page.h>这一行


3. 执行如下命令:
$ cd /home/speccpu2006
$ sudo ./install.sh
在弹出的提示信息中,选择yes,后回车


4. 执行如下命令:
$ sudo . ./shrc
$ sudo apt-get install libbz2-dev
$ sudo cp /usr/lib/aarch64-linux-gnu/libbz2.so /usr/lib/aarch64-linux-gnu/libbz2.so.0
$ sudo runspec -V


5. 选择相应测试文件进行测试:
arm平台:
$runspec –c arm64.cfg -r 1 -n 1 all
$runspec –c arm64.cfg -r 64 -n 1 all
x86_64平台:
$runspec –c x86.cfg -r 1 -n 1 all
$runspec –c x86.cfg -r 64 -n 1 all


6. 查看测试结果,结果存放在/home/spec2006/result中

二、执行中遇到的问题

===================================================================

1.×出现如下错误提示glob/glob.c:xxx:  undefined  reference  to  `__alloca'`×

===================================================================

错误原因:

glibc2.7引起

解决方法:

修改 spccpu目录下的

 /home/speccpu/speccpu2006-v1.0.1/tools/src/make-3.80/glob/glob/glob.c
//      #if  !defined  __alloca  &&  !defined  __GNU_LIBRARY__

#  ifdef        __GNUC__
#    undef  alloca
#    define  alloca(n)        __builtin_alloca  (n)
#  else        /*  Not  GCC.    */
#    ifdef  HAVE_ALLOCA_H
#      include  <alloca.h>
#    else        /*  Not  HAVE_ALLOCA_H.    */
#      ifndef  _AIX
#        ifdef  WINDOWS32
#          include  <malloc.h>
#        else
extern  char  *alloca  ();
#        endif  /*  WINDOWS32  */
#      endif  /*  Not  _AIX.    */
#    endif  /*  sparc  or  HAVE_ALLOCA_H.    */
#  endif        /*  GCC.    */

#  define  __alloca        alloca

//      #endif

报错具体信息

===================================================================

2.×出现如下错误提示:error building Perl×

===================================================================

错误原因:

高版本Linux内核删除了asm/page.h,配置perl时需要用到数学库

解决方法:

打开./tools/src/perl-5.8.8/ext/IPC/SysV/SysV.xs文件,注释asm/page.h头文件(7行)
打开./tools/src/buildtools文件,在编译perl的代码部分,做如下修改:
    修改前:

LD_LIBRARY_PATH=`pwd`
DYLD_LIBRARY_PATH=`pwd`
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
./Configure -dOes -Ud_flock $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR -Dd_bincompat3=undef -A ldflags=-L${INSTALLDIR}/lib -A ccflags=-I${INSTALLDIR}/include -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Uuse5005threads ; testordie "error configuring perl"

    修改后:

LD_LIBRARY_PATH=`pwd`
DYLD_LIBRARY_PATH=`pwd`
./Configure -Dcc="gcc -lm" -Dlibpth='/usr/local/lib64 /lib64 /usr/lib64' -dOes -Ud_flock $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR -Dd_bincompat3=undef -A ldflags=-L${INSTALLDIR}/lib -A ccflags=-I${INSTALLDIR}/include -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Uuse5005threads ; testordie "error configuring perl"   

===================================================================

3.×出现如下错误提示:Udefined reference to pow×

===================================================================

错误原因:

编译perl测试程序时,链接数学库错误

解决方法:

在上述./Configure 前加上

export PERLFLAGS="-A libs=-lm -A libs=-ldl"
  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值