From f3edb37aade6f1a60cafa2fdd20de579eeaf768092812fc0d0abafc418ccb562 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 26 Mar 2014 09:51:20 +0000 Subject: [PATCH] - Update to GMP 6.0.0 release. * includes powerpc64le support and obsoletes gmp-support-powerpc64le-linux.patch and gmp-ppc64le-mod.patch * The function mpz_invert now considers any number invertible in Z/1Z * The mpn multiply code now handles operands of more than 2^31 limbs correctly * Plain division of large operands is faster and more monotonous in operand size * Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved assembly. * Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten and vastly expanded assembly support. Speedup also for the older Core 2 and Nehalem. * Faster mixed arithmetic between mpq_class and double. * With g++, optimise more operations when one argument is a simple constant. * Support for ARM64 alias Aarch64 alias ARMv8. * New public functions mpn_sec_mul and mpn_sec_sqr, implementing side-channel silent multiplication and squaring. * New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing side-channel silent division. * New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel silent conditional addition and subtraction. * New public function mpn_sec_powm, implementing side-channel silent modexp. * New public function mpn_sec_invert, implementing side-channel silent modular inversion. * Better support for applications which use the mpz_t type, but nevertheless need to call some of the lower-level mpn functions. See OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gmp?expand=0&rev=50 --- gmp-5.1.3.tar.bz2 | 3 - gmp-6.0.0.tar.bz2 | 3 + gmp-ppc64le-mod.patch | 35 -- gmp-support-powerpc64le-linux.patch | 675 ---------------------------- gmp.changes | 35 ++ gmp.spec | 11 +- 6 files changed, 41 insertions(+), 721 deletions(-) delete mode 100644 gmp-5.1.3.tar.bz2 create mode 100644 gmp-6.0.0.tar.bz2 delete mode 100644 gmp-ppc64le-mod.patch delete mode 100644 gmp-support-powerpc64le-linux.patch diff --git a/gmp-5.1.3.tar.bz2 b/gmp-5.1.3.tar.bz2 deleted file mode 100644 index 005bd38..0000000 --- a/gmp-5.1.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 -size 2196480 diff --git a/gmp-6.0.0.tar.bz2 b/gmp-6.0.0.tar.bz2 new file mode 100644 index 0000000..36d5c21 --- /dev/null +++ b/gmp-6.0.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf +size 2319400 diff --git a/gmp-ppc64le-mod.patch b/gmp-ppc64le-mod.patch deleted file mode 100644 index 3a996f1..0000000 --- a/gmp-ppc64le-mod.patch +++ /dev/null @@ -1,35 +0,0 @@ -changeset: 15878:221a3c6d87fd -user: Torbjorn Granlund -date: Mon Jul 22 15:07:17 2013 +0200 -summary: Handle little-endian mode. - -diff -r 89a5c76228fd -r 221a3c6d87fd mpn/powerpc64/mode64/mod_1_1.asm ---- a/mpn/powerpc64/mode64/mod_1_1.asm Mon Jul 22 00:39:44 2013 +0200 -+++ b/mpn/powerpc64/mode64/mod_1_1.asm Mon Jul 22 15:07:17 2013 +0200 -@@ -69,7 +69,10 @@ - adde r9, r9, r10 - bdnz L(top) - --L(end): lwz r0, 12(r6) -+L(end): -+ifdef(`HAVE_LIMB_LITTLE_ENDIAN', -+` lwz r0, 8(r6)', -+` lwz r0, 12(r6)') - ld r3, 0(r6) - cmpdi cr7, r0, 0 - beq- cr7, L(4) -diff -r 89a5c76228fd -r 221a3c6d87fd mpn/powerpc64/mode64/mod_1_4.asm ---- a/mpn/powerpc64/mode64/mod_1_4.asm Mon Jul 22 00:39:44 2013 +0200 -+++ b/mpn/powerpc64/mode64/mod_1_4.asm Mon Jul 22 15:07:17 2013 +0200 -@@ -144,7 +144,10 @@ - adde r9, r7, r4 - bdnz L(top) - --L(end): lwz r3, 12(cps) -+L(end): -+ifdef(`HAVE_LIMB_LITTLE_ENDIAN', -+` lwz r3, 8(cps)', -+` lwz r3, 12(cps)') - mulld r10, r9, r26 - mulhdu r9, r9, r26 - addc r11, r0, r10 diff --git a/gmp-support-powerpc64le-linux.patch b/gmp-support-powerpc64le-linux.patch deleted file mode 100644 index e4eab9d..0000000 --- a/gmp-support-powerpc64le-linux.patch +++ /dev/null @@ -1,675 +0,0 @@ -From: "Ulrich Weigand" -To: gmp-devel@gmplib.org -Subject: [PATCH] Support powerpc64le-linux platform -Date: Tue, 3 Dec 2013 19:28:00 +0100 (CET) - -Hello, - -this patch updates GMP to support the little-endian PowerPC64 -platform (powerpc64le-linux). This requires two changes: - -- Update configfsf.guess/sub to current upstream versions. - -- Change mpn/powerpc64/elf.m4 to generate appropriate assembler - code for the new ELFv2 ABI. The relevant change here is that - we no longer require function descriptors; instead, functions - that use the TOC register need to provide a pair of global - and local entry points. For more details, see the GCC patch - messages here: - http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01144.html - http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01141.html - -Tested using "make check" on powerpc64le-linux; in addition, -we've been using this patch for a while when building GMP -to use with the native GCC on the platform. - -Also, built and tested with no regressions on powerpc64-linux. - -Would this be OK for GMP mainline? (I haven't submitted a -GMP patch before; if there's anything else I should be doing -to facilitate this process, please let me know!) - -Bye, -Ulrich - - -ChangeLog: - -2013-12-03 Ulrich Weigand - - * configure.ac: Check for ELFv2 ABI on PowerPC. - * mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2 - and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences. - - * configfsf.guess: Update to 2013-11-29 version. - * configfsf.sub: Update to 2013-10-01 version. - -diff -ru gmp-5.1.3~/configfsf.guess gmp-5.1.3/configfsf.guess ---- gmp-5.1.3~/configfsf.guess 2013-09-30 20:18:28.000000000 +1000 -+++ gmp-5.1.3/configfsf.guess 2013-12-04 13:00:06.237423240 +1100 -@@ -1,14 +1,12 @@ - #! /bin/sh - # Attempt to guess a canonical system name. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, --# 2011, 2012 Free Software Foundation, Inc. -+# Copyright 1992-2013 Free Software Foundation, Inc. - --timestamp='2012-09-25' -+timestamp='2013-11-29' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but -@@ -22,19 +20,17 @@ - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- -- --# Originally written by Per Bothner. Please send patches (context --# diff format) to and include a ChangeLog --# entry. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - # --# This script attempts to guess a canonical system name similar to --# config.sub. If it succeeds, it prints the system name on stdout, and --# exits with 0. Otherwise, it exits with 1. -+# Originally written by Per Bothner. - # - # You can get the latest version of this script from: - # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+# -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -54,9 +50,7 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, --2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 --Free Software Foundation, Inc. -+Copyright 1992-2013 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -138,6 +132,27 @@ - UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown - UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -+case "${UNAME_SYSTEM}" in -+Linux|GNU|GNU/*) -+ # If the system lacks a compiler, then just pick glibc. -+ # We could probably try harder. -+ LIBC=gnu -+ -+ eval $set_cc_for_build -+ cat <<-EOF > $dummy.c -+ #include -+ #if defined(__UCLIBC__) -+ LIBC=uclibc -+ #elif defined(__dietlibc__) -+ LIBC=dietlibc -+ #else -+ LIBC=gnu -+ #endif -+ EOF -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -+ ;; -+esac -+ - # Note: order is significant - the case branches are not exclusive. - - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in -@@ -859,21 +874,21 @@ - exit ;; - *:GNU:*:*) - # the GNU system -- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland -- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -@@ -886,59 +901,54 @@ - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ arc:Linux:*:* | arceb:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) -- echo ${UNAME_MACHINE}-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) -- echo ${UNAME_MACHINE}-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) -- LIBC=gnu -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build -@@ -957,54 +967,63 @@ - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; -+ or1k:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; - or32:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) -- echo sparc-unknown-linux-gnu -+ echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -+ echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -- PA7*) echo hppa1.1-unknown-linux-gnu ;; -- PA8*) echo hppa2.0-unknown-linux-gnu ;; -- *) echo hppa-unknown-linux-gnu ;; -+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; -+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; -+ *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -+ echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -+ echo powerpc-unknown-linux-${LIBC} -+ exit ;; -+ ppc64le:Linux:*:*) -+ echo powerpc64le-unknown-linux-${LIBC} -+ exit ;; -+ ppcle:Linux:*:*) -+ echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) -- echo ${UNAME_MACHINE}-ibm-linux -+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) -- echo ${UNAME_MACHINE}-dec-linux-gnu -+ echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. -@@ -1237,19 +1256,31 @@ - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- case $UNAME_PROCESSOR in -- i386) -- eval $set_cc_for_build -- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_64BIT_ARCH >/dev/null -- then -- UNAME_PROCESSOR="x86_64" -- fi -- fi ;; -- unknown) UNAME_PROCESSOR=powerpc ;; -- esac -+ eval $set_cc_for_build -+ if test "$UNAME_PROCESSOR" = unknown ; then -+ UNAME_PROCESSOR=powerpc -+ fi -+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ case $UNAME_PROCESSOR in -+ i386) UNAME_PROCESSOR=x86_64 ;; -+ powerpc) UNAME_PROCESSOR=powerpc64 ;; -+ esac -+ fi -+ fi -+ elif test "$UNAME_PROCESSOR" = i386 ; then -+ # Avoid executing cc on OS X 10.9, as it ships with a stub -+ # that puts up a graphical alert prompting to install -+ # developer tools. Any system running Mac OS X 10.7 or -+ # later (Darwin 11 and later) is required to have a 64-bit -+ # processor. This is not true of the ARM version of Darwin -+ # that Apple uses in portable devices. -+ UNAME_PROCESSOR=x86_64 -+ fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -diff -ru gmp-5.1.3~/configfsf.sub gmp-5.1.3/configfsf.sub ---- gmp-5.1.3~/configfsf.sub 2013-09-30 20:18:28.000000000 +1000 -+++ gmp-5.1.3/configfsf.sub 2013-12-04 13:00:58.458374107 +1100 -@@ -1,24 +1,18 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, --# 2011, 2012 Free Software Foundation, Inc. -- --timestamp='2012-12-06' -- --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# Copyright 1992-2013 Free Software Foundation, Inc. -+ -+timestamp='2013-10-01' -+ -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, see . -@@ -26,11 +20,12 @@ - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -73,9 +68,7 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, --2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 --Free Software Foundation, Inc. -+Copyright 1992-2013 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -259,12 +252,12 @@ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc \ -+ | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ -- | c4x | clipper \ -+ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ -@@ -272,6 +265,7 @@ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -@@ -293,16 +287,17 @@ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ -+ | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ -- | nios | nios2 \ -+ | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 \ -- | or32 \ -+ | or1k | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -@@ -330,7 +325,7 @@ - c6x) - basic_machine=tic6x-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; -@@ -372,13 +367,13 @@ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ -- | clipper-* | craynv-* | cydra-* \ -+ | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ -@@ -387,6 +382,7 @@ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ -@@ -410,12 +406,13 @@ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -+ | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ -- | nios-* | nios2-* \ -+ | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | orion-* \ -@@ -799,7 +796,7 @@ - os=-mingw64 - ;; - mingw32) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) -@@ -835,7 +832,7 @@ - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-msys - ;; - mvs) -@@ -1357,7 +1354,7 @@ - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -- | -sym* | -kopensolaris* \ -+ | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ -@@ -1503,9 +1500,6 @@ - -aros*) - os=-aros - ;; -- -kaos*) -- os=-kaos -- ;; - -zvmoe) - os=-zvmoe - ;; -@@ -1554,6 +1548,9 @@ - c4x-* | tic4x-*) - os=-coff - ;; -+ c8051-*) -+ os=-elf -+ ;; - hexagon-*) - os=-elf - ;; -@@ -1597,6 +1594,9 @@ - mips*-*) - os=-elf - ;; -+ or1k-*) -+ os=-elf -+ ;; - or32-*) - os=-coff - ;; -diff -ru gmp-5.1.3~/configure.ac gmp-5.1.3/configure.ac ---- gmp-5.1.3~/configure.ac 2013-09-30 20:18:28.000000000 +1000 -+++ gmp-5.1.3/configure.ac 2013-12-04 12:58:44.631937420 +1100 -@@ -3399,6 +3399,14 @@ - GMP_ASM_POWERPC_PIC_ALWAYS - GMP_ASM_POWERPC_R_REGISTERS - GMP_INCLUDE_MPN(powerpc32/powerpc-defs.m4) -+ -+ # Check for Linux ELFv2 ABI -+ AC_EGREP_CPP(yes, -+[#if _CALL_ELF == 2 -+yes -+#endif], -+ [GMP_DEFINE_RAW(["define()"])]) -+ - case $host in - *-*-aix*) - case $ABI in -diff -ru gmp-5.1.3~/configure gmp-5.1.3/configure ---- gmp-5.1.3~/configure 2013-12-04 13:14:41.149415571 +1100 -+++ gmp-5.1.3/configure 2013-12-04 13:13:31.084133829 +1100 -@@ -28373,6 +28373,23 @@ - - echo "include_mpn(\`powerpc32/powerpc-defs.m4')" >> $gmp_tmpconfigm4i - -+ -+ # Check for Linux ELFv2 ABI -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#if _CALL_ELF == 2 -+yes -+#endif -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "yes" >/dev/null 2>&1; then : -+ -+echo "define()" >> $gmp_tmpconfigm4 -+ -+fi -+rm -f conftest* -+ -+ - case $host in - *-*-aix*) - case $ABI in -diff -ru gmp-5.1.3~/mpn/powerpc64/elf.m4 gmp-5.1.3/mpn/powerpc64/elf.m4 ---- gmp-5.1.3~/mpn/powerpc64/elf.m4 2013-09-30 20:18:29.000000000 +1000 -+++ gmp-5.1.3/mpn/powerpc64/elf.m4 2013-12-04 12:58:44.631937420 +1100 -@@ -18,7 +18,11 @@ - dnl You should have received a copy of the GNU Lesser General Public License - dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. - --define(`ASM_START',`') -+define(`ASM_START', -+`ifdef(`ELFv2_ABI', -+` -+ .abiversion 2 -+')') - - dnl Called: PROLOGUE_cpu(GSYM_PREFIX`'foo) - dnl EPILOGUE_cpu(GSYM_PREFIX`'foo) -@@ -26,7 +30,17 @@ - - define(`PROLOGUE_cpu', - m4_assert_numargs(1) -- ` -+`ifdef(`ELFv2_ABI', -+` -+ .globl $1 -+ .type $1, @function -+ .section ".text" -+ .align 5 -+$1: -+0: addis 2, 12, (.TOC.-0b)@ha -+ addi 2, 2, (.TOC.-0b)@l -+ .localentry $1, .-$1 -+',` - .globl $1 - .globl .$1 - .section ".opd","aw" -@@ -37,11 +51,16 @@ - .type .$1, @function - .section ".text" - .align 5 --.$1:') -+.$1: -+')') - - define(`EPILOGUE_cpu', - m4_assert_numargs(1) --` .size .$1, .-.$1') -+`ifdef(`ELFv2_ABI',` -+ .size $1, .-$1 -+',` -+ .size .$1, .-.$1 -+')') - - define(`TOC_ENTRY', `') - diff --git a/gmp.changes b/gmp.changes index 16d5b53..78f27f3 100644 --- a/gmp.changes +++ b/gmp.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Wed Mar 26 09:39:48 UTC 2014 - rguenther@suse.com + +- Update to GMP 6.0.0 release. + * includes powerpc64le support and obsoletes + gmp-support-powerpc64le-linux.patch and gmp-ppc64le-mod.patch + * The function mpz_invert now considers any number invertible in Z/1Z + * The mpn multiply code now handles operands of more than 2^31 limbs + correctly + * Plain division of large operands is faster and more monotonous in + operand size + * Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved + assembly. + * Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten + and vastly expanded assembly support. Speedup also for the older Core 2 + and Nehalem. + * Faster mixed arithmetic between mpq_class and double. + * With g++, optimise more operations when one argument is a simple + constant. + * Support for ARM64 alias Aarch64 alias ARMv8. + * New public functions mpn_sec_mul and mpn_sec_sqr, implementing + side-channel + silent multiplication and squaring. + * New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing + side-channel silent division. + * New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel + silent conditional addition and subtraction. + * New public function mpn_sec_powm, implementing side-channel silent + modexp. + * New public function mpn_sec_invert, implementing side-channel silent + modular inversion. + * Better support for applications which use the mpz_t type, but + nevertheless need to call some of the lower-level mpn functions. See + the documentation for mpz_limbs_read and related functions. + ------------------------------------------------------------------- Wed Dec 4 10:42:28 UTC 2013 - anton@samba.org diff --git a/gmp.spec b/gmp.spec index 3e4a5e5..90978f4 100644 --- a/gmp.spec +++ b/gmp.spec @@ -1,7 +1,7 @@ # # spec file for package gmp # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ BuildRequires: gcc-c++ %ifarch ppc64 Obsoletes: gmp-64bit %endif -Version: 5.1.3 +Version: 6.0.0 Release: 0 Summary: The GNU MP Library License: GPL-3.0+ and LGPL-3.0+ @@ -31,8 +31,6 @@ Url: http://gmplib.org/ Source: ftp://ftp.gmplib.org/pub/%{name}/%{name}-%{version}.tar.bz2 Source2: baselibs.conf Patch0: gmp-noexec.diff -Patch1: gmp-support-powerpc64le-linux.patch -Patch2: gmp-ppc64le-mod.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -77,15 +75,12 @@ huge numbers (integer and floating point). %ifnarch %arm %patch0 %endif -%patch1 -p1 -%patch2 -p1 %build export CFLAGS="$RPM_OPT_FLAGS -fexceptions"; %configure \ --enable-cxx \ - --enable-fat \ - --enable-mpbsd + --enable-fat make %{?_smp_mflags} %check