I'm trying to build 12.7.1 for Fedora, and am running into a build error:

;;; Loading lsp/format.lsp
;;; About to load cmp/load.lsp
;;; Unable to execute program "file"
;;; Condition
;;; Wrong number of arguments passed to function #<compiled-function
SI:WAIT-FOR-ALL-PROCESSES>.
;;; Unable to execute program "gcc"
;;; Condition
;;; Wrong number of arguments passed to function #<compiled-function
SI:WAIT-FOR-ALL-PROCESSES>.
;;; Unable to execute program "gcc"
;;; Condition
;;; Wrong number of arguments passed to function #<compiled-function
SI:WAIT-FOR-ALL-PROCESSES>.
;;; System features: NIL
;;;
;;; Now we are in shape to do something useful.
;;; End of bare.lsp
[snip]
;;; Emitting code for SHARP---READER.
;;; Note:
;;;   Invoking external command:
;;;   gcc -I. -I/home/jamesjer/rpmbuild/BUILD/ecl-12.7.1/build/
-DECL_API -I/home/jamesjer/rpmbuild/BUILD/ecl-12.7.1/build/c
-I/usr/lib64/libffi-3.0.10/include -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -fPIC -D_THREAD_SAFE -Dlinux
-I/home/jamesjer/rpmbuild/BUILD/ecl-12.7.1/src/c -w -c lsp/export.c -o
lsp/export.o
Condition of type: SIMPLE-PROGRAM-ERROR
Wrong number of arguments passed to function #<compiled-function
SI:WAIT-FOR-ALL-PROCESSES>.

Available restarts:

1. (ABORT) ABORT

Top level in: #<process TOP-LEVEL>.
>


I think this is because SI:WAIT-FOR-ALL-PROCESSES is registered as a
signal handler in unixint.d:

static struct {
        int code;
        char *name;
        cl_object handler;
} known_signals[] = {
[snip]
#ifdef SIGCHLD
        { SIGCHLD, "+SIGCHLD+", @'si::wait-for-all-processes'},
#endif

But signal handlers have to match handler_fn_prototype, which means
accepting either 1 or 3 arguments, and SI:WAIT-FOR-ALL-PROCESSES
accepts zero arguments.  What's the best way to fix this?

By the way, it looks like the other elements of known_signals with
non-nil handlers also specify functions that don't take the correct
argument list.  That's SI:TERMINAL-INTERRUPT for SIGINT,
EXT:ILLEGAL-INSTRUCTION for SIGILL, and EXT:SEGMENTATION-VIOLATION for
SIGBUS and SIGSEGV.
-- 
Jerry James
http://www.jamezone.org/

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to