In November 2016 we added automated testing of the separately maintained
mini-gmp library-in-the-library. This triggered several previously unknown
problems. GMP releaes up to and including 6.1.1 are affected. All problems
except for (15) are fixed in GMP 6.1.2.
GMP_CHECK_RANDOMIZE is not always printed for failing tests. This makes it
hard to reproduce intermittent failures. It needs to be printed earlier,
and/or a buffer needs flushing.
There are inexplicable timeouts (or possibly excessive memory use)
triggered by t-pprime_p for some of our systems:
Perhaps the test is simply too slow, or its time varies hugely, or it
hits an infinite loop.
The mini-gmp check target fails when the main build does not use the compiler
default ABI. This affects hundreds of configs.
For some good reason, mini-gmp's Makefile requires GNU make. We have now
made significant changes to the testclient.sh script to accomodate this when
possible, without also requiring (or even defaulting to) GNU make for GMP
proper. There might be bugs in the new code, only subsequent testing can
There are failures with t-str, this affects
Arithmetic problems triggered by t-div, demonstrated by
sky. (But since this example uses clang, it might as well be a
The t-limbs test triggers an assert. It looks like any config could
trigger this, but thus far it has only happened on these:
On alpha, t-cmp_d fails:
... and alpha-gentoo where we disabled mini-gmp for now.
Note that dupont is currently powered off (not behind the pdu). the much
faster and parallel alpha-gentoo is available.
Arithmetic problems triggered by t-gcd, demonstrated by
According to valgrind, t-str leaks many MiB of memory in tens of thousands blocks.
The seeding triggered by GMP_CHECK_RANDOMIZE is based on seconds since epoch
plus getpid(). This is not good enough, there will in practice be many
collisions over the test machine park. Fix: Copy GMP's seeding code.
Arithmetic problems triggered by t-powm, demonstrated by
The LD_LIBRARY_PATH (and DYLD_LIBRARY_PATH) in Makefile.am's check-mini-gmp
rule affects more than desired. It should not be set for the build tools,
only for the binaries. Examples: