编译安装了gem5 ARM架构的模拟器,运行使用arm-linux-gcc-4.4.3交叉编译链编译的文件时,出现了如下错误:
%--------------------------------------------------------------------------------------------------------------------%
**** REAL SIMULATION ****
info: Entering event queue @ 0. Starting simulation...
FATAL: kernel too old
panic: Page table fault when accessing virtual address 0x18
@ cycle 351000
[invoke:build/ARM/sim/faults.cc, line 70]
Memory Usage: 624444 KBytes
Program aborted at cycle 351000
Aborted (core dumped)
%--------------------------------------------------------------------------------------------------------------------%
在google搜索一些资料之后,原因和解决方法如下:
出现“kernel too old” 的原因是不同版本的glibc库文件要依赖于不同版本的linux内核版本,并且编译器会限定运行该可执行文件所需的最低的内核版本。在编译时使用的编译器的版本比较高,它所指定的最低linux内核版本要高于m5声明的内核版本。
所以有两种解决方案。
第