SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境)
生活随笔
收集整理的這篇文章主要介紹了
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环境)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在C++中使用CognexVisionp
- 下一篇: 国产光谱共焦位移传感器优势有哪些?