From: Mike Frysinger Date: Wed, 7 Dec 2011 06:40:51 +0000 (+0000) Subject: Add x32 ABI support. X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=20b804b0a5461349a341b9a92c5c9b82bb0e9d64;p=gentoo.git Add x32 ABI support. Package-Manager: portage-2.2.0_alpha79/cvs/Linux x86_64 --- diff --git a/dev-libs/gmp/ChangeLog b/dev-libs/gmp/ChangeLog index 57db3a47623a..a496d2b952eb 100644 --- a/dev-libs/gmp/ChangeLog +++ b/dev-libs/gmp/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for dev-libs/gmp # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.152 2011/11/13 20:03:31 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.153 2011/12/07 06:40:51 vapier Exp $ + + 07 Dec 2011; Mike Frysinger gmp-5.0.2_p1.ebuild, + +files/gmp-5.0.2-x32-bugfix.patch, +files/gmp-5.0.2-x32-support.patch: + Add x32 ABI support. 13 Nov 2011; Mike Frysinger gmp-4.3.2.ebuild, gmp-5.0.1.ebuild, gmp-5.0.2.ebuild, gmp-5.0.2_p1.ebuild: diff --git a/dev-libs/gmp/Manifest b/dev-libs/gmp/Manifest index 470620c88b09..ebd1b46cc43f 100644 --- a/dev-libs/gmp/Manifest +++ b/dev-libs/gmp/Manifest @@ -8,6 +8,8 @@ AUX gmp-5.0.0-s390.diff 1839 RMD160 2b83f296906a7a15add19b126f73059571b8880e SHA AUX gmp-5.0.1-perfpow-test.patch 1071 RMD160 1af4778602a55cda15763687329348c5ebd6f2fb SHA1 3f3ecf0b97d6b70e36bd0179f45b436e7c41d7e5 SHA256 a2fec6646f36d49dbeda9a520d682a26e560d1c3a5f78f3537d1889a71eb8e1f AUX gmp-5.0.1-x86-nopie-tests.patch 3798 RMD160 2086849c394e35753ca84a464ac9e0c32165fd23 SHA1 97a0ce472b36754ecdd5416bd7c5a2aad4766087 SHA256 3f108ece1cf1f18afd8a36f2b9f03eeb32afa9c4937c707bce840bd62824a61a AUX gmp-5.0.2-unnormalised-dividends.patch 682 RMD160 feb31d040fdfedf4212e86676be92b2adf852c76 SHA1 81ca793feccb31e322d0791a4946f79c4b7c8e92 SHA256 6d7c4f4d9eaba14ac6d3364f26e849963be3149727cbfe5ee64cc588587dd8c5 +AUX gmp-5.0.2-x32-bugfix.patch 3213 RMD160 ca051f09a8b38982c148d7f4c8cdde1c2da5d5bc SHA1 0d02223d42df385186341ffd71b2f44cde590b72 SHA256 d83142808943778f95d37c416a53a369f0e6acd39bd5f8e77bb08efcb4623a25 +AUX gmp-5.0.2-x32-support.patch 973 RMD160 498ed5b9aa61441a32a6a3e79e6e5f0b3e791c60 SHA1 3f3716ebe4076487ae40b0aebc7daff47812e57d SHA256 faf52b3f4348ce36820f15c697119c088cb761d7dd5858f6cc665002f487bb63 DIST gmp-4.3.2.tar.bz2 1897483 RMD160 a8f3f41501ece290c348aeb4444bbea40bc53e71 SHA1 c011e8feaf1bb89158bd55eaabd7ef8fdd101a2c SHA256 936162c0312886c21581002b79932829aa048cfaf9937c6265aeaa14f1cd1775 DIST gmp-5.0.1.tar.bz2 2006109 RMD160 3e89ebf5294639e1c926b92d9786bbdd0c8fa587 SHA1 6340edc7ceb95f9015a758c7c0d196eb0f441d49 SHA256 a2a610f01fd3298dc08c87bf30498c2402590e1bcb227fc40b15ee6d280939fb DIST gmp-5.0.2.tar.bz2 2024576 RMD160 fce06e3246f067301a54f3457960f1d6d71adfc2 SHA1 2968220e1988eabb61f921d11e5d2db5431e0a35 SHA256 dbc2db76fdd4e99f85d5e35aa378ed62c283e0d586b91bd8703aff75a7804c28 @@ -16,13 +18,13 @@ EBUILD gmp-4.3.2-r1.ebuild 1686 RMD160 7192064f72a756e7f87a19bb6e04974869fe9322 EBUILD gmp-4.3.2.ebuild 1995 RMD160 d4123b138aa96f8084dd652c886ae8a117551411 SHA1 cb4d3873679a4b0d5d073e4b89ef2d203798adc2 SHA256 b386354b1a93bbf9a20774aabb5f31e68fc3870e4eeba3d4931aa0c985608b10 EBUILD gmp-5.0.1.ebuild 2458 RMD160 b60ffd9a8f150317c51e8ac7cc06d40a39e19201 SHA1 5e6bb32b4ba660fad1fa5ce0d9e33947426f591f SHA256 8a7b8f7fadb14fb6c92881e6f0e063422ea9c6ecf57e0c3f1ffe0b08dcf945d0 EBUILD gmp-5.0.2.ebuild 2401 RMD160 f0b499f7fcff913c9524e921c99bb83b6ef18efa SHA1 cce01d6f3d3d718ed6c23b182569e69272abeee5 SHA256 821f373781aa8ef2209a8a2a6f47acb103f1be20aa0b566289641ea24d48136a -EBUILD gmp-5.0.2_p1.ebuild 2705 RMD160 564f35caedc9fdac0d146db0d6240705a972004a SHA1 f35cf0b8e668796f0799990c9a09672a9c782996 SHA256 c45102c27a06973187039bce07c96cc5826f229cdcd239ad62b58711ec5032ec -MISC ChangeLog 20441 RMD160 dbf77ce65cd0fcab75d505cb70df9eb2271a090d SHA1 686507527cff1609da81ecb5437af1497faa25d4 SHA256 ab87128ab05f7da3d1cf3381a64689a83b6949ccf34eee15a355a693d3bd0f69 +EBUILD gmp-5.0.2_p1.ebuild 2777 RMD160 a6a1fb2ae0ed548a63845700d4e8b4a3aa366b87 SHA1 89d5c9bd25a875a4cccb369c571984dc7ea268ba SHA256 effd830eb558585a072b69ab2a1bbce9dee5be69f792e24c1dfb652fbd86ca9e +MISC ChangeLog 20609 RMD160 cf23cb408cdb5fc9e83ffbb2ba371164e181c4f3 SHA1 2a2fe49cb4a143713183046031fd39355c3af249 SHA256 2bcbb3e0c41e1ca960b3358d089c086d619b63f833d38937b55562746a34b466 MISC metadata.xml 162 RMD160 d002486a43522f2116b1d9d59828c484956d66e2 SHA1 d6b4923897f6ae673b4f93646f5b4ba61d5a2c3c SHA256 65a915d44de1f01d4b7f72d313b4192c38374a9835d24988c00c1e73dca5805a -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) -iF4EAREIAAYFAk7AIpoACgkQaC/OocHi7JZ4jwEAmtgZHSF/RFe3OViqq/6J9c7i -UoC61FhWbmE43Kapkm4A/3AgyoGb7S78S3PfFbSpTbiUexrwPPN59TO1r56L+bf7 -=gavB +iF4EAREIAAYFAk7fCn0ACgkQaC/OocHi7Ja0vwD/cUrxB7JU7ZsKlPtDI1s3ORi3 +i5WTOt14GocTzqp9clAA/ig/Rjr4zrJoToJgAI1ncYSILlGVTEkBTg9Y3PzZE1n4 +=HoGX -----END PGP SIGNATURE----- diff --git a/dev-libs/gmp/files/gmp-5.0.2-x32-bugfix.patch b/dev-libs/gmp/files/gmp-5.0.2-x32-bugfix.patch new file mode 100644 index 000000000000..a96136fcc3b8 --- /dev/null +++ b/dev-libs/gmp/files/gmp-5.0.2-x32-bugfix.patch @@ -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 + +Signed-Off-By: Nitin A Kamble 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; diff --git a/dev-libs/gmp/files/gmp-5.0.2-x32-support.patch b/dev-libs/gmp/files/gmp-5.0.2-x32-support.patch new file mode 100644 index 000000000000..ecb9bdb2d05e --- /dev/null +++ b/dev-libs/gmp/files/gmp-5.0.2-x32-support.patch @@ -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 2011/11/21 + +--- gmp-4.3.2/configure ++++ gmp-4.3.2/configure +@@ -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; + ;; + esac + ;; +- 64) ++ 64|x32) + + echo "include_mpn(\`x86_64/x86_64-defs.m4')" >> $gmp_tmpconfigm4i + diff --git a/dev-libs/gmp/gmp-5.0.2_p1.ebuild b/dev-libs/gmp/gmp-5.0.2_p1.ebuild index 5156f5160e05..c213a72aa258 100644 --- a/dev-libs/gmp/gmp-5.0.2_p1.ebuild +++ b/dev-libs/gmp/gmp-5.0.2_p1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/gmp-5.0.2_p1.ebuild,v 1.3 2011/11/13 20:03:31 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/gmp-5.0.2_p1.ebuild,v 1.4 2011/12/07 06:40:51 vapier Exp $ inherit flag-o-matic eutils libtool toolchain-funcs @@ -29,6 +29,7 @@ src_unpack() { epatch "${FILESDIR}"/${PN}-4.1.4-noexecstack.patch epatch "${FILESDIR}"/${PN}-5.0.0-s390.diff epatch "${FILESDIR}"/${MY_P}-unnormalised-dividends.patch + has x32 $(get_all_abis) && epatch "${FILESDIR}"/${PN}-5.0.2*x32*.patch # disable -fPIE -pie in the tests for x86 #236054 if use x86 && gcc-specs-pie ; then @@ -59,7 +60,7 @@ src_compile() { case ${ABI} in 32|x86) GMPABI=32;; 64|amd64|n64) GMPABI=64;; - o32|n32) GMPABI=${ABI};; + [onx]32) GMPABI=${ABI};; esac export GMPABI