[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#495351: marked as done (ecl: does not install on armel (illegal instruction))



Your message dated Fri, 8 Dec 2017 19:16:41 +0100
with message-id <20171208181641.GA17348@aurel32.net>
and subject line Re: Bug#498008: libc6: fedisableexcept/feenableexcept in ARMEL causes a SIGILL using ECL
has caused the Debian Bug report #498008,
regarding ecl: does not install on armel (illegal instruction)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
498008: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=498008
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: ecl
Version: 0.9j-20080306-4
Severity: grave
Justification: renders package unusable

The package does not install on armel. The armel system is a Nokia tablet with installed chroot environmet for debian / lenny.

I add the installation and additional information on the processor. I also tried to compile the source package on the system
with simelar problem.

D Schmicker

Nokia-N800-23-14:/# apt-get install ecl
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ecl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Nokia-N800-23-14:/# ecl
bash: ecl: command not found

Nokia-N800-23-14:/usr/bin# cat /proc/cpuinfo 
Processor	: ARMv6-compatible processor rev 2 (v6l)
BogoMIPS	: 164.36
Features	: swp half thumb fastmult vfp edsp java 
CPU implementer	: 0x41
CPU architecture: 6TEJ
CPU variant	: 0x0
CPU part	: 0xb36
CPU revision	: 2
Cache type	: write-back
Cache clean	: cp15 c7 ops
Cache lockdown	: format C
Cache format	: Harvard
I size		: 32768
I assoc		: 4
I line length	: 32
I sets		: 256
D size		: 32768
D assoc		: 4
D line length	: 32
D sets		: 256

Hardware	: Nokia N800
Revision	: 24202524
Serial		: 0000000000000000



-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: armel (armv6l)

Kernel: Linux 2.6.21-omap1
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages ecl depends on:
ii  common-lisp-controller    6.17           Common Lisp source and compiler ma
ii  libc6                     2.7-13         GNU C Library: Shared libraries
ii  libgc-dev                 1:6.8-1.1      conservative garbage collector for
ii  libgc1c2                  1:6.8-1.1      conservative garbage collector for
ii  libgmp3-dev               2:4.2.2+dfsg-3 Multiprecision arithmetic library 
ii  libgmp3c2                 2:4.2.2+dfsg-3 Multiprecision arithmetic library
ii  libncurses5-dev           5.6+20080713-1 developer's libraries and docs for

ecl recommends no packages.

Versions of packages ecl suggests:
pn  ecl-doc                       <none>     (no description available)
pn  slime                         <none>     (no description available)

-- no debconf information



--- End Message ---
--- Begin Message ---
On 2008-09-06 09:27, D Schmicker wrote:
> Package: libc6
> Version: 2.7-13
> Severity: normal
> 
> 
> The bug can be reproduced using ecl (lisp). The maintainer of ecl tracked the problem down on my device to
> 
> "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 
> "
> 
> You can reproduce the bug by
> apt-get install ecl
> 
> a sigill is seen during installation.

I have looked the code of fedisableexcept and feenableexcept. They
indeed can call the rfs and wfs instructions, but they only do that if
the hardware actually has a VFP:

| int
| fedisableexcept (int excepts)
| {
|   fpu_control_t fpscr, new_fpscr;
| 
|   /* Fail if a VFP unit isn't present.  */
|   if (!ARM_HAVE_VFP)
|     return -1;
| 
|   _FPU_GETCW (fpscr);
|   excepts &= FE_ALL_EXCEPT;
|   new_fpscr = fpscr & ~(excepts << FE_EXCEPT_SHIFT);
| 
|   /* Write new exceptions if changed.  */
|   if (new_fpscr != fpscr)
|     _FPU_SETCW (new_fpscr);
| 
|   return (fpscr >> FE_EXCEPT_SHIFT) & FE_ALL_EXCEPT;
| }


> As I got information that it is working on armv4 and armv5 I give you the detailed cpu information
> Nokia-N800-23-14:~# cat /proc/cpuinfo 
> Processor	: ARMv6-compatible processor rev 2 (v6l)
> BogoMIPS	: 164.36
> Features	: swp half thumb fastmult vfp edsp java

This show the hardware has a VFP, or at least the kernel claims so. If
it's not the case, it's either a hardware issue or that the kernel does
not (lazily) enable the VFP while claiming it's available. That also
explains why this behaviour is not seen with other armv4t or armv5
machines.

As the kernel of the N800 is not supported in debian, I am closing this
bug on the libc side.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

--- End Message ---

Reply to: