[Fwd: Re: Apparent non-termination of NTL's `make check' (version 5.3.2)]

-------- Original Message -------- Subject: Re: Apparent non-termination of NTL's `make check' (version 5.3.2) Date: Sat, 3 Jul 2004 11:01:50 -0400 From: victor shoup shoup@cs.nyu.edu To: Roberto Bagnara bagnara@cs.unipr.it
Hi,
Don't worry about the version number issue. I haven't seen the problem with the "subset" program before. It should terminate in a few seconds.
The code associated with that program hasn't changed for years. It looks like you are using a pretty "bleeding edge" version of gcc. I suspect it could be some kind of issue with floating point arithmetic...possibly a bug in the compiler, or possibly the NTL code makes an assumption about code generation that is not strictly "legal" somehow.
If you have access to an older version of gcc, try that. Also, try compiling without optimization...the quickest way to do this in this case: 1) edit makefile, and delete -O2 from the compiling options (should be obvious where this is). 2) touch LLL_FP.c (that should be the file causing the problem) 3) make ntl.a (should cause just LLL_FP.c to be recompiled) 4) make check (try again)
Let me know what happens....even if this is a gcc bug, I should try to find a work-around.
Also: I doubt that it is a gmp bug, but if turning optimization off doesn't help, then you should try rebuilding ntl w/ "classic" long integer arithmetic, just to rule that out.
-- Victor
On Saturday, July 3, 2004, at 10:25 AM, Roberto Bagnara wrote:
Dear Sir,
I have downloaded NTL 5.3.2 and I have configured it with the command
$ ./configure NTL_GMP_LIP=on NTL_STD_CXX=on GMP_PREFIX=/usr/local
Doing `make' proceeds fine, even though the MakeDesc command seems to print the wrong version number:
$ make make setup1 make[1]: Entering directory `/usr/local/distrib/ntl-5.3.2/src' gcc -I../include -I. -O2 -c MakeDescAux.c gcc -I../include -I. -O2 -o MakeDesc MakeDesc.c MakeDescAux.o -lm ./MakeDesc This is NTL version 5.3.1
GOOD NEWS: compatible machine. summary of machine characteristics: bits per long = 32 bits per int = 32 bits per size_t = 32 arith right shift = yes double precision = 53 NBITS (maximum) = 30 single mul ok = yes register double precision = 64 double rounding detected = yes -- auto x86 fix
mv mach_desc.h ../include/NTL/mach_desc.h [...]
When I do `make check', the process arrives to the following point
[...] running LLLTest LLL_FP...0 LLL_QP...0.02 LLL_XD...0.03 LLL_RR...0.18 G_LLL_FP...0.01 G_LLL_QP...0.07 G_LLL_XD...0.07 G_LLL_RR...0.52 LLL...0.01 LLLTest OK
making subset make[1]: Entering directory `/usr/local/distrib/ntl-5.3.2/src' g++ -I../include -I. -O2 -o subset subset.c ntl.a -L/usr/local/lib -lgmp -lm make[1]: Leaving directory `/usr/local/distrib/ntl-5.3.2/src' subset 40 40 20 10 999999 f n: b: size: prune: seed: alg [fqQxr]: +
and then sits there for ages. On my machine, an Athlon 2800 running Red Hat Linux 9, the `subset' process is running since almost 5 hours now. I am using GCC 3.4.1 and GMP 4.3.1. Have you any idea what the problem may be? Thanks a lot,
Roberto
-- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
participants (1)
-
Roberto Bagnara