On Wed, Jul 17, 2019 at 9:45 AM Иван Трусков trus19@gmail.com wrote:
But there is a compilation error if compilation is attempted without all/any threads? IIRC, there is an #error directive to that effect in ecl.h
In any case, could you share configuration flags?
First of all, I am talking about a recent Cygwin64. (Not sure how far you can get with 32-bit Cygwin). And I don't run Windows myself, so the following is not tested and might not work.
To get a general picture of how sagemath is built on Cygwin64, see https://trac.sagemath.org/wiki/Cygwin64Port
You need to apply patches from https://github.com/sagemath/sage/tree/master/build/pkgs/ecl/patches You need Cygwin's gmp and readline. We also use gc which does not come from ECL, but version 7.6.4. (Perhaps the stock version of gc in Cygwin will work, I don't know, and it would be interesting to know, in fact).
the ECL build script is here: https://github.com/sagemath/sage/blob/master/build/pkgs/ecl/spkg-install It's a bit crypic, though. To translate it to "usual" shell, I think, you need
export CFLAGS="-g -O2 $CFLAGS -D_GNU_SOURCE" export CXXFLAGS="-g -O2 $CXXFLAGS -D_GNU_SOURCE" # you might also need to put newer versions of config.guess and config.sub # (something that autotools provide, into ECL's src/
./configure --disable-threads --enable-unicode=yes touch build/TAGS # apparently it's problematic make make install
Please feel free to ask for more details. Dima
ср, 17 июл. 2019 г. в 11:40, Dima Pasechnik dimpase+ecl@gmail.com:
sagemath (sagemath.org) uses ecl 16.1.2 to compile and run Maxima (and not only it) on Cygwin, so it is certainly possible. we turn threads off, however. As well, we add -D_GNU_SOURCE to C and CXX flags.
On Mon, 15 Jul 2019 at 10:14, Иван Трусков trus19@gmail.com wrote:
Hello I am trying to build and use ECL on windows machine under cygwin environment However, evter it is built, there arises a problem when i try to compile any lisp files, for example when running examples/build/readme.lisp Inspecting with gsb gives the picture of stack overflow on handling some exception across threads, overflow occuring in the bad case of circular calls to acquiring thread-local data (pthreads_getspecific) and processing error message from failure of it.
is there recommended configuration for cygwin that would allow to overcome that kind of problem? Alternatively, what data exactly are needed for a full bug report? I would gladly provide everything relevant