大都数朋友都会以下面这篇文摘《移植Java虚拟机到mini2440》 作为参考,不过里面有几个错误:
首先,在 “
修改 segvhandler_arch.c 文件
gedit ../../src/linux-arm/javavm/runtime/segvhandler_arch.c
修改
#define ucontext asm_ucontext
#include
为
//#define ucontext asm_ucontext //注释掉这句
#include //去掉arm/
” 之中, 应该修改为 “
//#define ucontext asm_ucontext
#include <ucontext.h>
”才对。
然后,如果不在GNUmakefile 之中添加 “ CVM_DEFINES += -DAAPCS ” 这一行,就会在mini2440的linux 中执行 ./cvm -cp ../testclasses HelloWorld 语句时,出现以下错误:
Java VM panic: AAPCS calling convention used; compilation must use -DAAPCS.
所以除了要在GNUmakefile 之中,修改 USE_AAPCS ?= false 为 true , 还要在 CVM_DEFINES += 这一句后面添加上 -DAAPCS
修改完上面的内容后,要先执行 make clean && make distclean ,最后 再执行 make