Crosscompiling ECL for Windows

Wolfgang Dautermann wolfgang at
Thu Sep 15 22:08:16 UTC 2016

Dear ECL-developers,

Can one crosscompile ECL for Windows (on a Linux based system)?
Currently it fails - both the latest release and the current GIT - with:

$ ./configure --host=i686-w64-mingw32
$ make
i686-w64-mingw32-gcc -DECLDIR="\"/usr/local/lib/ecl-16.1.2\"" -I.
-I/tmp/ecl/build -I/tmp/ecl/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY
   -g -O2 -D_THREAD_SAFE -Dmingw32 -c -o threads/process.o
/tmp/ecl/src/c/threads/process.d:40:22: error: conflicting types for
 extern HANDLE WINAPI GC_CreateThread(
In file included from /tmp/ecl/build/ecl/config.h:84:0,
                 from /tmp/ecl/build/ecl/ecl.h:37,
                 from /tmp/ecl/src/c/threads/process.d:20:
/tmp/ecl/build/ecl/gc/gc.h:1536:26: note: previous declaration of
'GC_CreateThread' was here
     GC_API HANDLE WINAPI GC_CreateThread(
/tmp/ecl/src/c/threads/process.d: In function 'mp_exit_process':
/tmp/ecl/src/c/threads/process.d:604:1: warning: 'noreturn' function
does return
Makefile:85: recipe for target 'threads/process.o' failed
make[2]: *** [threads/process.o] Error 1
make[2]: Leaving directory '/tmp/ecl/build/c'
Makefile:120: recipe for target 'libeclmin.a' failed
make[1]: *** [libeclmin.a] Error 2
make[1]: Leaving directory '/tmp/ecl/build'
Makefile:70: recipe for target 'all' failed
make: *** [all] Error 2

What is the problem here?

(Background: I developed a crosscompiled Windows installer for the (Lisp
based) computer algebra system 'Maxima' (using 'Wine' (does ECL work
with the emulator 'wine'?)), currently based on CLISP and SBCL - and
probably I can support ECL too - but for that I should be able to
crosscompile it.

Best regards, Wolfgang

More information about the ecl-devel mailing list