On 2016-09-16 10:36, Daniel KochmaĆski wrote:
That is defienetely ECL bug. I've created an issue on GitLab:
https://gitlab.com/embeddable-common-lisp/ecl/issues/288
there is some potential fix (I didn't include it, because of the comment in our own source code - this needs to be verified). If you could check, if the compilation finishes succesfully for you now with the mentioned diff applied, it would be great.
Thank you very much for the fast response. That seems to solve that issue.
Currently I try to compile with the following shell script:
------------------------------------------------------- LANG=C rm -rf build/ ./configure ABI=32 CFLAGS=-m32 LDFLAGS=-m32 --disable-longdouble --enable-libatomic=included --prefix=$(pwd)/ecl-host make make install export ECL_TO_RUN=$(pwd)/ecl-host/bin/ecl rm -rf build/ ./configure --host=i686-w64-mingw32 --prefix=$(pwd)/ecl-win32 make -------------------------------------------------------
(Adopted from the 'crosscompile for android' section. Do I need to set --with-cross-config to something? There is only a file for android.)
The ecl-host builds well. In the crosscompiled version, it seems that it runs the ecl for the *target* system, which doesnt work at some point (I can provide the complete build log, if necessary, that is just the end, where the error occurs):
[...] ;;; Loading "Z:/home/dauti/ecl/src/cmp/cmpos-features.lsp" File not found.
;;; Unable to execute program "i686-w64-mingw32-gcc";;; Condition;;; Could not spawn subprocess to run ""i686-w64-mingw32-gcc" "--version"".File not found.
;;; Unable to execute program "i686-w64-mingw32-gcc";;; Condition;;; Could not spawn subprocess to run ""i686-w64-mingw32-gcc" "-g" "-O2" "-D_THREAD_SAFE" "-Dmingw32" "-E" "C:/users/dauti/Temp/fa488.c" "-o" "C:/users/dauti/Temp/fa488.i"".;;; System features: NIL ;;; Loading "Z:/home/dauti/ecl/src/cmp/cmpmain.lsp" ;;; Loading "Z:/home/dauti/ecl/src/cmp/proclamations.lsp" ;;; Loading "Z:/home/dauti/ecl/src/cmp/sysfun.lsp"
;;; ;;; Now we are in shape to do something useful. ;;; End of bare.lsp (compile-file "src:lsp;export.lsp" :output-file #P"BUILD:LSP;EXPORT.O.NEWEST" :SYSTEM-P T :C-FILE T :DATA-FILE T :H-FILE T) ;;; ;;; Compiling SRC:LSP;EXPORT.LSP.;;; OPTIMIZE levels: Safety=2, Space=1, Speed=1, Debug=1 ;;; ;;; Compiling (DEFUN EVAL-FEATURE ...). ;;; Compiling (DEFUN DO-READ-FEATURE ...). ;;; Compiling (DEFUN SHARP-+-READER ...). ;;; Compiling (DEFUN SHARP---READER ...). ;;; End of Pass 1.;;; Emitting code for DOLIST. ;;; Emitting code for DOTIMES. ;;; Emitting code for DO/DO*-EXPAND. ;;; Emitting code for EVAL-FEATURE. ;;; Emitting code for DO-READ-FEATURE. ;;; Emitting code for SHARP-+-READER. ;;; Emitting code for SHARP---READER. ;;; Note: ;;; Invoking external command: ;;; i686-w64-mingw32-gcc -I. -I/home/dauti/ecl/build -DECL_API -I/home/dauti/ecl/build/c -g -O2 -D_THREAD_SAFE -Dmingw32 -I/home/dauti/ecl/src/c -c Z:/home/dauti/ecl/build/lsp/export.c -o Z:/home/dauti/ecl/build/lsp/export.o File not found.
Condition of type: SIMPLE-ERROR Could not spawn subprocess to run ""i686-w64-mingw32-gcc" "-I." "-I/home/dauti/ecl/build" "-DECL_API" "-I/home/dauti/ecl/build/c" "-g" "-O2" "-D_THREAD_SAFE" "-Dmingw32" "-I/home/dauti/ecl/src/c" "-c" "Z:/home/dauti/ecl/build/lsp/export.c" "-o" "Z:/home/dauti/ecl/build/lsp/export.o"". Available restarts:
1. (ABORT) ABORT
Top level in: #<process TOP-LEVEL>.
(Notice the Windows/Dos path with drive letters like 'Z:/home/dauti/ecl/build/lsp/export.o'.
The build *does* complete, if I copy ecl_min from the ecl-host build to the build dir: cp ./ecl-host/lib/ecl-16.1.2/ecl_min ./build/ecl_min.exe cp ./ecl-host/lib/ecl-16.1.2/ecl_min ./build/ecl_min after the first 'make' failed and build it (using 'make') a second time. Have I just set a variable wrong (ECL_TO_RUN should be okay? Do I need to set anything else?)
Best regards, Wolfgang