第三个问题:
insn-output.c: 在函数‘output_110’中:
insn-output.c:675: 错误: 缺少结尾的 " 字符
insn-output.c:676: 错误: 程序中有游离的‘\’
insn-output.c:676: 错误: ‘sll’未声明(在此函数内第一次使用)
insn-output.c:676: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
insn-output.c:676: 错误: 所在的函数内也只报告一次。)
insn-output.c:676: 错误: expected ‘;’ before ‘t’
打开insn-output.c,定位到675行。找到如下代码:
修改方法如下:
FIXME\n后面添加一个'\'
即:
675 return "FIXME\n\
同样的错误,修改方法一样。
第五个问题:
gcc.c:172: 错误: 与‘sys_errlist’类型冲突
/usr/include/bits/sys_errlist.h:28: 错误: ‘sys_errlist’的上一个声明在此
gcc.c: 在函数‘translate_options’中:
这个问题也与前面类似,就不再详述,解决办法是在./gcc.c的169行添加一个#define bsd4_4。
第六个问题:
./cp/g++.c:90: 错误: 与‘sys_errlist’类型冲突
/usr/include/bits/sys_errlist.h:28: 错误: ‘sys_errlist’的上一个声明在此
./cp/g++.c: 在函数‘fatal’中:
这个问题也与前面类似,就不再详述,解决办法是在./cp/g++.c的52行添加一个#define bsd4_4。
总算可以了。呵呵
别忘了: make install
4.
HelloWorld测试
走到这里时,已经将simplescalar以及它的交叉编译器都编译安装好。下面进行测试
假设现在 simplescalar目录下, 写一个hello.c文件内容如下:
#include
int
main(int argc, char *argv[])
{
printf("Hello World!\n");
return 0;
}
以如下步骤编译:
bin/sslittle-na-sstrix-gcc hello.c
simplesim-3.0/sim-safe a.out
运行结果如下:
sim: ** starting functional simulation **
Hello world
sim: ** simulation statistics **
sim_num_insn 7691 # total number of instructions executed
sim_num_refs 4234 # total number of loads and stores executed
sim_elapsed_time 1 # total simulation time in seconds
sim_inst_rate 7691.0000 # simulation speed (in insts/sec)
ld_text_base 0x00400000 # program text (code) segment base
ld_text_size 70128 # program text (code) size in bytes
ld_data_base 0x10000000 # program initialized data segment base
ld_data_size 8192 # program init'ed `.data' and uninit'ed `.bss' size in bytes
ld_stack_base 0x7fffc000 # program stack segment base (highest address in stack)
ld_stack_size 16384 # program initial stack size
ld_prog_entry 0x00400140 # program entry point (initial PC)
ld_environ_base 0x7fff8000 # program environment base address address
ld_target_big_endian 0 # target executable endian-ness, non-zero if big endian
mem.page_count 26 # total number of pages allocated
mem.page_mem 104k # total size of memory pages allocated
mem.ptab_misses 26 # total first level page table misses
mem.ptab_accesses 476132 # total page table accesses
mem.ptab_miss_rate 0.0001 # first level page table miss rate