mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Factoring (https://www.mersenneforum.org/forumdisplay.php?f=19)
-   -   compiling ggnfs in Linux (https://www.mersenneforum.org/showthread.php?t=18582)

framontb 2013-09-12 20:37

compiling ggnfs in Linux
 
I'm trying to compile the ggnfs program ([url]http://sourceforge.net/projects/ggnfs/[/url]). 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 (after 'make nocona') while compiling is a "conflict type for ‘__gmpz_mul_si’". So in the gmp header /usr/include/gmp-x86_64.h it is:
-----------
[CODE]#define mpz_mul_si __gmpz_mul_si
__GMP_DECLSPEC void mpz_mul_si __GMP_PROTO ((mpz_ptr, mpz_srcptr, long int));
[/CODE]
-----------
But in the ggnfs file ./src/lasieve4/gmp-aux.c is declared:
-----------
[CODE]#ifdef NEED_MPZ_MUL_SI
/********************************************************/
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);
}
}
#endif[/CODE]
-------------

Could anybody tell me what I'm doing wrong? If there are new patches for ggnfs or something like that?

Batalov 2013-09-12 22:48

You are most probably correct and the product may be broken.

However, the current state of the art is that this repository became just a placeholder for some added programs, but not the core ggnfs package. The new tools have better performance, and if you want to build ggnfs only for historical reasons, then your best bet would probably be to build libgmp v.4, as well. There used to be times (a few years ago) when some tools (like pol5) were still used while the main source was largely abandoned, but now even pol5 is obviated by msieve. C.Monico once announced that he was re-writing the ggnfs package into another version, but this was never published.

If your interest is rather in building the modern version of the tools, then you need the following components:
1. factMsieve.pl script (or factmsieve.py python script - can be found on this forum)
2. msieve - see [url]http://sourceforge.net/projects/msieve/[/url] (Use the stable revision 923)
3. the Kleinjung-Franke lattice sievers in [URL="http://sourceforge.net/p/ggnfs/code/HEAD/tree/trunk/src/experimental/lasieve4_64/"]this branch[/URL]
4. (optional) [URL="http://sourceforge.net/p/ggnfs/code/HEAD/tree/trunk/contrib/remdups/"]remdups[/URL] utility

EdH 2013-09-13 02:58

You might find the following link helpful:

[URL="http://www.starreloaders.com/edhall/AliWin/AliqueitLinstall.html"]Steps to install and set up Aliqueit on an Ubuntu* (or antiX) computer
(including gmp, ecm, ggnfs, msieve, YAFU, Aliqueit)
[/URL]
It will take you through detailed steps to install to any point in the list, the following packages:

gmp
gmp-ecm
ggnfs
msieve (use -r 923 as Batalov suggests - this is not in the instructions)
yafu
aliqueit
factmsieve.py
factMsieve.pl
ecm.py

*It also works with Debian and has instructions for both 32-bit and 64-bit systems. Let me know if something doesn't work...

@Batalov: Thanks! Although I haven't been seriously searching, I wondered where remdups was located...


All times are UTC. The time now is 13:11.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.