summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Lenehan <lenehan@twibble.org>2007-03-14 19:22:34 +0000
committerJamie Lenehan <lenehan@twibble.org>2007-03-14 19:22:34 +0000
commite0f2cc91afabdb5da2b1c03ff0f4b201f1a5ed17 (patch)
tree622b3ee9d09b93dc01a4cd9ea03af86f7edd9134
parentf6b13d904d5100bda78a808359caac6e401a2104 (diff)
gmp 4.2.1: Allow gmp 4.2.1 to work for sh arch by apply a patch from
the gmp home page which ensure the gmpn_add_nc and gmpn_sub_nc functions are included when they are required. Closes #1605.
-rw-r--r--packages/gmp/gmp-4.2.1/x86-fat.diff122
-rw-r--r--packages/gmp/gmp_4.2.1.bb9
2 files changed, 125 insertions, 6 deletions
diff --git a/packages/gmp/gmp-4.2.1/x86-fat.diff b/packages/gmp/gmp-4.2.1/x86-fat.diff
new file mode 100644
index 0000000000..2a54622a26
--- /dev/null
+++ b/packages/gmp/gmp-4.2.1/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
diff --git a/packages/gmp/gmp_4.2.1.bb b/packages/gmp/gmp_4.2.1.bb
index 8ad8e29ad1..452553beda 100644
--- a/packages/gmp/gmp_4.2.1.bb
+++ b/packages/gmp/gmp_4.2.1.bb
@@ -1,9 +1,6 @@
-PR = "r1"
+PR = "r2"
-SRC_URI += "file://sh4-asmfix.patch;patch=1"
+SRC_URI_append += "file://sh4-asmfix.patch;patch=1 \
+ file://x86-fat.diff;patch=1;pnum=0 "
require gmp.inc
-
-# Builds on sh but can't be used due to not compiling in some functions
-DEFAULT_PREFERENCE_sh3 = "-1"
-DEFAULT_PREFERENCE_sh4 = "-1"