Comment 28 for bug 1956852

Revision history for this message
alexis rivera (riveraah) wrote (last edit ):

I'm continuing to try to compile on termux. I haven't been successful with the latest version that I've tried so far (2.2.10.128-c6465a4de). As also noted on https://bugs.launchpad.net/sbcl/+bug/1972063,
the compilation of the contrib packages fails to compile with errors like:

//entering make-target-contrib.sh
make: Entering directory '/data/data/com.termux/files/home/sbcl-master/sbcl/contrib'
make MODULE_REQUIRES="" -C sb-posix
make[1]: Entering directory '/data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix'
../..//src/runtime/sbcl --noinform --core ../..//output/sbcl.core --lose-on-corruption --disable-debugger --no-sysinit --no-userinit --load ../make-contrib.lisp "sb-posix" </dev/null
; Note: Building "sb-posix"
While evaluating the form starting at line 140, column 0
  of #P"/data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix/../make-contrib.lisp":
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                    {1001FE0003}>:
  C compilation failed

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001FE0003}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "C compilation failed" {10034E34B3}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR "C compilation failed" {10034E34B3}>)
2: (INVOKE-DEBUGGER #<SIMPLE-ERROR "C compilation failed" {10034E34B3}>)
3: (ERROR "C compilation failed")
4: (RUN-DEFS-TO-LISP (("constants" . :SB-POSIX)) "../../obj/from-self/contrib/sb-posix/generated-constants.lisp")
5: (PERFORM (DEFSYSTEM "sb-posix" :DEFSYSTEM-DEPENDS-ON ("sb-grovel") :COMPONENTS ((:FILE "defpackage") (:FILE "strtod" :DEPENDS-ON ("defpackage")) (:FILE "designator" :DEPENDS-ON ("defpackage")) (:FILE "macros" :DEPENDS-ON ("designator")) (:SB-GROVEL-CONSTANTS-FILE "constants" :PACKAGE :SB-POSIX :DEPENDS-ON ("defpackage")) (:FILE "interface" :DEPENDS-ON ("constants" "macros" "designator")))))
6: ((LAMBDA NIL :IN "/data/data/com.termux/files/home/sbcl-master/sbcl/contrib/make-contrib.lisp"))
7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LET ((FORM (WITH-OPEN-FILE (F #) (LET # # #)))) (LET ((EVAL (GETF FORM :EVAL))) (WHEN EVAL (EVAL EVAL))) (LET ((BINDINGS (GETF FORM :BIND)) (*COMPILE-VERBOSE* NIL)) (PROGV (MAPCAR (QUOTE FIRST) BINDINGS) (MAPCAR (QUOTE SECOND) BINDINGS) (PERFORM FORM)))) #<NULL-LEXENV>)
8: (EVAL-TLF (LET ((FORM (WITH-OPEN-FILE (F #) (LET # # #)))) (LET ((EVAL (GETF FORM :EVAL))) (WHEN EVAL (EVAL EVAL))) (LET ((BINDINGS (GETF FORM :BIND)) (*COMPILE-VERBOSE* NIL)) (PROGV (MAPCAR (QUOTE FIRST) BINDINGS) (MAPCAR (QUOTE SECOND) BINDINGS) (PERFORM FORM)))) 10 NIL)
9: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (LET ((FORM (WITH-OPEN-FILE (F #) (LET # # #)))) (LET ((EVAL (GETF FORM :EVAL))) (WHEN EVAL (EVAL EVAL))) (LET ((BINDINGS (GETF FORM :BIND)) (*COMPILE-VERBOSE* NIL)) (PROGV (MAPCAR (QUOTE FIRST) BINDINGS) (MAPCAR (QUOTE SECOND) BINDINGS) (PERFORM FORM)))) 10)
10: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (LET ((FORM (WITH-OPEN-FILE (F #) (LET # # #)))) (LET ((EVAL (GETF FORM :EVAL))) (WHEN EVAL (EVAL EVAL))) (LET ((BINDINGS (GETF FORM :BIND)) (*COMPILE-VERBOSE* NIL)) (PROGV (MAPCAR (QUOTE FIRST) BINDINGS) (MAPCAR (QUOTE SECOND) BINDINGS) (PERFORM FORM)))) :CURRENT-INDEX 10)
11: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1001FB40CB}> #<SB-C::SOURCE-INFO {1001FB4083}> SB-C::INPUT-ERROR-IN-LOAD)
12: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix/../make-contrib.lisp" {1001FB2183}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
13: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix/../make-contrib.lisp" {1001FB2183}> NIL)
14: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {76B409075B}> #<SB-INT:FORM-TRACKING-STREAM for "file /data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix/../make-contrib.lisp" {1001FB2183}> NIL #<SB-INT:FORM-TRACKING-STREAM for "file /data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix/../make-contrib.lisp" {1001FB2183}>)
15: (LOAD #P"../make-contrib.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
16: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:LOAD . "../make-contrib.lisp")))
17: (SB-IMPL::TOPLEVEL-INIT)
18: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
19: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
20: (SB-IMPL::%START-LISP)

unhandled condition in --disable-debugger mode, quitting
make[1]: *** [../asdf-module.mk:41: ../..//obj/sbcl-home/contrib/sb-posix.fasl] Error 1
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/data/data/com.termux/files/home/sbcl-master/sbcl/contrib/sb-posix'
make: *** [Makefile:37: sb-posix.fasl] Error 2

I finally figured out that make-target-contrib.sh can be used to compile the contrib packages without recompiling the whole code. Then, found out that this step was failing:
../..//src/runtime/sbcl --noinform --core ../..//output/sbcl.core --lose-on-corruption --disable-debugger --no-sysinit --no-userinit --load ../make-contrib.lisp "sb-posix" </dev/null

I added print outs in make-contrib.lisp and found out that in the function run-defs-to-lisp, the invocation to RUN-C-COMPILER was not returning 0, but saying that the process signaled with code 31.

I was able to create a test case where I compile a very simple c program:
(sb-ext:process-exit-code (sb-ext:run-program "gcc" (list "a.c") :search t :input nil :output t))

where a.c was just:
int main (void) { return 0; }

With the last sbcl version that I had working, I was getting exit code zero. But with the compiled sbcl above, I was getting process signaled with error code 31.

Any suggestions as to where to start looking for debugging this issue?