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