#5847: Update GMP-ECM to 6.3
-----------------------------------------+----------------------------------
Reporter: mabshoff | Owner: leif
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-4.6.1
Component: packages | Resolution:
Keywords: MPIR elliptic curves libecm | Author: Mike Hansen, Leif
Leonhardy, Jeroen Demeyer
Upstream: N/A | Reviewer: Leif Leonhardy, Dima
Pasechnik
Merged: | Work_issues:
-----------------------------------------+----------------------------------
Changes (by leif):
* keywords: => MPIR elliptic curves libecm
* status: needs_work => needs_review
Old description:
> {{{
> Changes between ecm-6.2.3 and ecm-6.3:
> * New assembly code for 64-bit PowerPC (thanks to Philip McLaughlin)
> * Allow several processes to write to the same -save file
> * More routines in new P+-1 stage 2 use multi-threading in OpenMP build
> * Fixed incompatibility with GMP 5.0.0
> * Fixed several bugs, and now check return value from malloc() calls
> * Fixed linking of GMP which prevented successful builds under Darwin
> (and presumably other systems)
> * Allow use of x86_64 asm code under MinGW
>
> Changes between ecm-6.2.2 and ecm-6.2.3:
> * Fixed incompatibility with GMP 4.3.0 when testing version in configure
> * SSE2 asm code for Visual C added in stage 2 NTT code
> * Small improvement to x86_64 mulredc asm code, slight speedup on Core 2
> * Fixed incorrect carry propagation in subquadratic REDC code which
> could lead to incorrect arithmetic in rare cases
> * Fixed memory leak with -v parameter when factor was found in ECM stage
> 1
> * Fixed bug which caused only one ECM curve to be run in spite of -c
> parameter if input line did not end in newline
> * Assembler mulredc code enabled by default on x86_64
>
> Changes between ecm-6.2.1 and ecm-6.2.2:
> * Updated build project files for Visual C by Brian Gladman, also adds
> missing NTT_GFP_TWIDDLE_DI[FT]_BREAKOVER defines in VC parameter file
> * Fixed uninitialised parameter to P-1 probability computation
> * In tune.c : fixed generation of NTT_GFP_TWIDDLE_DI[FT]_BREAKOVER
> values,
> avoid calling cputime() excessively often when timing short functions,
> fixed access to uninitialised memory
> * Fixed serious split infinitive in configure script (thanks Paul
> Leyland)
> * Removed unnecessary carry propagation in x86_64 mulredc code, slight
> speedup (thanks Philip McLaughlin)
> * Fixed non-portable PIC code in x86_64/redc.asm
> * Fixed problem with pattern matching host type names in configure.in
> * Converted binary constants in spv.c and ntt_gfp.c to hexadecimal,
> some assembler do not support binary constants
> }}}
>
> ----
>
> Previous spkg:
> [http://sage.math.washington.edu/home/jdemeyer/spkg/ecm-6.3.p1.spkg]
>
> ----
>
> '''New spkg: http://spkg-upload.googlecode.com/files/ecm-6.3.p2.spkg'''
>
> '''md5sum:''' `85eabecaa8974a270d5587ef8de06da1 ecm-6.3.p2.spkg`
New description:
{{{
Changes between ecm-6.2.3 and ecm-6.3:
* New assembly code for 64-bit PowerPC (thanks to Philip McLaughlin)
* Allow several processes to write to the same -save file
* More routines in new P+-1 stage 2 use multi-threading in OpenMP build
* Fixed incompatibility with GMP 5.0.0
* Fixed several bugs, and now check return value from malloc() calls
* Fixed linking of GMP which prevented successful builds under Darwin
(and presumably other systems)
* Allow use of x86_64 asm code under MinGW
Changes between ecm-6.2.2 and ecm-6.2.3:
* Fixed incompatibility with GMP 4.3.0 when testing version in configure
* SSE2 asm code for Visual C added in stage 2 NTT code
* Small improvement to x86_64 mulredc asm code, slight speedup on Core 2
* Fixed incorrect carry propagation in subquadratic REDC code which
could lead to incorrect arithmetic in rare cases
* Fixed memory leak with -v parameter when factor was found in ECM stage 1
* Fixed bug which caused only one ECM curve to be run in spite of -c
parameter if input line did not end in newline
* Assembler mulredc code enabled by default on x86_64
Changes between ecm-6.2.1 and ecm-6.2.2:
* Updated build project files for Visual C by Brian Gladman, also adds
missing NTT_GFP_TWIDDLE_DI[FT]_BREAKOVER defines in VC parameter file
* Fixed uninitialised parameter to P-1 probability computation
* In tune.c : fixed generation of NTT_GFP_TWIDDLE_DI[FT]_BREAKOVER values,
avoid calling cputime() excessively often when timing short functions,
fixed access to uninitialised memory
* Fixed serious split infinitive in configure script (thanks Paul Leyland)
* Removed unnecessary carry propagation in x86_64 mulredc code, slight
speedup (thanks Philip McLaughlin)
* Fixed non-portable PIC code in x86_64/redc.asm
* Fixed problem with pattern matching host type names in configure.in
* Converted binary constants in spv.c and ntt_gfp.c to hexadecimal,
some assembler do not support binary constants
}}}
----
Previous spkg:
[http://sage.math.washington.edu/home/jdemeyer/spkg/ecm-6.3.p1.spkg]
----
'''Updated new spkg: http://spkg-
upload.googlecode.com/files/ecm-6.3.p2.spkg'''
'''md5sum:''' `8246ca74be1ee07b312a84d2a88d9142 ecm-6.3.p2.spkg`
--
Comment:
Replying to [comment:75 leif]:
> P.S.: As I said, I first want to get some test results (e.g. on PowerPCs
etc.) before I upload further changes.
Although (or because) there's not much feedback yet, I've uploaded a
corrected spkg (still p2) with also some other changes. This obsoletes
setting `ECM_EXTRA_OPTS=--with-pic` or `-fPIC` in `CFLAGS` etc., works
with all GCC 4.0.x on x86 as well and also uses processor-specific
settings from MPIR if available.
'''Updated spkg: http://spkg-
upload.googlecode.com/files/ecm-6.3.p2.spkg''' (same place)
'''md5sum:''' `8246ca74be1ee07b312a84d2a88d9142 ecm-6.3.p2.spkg`
(fortunately differs ;-) )
----
=== ecm-6.3.p2 (Leif Leonhardy, November 25th, 2010) ===
* #5847: Apply another patch from upstream to 'configure.in' to fix com-
pilation on 32-bit x86 processors supporting SSE2. (Also #10252.)
(There's only a single, cumulative patch file since both patches are to
'configure.in'.)
* Work around linker bug on MacOS X 10.5 PPC (see Special Update/Build
Instructions above, and #5847 comment 35 ff.).
* Allow passing extra arguments to 'configure' through ECM_EXTRA_OPTS.
* Add "-march=native" to CFLAGS on platforms that support it, or use
processor-specific CFLAGS from GMP's / MPIR's 'gmp.h' if available,
but only if CFLAGS do not already contain similar (i.e., don't over-
ride a user's choice). [Subject to further improvement.]
* Print settings of CC, CFLAGS etc. and how we configure.
* Print settings of CC and CFLAGS found in 'SAGE_LOCAL/include/gmp.h'
and eventually a system-wide 'gmp.h', although the latter aren't (yet)
used at all, and only processor-specific parts of the former.
* Add '-fPIC' conditionally, i.e. not if we're also building a shared
library (or '--with-pic' was given).
* Don't delete previous installations unless the build succeeded.
* Further clean-up.
=== Special Update/Build Instructions ===
[...]
* ECM currently does not (by itself) use the CC and CFLAGS settings
from 'gmp.h' since we pass (other) options in CFLAGS, and CC is set
by Sage and might got set by the user (though MPIR currently doesn't
use its own CFLAGS for the same reason, which is fixed in an MPIR
2.1.3.p2 spkg). We now at least partially fix that s.t. "optimized"
code generation options ('-mcpu=...', '-mtune=...') are used by gcc.
Of course a user can also manually enable them by setting the "global"
CFLAGS to e.g. '-march=native' on x86[_64] systems, or '-mcpu=...' and
'-mtune=...' on other architectures where "native" isn't supported.
Note that this doesn't affect the packages' selection of processor-
specific optimized [assembly] code.
'spkg-install' already reads the settings from Sage's and also a
system-wide GMP / MPIR now, but doesn't (yet) use all of them.
If SAGE_FAT_BINARY="yes", we should avoid too specific settings of
"-mcpu=...", and perhaps pass a more generic "--host=..." to
'configure'. (MPIR honors '--enable-fat' to some extent, but this
option isn't used on anything other than x86 / x86_64.)
----
A new MPIR (2.1.3.p2) spkg which handles `CFLAGS` better (allowing us to
use processor-specific settings chosen by MPIR) is on the way, but will
live on another ticket (not #8664). Just haven't committed the changes
yet.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5847#comment:86>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.