Ramón T. B. framontb at
Thu Sep 12 17:42:31 CEST 2013


   I'm trying to compile the ggnfs program ( An open source implementation of General Number Field Sieve algorithm for factoring integers. It uses gmp, but it seems the software was not upgraded since 2006, therefore uses an old version of gmp (version 4.x). So it didn't compile with my newer version 5.0.5 ( in a Fedora 18 distribution). I think the problem is these. 
   The concrete error it report while compiling is a "conflict type for ‘__gmpz_mul_si’". So in the gmp header /usr/include/gmp-x86_64.h it is:
#define mpz_mul_si __gmpz_mul_si
__GMP_DECLSPEC void mpz_mul_si __GMP_PROTO ((mpz_ptr, mpz_srcptr, long int));
But in the ggnfs file ./src/lasieve4/gmp-aux.c is declared: 
void mpz_mul_si(mpz_t x, mpz_t y, long int z)
  if (z < 0) {
    mpz_mul_ui(x, y, (unsigned long) (-z));
    mpz_neg(x, x);
  } else {
    mpz_mul_ui(x, y, (unsigned long) z);

Somebody knows a workaround to fix it? Perhaps could I get an older version of gmp and compile against it?

More information about the gmp-discuss mailing list