* Re: backport patches for gmp-4.x.x
[not found] <86wqaw5000.fsf@shell.gmplib.org>
@ 2014-07-31 9:29 ` Rongqing Li
2014-07-31 15:38 ` Khem Raj
0 siblings, 1 reply; 6+ messages in thread
From: Rongqing Li @ 2014-07-31 9:29 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
-------- Original Message --------
Subject: Re: backport patches for gmp-4.x.x
Date: Tue, 29 Jul 2014 05:15:11 +0200
From: Torbjörn Granlund <tg@gmplib.org>
To: Rongqing Li <rongqing.li@windriver.com>
CC: <gmp-discuss@gmplib.org>, <gmp-devel@gmplib.org>, "Patches and
discussions about the oe-core layer"
<openembedded-core@lists.openembedded.org>
Rongqing Li <rongqing.li@windriver.com> writes:
Torbjorn Granlund:
we am using the gmp-4.2.1, but compiling gmp failed on mips64
and 64bit userspace, I see the patch 12418[(mips, powerpc):
Provide assembly-free umul_ppmm for newer gcc] can fix it. but
it is under GPLv3;
Could you release this patch under GPLv2?
No.
Use GMP 6.0.0 or later of you dual-licensing is important.
Torbjörn
Please encrypt, key id 0xC8601622
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: backport patches for gmp-4.x.x
2014-07-31 9:29 ` backport patches for gmp-4.x.x Rongqing Li
@ 2014-07-31 15:38 ` Khem Raj
2014-08-04 2:14 ` Rongqing Li
0 siblings, 1 reply; 6+ messages in thread
From: Khem Raj @ 2014-07-31 15:38 UTC (permalink / raw)
To: Rongqing Li; +Cc: Patches and discussions about the oe-core layer
On Thu, Jul 31, 2014 at 2:29 AM, Rongqing Li <rongqing.li@windriver.com> wrote:
> Use GMP 6.0.0 or later of you dual-licensing is important.
OK so you have a way forward now.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: backport patches for gmp-4.x.x
2014-07-31 15:38 ` Khem Raj
@ 2014-08-04 2:14 ` Rongqing Li
2014-08-04 3:02 ` Khem Raj
0 siblings, 1 reply; 6+ messages in thread
From: Rongqing Li @ 2014-08-04 2:14 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer
On 07/31/2014 11:38 PM, Khem Raj wrote:
> On Thu, Jul 31, 2014 at 2:29 AM, Rongqing Li <rongqing.li@windriver.com> wrote:
>> Use GMP 6.0.0 or later of you dual-licensing is important.
>
> OK so you have a way forward now.
>
>
I like to uprev it to 6.0.0, which is using the dual licensing,
and its README says these two license are OR relation.
Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
it under the terms of either:
* the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your
option) any later version.
or
* the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any
later version.
or both in parallel, as here.
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply [flat|nested] 6+ messages in thread
* backport patches for gmp-4.x.x
@ 2014-07-29 1:16 Rongqing Li
0 siblings, 0 replies; 6+ messages in thread
From: Rongqing Li @ 2014-07-29 1:16 UTC (permalink / raw)
To: gmp-devel, Patches and discussions about the oe-core layer, tege
[-- Attachment #1: Type: text/plain, Size: 294 bytes --]
Torbjorn Granlund:
we are using the gmp-4.2.1, but compiling gmp failed on mips64
and 64bit userspace, I see the patch 12418[(mips, powerpc):
Provide assembly-free umul_ppmm for newer gcc] can fix it. but
it is under GPLv3;
Could you release this patch under GPLv2?
Thanks
-Roy
[-- Attachment #2: Provide-assembly-free-umul_ppmm-for-newer-gcc.patch --]
[-- Type: text/x-diff, Size: 3829 bytes --]
# HG changeset patch
# User Torbjorn Granlund <tege@gmplib.org>
# Date 1235947651 -3600
# Node ID 12a1d0bf21f09b05813edd5e19496ae65544cfab
# Parent 6411165312970e38a469d0236eff67ecc372223e
(mips, powerpc): Provide assembly-free umul_ppmm for newer gcc.
diff -r 641116531297 -r 12a1d0bf21f0 longlong.h
--- a/longlong.h Wed Feb 04 11:32:34 2009 +0100
+++ b/longlong.h Sun Mar 01 23:47:31 2009 +0100
@@ -1,7 +1,7 @@
/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2007 Free Software Foundation, Inc.
+2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free
@@ -1021,10 +1021,19 @@
#endif /* __m88000__ */
#if defined (__mips) && W_TYPE_SIZE == 32
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UDItype __ll = (UDItype)(u) * (v); \
+ w1 = __ll >> 32; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
-#else
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("multu %2,%3\n\tmflo %0\n\tmfhi %1" \
: "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
@@ -1034,10 +1043,20 @@
#endif /* __mips */
#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
+ __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
+ w1 = __ll >> 64; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
-#else
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("dmultu %2,%3\n\tmflo %0\n\tmfhi %1" \
: "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
@@ -1140,12 +1159,22 @@
__asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
#define COUNT_LEADING_ZEROS_0 32
#if HAVE_HOST_CPU_FAMILY_powerpc
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UDItype __ll = (UDItype)(u) * (v); \
+ w1 = __ll >> 32; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
USItype __m0 = (m0), __m1 = (m1); \
__asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
(pl) = __m0 * __m1; \
} while (0)
+#endif
#define UMUL_TIME 15
#define smul_ppmm(ph, pl, m0, m1) \
do { \
@@ -1229,12 +1258,23 @@
#define count_leading_zeros(count, x) \
__asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x))
#define COUNT_LEADING_ZEROS_0 64
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
+ __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
+ w1 = __ll >> 64; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
__asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
(pl) = __m0 * __m1; \
} while (0)
+#endif
#define UMUL_TIME 15
#define smul_ppmm(ph, pl, m0, m1) \
do { \
^ permalink raw reply [flat|nested] 6+ messages in thread* backport patches for gmp-4.x.x
@ 2014-07-29 1:10 Rongqing Li
0 siblings, 0 replies; 6+ messages in thread
From: Rongqing Li @ 2014-07-29 1:10 UTC (permalink / raw)
To: tege
Cc: gmp-discuss, gmp-devel,
Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 293 bytes --]
Torbjorn Granlund:
we am using the gmp-4.2.1, but compiling gmp failed on mips64
and 64bit userspace, I see the patch 12418[(mips, powerpc):
Provide assembly-free umul_ppmm for newer gcc] can fix it. but
it is under GPLv3;
Could you release this patch under GPLv2?
Thanks
-Roy
[-- Attachment #2: Provide-assembly-free-umul_ppmm-for-newer-gcc.patch --]
[-- Type: text/x-diff, Size: 3829 bytes --]
# HG changeset patch
# User Torbjorn Granlund <tege@gmplib.org>
# Date 1235947651 -3600
# Node ID 12a1d0bf21f09b05813edd5e19496ae65544cfab
# Parent 6411165312970e38a469d0236eff67ecc372223e
(mips, powerpc): Provide assembly-free umul_ppmm for newer gcc.
diff -r 641116531297 -r 12a1d0bf21f0 longlong.h
--- a/longlong.h Wed Feb 04 11:32:34 2009 +0100
+++ b/longlong.h Sun Mar 01 23:47:31 2009 +0100
@@ -1,7 +1,7 @@
/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2007 Free Software Foundation, Inc.
+2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free
@@ -1021,10 +1021,19 @@
#endif /* __m88000__ */
#if defined (__mips) && W_TYPE_SIZE == 32
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UDItype __ll = (UDItype)(u) * (v); \
+ w1 = __ll >> 32; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
-#else
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("multu %2,%3\n\tmflo %0\n\tmfhi %1" \
: "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
@@ -1034,10 +1043,20 @@
#endif /* __mips */
#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
+ __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
+ w1 = __ll >> 64; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm) && __GMP_GNUC_PREREQ (2,7)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
-#else
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("dmultu %2,%3\n\tmflo %0\n\tmfhi %1" \
: "=d" (w0), "=d" (w1) : "d" (u), "d" (v))
@@ -1140,12 +1159,22 @@
__asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
#define COUNT_LEADING_ZEROS_0 32
#if HAVE_HOST_CPU_FAMILY_powerpc
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UDItype __ll = (UDItype)(u) * (v); \
+ w1 = __ll >> 32; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
USItype __m0 = (m0), __m1 = (m1); \
__asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
(pl) = __m0 * __m1; \
} while (0)
+#endif
#define UMUL_TIME 15
#define smul_ppmm(ph, pl, m0, m1) \
do { \
@@ -1229,12 +1258,23 @@
#define count_leading_zeros(count, x) \
__asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x))
#define COUNT_LEADING_ZEROS_0 64
+#if __GMP_GNUC_PREREQ (4,4)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
+ __ll_UTItype __ll = (__ll_UTItype)(u) * (v); \
+ w1 = __ll >> 64; \
+ w0 = __ll; \
+ } while (0)
+#endif
+#if !defined (umul_ppmm)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \
__asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
(pl) = __m0 * __m1; \
} while (0)
+#endif
#define UMUL_TIME 15
#define smul_ppmm(ph, pl, m0, m1) \
do { \
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-08-04 2:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <86wqaw5000.fsf@shell.gmplib.org>
2014-07-31 9:29 ` backport patches for gmp-4.x.x Rongqing Li
2014-07-31 15:38 ` Khem Raj
2014-08-04 2:14 ` Rongqing Li
2014-08-04 3:02 ` Khem Raj
2014-07-29 1:16 Rongqing Li
-- strict thread matches above, loose matches on Subject: below --
2014-07-29 1:10 Rongqing Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox