problem with "make check" on windows with shared library
Marcin Kucharczyk
marcinkk at gmail.com
Wed Jun 3 15:39:21 CEST 2009
Sisyphus1 <sisyphus1 at optusnet.com.au> wrote:
>> Marcin Kucharczyk <marcinkk at gmail.com> wrote:
>> FAIL: t-bswap.exe
>> FAIL: t-constants.exe
>> FAIL: t-count_zeros.exe
>> FAIL: t-gmpmax.exe
>> FAIL: t-hightomask.exe
>> FAIL: t-modlinv.exe
>> FAIL: t-popc.exe
>> FAIL: t-parity.exe
>> FAIL: t-sub.exe
> I get the same on my Windows Vista box - and have been experiencing
> this problem for quite some time. Somewhere along the way, I've seen
> it suggested that it's a problem with the version of libtool - but
> I've never made any progress with this, and now simply don't run
> 'make check' when building a 'shared' build of gmp.
> On my XP box running 'make check' (shared lib only) leads to a hang
> just prior to the first set of tests being run - and hitting Ctrl-C
> then renders the msys shell (and on occasion, the entire machine) unresponsive.
> It would be nice if someone (anyone) could come up with a sure-fire
> solution. I'm quite sure the shared library that gets built is
> sound, but bypassing 'make check' is still not a good practice.
> Incidentally, there's been a new release of the msys shell in the
> last week or so (a "release candidate", I think). Maybe some brave
> soul could give it a try and see if that makes any difference.
> Cheers,
> Rob
I've also made some more tests. My system is Vista x64 with MinGW
5.1.4 Candidate, MSYS 10.0.11. "make check" in for example tests/misc
(only 3 tests) looks like below:
-----------------------
Making check in misc
make[3]: Entering directory `/d/gmp-4.3.1/tests/misc'
/bin/make t-printf.exe t-scanf.exe t-locale.exe
make[4]: Entering directory `/d/gmp-4.3.1/tests/misc'
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -c t-printf.c
t-printf.c: In function `check_n':
t-printf.c:812: warning: ISO C90 does not support `long long'
t-printf.c:812: warning: ISO C90 does not support `long long'
t-printf.c:812: warning: ISO C90 does not support `long long'
t-printf.c:812: warning: ISO C90 does not support `long long'
t-printf.c:812: warning: ISO C90 does not support `long long'
/bin/sh ../../libtool --mode=link gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o t-printf.exe t-printf.o ../../tests/libtests.la ../../libgmp.la
mkdir .libs
gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o .libs/t-printf.exe t-printf.o ../../tests/.libs/libtests.a /d/gmp-4.3.1/.libs/libgmp.dll.a ../../.libs/libgmp.dll.a -L/usr/local/lib
creating t-printf.exe
./.libs/lt-t-printf.c:72:24: warning: anonymous variadic macros were introduced in C99
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -c t-scanf.c
t-scanf.c: In function `check_n':
t-scanf.c:1346: warning: ISO C90 does not support `long long'
t-scanf.c:1346: warning: ISO C90 does not support `long long'
t-scanf.c:1346: warning: ISO C90 does not support `long long'
t-scanf.c:1346: warning: ISO C90 does not support `long long'
t-scanf.c:1346: warning: ISO C90 does not support `long long'
/bin/sh ../../libtool --mode=link gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o t-scanf.exe t-scanf.o ../../tests/libtests.la ../../libgmp.la
gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o .libs/t-scanf.exe t-scanf.o ../../tests/.libs/libtests.a /d/gmp-4.3.1/.libs/libgmp.dll.a ../../.libs/libgmp.dll.a -L/usr/local/lib
creating t-scanf.exe
./.libs/lt-t-scanf.c:72:24: warning: anonymous variadic macros were introduced in C99
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -c t-locale.c
/bin/sh ../../libtool --mode=link gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o t-locale.exe t-locale.o ../../tests/libtests.la ../../libgmp.la
gcc -m32 -O2 -pedantic -fomit-frame-pointer -mtune=k8 -march=k8 -mno-cygwin -o .libs/t-locale.exe t-locale.o ../../tests/.libs/libtests.a /d/gmp-4.3.1/.libs/libgmp.dll.a ../../.libs/libgmp.dll.a -L/usr/local/lib
creating t-locale.exe
./.libs/lt-t-locale.c:72:24: warning: anonymous variadic macros were introduced in C99
make[4]: Leaving directory `/d/gmp-4.3.1/tests/misc'
/bin/make check-TESTS
make[4]: Entering directory `/d/gmp-4.3.1/tests/misc'
FAIL: t-printf.exe
FAIL: t-scanf.exe
FAIL: t-locale.exe
====================================
3 of 3 tests failed
Please report to gmp-bugs at gmplib.org
====================================
make[4]: *** [check-TESTS] Error 1
make[4]: Leaving directory `/d/gmp-4.3.1/tests/misc'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory `/d/gmp-4.3.1/tests/misc'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory `/d/gmp-4.3.1/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/d/gmp-4.3.1'
make: *** [check] Error 2
make failed. Exit value 2.
---------------------------
The exe files in the tests/misc directory are a little strange. All of
them has 7168 bytes. When I'm trying to run any of them I get:
E:\>t-scanf.exe //with .exe after command
E:\>t-scanf //without .exe
t-scanf: FATAL: Couldn't find t-scanf.
But I also have the *.exe files in the tests/misc/.libs subdirectory.
Different sizes, all needs libgmp-3.dll to run (checked with and
without dll) and all works. I've copied in all tests subdirectories
*.exe files from .libs to parent directory (one by one after the
error) and I've got in all cases:
---------------
Making check in misc
make[3]: Entering directory `/d/gmp-4.3.1/tests/misc'
/bin/make t-printf.exe t-scanf.exe t-locale.exe
make[4]: Entering directory `/d/gmp-4.3.1/tests/misc'
make[4]: `t-printf.exe' is up to date.
make[4]: `t-scanf.exe' is up to date.
make[4]: `t-locale.exe' is up to date.
make[4]: Leaving directory `/d/gmp-4.3.1/tests/misc'
/bin/make check-TESTS
make[4]: Entering directory `/d/gmp-4.3.1/tests/misc'
PASS: t-printf.exe
PASS: t-scanf.exe
Test skipped, replacing localeconv/nl_langinfo doesn't work
PASS: t-locale.exe
==================
All 3 tests passed
==================
make[4]: Leaving directory `/d/gmp-4.3.1/tests/misc'
make[3]: Leaving directory `/d/gmp-4.3.1/tests/misc'
-------------------------
I can describe it, but I don't understand where is the problem :(
--
Regards,
Marcin
More information about the gmp-bugs
mailing list