mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
gmp: fix the recipe for x32 target
Add support for building with x32 toolchain. (From OE-Core rev: 971c2042351c039b1d51f67e8e78749d0374d729) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
51bfed2e26
commit
13d011204a
@@ -0,0 +1,94 @@
|
||||
UpstreamStatus: Pending
|
||||
|
||||
When LONG_MIN is passed to val, -val is undefined. This patch fixes
|
||||
it. See for details: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50066
|
||||
|
||||
Received this patch from H.J. Lu <hjl.tools@gmail.com>
|
||||
|
||||
Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/01
|
||||
|
||||
--- gmp-4.3.2/mpf/iset_si.c.ll 2010-01-07 12:09:03.000000000 -0800
|
||||
+++ gmp-4.3.2/mpf/iset_si.c 2011-11-30 16:42:35.827944358 -0800
|
||||
@@ -31,7 +31,7 @@ mpf_init_set_si (mpf_ptr r, long int val
|
||||
r->_mp_prec = prec;
|
||||
r->_mp_d = (mp_ptr) (*__gmp_allocate_func) ((prec + 1) * BYTES_PER_MP_LIMB);
|
||||
|
||||
- vl = (mp_limb_t) (unsigned long int) (val >= 0 ? val : -val);
|
||||
+ vl = (mp_limb_t) (val >= 0 ? (unsigned long int) val : -(unsigned long int) val);
|
||||
|
||||
r->_mp_d[0] = vl & GMP_NUMB_MASK;
|
||||
size = vl != 0;
|
||||
--- gmp-4.3.2/mpf/set_si.c.ll 2010-01-07 12:09:03.000000000 -0800
|
||||
+++ gmp-4.3.2/mpf/set_si.c 2011-11-30 16:42:47.823878367 -0800
|
||||
@@ -27,7 +27,7 @@ mpf_set_si (mpf_ptr dest, long val)
|
||||
mp_size_t size;
|
||||
mp_limb_t vl;
|
||||
|
||||
- vl = (mp_limb_t) (unsigned long int) (val >= 0 ? val : -val);
|
||||
+ vl = (mp_limb_t) (val >= 0 ? (unsigned long int) val : -(unsigned long int) val);
|
||||
|
||||
dest->_mp_d[0] = vl & GMP_NUMB_MASK;
|
||||
size = vl != 0;
|
||||
--- gmp-4.3.2/mpz/cmp_si.c.ll 2010-01-07 12:09:03.000000000 -0800
|
||||
+++ gmp-4.3.2/mpz/cmp_si.c 2011-11-30 13:44:25.923319700 -0800
|
||||
@@ -27,7 +27,7 @@ _mpz_cmp_si (mpz_srcptr u, signed long i
|
||||
{
|
||||
mp_size_t usize = u->_mp_size;
|
||||
mp_size_t vsize;
|
||||
- mp_limb_t u_digit;
|
||||
+ mp_limb_t u_digit, vl_digit;
|
||||
|
||||
#if GMP_NAIL_BITS != 0
|
||||
/* FIXME. This isn't very pretty. */
|
||||
@@ -41,11 +41,14 @@ _mpz_cmp_si (mpz_srcptr u, signed long i
|
||||
|
||||
vsize = 0;
|
||||
if (v_digit > 0)
|
||||
- vsize = 1;
|
||||
+ {
|
||||
+ vsize = 1;
|
||||
+ vl_digit = (mp_limb_t) (unsigned long) v_digit;
|
||||
+ }
|
||||
else if (v_digit < 0)
|
||||
{
|
||||
vsize = -1;
|
||||
- v_digit = -v_digit;
|
||||
+ vl_digit = (mp_limb_t) -(unsigned long) v_digit;
|
||||
}
|
||||
|
||||
if (usize != vsize)
|
||||
@@ -56,10 +59,10 @@ _mpz_cmp_si (mpz_srcptr u, signed long i
|
||||
|
||||
u_digit = u->_mp_d[0];
|
||||
|
||||
- if (u_digit == (mp_limb_t) (unsigned long) v_digit)
|
||||
+ if (u_digit == vl_digit)
|
||||
return 0;
|
||||
|
||||
- if (u_digit > (mp_limb_t) (unsigned long) v_digit)
|
||||
+ if (u_digit > vl_digit)
|
||||
return usize;
|
||||
else
|
||||
return -usize;
|
||||
--- gmp-4.3.2/mpz/iset_si.c.ll 2010-01-07 12:09:03.000000000 -0800
|
||||
+++ gmp-4.3.2/mpz/iset_si.c 2011-11-30 13:44:25.924319695 -0800
|
||||
@@ -31,7 +31,7 @@ mpz_init_set_si (mpz_ptr dest, signed lo
|
||||
dest->_mp_alloc = 1;
|
||||
dest->_mp_d = (mp_ptr) (*__gmp_allocate_func) (BYTES_PER_MP_LIMB);
|
||||
|
||||
- vl = (mp_limb_t) (unsigned long int) (val >= 0 ? val : -val);
|
||||
+ vl = (mp_limb_t) (val >= 0 ? (unsigned long int) val : -(unsigned long int) val);
|
||||
|
||||
dest->_mp_d[0] = vl & GMP_NUMB_MASK;
|
||||
size = vl != 0;
|
||||
--- gmp-4.3.2/mpz/set_si.c.ll 2010-01-07 12:09:03.000000000 -0800
|
||||
+++ gmp-4.3.2/mpz/set_si.c 2011-11-30 13:44:25.947319574 -0800
|
||||
@@ -27,7 +27,7 @@ mpz_set_si (mpz_ptr dest, signed long in
|
||||
mp_size_t size;
|
||||
mp_limb_t vl;
|
||||
|
||||
- vl = (mp_limb_t) (unsigned long int) (val >= 0 ? val : -val);
|
||||
+ vl = (mp_limb_t) (val >= 0 ? (unsigned long int) val : -(unsigned long int) val);
|
||||
|
||||
dest->_mp_d[0] = vl & GMP_NUMB_MASK;
|
||||
size = vl != 0;
|
||||
@@ -0,0 +1,45 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Add X32 support in gmp configure.
|
||||
|
||||
Patch Originator: H J Lu @ Intel
|
||||
Patch modified for Yocto by Nitin Kamble
|
||||
Signed Off By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/11/21
|
||||
|
||||
--- gmp-4.3.2/configure.in.x32 2011-08-12 15:03:06.143548291 -0700
|
||||
+++ gmp-4.3.2/configure.in 2011-08-12 15:06:20.580595316 -0700
|
||||
@@ -1499,6 +1499,25 @@ case $host in
|
||||
path_64="x86_64/atom x86_64"
|
||||
;;
|
||||
esac
|
||||
+
|
||||
+ # X32 support.
|
||||
+ case x"$path_64" in
|
||||
+ xx86_64*)
|
||||
+ case x"$CC $CFLAGS" in
|
||||
+ x*-mx32*)
|
||||
+ abilist="x32 64 32"
|
||||
+ path_x32="$path_64"
|
||||
+ limb_x32=longlong
|
||||
+ cclist_x32="gcc"
|
||||
+ gcc_x32_cflags="-O2 -mx32"
|
||||
+ any_x32_testlist="sizeof-long-4"
|
||||
+ CALLING_CONVENTIONS_OBJS_x32='amd64call.lo amd64check$U.lo'
|
||||
+ SPEED_CYCLECOUNTER_OBJ_x32=x86_64.lo
|
||||
+ cyclecounter_size_x32=2
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -3039,7 +3058,7 @@ if test "$gmp_asm_syntax_testing" != no;
|
||||
GMP_INCLUDE_MPN(x86/darwin.m4) ;;
|
||||
esac
|
||||
;;
|
||||
- 64)
|
||||
+ 64|x32)
|
||||
GMP_INCLUDE_MPN(x86_64/x86_64-defs.m4)
|
||||
case $host in
|
||||
*-*-darwin*)
|
||||
@@ -2,10 +2,12 @@ require gmp.inc
|
||||
LICENSE="LGPLv3&GPLv3"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
|
||||
file://version.c;endline=18;md5=d8c56b52b9092346b9f93b4da65ef790"
|
||||
PR = "r2"
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI_append += "file://sh4-asmfix.patch \
|
||||
file://use-includedir.patch "
|
||||
file://gmp_bugfix.patch \
|
||||
file://use-includedir.patch \
|
||||
file://gmp_fix_for_x32.patch"
|
||||
|
||||
export CC_FOR_BUILD = "${BUILD_CC}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user