Welcome 微信登录

首页 / 操作系统 / Linux / Ubuntu 12.04下SimpleScalar_PISA 的安装

(1)首先准备需要的安装文件,如果没有可到以下地址下载:simpletools‐2v0.tgz: http://www.simplescalar.com/tools.htmlsimplesim‐3v0d‐with‐cheetah.tar.gz:http://www.ict.kth.se/courses/IS2202/softwaresimpleutils‐990811.tar.gz: http://www.eecs.umich.edu/mirv/softwaregcc‐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.hlibc6-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! "); return 0;} 然后用如下命令编译: $ $IDIR/bin/sslittle‐na‐sstrix‐gcc‐o hello hello.c 生成文件hello,可用如下方式运行:$ $IDIR/simplesim‐3.0/sim‐safehello 如果输出"HelloWorld!",说明安装成功!  Ubuntu下配置JDK+Eclipse+Android SDKUbuntu下安装和使用Wireshark相关资讯      Ubuntu 12.04 
  • Ubuntu 12.04.5 LTS 发布,赶快升  (08/09/2014 07:22:42)
  • 网络电视软件 TV-Maxe 0.09 发布附  (04/20/2014 20:33:17)
  • Ubuntu 12.04和14.04两大版本性能  (02/14/2014 12:03:01)
  • Ubuntu 12.04.5 将在8月7号发布  (07/15/2014 16:37:58)
  • Ubuntu 12.04 LTS安装后3件必须做  (04/13/2014 08:17:09)
  • Ubuntu 12.04.4 发布下载  (02/07/2014 09:25:56)
本文评论 查看全部评论 (0)
表情: 姓名: 字数