Crosscompiling ECL for Windows

Daniel Kochmański daniel at turtleware.eu
Fri Sep 16 08:36:49 UTC 2016


Hello,

Wolfgang Dautermann writes:

> Dear ECL-developers,
>
> Can one crosscompile ECL for Windows (on a Linux based system)?

it should, but apparently it doesn't.
> Currently it fails - both the latest release and the current GIT - with:
>
>
> $ ./configure --host=i686-w64-mingw32
> $ make
> [...]
> i686-w64-mingw32-gcc -DECLDIR="\"/u2sr/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
> threads/process.o.c
> /tmp/ecl/src/c/threads/process.d:40:22: error: conflicting types for
> 'GC_CreateThread'
>  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?

It seems that we have patched bdwgc (external project) definitions in
our project for Windows before the mentioned project did exaclty the
same and we have a conflicting declaration.

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.
>
> (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

Best regards,
Daniel

-- 
Daniel Kochmański ;; aka jackdaniel | Poznań, Poland
TurtleWare - Daniel Kochmański      | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi



More information about the ecl-devel mailing list