GCC 4.4.3下编译SimpleScalar 3.2(二)

2014-11-24 09:22:26 · 作者: · 浏览: 1
yms.h包含进去。


第三个问题:


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