SPEC CPU2006 安装遇到的问题

由于兼容性问题SPEC CPU2006中自带的install.sh运行不了,需要重新编译源代码,进入/tool/src目录,运行buildtools文件。
遇到的问题

  1. lib/getline.h:31:1: error: conflicting types for 'getline’
    错误原因:函数冲突,stdio.h已经定义了getline,SPEC CPU2006也定义了。
    解决方案:
    打开./tools/src/specmd5sum/md5sum.c,注释掉getline.h头文件(38行)。
  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的代码部分(第333行和334行)做如下修改
    修改前
     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. Undefined reference to pow
    错误原因:编译perl测试程序时,连接数学库错误。
    解决方案:
    在上面第2个问题的./Configure前加上
    export PERLFLAGS="-A libs=-lm -A libs=-ldl"
    
  4. You haven’t done a “make depend” yet!
    错误原因:perl makedepend时调用的/bin/sh连接到dash shell,但是Debian和Ubuntu系统默认的dash有BUG。(服气。。。。 )
    解决方案:
    sudo rm /bin/sh
    sudo ln –s /bin/bash /bin/sh
    

你可能感兴趣的:(乱七八糟)