Bug#495351: Fwd: ARM sigill
Martin Guy
martinwguy at yahoo.it
Sat Sep 6 08:43:04 UTC 2008
The upstream maintainer suggests the following fix in ecl to work
around this problem
---------- Forwarded message ----------
From: Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com>
Date: Sep 5, 2008 11:23 PM
Subject: ARM sigill
To: Martin Guy <martinwguy at yahoo.it>
Seems I found the problem. His system does not like the calls to
fedisableexcept and feenableexcept which are used to control the
behavior of the soft-FPU unit. Apparently, after these calls the
processor begins to believe it has a real FPU.
[...]
Well, I have found the problem. The mathematical routines in the C
library which are used for controlling the behavior of floating point
computations is broken.
ECL breaks right after booting because in __sigsetjmp() the system
queries an internal register for the capabilities of the CPU and it
finds that it has a coprocessor. However, this same query happened
before and it returned false.
I tracked it down to the lines in src/c/unixint.c that activate the
detection of floating point overflow. These are lines which make calls
to fedisableexcept/feenableexcept and these are the ones that seem to
drive the system crazy.
So, all in all, it seems it is a bogus C library.
But there is a simple solution. Delete the line "si_trap_fpe(Ct, Ct);"
in src/c/unixint.d
Could you report these findings in the Debian system? I am too tired
right now :-)
-------------
Duly reported...
More information about the pkg-common-lisp-devel
mailing list