Simplescalar - BBS
By Zenobia
at 2006-07-28T23:19
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
--
: 想請問有沒有版友友在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
Related Posts
Simplescalar
By Una
at 2006-07-27T21:53
at 2006-07-27T21:53
Re: 檔案殺掉,但是空間沒有 release 出來?
By Wallis
at 2006-07-27T19:53
at 2006-07-27T19:53
關於APACHE2 啟動時問題
By Tom
at 2006-07-27T03:56
at 2006-07-27T03:56
ssh-keygen產生的key SecureNetTerm不能用
By Tristan Cohan
at 2006-07-26T16:24
at 2006-07-26T16:24
關於APACHE2 啟動時問題
By Hazel
at 2006-07-26T09:21
at 2006-07-26T09:21