mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Factoring

Reply
 
Thread Tools
Old 2013-09-12, 20:37   #1
framontb
 
Sep 2013

1 Posts
Question compiling ggnfs in Linux

I'm trying to compile the ggnfs program (http://sourceforge.net/projects/ggnfs/). 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));
-----------
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
-------------

Could anybody tell me what I'm doing wrong? If there are new patches for ggnfs or something like that?
framontb is offline   Reply With Quote
Old 2013-09-12, 22:48   #2
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

2×4,591 Posts
Default

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 http://sourceforge.net/projects/msieve/ (Use the stable revision 923)
3. the Kleinjung-Franke lattice sievers in this branch
4. (optional) remdups utility
Batalov is offline   Reply With Quote
Old 2013-09-13, 02:58   #3
EdH
 
EdH's Avatar
 
"Ed Hall"
Dec 2009
Adirondack Mtns

D8516 Posts
Default

You might find the following link helpful:

Steps to install and set up Aliqueit on an Ubuntu* (or antiX) computer
(including gmp, ecm, ggnfs, msieve, YAFU, Aliqueit)

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...
EdH is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
compiling a static Linux gmp-ecm version yoyo GMP-ECM 9 2016-12-25 22:46
Compiling ggnfs on linux rmd Software 2 2015-11-08 15:38
compiling mprime on linux graysky Software 6 2011-03-14 07:00
msieve linux compiling Trevil Msieve 2 2009-12-06 19:49
compiling decomp under linux James Heinrich Data 2 2006-08-27 15:59

All times are UTC. The time now is 05:09.

Thu Dec 3 05:09:11 UTC 2020 up 1:20, 0 users, load averages: 1.10, 1.31, 1.28

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

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.