Simplescalar - BBS

Zenobia avatar
By Zenobia
at 2006-07-28T23:19

Table of Contents

※ 引述《yaushung (Ronald)》之銘言:
: 想請問有沒有版友友在FreeBSD上成功安裝過simplescalar
: 並且可以正常模擬的??
: 實驗所需
: 在FreeBSD 6.1上嘗試安裝simplescalar
: 卻發生如下的錯誤
: gcc -c -g -I. -I./../include ./dummy.c 2>/dev/null
: *** Error code 1
: Stop in /home/simplescalar/binutils-2.5.2/libiberty.
: *** Error code 1
: Stop in /home/simplescalar/binutils-2.5.2.
: 這才開始要建立binutils 就發生錯誤
: 已經Google過解決方法
: 嘗試過在dummy.c中加入 #include <stdarg.h> 假指令
: 也重新編譯過dummy.c檔案
: 並且重新操作卻還是一直出現這錯誤
: 希望有經驗的版友可以幫忙一下

嗯嗯....你安裝的方式是怎麼樣呀?
我之前有在BSD上面成功安裝過SimpleScalar(上課要用)
而且我看官網上有支援FreeBSD的安裝(雖然沒寫6.1)

下面我就把我之前安裝的方式列出來吧...

PS: 你應該po出你是在執行什麼步驟的時候出現這個問題的
還有,最好能夠去修改Makefile將出現錯誤那行的
2>/dev/null
取消掉...這樣比較好照著除錯


下載需要的檔案
1) simplesim-3v0d.tgz
2) simpleutils-990811.tar.gz
3) simpletools-2v0.tgz
4) gcc-2.7.2.3.ss.tar.gz
位置在
simplesim & simpletools: http://www.simplescalar.com/tools.html
simpleutils: http://www.eecs.umich.edu/mirv/
gcc: http://arch.cs.ucdavis.edu/RAD/gcc-2.7.2.3.ss.tar.gz


1. 設定變數
# export HOST=i386-unknown-freebsd
# export IDIR=[your install directory]


2. 安裝simpleutils
# cd $IDIR/simpleutils-990811
# ./configure --host=$HOST --target=sslittle-na-sstrix --with-gnu-as \
--with-gnu-ld --prefix=$IDIR
# make
# make install


3. 安裝simplesim
# cd $IDIR/simplesim-3.0
# 修改syscall.c
157c157,158
< #include <termio.h>
---
> //#include <termio.h>
> #include <termios.h>

以及所有呼叫utimes()函數的修改
根據不同平台的utimes()函數的使用方法,將syscall.c內呼叫utimes()函數
時的判斷都取消掉剩下需要的...
1864
//#if defined(hpux) || defined(__hpux) || defined(linux)
// /* no utimes() in hpux, use utime() instead */
// /*result*/regs->regs_R[2] = utime(buf, NULL);
//#elif defined(_MSC_VER)
// /* no utimes() in MSC, use utime() instead */
// /*result*/regs->regs_R[2] = utime(buf, NULL);
//#elif defined(__svr4__) || defined(__USLC__) || defined(unix) ||
defined(_AIX) || defined(__alpha)
// /*result*/regs->regs_R[2] = utimes(buf, NULL);
//#elif defined(__CYGWIN32__)
// warn("syscall: called utimes()\n");
//#else
//#error No utimes() implementation!
//#endif
/*result*/regs->regs_R[2] = utimes(buf, NULL);

1898
//#if defined(hpux) || defined(__hpux) || defined(__svr4__)
// /* no utimes() in hpux, use utime() instead */
// {
// struct utimbuf ubuf;
//
// ubuf.actime = tval[0].tv_sec;
// ubuf.modtime = tval[1].tv_sec;

// /* result */regs->regs_R[2] = utime(buf, &ubuf);
// }
//#elif defined(_MSC_VER)
// /* no utimes() in MSC, use utime() instead */
// {
// struct _utimbuf ubuf;
//
// ubuf.actime = ss_tval[0].ss_tv_sec;
// ubuf.modtime = ss_tval[1].ss_tv_sec;
//
// /* result */regs->regs_R[2] = utime(buf, &ubuf);
// }
//#elif defined(__USLC__) || defined(unix) || defined(_AIX) ||
defined(__alpha)
// /* result */regs->regs_R[2] = utimes(buf, tval);
//#elif defined(__CYGWIN32__)
// warn("syscall: called utimes()\n");
//#else
//#error No utimes() implementation!
//#endif
/* result */regs->regs_R[2] = utimes(buf, tval);

因為diff的內容太多所以就不列出來了
我附上我的syscall.c好了

http://sean0920.twbbs.org/syscall.c

修改好之後,繼續執行指令
# make config-pisa (我的目標TARGET是pisa)
# make


4. 安裝gcc
# cd $IDIR/gcc-2.7.2.3
修改insn-output.c
將675、750和823行的return都合為一行
原本是分作很多行的。

修改 $IDIR/sslittle-na-sstrix/include/stdio.h
將167行的
extern __NORETURN void __libc_fatal __P ((__const char *__message));
改成
extern void __libc_fatal __P ((__const char *__message));

修改好之後,繼續安裝
# ./configure --host=$HOST --target=sslittle-na-sstrix \
--with-gnu-as --with-gnu-ld --prefix=$IDIR
# make LANGUAGES="c c++" CFLAGS="-O3" CC="gcc"
# make install LANGUAGES="c c++" CFLAGS="-O3" CC="gcc"


即可。

我安裝的環境是OpenBSD3.7
不過我想OpenBSD只會比FreeBSD難灌吧(哈)....給您參考一下囉


以上主要參考
http://140.113.241.130/course/2006_spring_ca/lab/lab1.htm

--
Tags: BBS

All Comments

Simplescalar

Una avatar
By Una
at 2006-07-27T21:53
想請問有沒有版友友在FreeBSD上成功安裝過simplescalar 並且可以正常模擬的?? 實驗所需 在FreeBSD 6.1上嘗試安裝simplescalar 卻發生如下的錯誤 gcc -c -g -I. -I./../include ./dummy.c 2andgt;/dev/null *** E ...

關於APACHE2 啟動時問題

Tom avatar
By Tom
at 2006-07-27T03:56
※ 引述《chinsan.bbsatbbs.ilc.edu.tw (...)》之銘言: : ※ 引述《chairco.bbsatbbs.yzu.edu.tw (chairco)》之銘言: : andgt; apache-2.0.54_4 Apache 2.0 的話 kernel 不需要 accf_http ...

ssh-keygen產生的key SecureNetTerm不能用

Tristan Cohan avatar
By Tristan Cohan
at 2006-07-26T16:24
最近在玩SSH改由憑證認證,那因為我的Client都是Windows系列,而大部分教學 都是教BSD to BSD的運用,那對於Windows的SSH Client工具,我目前用兩套, 一套是Pietty和SecureNetTerm,那Pietty本身有出puttygen可把ssh-keygen所產生 的pr ...

關於APACHE2 啟動時問題

Hazel avatar
By Hazel
at 2006-07-26T09:21
※ 引述《chairco.bbsatbbs.yzu.edu.tw (chairco)》之銘言: : OS:FREEBSD 6 : APACHE版本:APACHE2 : PHP:PHP5 : 問題:已經編譯好httpd.conf,下啟動指令時,出現: : Performing sanity check on a ...