diff options
author | mrg <mrg@pkgsrc.org> | 2015-04-03 07:41:26 +0000 |
---|---|---|
committer | mrg <mrg@pkgsrc.org> | 2015-04-03 07:41:26 +0000 |
commit | e5d35c56aab083ac97750df738fca12f31ea7413 (patch) | |
tree | 8fa1a92c27b7437c474cf4f6ab0bed84c2af3565 | |
parent | a37e83dbdc01bd412890f593a9aef9d31148d0a0 (diff) | |
download | pkgsrc-e5d35c56aab083ac97750df738fca12f31ea7413.tar.gz |
port some changes from netbsd gmp and adapt them to the gmp 6.x.
this allows devel/gmp to build on armv4.
-rw-r--r-- | devel/gmp/distinfo | 4 | ||||
-rw-r--r-- | devel/gmp/patches/patch-mpn-arm-netbsd.diff | 339 | ||||
-rw-r--r-- | devel/gmp/patches/patch-mpn_arm_invert__limb.asm | 13 |
3 files changed, 341 insertions, 15 deletions
diff --git a/devel/gmp/distinfo b/devel/gmp/distinfo index 14790629cef..d56093ca3f7 100644 --- a/devel/gmp/distinfo +++ b/devel/gmp/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.46 2014/04/18 10:49:01 adam Exp $ +$NetBSD: distinfo,v 1.47 2015/04/03 07:41:26 mrg Exp $ SHA1 (gmp-6.0.0a.tar.bz2) = 360802e3541a3da08ab4b55268c80f799939fddc RMD160 (gmp-6.0.0a.tar.bz2) = 2322e21e2042c974dcfaca2da18ae22d43a23ec4 @@ -6,5 +6,5 @@ Size (gmp-6.0.0a.tar.bz2) = 2319400 bytes SHA1 (patch-aa) = dec275cbd5886a70f7cf0def1dedf01e7e4a49e9 SHA1 (patch-ab) = 829812822a72a4926ea4cf6e8ffafdcd13a0f76c SHA1 (patch-ac) = 6f7de0a285bec2c2645479d3090dc0276580f3d8 -SHA1 (patch-mpn_arm_invert__limb.asm) = 0d4c4af299b846834bb13277844df364824d3a09 +SHA1 (patch-mpn-arm-netbsd.diff) = 00ead78b6966e9863b4acacbaeced9a67815f90b SHA1 (patch-mpn_x86__64_k8_redc_1.asm) = 896a8fcfe9f7370f5628403b93e10a5f52e38944 diff --git a/devel/gmp/patches/patch-mpn-arm-netbsd.diff b/devel/gmp/patches/patch-mpn-arm-netbsd.diff new file mode 100644 index 00000000000..da99a79db6f --- /dev/null +++ b/devel/gmp/patches/patch-mpn-arm-netbsd.diff @@ -0,0 +1,339 @@ +Index: mpn/arm/aorslsh1_n.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/aorslsh1_n.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/aorslsh1_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/aorslsh1_n.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -151,5 +151,8 @@ L(rt1): mov r14, r12 + REVCY(r12) + L(rt0): RETVAL( r14) + pop {r4-r10r11, r14} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/bdiv_dbm1c.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/bdiv_dbm1c.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/bdiv_dbm1c.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/bdiv_dbm1c.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -97,5 +97,8 @@ L(wd1): subs r5, r5, r8 + str r5, [qp] + sbc r0, r5, r12 + pop {r4, r5, r6, r7, r8} +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() +Index: mpn/arm/com.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/com.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/com.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/com.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -59,5 +59,9 @@ L(top): ldmia up!, { r3, r8, r9, r12 } C + bne L(top) + + ldmfd sp!, { r7, r8, r9 } C restore regs from stack +-L(rtn): bx lr ++L(rtn): ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() +Index: mpn/arm/copyd.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/copyd.asm,v +retrieving revision 1.1.1.2 +retrieving revision 1.2 +diff -p -u -r1.1.1.2 -r1.2 +--- mpn/arm/copyd.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2 ++++ mpn/arm/copyd.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -80,5 +80,9 @@ + + L(end): stmda rp, { r3,r4,r5,r12 } + pop { r4-r5 } +-L(rtn): bx lr ++L(rtn): ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() +Index: mpn/arm/copyi.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/copyi.asm,v +retrieving revision 1.1.1.2 +retrieving revision 1.2 +diff -p -u -r1.1.1.2 -r1.2 +--- mpn/arm/copyi.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2 ++++ mpn/arm/copyi.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -75,5 +75,9 @@ + + L(end): stm rp, { r3,r4,r5,r12 } + pop { r4-r5 } +-L(rtn): bx lr ++L(rtn): ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() +Index: mpn/arm/invert_limb.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/invert_limb.asm,v +retrieving revision 1.1.1.2 +retrieving revision 1.3 +diff -p -u -r1.1.1.2 -r1.3 +--- mpn/arm/invert_limb.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2 ++++ mpn/arm/invert_limb.asm 29 Nov 2013 07:57:11 -0000 1.3 +@@ -41,7 +41,10 @@ PROLOGUE(mpn_invert_limb) + adds r1, r12, r0 + adc r3, r3, r0 + rsb r0, r3, r2 +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() + + .section .rodata +Index: mpn/arm/logops_n.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/logops_n.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/logops_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/logops_n.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -123,5 +123,8 @@ L(mid): sub n, n, #4 + pop { r4, r5, r6, r7 } C popping r8-r10 here strangely fails + + L(rtn): pop { r8, r9, r10 } +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/lshift.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/lshift.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/lshift.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/lshift.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -84,5 +84,8 @@ + L(1): str r7, [rp, #-4] + mov r0, r4, lsr tnc + pop {r4, r6, r7, r8} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/lshiftc.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/lshiftc.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/lshiftc.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/lshiftc.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -91,5 +91,8 @@ + str r7, [rp, #-4] + mov r0, r4, lsr tnc + pop {r4, r6, r7, r8} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/mod_34lsub1.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/mod_34lsub1.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/mod_34lsub1.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/mod_34lsub1.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -94,7 +94,10 @@ L(sum2): + add r0, r0, r12, lsr #8 + + pop { r4, r5, r6, r7 } +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + + L(le2): cmn n, #1 + bne L(1) +@@ -105,5 +108,8 @@ L(1): ldr r2, [ap] + bic r0, r2, #0xff000000 + add r0, r0, r2, lsr #24 + pop { r4, r5, r6, r7 } +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() +Index: mpn/arm/mode1o.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/mode1o.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/mode1o.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/mode1o.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -68,5 +68,8 @@ L(end): sbcs cy, r5, cy + addcc r0, r0, #1 + + ldmfd sp!, {r4, r5} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/rsh1aors_n.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/rsh1aors_n.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/rsh1aors_n.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/rsh1aors_n.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -108,5 +108,8 @@ L(e1): RSTCY( r12, r1) + str r4, [rp, #0] + mov r0, r11 + pop {r4-r11} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/rshift.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/rshift.asm,v +retrieving revision 1.1.1.1 +retrieving revision 1.2 +diff -p -u -r1.1.1.1 -r1.2 +--- mpn/arm/rshift.asm 29 Nov 2013 07:49:48 -0000 1.1.1.1 ++++ mpn/arm/rshift.asm 29 Nov 2013 08:02:28 -0000 1.2 +@@ -82,5 +82,8 @@ + L(1): str r7, [rp] + mov r0, r4, lsl tnc + pop {r4, r6, r7, r8} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/udiv.asm +=================================================================== +RCS file: /cvsroot/src/external/lgpl3/gmp/dist/mpn/arm/udiv.asm,v +retrieving revision 1.1.1.2 +retrieving revision 1.4 +diff -p -u -r1.1.1.2 -r1.4 +--- mpn/arm/udiv.asm 29 Nov 2013 07:49:48 -0000 1.1.1.2 ++++ mpn/arm/udiv.asm 29 Nov 2013 08:02:28 -0000 1.4 +@@ -50,7 +50,10 @@ L(oop): divstep(n1,n0,d) + + str n1, [rem_ptr] C store remainder + adc r0, n0, n0 C quotient: add last carry from divstep +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + + L(_large_divisor): + stmfd sp!, { r8, lr } +Index: mpn/arm/cnd_aors_n.asm +=================================================================== +--- mpn/arm/cnd_aors_n.asm.orig 2014-03-25 07:37:55.000000000 -0700 ++++ mpn/arm/cnd_aors_n.asm 2015-04-01 23:38:37.000000000 -0700 +@@ -130,5 +130,8 @@ + + L(end): RETVAL + pop {r4-r11} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() +Index: mpn/arm/dive_1.asm +=================================================================== +--- mpn/arm/dive_1.asm.orig 2014-03-25 07:37:55.000000000 -0700 ++++ mpn/arm/dive_1.asm 2015-04-02 00:00:58.000000000 -0700 +@@ -112,7 +112,10 @@ + mul r9, r4, cy + str r9, [rp] + pop {r4-r9} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + + L(unnorm): + rsb tnc, cnt, #32 +@@ -136,7 +139,10 @@ + mul r9, r4, cy + str r9, [rp] + pop {r4-r9} +- bx r14 ++ifdef(`ARM_THUMB_MODE', ++` bx r14 ++',` mov pc, r14 ++') + EPILOGUE() + + .section .rodata +Index: mpn/arm/sec_tabselect.asm +=================================================================== +--- mpn/arm/sec_tabselect.asm.orig 2014-03-25 07:37:55.000000000 -0700 ++++ mpn/arm/sec_tabselect.asm 2015-04-02 00:51:31.000000000 -0700 +@@ -109,7 +109,10 @@ + bge L(tp2) + stmia rp, {r8,r9} + pop {r4-r11, r14} +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + + L(n2): cmp j, #-2 + bne L(n1) +@@ -127,5 +130,8 @@ + bge L(tp1) + str r8, [rp] + L(n1): pop {r4-r11, r14} +- bx lr ++ifdef(`ARM_THUMB_MODE', ++` bx lr ++',` mov pc, lr ++') + EPILOGUE() diff --git a/devel/gmp/patches/patch-mpn_arm_invert__limb.asm b/devel/gmp/patches/patch-mpn_arm_invert__limb.asm deleted file mode 100644 index 9e22ba5ef91..00000000000 --- a/devel/gmp/patches/patch-mpn_arm_invert__limb.asm +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-mpn_arm_invert__limb.asm,v 1.3 2013/01/31 20:30:26 adam Exp $ - ---- mpn/arm/invert_limb.asm.orig 2012-12-18 19:05:09.000000000 +0000 -+++ mpn/arm/invert_limb.asm -@@ -41,7 +41,7 @@ PROLOGUE(mpn_invert_limb) - adds r1, r12, r0 - adc r3, r3, r0 - rsb r0, r3, r2 -- bx lr -+ mov pc,lr - EPILOGUE() - - .section .rodata |