Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#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 10 years ago by felix winkelmann

Milestone: 4.8.0

comment:2 Changed 10 years ago by johnwcowan

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().)

comment:3 Changed 10 years ago by Mario Domenech Goulart

Owner: set to Mario Domenech Goulart
Status: newaccepted

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 10 years ago by Mario Domenech Goulart

Resolution: fixed
Status: acceptedclosed

Fixed in master (61ee5587f59a5ae7b56dbee2ef6ca7580dff12f9)

comment:5 Changed 10 years ago by Mario Domenech Goulart

I've moved the callback part to #738.

Note: See TracTickets for help on using tickets.