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