在gem5中运行spec cpu2006

首先,博主“wyj7260”的一些列关于gem5与cpu2006的文章给了我们很大帮助与指导,在此对他表示感谢。以下是他的文章专栏,可以进行相关查阅:

http://blog.csdn.net/wyj7260


以下是我在gem5中运行spec cpu2006时遇到的一些问题及解决方法。

(我的服务器os:redhat6.2 64位)


首先,正如http://blog.csdn.net/wyj7260/article/details/8278947一文中描述的那样,在gem5中运行cpu2006的benchmark需要静态编译的exe。但是像该文描述的那样,修改过experiment5.cfg后进行build时,我的服务器会报错,如下:

/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
specmake: *** [bzip2] Error 1


报错是提示找不到c函数库

原因是要进行静态编译,需要.a静态库,对应这里的“-lc”,就是需要libc.a静态库。在我的服务器上“locate libc.a”,会看到其实我的机器上是有这个库的,路径为“/usr/lib/x86_64-redhat-linux5E/lib64/libc.a”。

我的解决方法是在/lib目录下建立一个该静态库的软链接(在任何LD_LIBRARY_PATH能检索到的目录中建立链接均可):

ln -sv /usr/lib/x86_64-redhat-linux5E/lib64/libc.a /lib/libc.a


注意:我尝试过将/usr/lib/x86_64-redhat-linux5E/lib64直接添加到LD_LIBRARY_PATH变量中,但是会出现问题,所以还是建立软链接靠谱。


现在进行编译runspec --config=experiment5.cfg --action=build --tune=base bzip2,就没有问题了。


然后就可以像文章http://blog.csdn.net/wyj7260/article/details/8280278中描述的这样,在gem5中运行编译好的benchmark了:

./build/X86/gem5.opt ./configs/example/se.py -c /usr/local/src/cpu2006/benchspec/CPU2006/401.bzip2/exe/bzip2_base.amd64-m64-gcc41-nn -o /usr/local/src/cpu2006/benchspec/CPU2006/401.bzip2/data/test/input/control

你可能感兴趣的:(在gem5中运行spec cpu2006)