我试图为ARM920T(体系结构4T)编译python3.2,但是我遇到了一些奇怪的错误。在
我在Scratchbox环境中编译Python,配置为使用以下编译器:“gcc version 4.3.3(Sourcery G++Lite 2009q1-203)”,这是一个arm交叉编译器。在
编译时,我确保在以下环境变量中设置-march=armv4t架构标志:CFLAGS、CPPFLAGS、SBOX_EXTRA_COMPILER_标志。在
它在scratchbox中编译得很好,我能够用scratchbox arm模拟器运行python解释器。在
但是,当我把它移到我的ARM920T时,在运行pythonexe之后,我立即得到一个非法的指令错误。在
核心转储将产生以下输出:Program terminated with signal 4, Illegal instruction.
#0 0x00138810 in __aeabi_dadd ()
回溯的前几行:
^{pr2}$
据我所知,uaeabi_dadd调用是一个库调用,用于添加两个浮点数(Double Add)。在
我查找了backtrace报告导致错误的python代码(longobject.c行2001):if (log_base_BASE[base] == 0.0) {
twodigits convmax = base;
int i = 1;
log_base_BASE[base] = (log((double)base) / // Line 2001
log((double)PyLo