Ubuntu 14.10安装simplescalar

时间:2021-10-26 18:42:31

经过两天的安装,终于把simplescalar安装成功,安装过程中在网上找了很多资料,但是很多都是关于低版本ubuntu安装的过程,而且按照这些教程也没有安装成功,来记录一下安装中出现的问题及解决方案。

一、安装参考文章

http://godblesstangkk.blogspot.com/2013/01/install-simplescalar-30-on-ubuntu-1204.html

二、安装环境信息

安装的电脑系统是ubuntu14.10 64位操作系统,如下图:

Ubuntu 14.10安装simplescalar

三、安装过程

1、下载安装文件,可以到此下载:http://pan.baidu.com/s/1gduH9sf

下载的包中包含了4个安装需要的tar包(simplesim-3v0e.tgaz, simpletools-2v0.tgz,simpleutils-990811.tar.gz,gcc-2.7.2.3.ss.tar.gz)和一个文件夹(install needed),install needed文件夹中包含了两个文件ar 和 ranlib,这两个文件会在后面安装gcc-2.7.2.3时用到。

2、设置环境变量

1> 编译用户目录下的.bashrc文件,在次文件最后加上下面的语句:

export IDIR=/any/directory/you/choose/(你自己要安装的目录)

export HOST=i686-pc-linux

export TARGET=sslittle-na-sstrix

然后记得执行一下命令“source .bashrc”让设置的环境变量生效!

注:IDIR是软件安装的目录,选择自己的安装目录; HOST中的i686指定了模拟器目标CPU的体系结构,其他可能的值是“arm", "mips", "i386"等等,pc指定了公司,linux指定了你的操作系统,其他可能的值是”solaris“, ”gnu“等等;TARGET部分指定系统是用大尾端存储还是小尾段存储。

2> 创建要安装的文件夹,可以通过使用”mkdir $IDIR"来创建,然后把所有安装要用到的tar包都移动这个目录中。

3> 更新自己电脑中的软件,使用sudo apt-get update 来更新。

然后安装下面的软件包(可以使用指令sudo apt-get install <package name>来安装):

build-essential

flex

bison

gcc-multilib(先不要安装)

g++-multilib(先不要安装)

注:此时先安装上面的三个软件包(build-essential、flex、bison),gcc-multilib和g++-multilib先不要安装,因为我在安装的时候就直接安装了这两个包,导致在安装gcc-2.7.2.3时出现了一些错误,错误的原因是安装gcc-multilib和g++-multilib时会直接安装更新自己系统的gcc,因为没有安装这两个包之前我的gcc是4.9版本,安装之后gcc变成5.2.1了;所以猜测出错的原因是gcc版本太高了,具体的错误在后面会提到。

3、解压Simpletools-2v0

执行下面的指令:

cd $IDIR

tar xvfz simpletools-2v0.tgz

rm -rf gcc-2.6.3   (删除这个文件夹,因为会安装新的版本的gcc,就是gcc-2.7.2.3)

完成这写指令后,在$IDIR目录下会得到ssbig-na-sstrix和sslittle-na-sstrix文件夹,它们中都包含了一个include文件夹和一个lib文件夹。

4、安装SimpleUtils-990811

执行下面的指令:

cd $IDIR

tar xvfz simpleutils-990811.tar.gz

cd simpleutils-990811

然后修改ld目录下的ldlex.l文件,把此文件中的“yy_current_buffer"替换成YY_CURRENT_BUFFER".

然后回到simpleutils-990811目录,执行下面的命令:

./confing --host=$HOST --target=$TARGET --with-gnu-as --with-gnu-ld --prefix=$IDIR

make

make install

执行完这些命令后,在$IDIR目录下会有bin、lib、include、man、share等文件夹(其实还有f2c-1994.09.27和glibc-1.09两个文件夹),另外,在sslittle-na-sstrix文件夹下多了一个bin文件夹)

5、安装simplesim-3v03

首先,解压文件simplesim-3v0e.tgz,执行下面的命令:

cd $IDIR

tar xvfz simplesim-3v0e.tgz

cd simplesim-3.0

make config-pisa

make

注:其中make config-pisa指令要根据自己的需要来选取,如果你需要alpha结果,要改变target配置,并且需要make clean  然后在make config-alpha.

如果这些命令都成功执行后,会看到”my work is done here ..."的消息.

然后可以运行一下模拟器试试,运行下面的命令:

./sim-safe tests/bin.little/test-math

然后你会看到像下面的信息:

sim: ** starting functional simulation **
pow(12.0, 2.0) == 144.000000
pow(10.0, 3.0) == 1000.000000
pow(10.0, -3.0) == 0.001000

...

6、安装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

此时,我们还不能编译,因为由于各种不兼容性会导致非常多的错误,我们先来修改一下源程序。

1> 使我们对当前的目录有写的权限,执行下面的命令

chmod -R +w .  (不要忘记了后面的那个小点 ” . ")

2> 修改Makefile文件,在130行的行末添加“-I/usr/include"

3> 修改protoize.c文件,把60行处的<varargs.h>改为<stdarg.h>

4> 修改obstack.h文件,在341行处,把*((void **)__o->next_free)++ 改为 *((void **)__o->next_free++)

5> 运行下面的命令(注意现在还是处于$IDIR/gcc-2.7.2.3目录下)

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/

然后开始编译:

make LANGUAGES="c c++" CFLAGS="-O" CC="gcc"

此时会出现一个错误,错误的地方是insn-output.c文件,编辑这个文件,在第675 、750、823行末加上一个反斜杠”\"。(注:如果你make clean 后,然后有重新make,需要再次修改这个文件,因为这个文件是编译过程中产生的)

注:如果你在刚开始时安装了gcc-multilib和g++-multilib,若此时你的gcc变为5.0版本了那么此时编译会出现一个“recipe for target '../cc1plus' failed”这样的错误,在我make clean以后,然后gcc版本换成4.9后就没有这个错误了,所以这个错误可能是gcc版本引起的。

然后再次make:

make LANGUAGES="c c++" CFLAGS="-O" CC="gcc"

此时会在出现一个错误,类似有下面的信息:

"*** buffer overflow detected ***: /home/tangkk/simplescalar/sslittle-na-sstrix/bin/ar terminated"

修复这个错误就用到了,安装包里的install needed文件中的两个文件了,把这两个文件(ar和ranlib)放到$IDIR/sslittle-na-sstrix/bin目录下。然后修改它们的权限,使其变为可执行文件,使用下面指令:

cd $IDIR/sslittle-na-sstrix/bin/

chmod +x ar ranlib

然后回到gcc.2.7.2.3目录,再一次编译:

make LANGUAGES="c c++" CFLAGS="-O" CC="gcc"

然后如果出现“recipe for target 'libgcc1.null' failed”这样的错误,此时再装gcc-multilib然后在重新编译就不会有这个错误了。

然后在执行编译命令:

此时若出现文件关于cxxmain.c的错误,可以通过修改cxxmain.c文件,把里面第2978和2979行注释掉,然后在重新编译。

到这时应该就没有错误了。

7、Make enquire

同样在$IDIR/simplescalar/gcc-2.7.2.3目录下,执行下面的指令:

make enquire

若出现“undefined reference to `__isoc99_sscanf”这样的错误,需要修改Makefile文件,在第995行“$(ENQUIRE_CFLAGS)"后面加上”-D_GNU_SOURCE“,然后在重新编译。

执行make enquire

如果出现”/bin/sh: 1: cc: not found“这样的错误,那就需要修改Makefile,在第60行,修改 CC=cc 为 CC=gcc,然后在执行make enquire。

然后就编译完了。

然后执行下面的命令来安装交叉编译器:

../simplesim-3.0/sim-safe ./enquire -f > float.h-cross  (这个过程好像需要花费很长的时间,我的已经运行一个下午了,还没有结束)
 
make LANGUAGES="c c++" CFLAGS="-O" CC="gcc" install

8、测试

可以写一个hello world程序来进行测试。

写一个hello.c的文件内容如下:

#include<stdio.h>

main(){

  printf("Hello World!\n");

}

然后使用交叉编译器来编译它。命令如下:

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

(如果这样运行失败了,可以试着进入上面的bin文件夹,假设hello.c文件在$IDIR目录下,使用命令"./sslittle-na-sstrix-gcc -o ../hello ../hello.c"来运行,如果还是失败,可能是环境变量混乱的问题,关闭并重启终端,然后再试)

如果看到了下面的信息:

sim: ** starting functional simulation **
Hello World!
说明已经安装成功了!

Ubuntu 14.10安装simplescalar的更多相关文章

  1. Ubuntu 14&period;10安装SecureCRT 7&period;3

    Ubuntu 14.10下安装SecureCRT 7.3 1.软件准备 Ubuntu14.10 x64 SecureCRT7.3的版本:scrt-7.3.0-657.ubuntu13-64.x86_6 ...

  2. ubuntu 14&period;10 安装 zabbix

    在ubuntu 14.10 上部署 zabbix 2.x 基本软件包安装 既然是ubuntu系统,当然要用好apt-get神器. 参考教程 URL:http://blog.csdn.net/cloud ...

  3. Ubuntu 14&period;10安装SecureCRT 7&period;3(转)

    原文 :http://blog.csdn.net/chszs/article/details/40623169 1.软件准备 Ubuntu14.04 x64 下载SecureCRT7.3的版本:scr ...

  4. Ubuntu 14&period;10安装手记

    1. Ubuntu系统安装 按照 www.linuxidc.com/Linux/2014-04/100369.htm 的安装方法即可. 配置文件有两个需要注意的地方.一.搞清楚电脑的分区表,c盘是hd ...

  5. Ubuntu 14&period;10安装mentohust

    关于linux下mentohust的安装本来有很多教程了,但从网上找了一些教程没有几个总结的很全面的,大都只言片语,不是太负责.下面详细的列出每一个步骤,希望能帮到有需要的人. 一 安装准备 首先下载 ...

  6. &lbrack;ubuntu Setup&rsqb; ubuntu 14&period;10 安装 JDK

    from :  http://www.cnblogs.com/plinx/archive/2013/06/01/3113106.html 1.到 Sun 的官网下载 http://www.oracle ...

  7. VMware Tools的简易安装---解决Ubuntu 14&period;10不能满屏显示问题

    由于使用的VMware WorkStation是中文破解版,安装时又是简易安装,因此VMware Tools并没有安装上,导致Ubuntu 14.10在VMware中装上之后,并不能满屏显示,如图1所 ...

  8. Ubuntu 14&period;10 下安装Ganglia监控集群

    关于 Ganglia 软件,Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格.它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数 ...

  9. Ubuntu 14&period;10 下安装java反编译工具 jd-gui

    系统环境,Ubuntu 14.10 ,64位 1 下载JD-GUI,网址http://221.3.153.126/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/jd.benow.ca/ ...

随机推荐

  1. 使用MyEclipse 开发struts2框架结构详细教程——以登录为例

    1.首先建立Web Project,名称为:struts2 ,然后选择Java EE6.0,点击Finish. 2.右击“struts”选择MyEclipse->Add Struts Capab ...

  2. Hadoop之Storm安装

    nimbus:主节点,负责分发代码,分配任务(只能有一个)supervisor:从节点,负责执行任务(可以有多个) jdkzookeeper(192.168.1.170/171/172)建议在zook ...

  3. 使用tdcss&period;js轻松制作自己的style guide

    http://jakobloekke.github.io/tdcss.js/ 在前端开发中,如果能够有一个style guide对于设计来说就显得专业稳定,一致性.在上述链接中,有一个tdcss.js ...

  4. poj 2828 Buy Tickets【线段树单点更新】【逆序输入】

    Buy Tickets Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 16273   Accepted: 8098 Desc ...

  5. PLSQL Developer使用技巧整理(转)

    一.工具-首选项-用户界面-编辑器-其它-显示行号二.工具-首选项-窗口类型-SQL窗口-显示隔号(行号) 在使用PL/SQL Developer对Procedure进行Debug时,突然发现无法Se ...

  6. jquery mobile自己定义webapp开发实例(一)——前言篇

    用jquery mobile做了一段时间的webapp开发,准备用自己的一个小demo做一个模块化的分享 点击demo演示 手机演示二维码: 此demo已经是比較老的版本号,用户体验流畅度确实还存在非 ...

  7. webrtc视频数据接收端处理流程详解

  8. docker&lpar;四&rpar; 使用Dockerfile构建镜像

    下面以一个例子来演示构建镜像的过程. #在/tmp目录下演示 cd tmp mkdir build-redis-image 1.创建Dockerfile文件 vim Dockerfile 并写入如下内 ...

  9. cocos2d-x 3&period;1 编译脚本android-build&period;py

    写在前面: 前段时间下载了cocos2d-x 3.1,按照官网的教程,配置环境,编译打包,走了一遍,感觉不错,顺便发现其中用了很多python的脚本文件,比如今天要说的android-build.py ...

  10. 【Nowcoder 上海五校赛】二数(模拟)

    题目描述: 我们把十进制下每一位都是偶数的数字叫做“二数”. 小埃表示自己很聪明,最近他不仅能够从小数到大:2,3,4,5....,也学会了从大数到小:100,99,98...,他想知道从一个数开始数 ...