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
Hey,
please report a ticket on gitlab. Information which would be useful:
- ecl version (commit, where did you get it from) - configuration flags and build log - console log where things fail - what fails and backtrace for that - cygwin version (where did you get it from) - windows version
Thanks, Daniel
Иван Трусков writes:
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
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
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?
ср, 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
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