感谢支持
我们一直在努力
RackNerd Banner 468x60 RackNerd Banner 468x60

Ubuntu 12.04下SimpleScalar_PISA 的安装

(1)首先准备需要的安装文件,如果没有可到以下地址下载:


simpletools‐2v0.tgz:


http://www.simplescalar.com/tools.html


simplesim‐3v0d‐with‐cheetah.tar.gz:


http://www.ict.kth.se/courses/IS2202/software


simpleutils‐990811.tar.gz:


http://www.eecs.umich.edu/mirv/software


gcc‐2.7.2.3.ss.tar.gz:


http://american.cs.ucdavis.edu/RAD/gcc‐2.7.2.3.ss.tar.gz


(2)打开终端,设置环境变量为:


(安装目录)


$ exportIDIR=/home/student/simplescalar


(主机)


$ export HOST=i686‐pc‐linux


(目标机)


$ export TARGET=sslittle‐na‐sstrix



(3)在student 主目录下创建目录simplescalar,并将4 个安装包移动至该目录:


$ mkdir $IDIR


$ mv simplesim‐3v0d‐with‐cheetah.tar.gz$IDIR


$ mv simpletools‐2v0.tgz $IDIR


$ mv simpleutils‐990811.tar.gz $IDIR


$ mv gcc‐2.7.2.3.ss.tar.gz $IDIR


 



(4)使用命令更新Ubuntu 下的软件包build‐essential,flex,bison:


$ sudo apt‐get installbuild‐essential flex bison


在ubuntu12.04里还需要gcc-multilib


$ sudo apt-get install gcc-multilib


(5)安装SimpleTools:


解压包文件,并移除旧的gcc 文件夹:


$ cd $IDIR


$ tar xvfz simpletools‐2v0.tgz


$ rm ‐rf gcc‐2.6.3


(6)安装SimpleUtils:


首先解压包文件。


$ cd $IDIR


$ tar xvfz simpleutils‐990811.tar.gz


$ cd simpleutils‐990811


编译前需要修改一处代码错误:


在目录simpleutils‐990811/ld 下找到文件ldlex.l 并将所有


的yy_current_buffer 替换为YY_CURRENT_BUFFER.


接下来开始配置,编译:


$ ./configure ‐‐host=$HOST‐‐target=$TARGET ‐‐with‐gnu‐as ‐‐with‐gnu‐ld‐‐prefix=$IDIR


$ make CFLAGS=‐O


$ make install


(7)安装模拟器:


$ cd $IDIR


$ tar xvfzsimplesim‐3v0d‐with‐cheetah.tar.gz


$ cd simplesim‐3.0


$ make config‐pisa


$ make


测试:


$ ./sim‐safetests/bin.little/test‐math


(8)安装gcc 交叉编译器:


解压源代码,并配置安装,修改代码文件读写权限:


$ cd $IDIR


$ tar xvfz gcc‐2.7.2.3.ss.tar.gz


$ cd gcc‐2.7.2.3


$ ./configure ‐‐host=$HOST‐‐target=$TARGET ‐‐with‐gnu‐as ‐‐with‐gnu‐ld‐‐prefix=$IDIR


$ chmod ‐R +w .


接下来,为使编译顺利进行,需要做以下修改:


修改Makefile 的第130 行, 行末添加‐I/usr/include;


修改protoize.c 的第60 行, 将“#include<varargs.h>”替换为“#include<stdarg.h>”;



1.为了解决decl.c 的一处错误信息, 名为“invalidlvalue in increment”, 做以下修改:


编辑obstack.h 的第341 行并将:


*((void**)__o‐>next_free)++=((void *)datum);\


替换为:


*((void**)__o‐>next_free++)=((void *)datum);\


并运行以下命令:


$ cp ./patched/sys/cdefs.h../sslittle‐na‐sstrix/include/sys/cdefs.h


$ cp ../sslittle‐na‐sstrix/lib/libc.a../lib/


$ cp ../sslittle‐na‐sstrix/lib/crt0.o../lib/



接下来构建(build)编译器:


$ make LANGUAGES=c CFLAGS=‐O CC=”gcc‐m32″



这个命令执行后会产生错误信息,可能还需要作如下修改:


追加 ‘\’到insn‐output.c 的675, 750 和823 行末尾;


2.再次执行“make LANGUAGES…”后,碰到错误”buffer overflow”,这是由于Ubuntu 版本


较新造成的。


下载以下文件,放在$IDIR/sslittle‐na‐sstrix/bin下:


‐http://www.ict.kth.se/courses/IS2202/ar


‐http://www.ict.kth.se/courses/IS2202/ranlib


然后,请修改ar 及ranlib 的权限为可执行,不然会提示“Permissiondenied”!


使用命令:


$ chmod +x ar ranlib


或在ar 及ranlib 的属性中修改。


3.再次执行“makeLANGUAGES…”后,提示缺少文件stubs-32.h


$ apt-file update


$ apt-file search stubs-32.h


libc6-dev:/usr/include/i386-linux-gnu/gnu/stubs-32.h


新版的ubuntu更改了stubs-32.h的存放位置。可执行


$ sudo cp/usr/include/i386-linux-gnu/gnu/stubs-32.h /usr/include/gnu/stubs-32.h



4.再次执行“makeLANGUAGES…”后,如果需要则删除cxxmain.c 的2978‐2979 行。


现在,运行:


$ make LANGUAGES=c CFLAGS=‐OCC=”gcc ‐m32″


$ make enquire


$ ../simplesim‐3.0/sim‐safe./enquire ‐f > float.h‐cross


$ make LANGUAGES=c CFLAGS=‐OCC=”gcc ‐m32″ install



5.这时可能会有错误“sendmsg.c:36:parse error”


在文件objc/sendmsg.c的第35行加上”#defineSTRUCT_VALUE 0″


这时再makeinstall应该就没有问题了。


测试:新建hello.c,内容为:


#include<stdio.h>


int main(int argc, char* argv)


{


printf(“HelloWorld!\n”);


return 0;


}


然后用如下命令编译:


$ $IDIR/bin/sslittle‐na‐sstrix‐gcc‐o hello hello.c


生成文件hello,可用如下方式运行:


$ $IDIR/simplesim‐3.0/sim‐safehello


如果输出”HelloWorld!”,说明安装成功! 

赞(0)
转载请注明出处:服务器评测 » Ubuntu 12.04下SimpleScalar_PISA 的安装
分享到: 更多 (0)