diff options
author | Henning Heinold <heinold@inf.fu-berlin.de> | 2008-05-07 19:57:32 +0000 |
---|---|---|
committer | Henning Heinold <heinold@inf.fu-berlin.de> | 2008-05-07 19:57:32 +0000 |
commit | c3e353c30dfb7467721aabc9b03c348a53e1e7f6 (patch) | |
tree | 5e3e196ffd1efe126eb0f45cd414993e02b50c6e /packages/gmp/gmp-4.2.2 | |
parent | 287d816e5c2adfa726db9cd4025189b97f57dd9f (diff) |
gmp: update to version 4.2.2
* seems to work
* add patches 02_noexec-stack.diff and 03_gnu89-inline.diff from debian
* add mpf_set_str_c.diff from the gmp-website
Diffstat (limited to 'packages/gmp/gmp-4.2.2')
-rw-r--r-- | packages/gmp/gmp-4.2.2/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/02_noexec-stack.diff | 74 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/03_gnu89-inline.diff | 23 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/amd64.patch | 14 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/configure.patch | 207 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/mpf_set_str_c.diff | 38 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/sh4-asmfix.patch | 26 | ||||
-rw-r--r-- | packages/gmp/gmp-4.2.2/x86-fat.diff | 122 |
8 files changed, 504 insertions, 0 deletions
diff --git a/packages/gmp/gmp-4.2.2/.mtn2git_empty b/packages/gmp/gmp-4.2.2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/.mtn2git_empty diff --git a/packages/gmp/gmp-4.2.2/02_noexec-stack.diff b/packages/gmp/gmp-4.2.2/02_noexec-stack.diff new file mode 100644 index 0000000000..613589e347 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/02_noexec-stack.diff @@ -0,0 +1,74 @@ +Index: acinclude.m4 +=================================================================== +RCS file: /cvsroot/pkg-gmp/gmp/acinclude.m4,v +retrieving revision 1.3 +diff -u -b -B -r1.3 acinclude.m4 +--- gmp-4.2.2.orig/acinclude.m4 14 Apr 2006 22:48:55 -0000 1.3 ++++ gmp-4.2.2/acinclude.m4 15 Apr 2006 06:11:48 -0000 +@@ -1613,6 +1613,34 @@ + ]) + + ++dnl Checks whether the stack can be marked nonexecutable by passing an option ++dnl to the C-compiler when acting on .s files. Appends that option to ASFLAGS. ++dnl This macro is adapted from one found in GLIBC-2.3.5. ++AC_DEFUN([CL_AS_NOEXECSTACK],[ ++dnl AC_REQUIRE([AC_PROG_CC]) GMP uses something else ++AC_CACHE_CHECK([whether assembler supports --noexecstack option], ++cl_cv_as_noexecstack, [dnl ++ cat > conftest.c <<EOF ++void foo() {} ++EOF ++ if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS ++ -S -o conftest.s conftest.c >/dev/null]) \ ++ && grep -q .note.GNU-stack conftest.s \ ++ && AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS -Wa,--noexecstack ++ -c -o conftest.o conftest.s >/dev/null]) ++ then ++ cl_cv_as_noexecstack=yes ++ else ++ cl_cv_as_noexecstack=no ++ fi ++ rm -f conftest*]) ++ if test "$cl_cv_as_noexecstack" = yes; then ++ ASMFLAGS="$ASMFLAGS -Wa,--noexecstack" ++ fi ++ AC_SUBST(ASMFLAGS) ++]) ++ ++ + dnl GMP_ASM_LABEL_SUFFIX + dnl -------------------- + dnl : - is usual. +Index: configure.in +=================================================================== +RCS file: /cvsroot/pkg-gmp/gmp/configure.in,v +retrieving revision 1.3 +diff -u -b -B -r1.3 configure.in +--- gmp-4.2.2.orig/configure.in 14 Apr 2006 22:48:55 -0000 1.3 ++++ gmp-4.2.2/configure.in 15 Apr 2006 06:11:49 -0000 +@@ -2024,6 +2024,8 @@ + # Automake ansi2knr support. + AM_C_PROTOTYPES + ++CL_AS_NOEXECSTACK ++ + GMP_PROG_AR + GMP_PROG_NM + +Index: mpn/Makeasm.am +=================================================================== +RCS file: /cvsroot/pkg-gmp/gmp/mpn/Makeasm.am,v +retrieving revision 1.5 +diff -u -b -B -r1.5 Makeasm.am +--- gmp-4.2.2.orig/mpn/Makeasm.am 14 Apr 2006 22:48:59 -0000 1.5 ++++ gmp-4.2.2/mpn/Makeasm.am 15 Apr 2006 06:11:49 -0000 +@@ -24,7 +24,7 @@ + # COMPILE minus CC. + # + COMPILE_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ASMFLAGS) + + # Flags used for preprocessing (in ansi2knr rules). + # diff --git a/packages/gmp/gmp-4.2.2/03_gnu89-inline.diff b/packages/gmp/gmp-4.2.2/03_gnu89-inline.diff new file mode 100644 index 0000000000..17e8915fbb --- /dev/null +++ b/packages/gmp/gmp-4.2.2/03_gnu89-inline.diff @@ -0,0 +1,23 @@ +Index: gmp-h.in +=================================================================== +RCS file: /cvsroot/pkg-gmp/gmp/gmp-h.in,v +retrieving revision 1.4 +diff -u -b -B -r1.4 gmp-h.in +--- gmp-4.2.2.orig/gmp-h.in 15 Sep 2007 23:05:28 -0000 1.4 ++++ gmp-4.2.2/gmp-h.in 9 Apr 2008 05:30:42 -0000 +@@ -418,9 +418,13 @@ + for an inline too, so as to correctly specify "dllimport" on windows, in + case the function is called rather than inlined. + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 +- inline semantics, unless -fgnu89-inline is used. */ ++ inline semantics, unless -fgnu89-inline is used. ++ ++ With GCC 4.2, `__GNUC_STDC_INLINE__' is never defined (because C99 inline ++ semantics are not supported), but a warning is issued in C99 mode if ++ `__gnu_inline__' is not used. */ + #ifdef __GNUC__ +-#ifdef __GNUC_STDC_INLINE__ ++#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) + #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__)) + #else + #define __GMP_EXTERN_INLINE extern __inline__ diff --git a/packages/gmp/gmp-4.2.2/amd64.patch b/packages/gmp/gmp-4.2.2/amd64.patch new file mode 100644 index 0000000000..67be9dd350 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/amd64.patch @@ -0,0 +1,14 @@ +--- gmp-4.1.4/longlong.h.orig 2004-04-22 00:34:28.000000000 +0200 ++++ gmp-4.1.4/longlong.h 2005-07-18 01:13:06.000000000 +0200 +@@ -738,8 +738,10 @@ + count is only an int. */ + #define count_trailing_zeros(count, x) \ + do { \ ++ UDItype __cbtmp; \ + ASSERT ((x) != 0); \ +- __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x))); \ ++ __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \ ++ (count) = __cbtmp; \ + } while (0) + #endif /* x86_64 */ + diff --git a/packages/gmp/gmp-4.2.2/configure.patch b/packages/gmp/gmp-4.2.2/configure.patch new file mode 100644 index 0000000000..2a3b0e6fc1 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/configure.patch @@ -0,0 +1,207 @@ + acinclude.m4 | 26 ++++++++++++++------------ + configure.in | 24 +++++++++--------------- + 2 files changed, 23 insertions(+), 27 deletions(-) + +Index: gmp-4.2.2/acinclude.m4 +=================================================================== +--- gmp-4.2.2.orig/acinclude.m4 2008-05-01 11:07:43.000000000 +0200 ++++ gmp-4.2.2/acinclude.m4 2008-05-01 11:07:48.000000000 +0200 +@@ -30,20 +30,20 @@ + dnl conftest.exe - various DOS compilers + + +-define(IA64_PATTERN, ++define([IA64_PATTERN], + [[ia64*-*-* | itanium-*-* | itanium2-*-*]]) + + dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all + dnl of which config.sub accepts. (Though none of which are likely to work + dnl with GMP.) + dnl +-define(M68K_PATTERN, ++define([M68K_PATTERN], + [[m68k-*-* | m68[0-9][0-9][0-9]-*-*]]) + +-define(POWERPC64_PATTERN, ++define([POWERPC64_PATTERN], + [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]]) + +-define(X86_PATTERN, ++define([X86_PATTERN], + [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-*]]) + + +@@ -62,7 +62,7 @@ + dnl x86/k6 -> k6 + dnl x86/k6/mmx -> k6_mmx + +-define(GMP_FAT_SUFFIX, ++define([GMP_FAT_SUFFIX], + [[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]]) + + +@@ -71,7 +71,7 @@ + dnl Emit code to remove any occurance of ITEM from $LISTVAR. ITEM can be a + dnl shell expression like $foo if desired. + +-define(GMP_REMOVE_FROM_LIST, ++define([GMP_REMOVE_FROM_LIST], + [remove_from_list_tmp= + for remove_from_list_i in $[][$1]; do + if test $remove_from_list_i = [$2]; then :; +@@ -87,12 +87,12 @@ + dnl ---------------------- + dnl Strip entries subdir from $path and $fat_path. + +-define(GMP_STRIP_PATH, ++define([GMP_STRIP_PATH], + [GMP_STRIP_PATH_VAR(path, [$1]) + GMP_STRIP_PATH_VAR(fat_path, [$1]) + ]) + +-define(GMP_STRIP_PATH_VAR, ++define([GMP_STRIP_PATH_VAR], + [tmp_path= + for i in $[][$1]; do + case $i in +@@ -113,7 +113,7 @@ + dnl Dummy values for __GMP_BITS_PER_MP_LIMB and GMP_LIMB_BITS are enough + dnl for all current configure-time uses of gmp.h. + +-define(GMP_INCLUDE_GMP_H, ++define([GMP_INCLUDE_GMP_H], + [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */ + #define GMP_NAIL_BITS $GMP_NAIL_BITS + #define __GMP_BITS_PER_MP_LIMB 123 /* dummy for GMP_NUMB_BITS etc */ +@@ -129,7 +129,7 @@ + dnl FILE. The regexps here aren't very rugged, but are enough for gmp. + dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted. + +-define(GMP_HEADER_GETVAL, ++define([GMP_HEADER_GETVAL], + [patsubst(patsubst( + esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]), + [^.*$1[ ]+],[]), +@@ -143,7 +143,7 @@ + dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits + dnl like 3.0.1 if patchlevel > 0. + +-define(GMP_VERSION, ++define([GMP_VERSION], + [GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl + .GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl + ifelse(m4_eval(GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in) > 0),1, +@@ -1489,7 +1489,9 @@ + echo ["define(<CONFIG_TOP_SRCDIR>,<\`$tmp'>)"] >>$gmp_tmpconfigm4 + + # All CPUs use asm-defs.m4 +-echo ["include][(CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4')"] >>$gmp_tmpconfigm4i ++echo -n ["include("] >>$gmp_tmpconfigm4i ++echo -n ["CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4'"] >>$gmp_tmpconfigm4i ++echo [")"] >>$gmp_tmpconfigm4i + ]) + + +Index: gmp-4.2.2/configure.in +=================================================================== +--- gmp-4.2.2.orig/configure.in 2008-05-01 11:07:43.000000000 +0200 ++++ gmp-4.2.2/configure.in 2008-05-01 11:07:48.000000000 +0200 +@@ -29,12 +29,6 @@ + AC_PREREQ(2.59) + AC_INIT(GNU MP, GMP_VERSION, gmp-bugs@swox.com, gmp) + AC_CONFIG_SRCDIR(gmp-impl.h) +-m4_pattern_forbid([^[ \t]*GMP_]) +-m4_pattern_allow(GMP_LDFLAGS) +-m4_pattern_allow(GMP_LIMB_BITS) +-m4_pattern_allow(GMP_MPARAM_H_SUGGEST) +-m4_pattern_allow(GMP_NAIL_BITS) +-m4_pattern_allow(GMP_NUMB_BITS) + + # If --target is not used then $target_alias is empty, but if say + # "./configure athlon-pc-freebsd3.5" is used, then all three of +@@ -275,7 +269,7 @@ + # After GMP specific searches and tests, the standard autoconf AC_PROG_CC is + # called. User selections of CC etc are respected. + # +-# Care is taken not to use macros like AC_TRY_COMPILE during the GMP ++# Care is taken not to use macros like AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) during the GMP + # pre-testing, since they of course depend on AC_PROG_CC, and also some of + # them cache their results, which is not wanted. + # +@@ -367,7 +361,7 @@ + # FIXME: We'd like to prefer an ANSI compiler, perhaps by preferring + # c89 over cc here. But note that on HP-UX c89 provides a castrated + # environment, and would want to be excluded somehow. Maybe +-# AC_PROG_CC_STDC already does enough to stick cc into ANSI mode and ++# already does enough to stick cc into ANSI mode and + # we don't need to worry. + # + cclist="gcc cc" +@@ -1518,7 +1512,7 @@ + CFLAGS_or_unset=${CFLAGS-'(unset)'} + CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'} + +-cat >&AC_FD_CC <<EOF ++cat >&AS_MESSAGE_LOG_FD() <<EOF + User: + ABI=$ABI + CC=$CC +@@ -1889,7 +1883,6 @@ + + # The C compiler and preprocessor, put into ANSI mode if possible. + AC_PROG_CC +-AC_PROG_CC_STDC + AC_PROG_CPP + GMP_H_ANSI + +@@ -1912,11 +1905,11 @@ + + # The C++ compiler, if desired. + want_cxx=no ++AC_PROG_CXX + if test $enable_cxx != no; then + test_CXXFLAGS=${CXXFLAGS+set} +- AC_PROG_CXX + +- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC ++ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD() + cxxflags_ac_prog_cxx=$CXXFLAGS + cxxflags_list=ac_prog_cxx + +@@ -2022,7 +2015,7 @@ + esac + + +-cat >&AC_FD_CC <<EOF ++cat >&AS_MESSAGE_LOG_FD() <<EOF + Decided: + ABI=$ABI + CC=$CC +@@ -3199,7 +3192,7 @@ + # FIXME: Upcoming version of autoconf/automake may not like broken lines. + # Right now automake isn't accepting the new AC_CONFIG_FILES scheme. + +-AC_OUTPUT(Makefile \ ++AC_CONFIG_FILES([Makefile \ + mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \ + mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \ + tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \ +@@ -3208,4 +3201,5 @@ + tests/cxx/Makefile \ + doc/Makefile tune/Makefile \ + demos/Makefile demos/calc/Makefile demos/expr/Makefile \ +- gmp.h:gmp-h.in mp.h:mp-h.in) ++ gmp.h:gmp-h.in mp.h:mp-h.in]) ++AC_OUTPUT +Index: gmp-4.2.2/gmp-h.in +=================================================================== +--- gmp-4.2.2.orig/gmp-h.in 2007-09-03 18:05:40.000000000 +0200 ++++ gmp-4.2.2/gmp-h.in 2008-05-01 11:10:42.000000000 +0200 +@@ -516,6 +516,7 @@ + + #if defined (__cplusplus) + extern "C" { ++#include <cstdio> + #ifdef _GMP_H_HAVE_FILE + using std::FILE; + #endif diff --git a/packages/gmp/gmp-4.2.2/mpf_set_str_c.diff b/packages/gmp/gmp-4.2.2/mpf_set_str_c.diff new file mode 100644 index 0000000000..1924611640 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/mpf_set_str_c.diff @@ -0,0 +1,38 @@ +*** gmp-4.2.2.orig/mpf/set_str.c 30 Aug 2007 18:19:41 -0000 +--- gmp-4.2.2/mpf/set_str.c 10 Dec 2007 04:47:18 -0000 +*************** mpf_set_str (mpf_ptr x, const char *str, +*** 272,277 **** + + if (expptr != 0) +! /* FIXME: Should do some error checking here. */ +! exp_in_base = strtol (expptr, (char **) 0, exp_base); + else + exp_in_base = 0; +--- 272,298 ---- + + if (expptr != 0) +! { +! /* Scan and convert the exponent, in base exp_base. */ +! long dig, neg = -(long) ('-' == expptr[0]); +! expptr -= neg; /* conditional increment */ +! c = (unsigned char) *expptr++; +! dig = digit_value[c]; +! if (dig >= exp_base) +! { +! TMP_FREE; +! return -1; +! } +! exp_in_base = dig; +! c = (unsigned char) *expptr++; +! dig = digit_value[c]; +! while (dig < exp_base) +! { +! exp_in_base = exp_in_base * exp_base; +! exp_in_base += dig; +! c = (unsigned char) *expptr++; +! dig = digit_value[c]; +! } +! exp_in_base = (exp_in_base ^ neg) - neg; /* conditional negation */ +! } + else + exp_in_base = 0; diff --git a/packages/gmp/gmp-4.2.2/sh4-asmfix.patch b/packages/gmp/gmp-4.2.2/sh4-asmfix.patch new file mode 100644 index 0000000000..1a01f61533 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/sh4-asmfix.patch @@ -0,0 +1,26 @@ +--- gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:44:00 1.1 ++++ gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:18:57 +@@ -29,8 +29,8 @@ + + .text + .align 2 +- .global ___gmpn_add_n +-___gmpn_add_n: ++ .global __gmpn_add_n ++__gmpn_add_n: + mov #0,r3 ! clear cy save reg + + Loop: mov.l @r5+,r1 +--- gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:44:04 1.1 ++++ gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:18:59 +@@ -29,8 +29,8 @@ + + .text + .align 2 +- .global ___gmpn_sub_n +-___gmpn_sub_n: ++ .global __gmpn_sub_n ++__gmpn_sub_n: + mov #0,r3 ! clear cy save reg + + Loop: mov.l @r5+,r1 diff --git a/packages/gmp/gmp-4.2.2/x86-fat.diff b/packages/gmp/gmp-4.2.2/x86-fat.diff new file mode 100644 index 0000000000..2a54622a26 --- /dev/null +++ b/packages/gmp/gmp-4.2.2/x86-fat.diff @@ -0,0 +1,122 @@ +See: + + http://gmplib.org/patches/x86-fat.diff + http://gmplib.org/list-archives/gmp-bugs/2006-October/000579.html + http://gmplib.org/#BUGREPORTS + +Removed the configure part of the patch since we patch configure.in. It was +only needed for FAT binaries anyway and this is being included to fix +linking errors. + +Index: mpn/generic/addsub_n.c +=================================================================== +RCS file: /home/cvsfiles/gmp42/mpn/generic/addsub_n.c,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -p -2 -r1.1 -r1.2 +*** mpn/generic/addsub_n.c 14 Mar 2006 15:57:54 -0000 1.1 +--- mpn/generic/addsub_n.c 15 May 2006 22:38:42 -0000 1.2 +*************** +*** 1,5 **** + /* mpn_addsub_n -- Add and Subtract two limb vectors of equal, non-zero length. + +! Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + + This file is part of the GNU MP Library. +--- 1,5 ---- + /* mpn_addsub_n -- Add and Subtract two limb vectors of equal, non-zero length. + +! Copyright 1999, 2000, 2001, 2006 Free Software Foundation, Inc. + + This file is part of the GNU MP Library. +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 59,63 **** + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n + acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo); + #else +--- 59,63 ---- + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_add_nc + acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo); + #else +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 65,69 **** + acyo = acyn + mpn_add_1 (r1p + off, r1p + off, this_n, acyo); + #endif +! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else +--- 65,69 ---- + acyo = acyn + mpn_add_1 (r1p + off, r1p + off, this_n, acyo); + #endif +! #if HAVE_NATIVE_mpn_sub_nc + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 82,86 **** + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else +--- 82,86 ---- + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_sub_nc + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 88,92 **** + scyo = scyn + mpn_sub_1 (r2p + off, r2p + off, this_n, scyo); + #endif +! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n + acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo); + #else +--- 88,92 ---- + scyo = scyn + mpn_sub_1 (r2p + off, r2p + off, this_n, scyo); + #endif +! #if HAVE_NATIVE_mpn_add_nc + acyo = mpn_add_nc (r1p + off, s1p + off, s2p + off, this_n, acyo); + #else +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 98,102 **** + else + { +! /* r1 and r2 are identical to s1 and s2 (r1==s1 and r2=s2 or vice versa) + Need temporary storage. */ + mp_limb_t tp[PART_SIZE]; +--- 98,102 ---- + else + { +! /* r1 and r2 are identical to s1 and s2 (r1==s1 and r2==s2 or vice versa) + Need temporary storage. */ + mp_limb_t tp[PART_SIZE]; +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 106,110 **** + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_add_nc || !HAVE_NATIVE_mpn_add_n + acyo = mpn_add_nc (tp, s1p + off, s2p + off, this_n, acyo); + #else +--- 106,110 ---- + { + this_n = MIN (n - off, PART_SIZE); +! #if HAVE_NATIVE_mpn_add_nc + acyo = mpn_add_nc (tp, s1p + off, s2p + off, this_n, acyo); + #else +*************** mpn_addsub_n (mp_ptr r1p, mp_ptr r2p, mp +*** 112,116 **** + acyo = acyn + mpn_add_1 (tp, tp, this_n, acyo); + #endif +! #if HAVE_NATIVE_mpn_sub_nc || !HAVE_NATIVE_mpn_sub_n + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else +--- 112,116 ---- + acyo = acyn + mpn_add_1 (tp, tp, this_n, acyo); + #endif +! #if HAVE_NATIVE_mpn_sub_nc + scyo = mpn_sub_nc (r2p + off, s1p + off, s2p + off, this_n, scyo); + #else |