[Ecls-list] git tip won't build with --enable-threads.

David Brown lisp at davidb.org
Sun Oct 12 17:01:16 UTC 2008


The latest version of the tip:

   edae4ae... Every file now has an array with the functions it defines.

Doesn't build for me on linux amd64 when --enable-threads is used.  It
segfaults when running the bootstrap image:

$ gdb ./ecl_min
...
(gdb) delete
(gdb) r compile
[Thread debugging using libthread_db enabled]
[New Thread 0x7ff8e53c16f0 (LWP 3591)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff8e53c16f0 (LWP 3591)]
make_simple_base_string (s=0x7ff8e44724d6 "Success") at /home/davidb/wd/lisp/ecl/src/c/string.d:138
138		x->base_string.dim = (x->base_string.fillp = l);
(gdb) bt
#0  make_simple_base_string (s=0x7ff8e44724d6 "Success") at /home/davidb/wd/lisp/ecl/src/c/string.d:138
#1  0x000000000042d996 in FElibc_error (msg=0x46e2a0 "pthread_getspecific() failed.", narg=<value optimized out>)
     at /home/davidb/wd/lisp/ecl/src/c/error.d:267
#2  0x000000000044f917 in ecl_process_env () at /home/davidb/wd/lisp/ecl/src/c/threads.d:49
#3  0x000000000040fda7 in build_funcall_frame (f=0x7fffed2a6710, args=0x0)
     at /home/davidb/wd/lisp/ecl/src/c/eval.d:39
#4  0x000000000041040c in cl_funcall (narg=<value optimized out>, function=0x68ac50)
     at /home/davidb/wd/lisp/ecl/src/c/eval.d:202
#5  0x000000000042d8bd in FEerror (s=0x46bdf4 "~?~%Explanation: ~A.", narg=<value optimized out>)
     at /home/davidb/wd/lisp/ecl/src/c/error.d:62
#6  0x000000000042d9bd in FElibc_error (msg=0x46e2a0 "pthread_getspecific() failed.", narg=<value optimized out>)
     at /home/davidb/wd/lisp/ecl/src/c/error.d:267

It appears to be recursing, which likely caused the segfault.

A quick bisect shows that the error first occurs in change:

f568712... Code for detecting stack overflows, grown on top of ideas from Geo Carncross.

Let me know if anyone has any ideas on how to further investigate, or
if I should file a bug.

Thanks,
David




More information about the ecl-devel mailing list