Summary

"make check" errors on cygwin

Metadata

Description

It seems that cygchicken-0.dll is expected to be found in the tests directory:

 $ make PLATFORM=cygwin PREFIX=/home/mario/local/chicken-core DEBUGBUILD=1 CHICKEN=./chicken-boot check
 make -f ./Makefile.cygwin CONFIG= check
 make[1]: Entering directory `/home/mario/src/chicken-core'
 cd tests; sh runtests.sh
 ======================================== compiler tests ...
 ../chicken compiler-tests.scm -output-file a.c -verbose -include-path ..
 
 Note: global variable `bla#blabla' is only locally visible and never used
 
 Note: global variable `foo#bar' is only locally visible and never used
 gcc a.c -o a.o -c  -fno-strict-aliasing -fwrapv -DHAVE_CHICKEN_CONFIG_H -DC_ENAB
 LE_PTABLES -g -Wall -Wno-unused -I.. -I"/home/mario/local/chicken-core/include/c
 hicken"
 rm a.c
 gcc a.o -o a.out -L.. -L"/home/mario/local/chicken-core/lib" -lchicken -lm
 rm a.o
 /home/mario/src/chicken-core/tests/a.out: error while loading shared libraries:
 cygchicken-0.dll: cannot open shared object file: No such file or directory
 make[1]: *** [check] Error 127
 make[1]: Leaving directory `/home/mario/src/chicken-core'
 make: *** [check] Error 2

If I

 cp cygchicken-0.dll tests

some tests can be run, but then:

 $ make PLATFORM=cygwin PREFIX=/home/mario/local/chicken-core DEBUGBUILD=1 CHICKEN=./chicken-boot check
 
 ...
 
 ======================================== callback tests ...
 ../chicken callback-tests.scm -output-file a.c -verbose -include-path ..
 gcc a.c -o a.o -c  -fno-strict-aliasing -fwrapv -DHAVE_CHICKEN_CONFIG_H -DC_ENAB
 LE_PTABLES -g -Wall -Wno-unused -I.. -I"/home/mario/local/chicken-core/include/c
 hicken"
 rm a.c
 gcc a.o -o a.out -L.. -L"/home/mario/local/chicken-core/lib" -lchicken -lm
 rm a.o
 callbacks ...
 hi!
 callbacks ...
 hi!
 hi!
 [panic] callback returned twice - execution terminated
 
 callback-tests.scm:16: print
 ##sys#gc
 g1112
 callback-tests.scm:7: call/cc
 callback-tests.scm:9: print
 callback-tests.scm:19: command-line-arguments
 callback-tests.scm:20: k1
 callback-tests.scm:9: print     <--
 double-return from callback failed as it should.
 ======================================== runtime tests ...
 [panic] nursery is too small - try higher setting using the `-:s' option - execu
 tion terminated
 
 make[1]: *** [check] Error 1
 make[1]: Leaving directory `/home/mario/src/chicken-core'
 make: *** [check] Error 2

Happens to both 4.7.0 and git HEAD.

I cannot reproduce this error on Linux systems.

Changes and comments

[2011-11-04 13:43:24 UTC] felix removed milestone 4.8.0

[2011-12-02 17:34:10 UTC] johnwcowan wrote:

The first problem is almost certainly because DLL files have to be either in the current directory or on the $PATH. This is a Windows misfeature that Cygwin cannot hide, because DLLs are loaded by the Windows dynamic loader before Cygwin gets control. (It doesn't apply to DLLs explicitly opened with dlopen().)

[2011-12-02 17:38:43 UTC] mario changed status from new to accepted

[2011-12-02 17:38:43 UTC] mario set owner to mario

[2011-12-02 17:38:43 UTC] mario wrote:

Indeed, John. Thanks for reminding me about that. I had a patch to fix that issue, but it breaks tests on other platforms (http://lists.gnu.org/archive/html/chicken-hackers/2011-09/msg00051.html).

[2011-12-11 15:05:59 UTC] mario changed status from accepted to closed

[2011-12-11 15:05:59 UTC] mario set resolution to fixed

[2011-12-11 15:05:59 UTC] mario wrote:

Fixed in master (61ee5587f59a5ae7b56dbee2ef6ca7580dff12f9)

[2011-12-11 15:13:51 UTC] mario wrote:

I've moved the callback part to #738.