Add more patches from upstream, track down the hppa issues, and fork mpfr into a...
authorMike Frysinger <vapier@gentoo.org>
Wed, 19 Oct 2005 04:33:36 +0000 (04:33 +0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 19 Oct 2005 04:33:36 +0000 (04:33 +0000)
Package-Manager: portage-2.0.53_rc5

dev-libs/gmp/ChangeLog
dev-libs/gmp/Manifest
dev-libs/gmp/files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff [new file with mode: 0644]
dev-libs/gmp/files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff [new file with mode: 0644]
dev-libs/gmp/files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff [new file with mode: 0644]
dev-libs/gmp/files/4.1.4/mpn_rootrem.c.diff [new file with mode: 0644]
dev-libs/gmp/files/digest-gmp-4.1.4-r2 [new file with mode: 0644]
dev-libs/gmp/files/gmp-hppa-2.0.patch [new file with mode: 0644]
dev-libs/gmp/gmp-4.1.4-r2.ebuild [new file with mode: 0644]

index a62d7e87f253fd768134370323e64767583414e0..876ada7cb759f564a2412b2c7696d347a32a3911 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for dev-libs/gmp
-# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.55 2005/10/18 12:02:52 gmsoft Exp $
+# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.56 2005/10/19 04:33:36 vapier Exp $
+
+*gmp-4.1.4-r2 (19 Oct 2005)
+
+  19 Oct 2005; Mike Frysinger <vapier@gentoo.org> +files/gmp-hppa-2.0.patch,
+  +files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff,
+  +files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff,
+  +files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff,
+  +files/4.1.4/mpn_rootrem.c.diff, +gmp-4.1.4-r2.ebuild:
+  Add more patches from upstream, track down the hppa issues, and fork mpfr
+  into a sep package like upstream suggests.
 
   18 Oct 2005; Guy Martin <gmsoft@gentoo.org> gmp-4.1.4.ebuild,
   gmp-4.1.4-r1.ebuild:
index eb397485b7fd0077808e337223965ec8e484632a..6a9b77ebb2722049aa5e0e22c1d12b91fdc2adbf 100644 (file)
@@ -1,9 +1,26 @@
-MD5 b4dd3c83d4a7beb03fe81545e8b96ab4 gmp-4.1.4.ebuild 1904
-MD5 e91d07c7bf0c88bbcb85e8767369581c ChangeLog 7498
-MD5 b09c48dc9a2b0af55284315d91caae96 gmp-4.1.4-r1.ebuild 1941
-MD5 dffd46174e78b327c834fc3e4b1cf848 metadata.xml 160
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 0de20b97afd948ce922ae181d21ee171 ChangeLog 7934
+MD5 3ffd372397aa4b63f5a08f711df8e02c files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff 1182
+MD5 62a1429c81d8b2631590acf519385b7c files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff 1315
+MD5 9ed7fdde964f92400549a7a4bc2d1982 files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff 1357
+MD5 4083cba7bced11f16a6672b2bbcbb364 files/4.1.4/mpn_rootrem.c.diff 813
 MD5 1dbc1772df649dae89ad8e00042c5b46 files/amd64.patch 1166
 MD5 8c7f521cf77fb56ab019223cf92a6bca files/digest-gmp-4.1.4 62
+MD5 406c6cb8cc162ea7baec4e4d5115c708 files/digest-gmp-4.1.4-r1 124
+MD5 e9d24618243d8e46e39eebb5b35b16d9 files/digest-gmp-4.1.4-r2 125
 MD5 ee91d8f397ce79dd0ff7e4ae48a47b21 files/gmp-4.1.4-multilib.patch 2864
+MD5 b52419c7a4ccb630ec3e44cc7ea926c9 files/gmp-hppa-2.0.patch 16826
 MD5 d70b080c2f0efd82a800ba8a1af7b305 files/ppc64-gmp-acinclude.patch 474
-MD5 406c6cb8cc162ea7baec4e4d5115c708 files/digest-gmp-4.1.4-r1 124
+MD5 b09c48dc9a2b0af55284315d91caae96 gmp-4.1.4-r1.ebuild 1941
+MD5 2a6d693d10caa19c95cbc9a388d77318 gmp-4.1.4-r2.ebuild 1868
+MD5 b4dd3c83d4a7beb03fe81545e8b96ab4 gmp-4.1.4.ebuild 1904
+MD5 dffd46174e78b327c834fc3e4b1cf848 metadata.xml 160
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQFDVc04gIKl8Uu19MoRAvEmAJ0Sf9aOsbFf65RLuLd4dzE18t6ZTgCfR7wW
+2iPYSAPyNE1grFmS+ZwYNpA=
+=iktP
+-----END PGP SIGNATURE-----
diff --git a/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff b/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff
new file mode 100644 (file)
index 0000000..3e4716e
--- /dev/null
@@ -0,0 +1,25 @@
+Index: gmp-impl.h
+===================================================================
+RCS file: /home/cvsfiles/gmp/gmp-impl.h,v
+retrieving revision 1.281.2.14
+retrieving revision 1.281.2.15
+diff -c -r1.281.2.14 -r1.281.2.15
+*** gmp-impl.h 13 Jan 2005 01:32:36 -0000      1.281.2.14
+--- gmp-impl.h 23 May 2005 17:54:15 -0000      1.281.2.15
+***************
+*** 2783,2789 ****
+  #define MPF_SIGNIFICANT_DIGITS(n, base, prec)                           \
+    do {                                                                  \
+      ASSERT (base >= 2 && base < numberof (mp_bases));                   \
+!     (n) = 2 + (size_t) ((((prec) - 1) * BITS_PER_MP_LIMB)               \
+                          * mp_bases[(base)].chars_per_bit_exactly);      \
+    } while (0)
+  
+--- 2783,2789 ----
+  #define MPF_SIGNIFICANT_DIGITS(n, base, prec)                           \
+    do {                                                                  \
+      ASSERT (base >= 2 && base < numberof (mp_bases));                   \
+!     (n) = 2 + (size_t) ((((size_t) (prec) - 1) * GMP_NUMB_BITS)         \
+                          * mp_bases[(base)].chars_per_bit_exactly);      \
+    } while (0)
+  
diff --git a/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff b/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff
new file mode 100644 (file)
index 0000000..3a5e93f
--- /dev/null
@@ -0,0 +1,25 @@
+Index: gmp-impl.h
+===================================================================
+RCS file: /home/cvsfiles/gmp/gmp-impl.h,v
+retrieving revision 1.281.2.13
+diff -c -1 -r1.281.2.13 gmp-impl.h
+*** gmp-impl.h 29 Sep 2004 20:04:54 -0000      1.281.2.13
+--- gmp-impl.h 13 Jan 2005 01:08:01 -0000
+***************
+*** 1844,1846 ****
+      int       __lb_base, __cnt;                                         \
+!     mp_size_t __totbits;                                                \
+                                                                          \
+--- 1844,1846 ----
+      int       __lb_base, __cnt;                                         \
+!     size_t __totbits;                                                   \
+                                                                          \
+***************
+*** 1857,1859 ****
+          count_leading_zeros (__cnt, (ptr)[(size)-1]);                   \
+!         __totbits = (size) * GMP_NUMB_BITS - (__cnt - GMP_NAIL_BITS);   \
+                                                                          \
+--- 1857,1859 ----
+          count_leading_zeros (__cnt, (ptr)[(size)-1]);                   \
+!         __totbits = (size_t) (size) * GMP_NUMB_BITS - (__cnt - GMP_NAIL_BITS);\
+                                                                          \
diff --git a/dev-libs/gmp/files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff b/dev-libs/gmp/files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff
new file mode 100644 (file)
index 0000000..40d97fa
--- /dev/null
@@ -0,0 +1,35 @@
+Index: gmp-impl.h
+===================================================================
+RCS file: /home/cvsfiles/gmp/gmp-impl.h,v
+retrieving revision 1.281.2.12
+diff -u -r1.281.2.12 gmp-impl.h
+--- gmp-impl.h 22 Apr 2004 23:59:53 -0000      1.281.2.12
++++ gmp-impl.h 29 Sep 2004 19:22:23 -0000
+@@ -2188,14 +2188,24 @@
+    there's an even number.  */
+ 
+ #if defined (__GNUC__) && ! defined (NO_ASM) && HAVE_HOST_CPU_FAMILY_x86
++/* Some clever GCC maintainer decided to change the meaning of the q register
++   flag with GCC version 3.1.  He added a Q flag with the old meaning at the
++   same time.  This forces us to use a conditional on GCC version.  */
++#if __GMP_GNUC_PREREQ (3,1)
++#define __GMP_qm "=Qm"
++#define __GMP_q "=Q"
++#else
++#define __GMP_qm "=qm"
++#define __GMP_q "=q"
++#endif
+ #define ULONG_PARITY(p, n)              \
+   do {                                  \
+     char           __p;                 \
+     unsigned long  __n = (n);           \
+     __n ^= (__n >> 16);                 \
+-    asm ("xorb   %h1, %b1\n"            \
+-         "setpo  %0\n"                  \
+-         : "=qm" (__p), "=q" (__n)      \
++    asm ("xorb   %h1, %b1\n\t"          \
++         "setpo  %0"                    \
++         : __GMP_qm (__p), __GMP_q (__n)\
+          : "1" (__n));                  \
+     (p) = __p;                          \
+   } while (0)
diff --git a/dev-libs/gmp/files/4.1.4/mpn_rootrem.c.diff b/dev-libs/gmp/files/4.1.4/mpn_rootrem.c.diff
new file mode 100644 (file)
index 0000000..aabdf9f
--- /dev/null
@@ -0,0 +1,25 @@
+Index: mpn/generic/rootrem.c
+===================================================================
+RCS file: /home/cvsfiles/gmp/mpn/generic/rootrem.c,v
+retrieving revision 1.10
+retrieving revision 1.11
+diff -c -r1.10 -r1.11
+*** mpn/generic/rootrem.c      12 Jan 2003 02:23:05 -0000      1.10
+--- mpn/generic/rootrem.c      8 Apr 2005 09:30:42 -0000       1.11
+***************
+*** 94,100 ****
+  
+    xn = (xnb + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
+  
+!   qp = TMP_ALLOC_LIMBS (un + 1);
+    xp = TMP_ALLOC_LIMBS (xn + 1);
+  
+    /* Set initial root to only ones.  This is an overestimate of the actual root
+--- 94,100 ----
+  
+    xn = (xnb + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
+  
+!   qp = TMP_ALLOC_LIMBS (PP_ALLOC);
+    xp = TMP_ALLOC_LIMBS (xn + 1);
+  
+    /* Set initial root to only ones.  This is an overestimate of the actual root
diff --git a/dev-libs/gmp/files/digest-gmp-4.1.4-r2 b/dev-libs/gmp/files/digest-gmp-4.1.4-r2
new file mode 100644 (file)
index 0000000..245d5e4
--- /dev/null
@@ -0,0 +1,2 @@
+MD5 0aa7d3b3f5b5ec5951e7dddd6f65e891 gmp-4.1.4.tar.bz2 1681267
+MD5 9f534278bbe3f66fe99b0e3496ac6cca gmp-man-4.1.4.pdf 652184
diff --git a/dev-libs/gmp/files/gmp-hppa-2.0.patch b/dev-libs/gmp/files/gmp-hppa-2.0.patch
new file mode 100644 (file)
index 0000000..c3ccf60
--- /dev/null
@@ -0,0 +1,738 @@
+--- gmp/mpn/pa64/mul_1.asm
++++ gmp/mpn/pa64/mul_1.asm
+@@ -139,14 +139,14 @@
+       fstd            %fr24, -0x80(%r30)      C low product to  -0x80..-0x79
+       addib,<>        -1, %r5, L(two_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(one)
++.label L(one)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldd             -0x80(%r30), p000a
+       b               L(0_one_out)
+       ldd             -0x68(%r30), p064a
+ 
+-L(two_or_more)
++.label L(two_or_more)
+       fldd            0(up), %fr4
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+@@ -162,7 +162,7 @@
+       ldd             -0x68(%r30), p064a
+       addib,<>        -1, %r5, L(three_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(two)
++.label L(two)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -170,7 +170,7 @@
+       b               L(0_two_out)
+       depd            m096, 31, 32, ma064
+ 
+-L(three_or_more)
++.label L(three_or_more)
+       fldd            0(up), %fr4
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+@@ -178,7 +178,7 @@
+       extrd,u         m032, 31, 32, ma064
+ dnl   addib,=         -1, %r5, L(0_out)
+       depd            m096, 31, 32, ma064
+-L(oop0)
++.label L(oop0)
+ dnl   xmpyu           %fr8R, %fr4L, %fr22
+ dnl   xmpyu           %fr8L, %fr4R, %fr23
+ dnl   ldd             -0x78(%r30), p032a1
+@@ -212,7 +212,7 @@
+ dnl   extrd,u         m032, 31, 32, ma064
+ dnl   addib,<>        -1, %r5, L(oop0)
+ dnl   depd            m096, 31, 32, ma064
+-L(0_out)
++.label L(0_out)
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+       xmpyu           %fr8L, %fr4R, %fr23
+@@ -237,7 +237,7 @@
+       depd,z          m032, 31, 32, ma000
+       extrd,u         m032, 31, 32, ma064
+       depd            m096, 31, 32, ma064
+-L(0_two_out)
++.label L(0_two_out)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldo             8(rp), rp
+@@ -248,7 +248,7 @@
+       add             ma000, s000, s000
+       add,dc          ma064, climb, climb
+       std             s000, -8(rp)
+-L(0_one_out)
++.label L(0_one_out)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -266,7 +266,7 @@
+ 
+ dnl 4-way unrolled code.
+ 
+-L(BIG)
++.label L(BIG)
+ 
+ define(`p032a1',`%r1')        dnl
+ define(`p032a2',`%r19')       dnl
+@@ -317,7 +317,7 @@
+ ',`   extrd,u         n, 61, 30, n            C right shift 2, zero extend
+ ')
+ 
+-L(4_or_more)
++.label L(4_or_more)
+       fldd            0(up), %fr4
+       fldd            8(up), %fr5
+       fldd            16(up), %fr6
+@@ -366,7 +366,7 @@
+       b               L(end1)
+       nop
+ 
+-L(8_or_more)
++.label L(8_or_more)
+       fstd            %fr28, -0x18(%r30)      C mid product to  -0x18..-0x11
+       fstd            %fr29, -0x10(%r30)      C mid product to  -0x10..-0x09
+       ldo             32(up), up
+@@ -413,7 +413,7 @@
+       fstd            %fr27, -0x50(%r30)      C mid product to  -0x50..-0x49
+       addib,=         -1, n, L(end2)
+       xmpyu           %fr8L, %fr7L, %fr27
+-L(oop)
++.label L(oop)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -519,7 +519,7 @@
+       addib,<>        -1, n, L(oop)
+       ldo             32(rp), rp
+ 
+-L(end2)
++.label L(end2)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -576,7 +576,7 @@
+       ldd             -0x10(%r30), p224d2
+       ldo             32(rp), rp
+ 
+-L(end1)
++.label L(end1)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -622,7 +622,7 @@
+       ldd             -0xd8(%r30), %r8
+       ldd             -0xe0(%r30), %r7
+       ldd             -0xe8(%r30), %r6
+-L(done)
++.label L(done)
+ ifdef(`HAVE_ABI_2_0w',
+ `     copy            climb, %r28
+ ',`   extrd,u         climb, 63, 32, %r29
+--- gmp/mpn/pa64/sqr_diagonal.asm
++++ gmp/mpn/pa64/sqr_diagonal.asm
+@@ -57,7 +57,8 @@
+       addib,=         -1,n,L(end2)
+       ldo             16(rp),rp
+ 
+-L(loop)       fldds,ma        8(up),%fr8              C load next up limb
++.label L(loop)
++      fldds,ma        8(up),%fr8              C load next up limb
+       xmpyu           %fr4l,%fr4r,%fr6
+       fstd            %fr6,-128(%r30)
+       xmpyu           %fr4r,%fr4r,%fr5        C multiply in fp regs
+@@ -95,7 +96,8 @@
+       addib,<>        -1,n,L(loop)
+       ldo             16(rp),rp
+ 
+-L(end2)       xmpyu           %fr4l,%fr4r,%fr6
++.label L(end2)
++      xmpyu           %fr4l,%fr4r,%fr6
+       fstd            %fr6,-128(%r30)
+       xmpyu           %fr4r,%fr4r,%fr5
+       fstd            %fr5,0(rp)
+@@ -123,7 +125,8 @@
+       bve             (%r2)
+       ldo             -128(%r30),%r30
+ 
+-L(exit)       xmpyu           %fr8l,%fr8r,%fr10
++.label L(exit)
++      xmpyu           %fr8l,%fr8r,%fr10
+       fstd            %fr10,-120(%r30)
+       xmpyu           %fr8r,%fr8r,%fr9
+       fstd            %fr9,0(rp)
+@@ -155,7 +158,8 @@
+       bve             (%r2)
+       ldo             -128(%r30),%r30
+ 
+-L(end1)       xmpyu           %fr8l,%fr8r,%fr10
++.label L(end1)
++      xmpyu           %fr8l,%fr8r,%fr10
+       fstd            %fr10,-128(%r30)
+       xmpyu           %fr8r,%fr8r,%fr9
+       fstd            %fr9,0(rp)
+--- gmp/mpn/pa64/lshift.asm
++++ gmp/mpn/pa64/lshift.asm
+@@ -65,36 +65,45 @@
+       b               L(7)
+       copy            %r21, %r20
+ 
+-L(loop)
+-L(0)  ldd             -16(up), %r20
++.label L(loop)
++.label L(0)
++      ldd             -16(up), %r20
+       shrpd           %r21, %r20, %sar, %r21
+       std             %r21, -8(rp)
+-L(7)  ldd             -24(up), %r21
++.label L(7)
++      ldd             -24(up), %r21
+       shrpd           %r20, %r21, %sar, %r20
+       std             %r20, -16(rp)
+-L(6)  ldd             -32(up), %r20
++.label L(6)
++      ldd             -32(up), %r20
+       shrpd           %r21, %r20, %sar, %r21
+       std             %r21, -24(rp)
+-L(5)  ldd             -40(up), %r21
++.label L(5)
++      ldd             -40(up), %r21
+       shrpd           %r20, %r21, %sar, %r20
+       std             %r20, -32(rp)
+-L(4)  ldd             -48(up), %r20
++.label L(4)
++      ldd             -48(up), %r20
+       shrpd           %r21, %r20, %sar, %r21
+       std             %r21, -40(rp)
+-L(3)  ldd             -56(up), %r21
++.label L(3)
++      ldd             -56(up), %r21
+       shrpd           %r20, %r21, %sar, %r20
+       std             %r20, -48(rp)
+-L(2)  ldd             -64(up), %r20
++.label L(2)
++      ldd             -64(up), %r20
+       shrpd           %r21, %r20, %sar, %r21
+       std             %r21, -56(rp)
+-L(1)  ldd             -72(up), %r21
++.label L(1)
++      ldd             -72(up), %r21
+       ldo             -64(up), up
+       shrpd           %r20, %r21, %sar, %r20
+       std             %r20, -64(rp)
+       addib,>         -8, n, L(loop)
+       ldo             -64(rp), rp
+ 
+-L(end)        shrpd           %r21, %r0, %sar, %r21
++.label L(end)
++      shrpd           %r21, %r0, %sar, %r21
+       std             %r21, -8(rp)
+       bve             (%r2)
+ ifdef(`HAVE_ABI_2_0w',
+--- gmp/mpn/pa64/add_n.asm
++++ gmp/mpn/pa64/add_n.asm
+@@ -48,35 +48,43 @@
+       blr             %r28, %r0               C branch into loop
+       add             %r0, %r0, %r0           C reset carry
+ 
+-L(loop)       ldd             0(up), %r20
++.label L(loop)
++      ldd             0(up), %r20
+       ldd             0(vp), %r31
+       add,dc          %r20, %r31, %r20
+       std             %r20, 0(rp)
+-L(7)  ldd             8(up), %r21
++.label L(7)
++      ldd             8(up), %r21
+       ldd             8(vp), %r19
+       add,dc          %r21, %r19, %r21
+       std             %r21, 8(rp)
+-L(6)  ldd             16(up), %r20
++.label L(6)
++      ldd             16(up), %r20
+       ldd             16(vp), %r31
+       add,dc          %r20, %r31, %r20
+       std             %r20, 16(rp)
+-L(5)  ldd             24(up), %r21
++.label L(5)
++      ldd             24(up), %r21
+       ldd             24(vp), %r19
+       add,dc          %r21, %r19, %r21
+       std             %r21, 24(rp)
+-L(4)  ldd             32(up), %r20
++.label L(4)
++      ldd             32(up), %r20
+       ldd             32(vp), %r31
+       add,dc          %r20, %r31, %r20
+       std             %r20, 32(rp)
+-L(3)  ldd             40(up), %r21
++.label L(3)
++      ldd             40(up), %r21
+       ldd             40(vp), %r19
+       add,dc          %r21, %r19, %r21
+       std             %r21, 40(rp)
+-L(2)  ldd             48(up), %r20
++.label L(2)
++      ldd             48(up), %r20
+       ldd             48(vp), %r31
+       add,dc          %r20, %r31, %r20
+       std             %r20, 48(rp)
+-L(1)  ldd             56(up), %r21
++.label L(1)
++      ldd             56(up), %r21
+       ldd             56(vp), %r19
+       add,dc          %r21, %r19, %r21
+       ldo             64(up), up
+--- gmp/mpn/pa64/rshift.asm
++++ gmp/mpn/pa64/rshift.asm
+@@ -62,36 +62,45 @@
+       b               L(7)
+       copy            %r21, %r20
+ 
+-L(loop)
+-L(0)  ldd             8(up), %r20
++.label L(loop)
++.label L(0)
++      ldd             8(up), %r20
+       shrpd           %r20, %r21, %sar, %r21
+       std             %r21, 0(rp)
+-L(7)  ldd             16(up), %r21
++.label L(7)
++      ldd             16(up), %r21
+       shrpd           %r21, %r20, %sar, %r20
+       std             %r20, 8(rp)
+-L(6)  ldd             24(up), %r20
++.label L(6)
++      ldd             24(up), %r20
+       shrpd           %r20, %r21, %sar, %r21
+       std             %r21, 16(rp)
+-L(5)  ldd             32(up), %r21
++.label L(5)
++      ldd             32(up), %r21
+       shrpd           %r21, %r20, %sar, %r20
+       std             %r20, 24(rp)
+-L(4)  ldd             40(up), %r20
++.label L(4)
++      ldd             40(up), %r20
+       shrpd           %r20, %r21, %sar, %r21
+       std             %r21, 32(rp)
+-L(3)  ldd             48(up), %r21
++.label L(3)
++      ldd             48(up), %r21
+       shrpd           %r21, %r20, %sar, %r20
+       std             %r20, 40(rp)
+-L(2)  ldd             56(up), %r20
++.label L(2)
++      ldd             56(up), %r20
+       shrpd           %r20, %r21, %sar, %r21
+       std             %r21, 48(rp)
+-L(1)  ldd             64(up), %r21
++.label L(1)
++      ldd             64(up), %r21
+       ldo             64(up), up
+       shrpd           %r21, %r20, %sar, %r20
+       std             %r20, 56(rp)
+       addib,>         -8, n, L(loop)
+       ldo             64(rp), rp
+ 
+-L(end)        shrpd           %r0, %r21, %sar, %r21
++.label L(end)
++      shrpd           %r0, %r21, %sar, %r21
+       std             %r21, 0(rp)
+       bve             (%r2)
+ ifdef(`HAVE_ABI_2_0w',
+--- gmp/mpn/pa64/addmul_1.asm
++++ gmp/mpn/pa64/addmul_1.asm
+@@ -141,14 +141,14 @@
+       fstd            %fr24, -0x80(%r30)      C low product to  -0x80..-0x79
+       addib,<>        -1, %r5, L(two_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(one)
++.label L(one)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldd             -0x80(%r30), p000a
+       b               L(0_one_out)
+       ldd             -0x68(%r30), p064a
+ 
+-L(two_or_more)
++.label L(two_or_more)
+       fldd            0(up), %fr4
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+@@ -164,7 +164,7 @@
+       ldd             -0x68(%r30), p064a
+       addib,<>        -1, %r5, L(three_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(two)
++.label L(two)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -173,7 +173,7 @@
+       b               L(0_two_out)
+       depd            m096, 31, 32, ma064
+ 
+-L(three_or_more)
++.label L(three_or_more)
+       fldd            0(up), %fr4
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+@@ -182,7 +182,7 @@
+       ldd             0(rp), r000
+ dnl   addib,=         -1, %r5, L(0_out)
+       depd            m096, 31, 32, ma064
+-L(oop0)
++.label L(oop0)
+ dnl   xmpyu           %fr8R, %fr4L, %fr22
+ dnl   xmpyu           %fr8L, %fr4R, %fr23
+ dnl   ldd             -0x78(%r30), p032a1
+@@ -219,7 +219,7 @@
+ dnl   ldd             0(rp), r000
+ dnl   addib,<>        -1, %r5, L(oop0)
+ dnl   depd            m096, 31, 32, ma064
+-L(0_out)
++.label L(0_out)
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+       xmpyu           %fr8L, %fr4R, %fr23
+@@ -247,7 +247,7 @@
+       extrd,u         m032, 31, 32, ma064
+       ldd             0(rp), r000
+       depd            m096, 31, 32, ma064
+-L(0_two_out)
++.label L(0_two_out)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldo             8(rp), rp
+@@ -260,7 +260,7 @@
+       add             r000, s000, s000
+       add,dc          %r0, climb, climb
+       std             s000, -8(rp)
+-L(0_one_out)
++.label L(0_one_out)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -281,7 +281,7 @@
+ 
+ dnl 4-way unrolled code.
+ 
+-L(BIG)
++.label L(BIG)
+ 
+ define(`p032a1',`%r1')        dnl
+ define(`p032a2',`%r19')       dnl
+@@ -337,7 +337,7 @@
+ ',`   extrd,u         n, 61, 30, n            C right shift 2, zero extend
+ ')
+ 
+-L(4_or_more)
++.label L(4_or_more)
+       fldd            0(up), %fr4
+       fldd            8(up), %fr5
+       fldd            16(up), %fr6
+@@ -386,7 +386,7 @@
+       b               L(end1)
+       nop
+ 
+-L(8_or_more)
++.label L(8_or_more)
+       fstd            %fr28, -0x18(%r30)      C mid product to  -0x18..-0x11
+       fstd            %fr29, -0x10(%r30)      C mid product to  -0x10..-0x09
+       ldo             32(up), up
+@@ -433,7 +433,7 @@
+       fstd            %fr27, -0x50(%r30)      C mid product to  -0x50..-0x49
+       addib,=         -1, n, L(end2)
+       xmpyu           %fr8L, %fr7L, %fr27
+-L(oop)
++.label L(oop)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -550,7 +550,7 @@
+       addib,<>        -1, n, L(oop)
+       ldo             32(rp), rp
+ 
+-L(end2)
++.label L(end2)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -616,7 +616,7 @@
+       ldd             -0x10(%r30), p224d2
+       ldo             32(rp), rp
+ 
+-L(end1)
++.label L(end1)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -671,7 +671,7 @@
+       ldd             -0xd8(%r30), %r8
+       ldd             -0xe0(%r30), %r7
+       ldd             -0xe8(%r30), %r6
+-L(done)
++.label L(done)
+ ifdef(`HAVE_ABI_2_0w',
+ `     copy            climb, %r28
+ ',`   extrd,u         climb, 63, 32, %r29
+--- gmp/mpn/pa64/submul_1.asm
++++ gmp/mpn/pa64/submul_1.asm
+@@ -139,14 +139,14 @@
+       fstd            %fr24, -0x80(%r30)      C low product to  -0x80..-0x79
+       addib,<>        -1, %r5, L(two_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(one)
++.label L(one)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldd             -0x80(%r30), p000a
+       b               L(0_one_out)
+       ldd             -0x68(%r30), p064a
+ 
+-L(two_or_more)
++.label L(two_or_more)
+       fldd            0(up), %fr4
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+@@ -162,7 +162,7 @@
+       ldd             -0x68(%r30), p064a
+       addib,<>        -1, %r5, L(three_or_more)
+       fstd            %fr25, -0x68(%r30)      C high product to -0x68..-0x61
+-L(two)
++.label L(two)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -171,7 +171,7 @@
+       b               L(0_two_out)
+       depd            m096, 31, 32, ma064
+ 
+-L(three_or_more)
++.label L(three_or_more)
+       fldd            0(up), %fr4
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+@@ -180,7 +180,7 @@
+       ldd             0(rp), r000
+ dnl   addib,=         -1, %r5, L(0_out)
+       depd            m096, 31, 32, ma064
+-L(oop0)
++.label L(oop0)
+ dnl   xmpyu           %fr8R, %fr4L, %fr22
+ dnl   xmpyu           %fr8L, %fr4R, %fr23
+ dnl   ldd             -0x78(%r30), p032a1
+@@ -218,7 +218,7 @@
+ dnl   ldd             0(rp), r000
+ dnl   addib,<>        -1, %r5, L(oop0)
+ dnl   depd            m096, 31, 32, ma064
+-L(0_out)
++.label L(0_out)
+       ldo             8(up), up
+       xmpyu           %fr8R, %fr4L, %fr22
+       xmpyu           %fr8L, %fr4R, %fr23
+@@ -247,7 +247,7 @@
+       extrd,u         m032, 31, 32, ma064
+       ldd             0(rp), r000
+       depd            m096, 31, 32, ma064
+-L(0_two_out)
++.label L(0_two_out)
+       ldd             -0x78(%r30), p032a1
+       ldd             -0x70(%r30), p032a2
+       ldo             8(rp), rp
+@@ -261,7 +261,7 @@
+       sub,db          %r0, climb, climb
+       sub             %r0, climb, climb
+       std             s000, -8(rp)
+-L(0_one_out)
++.label L(0_one_out)
+       add             p032a1, p032a2, m032
+       add,dc          %r0, %r0, m096
+       depd,z          m032, 31, 32, ma000
+@@ -283,7 +283,7 @@
+ 
+ dnl 4-way unrolled code.
+ 
+-L(BIG)
++.label L(BIG)
+ 
+ define(`p032a1',`%r1')        dnl
+ define(`p032a2',`%r19')       dnl
+@@ -339,7 +339,7 @@
+ ',`   extrd,u         n, 61, 30, n            C right shift 2, zero extend
+ ')
+ 
+-L(4_or_more)
++.label L(4_or_more)
+       fldd            0(up), %fr4
+       fldd            8(up), %fr5
+       fldd            16(up), %fr6
+@@ -388,7 +388,7 @@
+       b               L(end1)
+       nop
+ 
+-L(8_or_more)
++.label L(8_or_more)
+       fstd            %fr28, -0x18(%r30)      C mid product to  -0x18..-0x11
+       fstd            %fr29, -0x10(%r30)      C mid product to  -0x10..-0x09
+       ldo             32(up), up
+@@ -435,7 +435,7 @@
+       fstd            %fr27, -0x50(%r30)      C mid product to  -0x50..-0x49
+       addib,=         -1, n, L(end2)
+       xmpyu           %fr8L, %fr7L, %fr27
+-L(oop)
++.label L(oop)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -553,7 +553,7 @@
+       addib,<>        -1, n, L(oop)
+       ldo             32(rp), rp
+ 
+-L(end2)
++.label L(end2)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -620,7 +620,7 @@
+       ldd             -0x10(%r30), p224d2
+       ldo             32(rp), rp
+ 
+-L(end1)
++.label L(end1)
+       add             p032a1, p032a2, m032
+       ldd             -0x80(%r30), p000a
+       add,dc          p096b1, p096b2, m096
+@@ -676,7 +676,7 @@
+       ldd             -0xd8(%r30), %r8
+       ldd             -0xe0(%r30), %r7
+       ldd             -0xe8(%r30), %r6
+-L(done)
++.label L(done)
+ ifdef(`HAVE_ABI_2_0w',
+ `     copy            climb, %r28
+ ',`   extrd,u         climb, 63, 32, %r29
+--- gmp/mpn/pa64/udiv_qrnnd.asm
++++ gmp/mpn/pa64/udiv_qrnnd.asm
+@@ -62,12 +62,13 @@
+       ldw             -60(%r30),%r23
+ ')
+       ldi             0,q
+-      cmpib,*>=       0,d,large_divisor
++      cmpib,*>=       0,d,L(large_divisor)
+       ldi             8,%r31          C setup loop counter
+ 
+       sub             %r0,d,dn
+-Loop  divstep divstep divstep divstep divstep divstep divstep divstep
+-      addib,<>        -1,%r31,Loop
++.label L(Loop)
++      divstep divstep divstep divstep divstep divstep divstep divstep
++      addib,<>        -1,%r31,L(Loop)
+       nop
+ 
+ ifdef(`HAVE_ABI_2_0n',
+@@ -77,7 +78,7 @@
+       bve             (%r2)
+       std             n1,0(remptr)    C store remainder
+ 
+-large_divisor
++.label L(large_divisor)
+       extrd,u         n0,63,1,%r19    C save lsb of dividend
+       shrpd           n1,n0,1,n0      C n0 = lo(n1n0 >> 1)
+       shrpd           %r0,n1,1,n1     C n1 = hi(n1n0 >> 1)
+@@ -86,11 +87,12 @@
+       add,l           %r20,d,d        C d = ceil(orig_d / 2)
+ 
+       sub             %r0,d,dn
+-Loop2 divstep divstep divstep divstep divstep divstep divstep divstep
+-      addib,<>        -1,%r31,Loop2
++.label L(Loop2)
++      divstep divstep divstep divstep divstep divstep divstep divstep
++      addib,<>        -1,%r31,L(Loop2)
+       nop
+ 
+-      cmpib,*=        0,%r20,even_divisor
++      cmpib,*=        0,%r20,L(even_divisor)
+       shladd          n1,1,%r19,n1    C shift in omitted dividend lsb
+ 
+       add             d,d,d           C restore orig...
+@@ -105,7 +107,7 @@
+       add,l           n1,dn,n1        C adjust remainder
+       add,dc          %r0,q,q         C adjust quotient
+ 
+-even_divisor
++.label L(even_divisor)
+ ifdef(`HAVE_ABI_2_0n',
+ `     copy            %r28,%r29
+       extrd,u         %r28,31,32,%r28
+--- gmp/mpn/pa64/sub_n.asm
++++ gmp/mpn/pa64/sub_n.asm
+@@ -47,35 +47,43 @@
+       blr             %r28, %r0               C branch into loop
+       sub             rp, %r22, rp            C offset rp and set carry
+ 
+-L(loop)       ldd             0(up), %r20
++.label L(loop)
++      ldd             0(up), %r20
+       ldd             0(vp), %r31
+       sub,db          %r20, %r31, %r20
+       std             %r20, 0(rp)
+-L(7)  ldd             8(up), %r21
++.label L(7)
++      ldd             8(up), %r21
+       ldd             8(vp), %r19
+       sub,db          %r21, %r19, %r21
+       std             %r21, 8(rp)
+-L(6)  ldd             16(up), %r20
++.label L(6)
++      ldd             16(up), %r20
+       ldd             16(vp), %r31
+       sub,db          %r20, %r31, %r20
+       std             %r20, 16(rp)
+-L(5)  ldd             24(up), %r21
++.label L(5)
++      ldd             24(up), %r21
+       ldd             24(vp), %r19
+       sub,db          %r21, %r19, %r21
+       std             %r21, 24(rp)
+-L(4)  ldd             32(up), %r20
++.label L(4)
++      ldd             32(up), %r20
+       ldd             32(vp), %r31
+       sub,db          %r20, %r31, %r20
+       std             %r20, 32(rp)
+-L(3)  ldd             40(up), %r21
++.label L(3)
++      ldd             40(up), %r21
+       ldd             40(vp), %r19
+       sub,db          %r21, %r19, %r21
+       std             %r21, 40(rp)
+-L(2)  ldd             48(up), %r20
++.label L(2)
++      ldd             48(up), %r20
+       ldd             48(vp), %r31
+       sub,db          %r20, %r31, %r20
+       std             %r20, 48(rp)
+-L(1)  ldd             56(up), %r21
++.label L(1)
++      ldd             56(up), %r21
+       ldd             56(vp),%r19
+       sub,db          %r21, %r19, %r21
+       ldo             64(up), up
+--- gmp/longlong.h
++++ gmp/longlong.h
+@@ -204,7 +204,7 @@
+ /* These macros are for ABI=2.0w.  In ABI=2.0n they can't be used, since GCC
+    (3.2) puts longlong into two adjacent 32-bit registers.  Presumably this
+    is just a case of no direct support for 2.0n but treating it like 1.0. */
+-#if defined (__GNUC__) && ! defined (_LONG_LONG_LIMB)
++#if defined (__GNUC__) && ! defined (_LONG_LONG_LIMB) && ! defined (__linux__)
+ #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+   __asm__ ("add %4,%5,%1\n\tadd,dc %2,%3,%0"                          \
+          : "=r" (sh), "=&r" (sl)                                      \
diff --git a/dev-libs/gmp/gmp-4.1.4-r2.ebuild b/dev-libs/gmp/gmp-4.1.4-r2.ebuild
new file mode 100644 (file)
index 0000000..2a77840
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/gmp-4.1.4-r2.ebuild,v 1.1 2005/10/19 04:33:36 vapier Exp $
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="Library for arithmetic on arbitrary precision integers, rational numbers, and floating-point numbers"
+HOMEPAGE="http://www.swox.com/gmp/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2
+       doc? ( http://www.swox.se/${PN}/${PN}-man-${PV}.pdf )"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="doc nocxx"
+
+RDEPEND=""
+DEPEND="sys-devel/libtool"
+
+src_unpack () {
+       unpack ${A}
+       cd "${S}"
+
+       # This patch will actually be somewhat short lived as it's really
+       # somewhat of a hack. The toolchain folks (alanm) have a set of patches
+       # to remove the use of the '.' form in ppc64 assembler
+       if use ppc64 ; then
+               epatch "${FILESDIR}"/ppc64-gmp-acinclude.patch
+       fi
+
+       epatch "${FILESDIR}"/${PV}/*.diff
+       epatch "${FILESDIR}"/${PN}-4.1.4-multilib.patch
+       epatch "${FILESDIR}"/${PN}-hppa-2.0.patch
+
+       export WANT_AUTOCONF=2.5
+       export WANT_AUTOMAKE=1.5
+       libtoolize --copy --force || die "libtoolize --copy --force failed"
+       autoreconf || die "autoconf failed"
+}
+
+src_compile() {
+       filter-flags -ffast-math
+
+       # We need to force 1.0 ABI as 2.0w requires 64bit userland
+       use hppa && export GMPABI="1.0"
+
+       # FreeBSD libc already have bsdmp
+       econf \
+               --localstatedir=/var/state/gmp \
+               --disable-mpfr \
+               $(use_enable !nocxx cxx) \
+               $(use_enable !elibc_FreeBSD mpbsd) \
+               || die "configure failed"
+       emake || die "emake failed"
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+
+       dodoc AUTHORS ChangeLog NEWS README
+       dodoc doc/configuration doc/isa_abi_headache
+       dohtml -r doc
+
+       use doc && cp "${DISTDIR}"/gmp-man-${PV}.pdf "${D}"/usr/share/doc/${PF}/
+}