日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境)

發布時間:2024/3/24 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SimpleScalar的安裝方法(Red Hat Linux 9.0,gcc3.2.2環境)


版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章
原始出處
、作者信息和本聲明。否則將追究法律責任。
http://sprocessor.blog.51cto.com/160089/27034
SimpleScalar的安裝方法
Wisconsin.Madison大學發布的SimpleScalar模擬器是一個開放軟件,源代碼是公開的,具有良好的可移植性和可擴展性,能夠支持各種不同層次設計人員的需求,因而得到了廣泛的應用。是開發微處理器芯片前期進行體系結構驗證的重要工具,下面介紹其在Red Hat Linux 9.0編譯器給gcc 3.2.2環境下的安裝方法。
一.確定安裝環境
本安裝方法適用于Red Hat Linux 9.0操作系統,自帶的GCC編譯器是GCC 3.2.2版本。其他系列的linux操作系統或是其他版本GCC下安裝過程可能有些細節上的不同。
注:因為不同版本的GCC編譯器下一些庫的定義可能有不同,因此首先要確定一下本機的GCC編譯器版本。確定方法是進入命令行輸入命令gcc –v得到的結果如圖1.1所示:


圖1.1
可見本機的GCC版本為GCC 3.2.2,根據simplescalar網站上的一些介紹,該模擬器的開發工具可能是GCC2.7左右,比較接近GCC 3.2.2,因此估計安裝過程會比較順利。
二.獲得安裝包
完成本安裝過程的安裝包可以在

http://www.simplescalar.com
下下載,本安裝所需要的安裝包共有以下三個

三 建立安裝目錄,解壓安裝包
建立安裝目錄為/root/simplescalar,將安裝包復制到安裝目錄,整個過程如下:

解壓縮,命令為tar –zxvf,加壓縮完畢后用rm*.tgz命令刪除壓縮包,整個過程輸入命令如下:
tar –zxvf simplesim-3v0d.tgz
tar –zxvf simpletools-2v0.tgz
tar –zxvf simpleutils-2v0.tgz
rm*.tgz
加壓縮后得到如下七個文件夾:

四.安裝binutils2.5.2
首先用configure命令配置程序的安裝環境和參數,生成Makefile文件,整個過程如下:

注:configure命令的參數含義說明
-host:配置安裝環境
-target:配置成littleEndian模式
-with-gnu-as 加載匯編器
-with-gnu-ld 加載鏈接器
-prefix 設置安裝目錄
此時遇到兩個錯誤,如下所示:
??

從錯誤說明可以估計出錯誤來自于libiberty文件夾下的dummy.c文件。網上一些帖子說是dummy.c中定義的宏functions.def文件中的函數定義與聲明不一致引起的,將它們改成一致就可以通過編譯。但是這樣做的話,繼續編譯依然會遇到許多錯誤。這里我試出了最好的方法就是將dummy.c文件中的內容全部刪除(即將dummy.c變成空文件)然后再make一次,這回不報任何錯誤,編譯一次通過!
運行make install命令,這時binutils-2.5.2安裝成功!
五.安裝simplescalar
Simplescalar是最簡單的一個安裝過程,運行下列命令即可完成安裝!


六.安裝gcc-2.6.3
安裝好simplescalar后在安裝文件夾/root/simplescalar下可以找到一個名為bin的文件夾,里面包含的是一些simplescalar自帶的工具,如鏈接工具等,該文件內容如下:


可見,里面沒有C編譯工具gcc,因此還需要安裝gcc2.6.3作為simplescalar的內置編譯工具,下面介紹安裝方法。
首先對安裝環境進行配置,生成Makefile文件,具體方法如下圖所示。


Makefile文件生成完畢后,運行make命令,此時出現以下錯誤:


由錯誤報告可知,這是由于sys_errlist的定義不一致造成的,打開cccp.c文件發現其194行附近有如下代碼,第194行為extern char *sys_errlist[]。顯然要消除沖突,只需改變宏編譯的分支方向,使其不走這一分支即可。嘗試在這段代碼前面如175行加上#define bsd4_4,修改后再次make,該錯誤改正,遇到下一個錯誤。
??

第二個錯誤是sdbout.c文件中的一些常量沒有定義,如下:



因此第一估計是頭文件的問題,打開sdbout.c發現其包含的頭文件有如下幾個:

可以肯定報錯的原因是宏編譯的分支的問題(走不同的宏編譯分支,可能包含syms.h或者是gsyms.h)。經過多次嘗試,發現在前面加上#undef??USG即可解決該錯誤(即把gsyms.h包含進去)。
繼續make,發生第三個錯誤,如下:


這個錯誤和第一個錯誤一樣,是由于sys_errlist定義沖突引起的,因此進入gcc.c文件,在172行之前(這里加在167行)加上#define bsd4_4即可。
繼續make,發生第四個錯誤,如下:


和前面一樣,只要在g++.c文件的第90行代碼段之前(這里加在85行)加上#define bsd4_4即可。
繼續make,發生第五個錯誤,如下:


這里提示是將cp/g++.c文件中第213行的sys_errlist改成strerror或者strerror_r,然而改過之后會報strerror未定義的錯誤,上網搜了很久也沒發現有這兩個定義的頭文件名,最后根據函數名感覺這段代碼(pfatal_with_name)的功能可能是獲得錯誤名,將其刪除估計對工作影響不大,因此干脆將這個函數放空,放空后再運行make,果然OK,不報任何錯誤,編譯通過!
運行make install,gcc 2.6.3安裝成功!
返回simplescalar,進入bin文件夾,可以發現里面多了一個sslittle-na-sstrix-gcc文件,該文件是simplescalar的內建C編譯器,如下所示:


進一步運行./sslittle-na-sstrix-gcc –v測試出該內建編譯器版本為gcc 2.6.3。


到此為止,整個安裝過程結束,下面進行測試。
七.測試
為了測試simplescalar是否能夠順利運行,我們對其進行測試,測試程序依然采用最經典的hello world!程序,程序如下:
? ? #include
main()
{
printf("Hello World!\n");
return 0;
}
編輯好程序后將其保存在/root/simplescalar文件夾下,文件名為hello.c,用剛剛安裝的simplescalar內建編譯器編譯,編譯方法如下。


? ? 運行結果如下:


八 結束語
本安裝方法適用于Red Hat Linux 9.0操作系統,自帶的GCC編譯器是GCC 3.2.2版本。其他系列的linux操作系統或是其他版本GCC下安裝過程可能有些細節上的不同,主要原因可能是高版本的GCC沒有兼容低版本的一些庫文件,還有就是遵循的C標準可能會有點出入。如果機器上的GCC正好是低版本的,估計可能一次編譯通過!



本文來自ChinaUnix博客,如果查看原文請點:
http://blog.chinaunix.net/u/31/showart_600092.html

總結

以上是生活随笔為你收集整理的SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。