On Thursday 14 April 2005 08:36, Leopold Toetsch wrote:
> Lambeck <[EMAIL PROTECTED]> wrote:
> > Hi all,
> > Configure.pl failed to find the GNU Math Lib (GMP) on my system
> > eventhough it is installed properly (version 4.1.4) .
> > I compiled config/auto/gmp/gmp.in by hand and it returned:
> > 499999500000 1 but expected was:
> > 499999500000 0
> >
> > Everything seems to be right, except that mpz_fits_slong_p(k) returned
> > "1" instead of "0". Could not find anything usefull to explain what it
> > means. I am on amd64 running Linux.
> ^^^^^
>
> Yeah. The test is bogus for 64-bit systems. The tested number fits
> within a 64-bit long. Could you please patch gmp.in and gmp.pl to use
> some bigger numbers > 64 bit.
I changed the test to calculate a mersenne prime number. I have tested it
on amd 64 and it finds amd64.
Ok to commit?
boe
Index: config/auto/gmp/gmp.in
===================================================================
--- config/auto/gmp/gmp.in (revision 7853)
+++ config/auto/gmp/gmp.in (working copy)
@@ -7,21 +7,17 @@
int main(int argc, char *argv[])
{
- mpz_t i, j, k;
+ mpz_t prime;
char *s; int y;
- mpz_init(i);
- mpz_set_si(i, 999999);
- mpz_init(j);
- mpz_set_si(j, 1000000);
- mpz_init(k);
- mpz_mul(k, i, j);
- mpz_set_si(i, 2);
- mpz_div(k, k, i);
+ /* Calculate the 13th Mersenne prime 2^521 - 1 */
+ mpz_init(prime);
+ mpz_ui_pow_ui(prime, 2, 521);
+ mpz_sub_ui(prime, prime, 1);
- y = mpz_fits_slong_p(k);
+ y = mpz_fits_slong_p(prime);
- s = mpz_get_str(NULL, 10, k);
+ s = mpz_get_str(NULL, 10, prime);
printf("%s %d\n", s, y);
free(s);
return 0;
Index: config/auto/gmp.pl
===================================================================
--- config/auto/gmp.pl (revision 7853)
+++ config/auto/gmp.pl (working copy)
@@ -55,7 +55,7 @@
my $has_gmp = 0;
if (! $@) {
my $test = cc_run();
- if ($test eq "499999500000 0\n") {
+ if ($test eq "6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 0\n") {
$has_gmp = 1;
print " (yes) " if $verbose;
$Configure::Step::result = 'yes';