Author: boemmels
Date: Sun Apr 17 10:08:45 2005
New Revision: 7858
Modified:
trunk/config/auto/gmp.pl
trunk/config/auto/gmp/gmp.in
Log:
Fix gmp detection on 64bit architectures:
Calculate the 13th Mersenne-Prime 2^521-1. This
is big enough to not fit into any register
Modified: trunk/config/auto/gmp.pl
==============================================================================
--- trunk/config/auto/gmp.pl (original)
+++ trunk/config/auto/gmp.pl Sun Apr 17 10:08:45 2005
@@ -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';
Modified: trunk/config/auto/gmp/gmp.in
==============================================================================
--- trunk/config/auto/gmp/gmp.in (original)
+++ trunk/config/auto/gmp/gmp.in Sun Apr 17 10:08:45 2005
@@ -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;