summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-10-19 04:33:36 +0000
committerMike Frysinger <vapier@gentoo.org>2005-10-19 04:33:36 +0000
commita66e7266494aa2c8e35956285c87c5bd4ee01610 (patch)
tree1e0bbabda81e31f9612ac7dc1a7322e707a2a0c0 /dev-libs
parentadded ~mips keywod (diff)
downloadgentoo-2-a66e7266494aa2c8e35956285c87c5bd4ee01610.tar.gz
gentoo-2-a66e7266494aa2c8e35956285c87c5bd4ee01610.tar.bz2
gentoo-2-a66e7266494aa2c8e35956285c87c5bd4ee01610.zip
Add more patches from upstream, track down the hppa issues, and fork mpfr into a sep package like upstream suggests.
(Portage version: 2.0.53_rc5)
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/gmp/ChangeLog14
-rw-r--r--dev-libs/gmp/files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff25
-rw-r--r--dev-libs/gmp/files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff25
-rw-r--r--dev-libs/gmp/files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff35
-rw-r--r--dev-libs/gmp/files/4.1.4/mpn_rootrem.c.diff25
-rw-r--r--dev-libs/gmp/files/digest-gmp-4.1.4-r22
-rw-r--r--dev-libs/gmp/files/gmp-hppa-2.0.patch738
-rw-r--r--dev-libs/gmp/gmp-4.1.4-r2.ebuild65
8 files changed, 927 insertions, 2 deletions
diff --git a/dev-libs/gmp/ChangeLog b/dev-libs/gmp/ChangeLog
index a62d7e87f253..876ada7cb759 100644
--- a/dev-libs/gmp/ChangeLog
+++ b/dev-libs/gmp/ChangeLog
@@ -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:
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
index 000000000000..3e4716e4a7f9
--- /dev/null
+++ b/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPF_SIGNIFICANT_DIGITS.diff
@@ -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
index 000000000000..3a5e93fd3619
--- /dev/null
+++ b/dev-libs/gmp/files/4.1.4/gmp-impl.h.MPN_SIZEINBASE.diff
@@ -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
index 000000000000..40d97fa01bab
--- /dev/null
+++ b/dev-libs/gmp/files/4.1.4/gmp-impl.h.x86.ULONG_PARITY.diff
@@ -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
index 000000000000..aabdf9fd9c46
--- /dev/null
+++ b/dev-libs/gmp/files/4.1.4/mpn_rootrem.c.diff
@@ -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
index 000000000000..245d5e4d9c07
--- /dev/null
+++ b/dev-libs/gmp/files/digest-gmp-4.1.4-r2
@@ -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
index 000000000000..c3ccf60428af
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-hppa-2.0.patch
@@ -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
index 000000000000..2a7784057da2
--- /dev/null
+++ b/dev-libs/gmp/gmp-4.1.4-r2.ebuild
@@ -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}/
+}