#690 closed defect (fixed)
"make check" errors on cygwin
Reported by: | Mario Domenech Goulart | Owned by: | Mario Domenech Goulart |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | unknown | Version: | 4.7.x |
Keywords: | "make check" cygchicken-0.dll | Cc: | |
Estimated difficulty: |
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.
Change History (5)
comment:1 Changed 13 years ago by
Milestone: | 4.8.0 |
---|
comment:2 Changed 13 years ago by
comment:3 Changed 13 years ago by
Owner: | set to Mario Domenech Goulart |
---|---|
Status: | new → accepted |
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).
comment:4 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Fixed in master (61ee5587f59a5ae7b56dbee2ef6ca7580dff12f9)
Note: See
TracTickets for help on using
tickets.
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().)