Crosscompiling ECL for Windows

Wolfgang Dautermann wolfgang at
Sat Nov 12 14:02:26 UTC 2016

On 2016-09-16 10:36, Daniel Kochmański wrote:
> Wolfgang Dautermann writes:
>> Dear ECL-developers,
>> Can one crosscompile ECL for Windows (on a Linux based system)?
> it should, but apparently it doesn't.

Dear ECL-developers,

I think it works now. If someone wants to try it - get
and follow the instructions from

This will get & compile libgmp (currently needed for the host-ecl), then
ECL (currently the most recent GIT commit from the 'build-clean' branch
- and currently fixed to that commit since I need to include a patch
Then ECL will be build twice - first for Linux (ecl-host), then for
Windows and an installer is created. (tested on Debian/Ubuntu). The
crosscompiled ECL was tested with Wine/Linux and Windows10. You can get
the compiled installer also from:

If you find it useful, feel free to include my code in ECL.

Some minor issues:
I build ECL currently with the bytecode compiler (--with-cmp=no) - as
the current Windows installer is build. That works, but if I try a
compile example from it seems to try
the native compiler:
> (compile-file "hello.lisp")

Condition of type: FILE-ERROR
Filesystem error with pathname #P"SYS:CMP.NEWEST".

Shouldnt a bytecode compiler be invoked, if ECL is configured with

I can also build it *with* a C compiler (= without "--with-cmp=no" (my
idea is to include tdm-gcc (,
but the issue is:

During the compiliaton of ECL I need the crosscompiler
(i686-w64-mingw32-gcc). It does build fine with that.

But in the installed ECL (when it runs on Windows (or in Wine)) I would
need the native compiler (from the tdm-gcc project). ECL seems to use
the same compiler (when configured with "./configure
--host=i686-w64-mingw32") for building and execution afterwards.
Is there a way to specify a distinct compiler (linker, etc.) which will
be invoked when the installed ECL runs?

Best regards, Wolfgang

More information about the ecl-devel mailing list