Hi, Now that OpenBSD has rthreads enabled ECL could be made to use them. I tried to compile ECL with --enable-threads=yes but the compiling process seems to cause deadlock in the code somewhere.
The compilation process completes compilation of C code but when it tries to load the lisp files with minimal ecl it seems to deadlock on predlib.lsp. Here's snippet of the part where it gets stuck: head -8 config.log | tail -6 >> build-stamp if [ -f CROSS-COMPILER ]; then ./CROSS-COMPILER compile; else ECLDIR=`pwd`/ ./ecl_min compile; fi ;*** Lisp core booted **** ECL (Embeddable Common Lisp) ;;; ;;; Welcome to bare.lsp. Let's bring this instance up! ;;; ;;; ;;; About to load lsp/load.lsp ;;; ;;; Loading src:lsp;export.lsp ;;; Loading src:lsp;defmacro.lsp ;;; Loading src:lsp;helpfile.lsp ;;; Loading src:lsp;evalmacros.lsp ;;; Loading src:lsp;cmuutil.lsp ;;; Loading src:lsp;setf.lsp ;;; Loading src:lsp;predlib.lsp While compiling the C sources I get following warnings, not sure if relevant but I'll include those here: dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d -> file.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o file.o file.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d: In function 'ecl_off_t_to_integer': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d:5341: warning: right shift count >= width of type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d: In function 'ecl_integer_to_off_t': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d:5368: warning: left shift count >= width of type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d: In function 'not_a_file_stream': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d:5416: warning: function declared 'noreturn' has a 'return' statement /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d: In function 'file_libc_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/file.d:5480: warning: 'noreturn' function does return dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d -> error.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o error.o error.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'si_signal_type_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:251: warning: function declared 'noreturn' has a 'return' statement /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'cl_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:535: warning: function declared 'noreturn' has a 'return' statement /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEwrong_type_key_arg': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:329: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEwrong_type_nth_arg': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:305: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEwrong_type_only_arg': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:281: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEreader_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:226: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEcontrol_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:195: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEprogram_error_noreturn': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:183: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'FEprogram_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:158: warning: 'noreturn' function does return /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d: In function 'ecl_unrecoverable_error': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/error.d:100: warning: 'noreturn' function does return ... /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/ffi/backtrace.d: In function 'backtrace_symbols': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/ffi/backtrace.d:87: warning: assignment discards qualifiers from pointer target type ... dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/hash.d -> hash.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o hash.o hash.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/hash.d: In function 'copy_entry': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/hash.d:507: warning: passing argument 1 of 'GC_call_with_alloc_lock' from incompatible pointer type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/hash.d:513: warning: passing argument 1 of 'GC_call_with_alloc_lock' from incompatible pointer type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/hash.d:519: warning: passing argument 1 of 'GC_call_with_alloc_lock' from incompatible pointer type ... dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unixsys.d -> unixsys.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o unixsys.o unixsys.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unixsys.d: In function 'si_run_program': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unixsys.d:762: warning: passing argument 2 of 'execve' from incompatible pointer type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unixsys.d:764: warning: passing argument 2 of 'execvp' from incompatible pointer type ... dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/serialize.d -> serialize.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o serialize.o serialize.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/serialize.d: In function 'serialize_one': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/serialize.d:314: warning: assignment makes pointer from integer without a cast ... dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/process.d -> threads/process.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o threads/process.o threads/process.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/process.d: In function 'mp_exit_process': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/process.d:598: warning: 'noreturn' function does return ... dpp: /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/queue.d -> threads/queue.o.c cc -DECLDIR="\"/usr/local/lib/ecl-13.5.1\"" -I. -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/build -I/usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -I/usr/local/include -I/usr/local/include -O2 -pipe -fPIC -Dopenbsd -c -o threads/queue.o threads/queue.o.c /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/queue.d: In function 'ecl_wait_on': /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/queue.d:253: warning: passing argument 3 of 'pthread_sigmask' discards qualifiers from pointer target type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/queue.d:274: warning: passing argument 1 of 'sigsuspend' discards qualifiers from pointer target type /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/threads/queue.d:297: warning: passing argument 2 of 'pthread_sigmask' discards qualifiers from pointer target type ... /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unicode/ucd-0000.c:4129:3: warning: no newline at end of file ... /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unicode/ucd-0096.c:3613:3: warning: no newline at end of file ... /usr/ports/pobj/ecl-13.5.1/ecl-13.5.1/src/c/unicode/ucd_names_codes.c:32923:3: warning: no newline at end of file Any suggestions what could cause the lock up and how to get threading working? One quick fix to reduce warnings would be to include the newlines to the end of files on the src/c/unicode/ directory. Timo ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list