[Ecls-list] ECL sigill on debian armel (lenny)

ds ds at physik.de
Fri Aug 22 12:50:19 UTC 2008


Hi,

I work on a installer for Debian/lenny armel in an chroot on the Nokia
Internet Tablet (N800, N810). From Debian status 95% of all packages
work already. As maxima is an important application it is to bad, that
it does not work. Using gcl it does not compile.

ecl is build correctly, but can not be installed (Debian package not
0.9l) The problem is probaly the same, as the problem running the
compiled 0.9l version:

I compiled the 0.9l version on the actual debian / lenny armel
distribution. After installing ecl crashes with sigill. This is probably
a problem of the compiler. But you may give me tips how to get closer to
the problem. As so many packages work allready it must be somehow
hidden...

I show the gdb bt:
Nokia-N800-23-14:/# gdb ecl
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabi"...
(gdb) run
Starting program: /usr/local/bin/ecl 
[Thread debugging using libthread_db enabled]
[New Thread 0x4001fc40 (LWP 1402)]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0x4001fc40 (LWP 1402)]
0x4025e138 in __sigsetjmp () from /lib/libc.so.6
(gdb) bt
#0  0x4025e138 in __sigsetjmp () from /lib/libc.so.6
#1  0x40107ae8 in read_VV (block=0x8664, entry_point=0)
    at /root/ecl-0.9l/src/c/read.d:2083
#2  0x00008794 in main (argc=<value optimized out>, argv=<value
optimized out>)
    at /var/tmp/ECLINIToGMb1t.c:50
(gdb) 


I tried to get closer to the problem using stepping:

(gdb) start
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Breakpoint 3 at 0x8778: file /var/tmp/ECLINIToGMb1t.c, line 50.
Starting program: /usr/local/bin/ecl 
[Thread debugging using libthread_db enabled]
[New Thread 0x4001fc40 (LWP 1412)]
[Switching to Thread 0x4001fc40 (LWP 1412)]
main (argc=1, argv=0xbef82674) at /var/tmp/ECLINIToGMb1t.c:50
50	/var/tmp/ECLINIToGMb1t.c: No such file or directory.
	in /var/tmp/ECLINIToGMb1t.c
(gdb) cont
Continuing.

Breakpoint 1, read_VV (block=0x40174420, entry_point=0x649c0)
    at /root/ecl-0.9l/src/c/read.d:2083
2083	        if (frs_push(ECL_PROTECT_TAG)) { 
(gdb) cont 45
Will ignore next 44 crossings of breakpoint 1.  Continuing.

Breakpoint 1, read_VV (block=0x8664, entry_point=0)
    at /root/ecl-0.9l/src/c/read.d:2083
2083	        if (frs_push(ECL_PROTECT_TAG)) { 
(gdb) step
2076		block->cblock.entry = entry_point;
(gdb) 
2083	        if (frs_push(ECL_PROTECT_TAG)) { 
(gdb) 
_frs_push (val=0x4016d5b0) at /root/ecl-0.9l/src/c/stacks.d:267
267		ecl_frame_ptr output = ++cl_env.frs_top;
(gdb) 
266	{
(gdb) 
267		ecl_frame_ptr output = ++cl_env.frs_top;
(gdb) 
266	{
(gdb) 
267		ecl_frame_ptr output = ++cl_env.frs_top;
(gdb) 
268		if (output >= cl_env.frs_limit) frs_overflow();
(gdb) 
267		ecl_frame_ptr output = ++cl_env.frs_top;
(gdb) 
268		if (output >= cl_env.frs_limit) frs_overflow();
(gdb) 
267		ecl_frame_ptr output = ++cl_env.frs_top;
(gdb) 
268		if (output >= cl_env.frs_limit) frs_overflow();
(gdb) 
271		output->frs_ihs = cl_env.ihs_top;
(gdb) 
269		output->frs_bds_top = cl_env.bds_top;
(gdb) 
270		output->frs_val = val;
(gdb) 
269		output->frs_bds_top = cl_env.bds_top;
(gdb) 
271		output->frs_ihs = cl_env.ihs_top;
(gdb) 
272		output->frs_sp = cl_stack_index();
(gdb) 
cl_stack_index () at /root/ecl-0.9l/src/c/interpreter.d:81
81	cl_stack_index() {
(gdb) 
83	}
(gdb) 
_frs_push (val=0x4016d5b0) at /root/ecl-0.9l/src/c/stacks.d:274
274	}
(gdb) stepi
0x401208c4	274	}
(gdb) 
0x401208c8 in _frs_push (val=0x8664)
at /root/ecl-0.9l/src/c/stacks.d:274
274	}
(gdb) 
0x40107ae4 in read_VV (block=0x8664, entry_point=0)
    at /root/ecl-0.9l/src/c/read.d:2083
2083	        if (frs_push(ECL_PROTECT_TAG)) { 
(gdb) 
0x4004e6fc in ?? () from /usr/local/lib/libecl.so
Current language:  auto; currently asm
(gdb) 
0x4004e700 in ?? () from /usr/local/lib/libecl.so
(gdb) 
0x4004e704 in ?? () from /usr/local/lib/libecl.so
(gdb) 
0x4025e1c0 in _setjmp () from /lib/libc.so.6
(gdb) 
0x4025e1c4 in _setjmp () from /lib/libc.so.6
(gdb) 
0x40248b30 in ?? () from /lib/libc.so.6
(gdb) 
0x40248b34 in ?? () from /lib/libc.so.6
(gdb) 
0x40248b38 in ?? () from /lib/libc.so.6
(gdb) 
0x4025e100 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e104 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e108 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e10c in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e110 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e114 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e118 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e11c in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e120 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e124 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e128 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e12c in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e130 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e134 in __sigsetjmp () from /lib/libc.so.6
(gdb) 
0x4025e138 in __sigsetjmp () from /lib/libc.so.6
(gdb) 

Program received signal SIGILL, Illegal instruction.
0x4025e138 in __sigsetjmp () from /lib/libc.so.6
(gdb) 




But I have no idea how to get closer to the problem.

Any help. I can probably offer access to my N800, but it is not realy a
fast machine:-)

Detlef





More information about the ecl-devel mailing list