summaryrefslogtreecommitdiff
path: root/dev-libs/gmp
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-libs/gmp
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-libs/gmp')
-rw-r--r--dev-libs/gmp/Manifest11
-rw-r--r--dev-libs/gmp/files/gmp-4.1.4-noexecstack.patch20
-rw-r--r--dev-libs/gmp/files/gmp-4.2.1-s390.diff68
-rw-r--r--dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch23
-rw-r--r--dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch21
-rw-r--r--dev-libs/gmp/gmp-4.3.2-r1.ebuild66
-rw-r--r--dev-libs/gmp/gmp-6.1.2-r1.ebuild112
-rw-r--r--dev-libs/gmp/gmp-6.1.2.ebuild121
-rw-r--r--dev-libs/gmp/metadata.xml12
9 files changed, 454 insertions, 0 deletions
diff --git a/dev-libs/gmp/Manifest b/dev-libs/gmp/Manifest
new file mode 100644
index 000000000000..91ba27807cde
--- /dev/null
+++ b/dev-libs/gmp/Manifest
@@ -0,0 +1,11 @@
+AUX gmp-4.1.4-noexecstack.patch 474 BLAKE2B 9b2e6835a9a3b4c23adc3b9569a507d43429b5a8c1e4798717438c84675571bac90ec8202b90b526e46a50a69db1f0b9afb83333d9a69de4397c6c97e70485f3 SHA512 74b8b68061a1a5ac0f8b163974834465e86e930884e1a9cd15c4c948fdae95ffdcbb6e0210d56df6d0dcf1ccbe13dbdfe45552e645c3fdea6454747731b63bc8
+AUX gmp-4.2.1-s390.diff 1848 BLAKE2B 9c7a36b5b203dd5c66084d42bbfb0800269a9c2f534632fb14d94c7561af7eab978c18d66b9a3997f65bf6efa7d800cd673a9b0c329d7f15bd7c646b9fc8efe8 SHA512 ab13186cfdb2a217edb5bd77379d68442685319ec3ca5b9ccadd67a68356f56881ea5feb7dbd40821d6587553d46b63b19ba454a9e3ede27baf72a6857169c44
+AUX gmp-6.1.0-noexecstack-detect.patch 970 BLAKE2B 3b74021e37d5fd6b0b7baa6ad8298962c54cceb769a5f70b3c5fb5ef82392ee2308e6613cd93b0a78b69235c1a73aedc0eb54bbc77b0daebc022d3f1bd05413d SHA512 29af921eed5dbd2d506bc1acdc0eacb8b7f5e7f575fd62038f00a910242bf622980a4197dae18daf5915963c3407ca7eb5bdcb9760f958794348b449fc54e042
+AUX gmp-6.1.2-gcc-apple-4.0.1.patch 979 BLAKE2B 0fe8bf2db0e4633f5d230f02a0bbeb8f0a0dea5c5f2b79e0821733612dadcb0ae4c5815255640afe383e8424e2cf323c0ae33990ee2c21e963811ac434b466a1 SHA512 d1d9898c1978dcdc41dce95d2fc9e23f2ccb0615d02ca453045ece04e9bfd45aa9194774e1e3ea4efe7b40c8f2179233dbecbaa748e7c40d4f31f3adc78d878e
+DIST gmp-4.3.2.tar.bz2 1897483 BLAKE2B 0efecd60c7a585f94ec8cbee77541d409c8e3bdeabaca09f7971560fb0fd504ae8e405256913acbef1434146868885c98068ff59efec92c92fdb73b853cf9396 SHA512 2e0b0fd23e6f10742a5517981e5171c6e88b0a93c83da701b296f5c0861d72c19782daab589a7eac3f9032152a0fc7eff7f5362db8fccc4859564a9aa82329cf
+DIST gmp-6.1.2.tar.xz 1946336 BLAKE2B 2a864e80799471037a71c10d871f9782c37fe3a0a1734872e90f14a874ecd6551099d67b2ebd07f82a43b0522249a6b46e79952db11a278f87ca8013198f7604 SHA512 9f098281c0593b76ee174b722936952671fab1dae353ce3ed436a31fe2bc9d542eca752353f6645b7077c1f395ab4fdd355c58e08e2a801368f1375690eee2c6
+DIST gmp-man-6.1.2.pdf 825720 BLAKE2B b96340da5f534353b140b361fc1ff74757168024e8039d97a0ed1f14d874ff5fbc50abae2ff3505adc51d72e4acf2882ae6ca6405ae37b594f7b248e1ca05247 SHA512 85de10b2c03f7381881c3e95aa7fc53d8e018115028496ffbb5a79ab4967106c69ed7e97a5e434e6bb39752498aade8c2caa7cf77a8942b7ffd9150368a0d9c3
+EBUILD gmp-4.3.2-r1.ebuild 1699 BLAKE2B 7f600a9d920bf53a0de5954675d3cf72738ab7f74f2e552b0fbbcf3ec891835153ac6e3b5d0180171fc0356d9b9b1384882d9c4fc13b2d1e03c79b53b8c3d312 SHA512 2df5767cb8e4ae67f0264ad5cdd99888ec465774ddd079c9bc6648058138a28dbe4203552233c62ee02b7b2c6ccf2747ec70d2d078dba1528ffca7fae2fb40b6
+EBUILD gmp-6.1.2-r1.ebuild 2958 BLAKE2B de0265f9c529f831d2ca59ae5a639193038ce0b2536eb47a1dc71ca7be3914115f1241806cc2ddf0017676674968dd3ae492eda449581a9ffb46f764a41364ba SHA512 554f7ce0602cbde43f7a731ab2e40d3ba11509f4f0664b362abb0fe285d7c1be5d824133e01591bca5a5693b2874761413411c16fe8740aa3cc2b4e2209b63cb
+EBUILD gmp-6.1.2.ebuild 3280 BLAKE2B a16ae5ff9ceeaa79202cd447e64257862d9f551514a44902c5d5f3b4f3698f1c6137b50eecd513ae3f08b40baf52fbfbc839f3bd00e29c1ffbd5d8b56f039f69 SHA512 ec377c3d66be37a5232fc431039fb38672ff6200d24a8c1d780effbb2da1c6f336f478781a5f01af9d67e59f5657cfb22485e67632fe051356fc21f8f76582ea
+MISC metadata.xml 501 BLAKE2B f72cb10582beb651fddf6d5abe85920d6f8c9d7a87b82e6778a641bc75202213432105da5cfefbdcd9d343180cca7f2f56638f27c9e059d68afa92d6ee0d6665 SHA512 bde33c241d1e7026e86e7a445bcd929f8a2f6d2dc7a0e71994f2130459910a0ac51d6d3d8cad0fd45baea0d0a38c818348d2427035ef393ac6343ee993c95dd7
diff --git a/dev-libs/gmp/files/gmp-4.1.4-noexecstack.patch b/dev-libs/gmp/files/gmp-4.1.4-noexecstack.patch
new file mode 100644
index 000000000000..093bec1a5dca
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-4.1.4-noexecstack.patch
@@ -0,0 +1,20 @@
+fixed executable stack
+
+http://bugs.gentoo.org/115038
+
+--- gmp-4.1.4/configure
++++ gmp-4.1.4/configure
+@@ -21689,6 +21689,13 @@
+ fi
+ echo "')" >> $gmp_configm4
+ echo "define(\`__CONFIG_M4_INCLUDED__')" >> $gmp_configm4
++# Gentoo hack
++case $host_os in
++ *linux*)
++ echo '.section .note.GNU-stack,"",%progbits' >> $gmp_configm4
++ echo '.previous' >> $gmp_configm4
++ ;;
++esac
+
+ # Create Makefiles
+ # FIXME: Upcoming version of autoconf/automake may not like broken lines.
diff --git a/dev-libs/gmp/files/gmp-4.2.1-s390.diff b/dev-libs/gmp/files/gmp-4.2.1-s390.diff
new file mode 100644
index 000000000000..82dbb722eb14
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-4.2.1-s390.diff
@@ -0,0 +1,68 @@
+stolen from SuSE
+
+--- configure.in
++++ configure.in
+@@ -1050,6 +1050,9 @@
+ ;;
+
+
++ s390x-*-*)
++ path="s390x" ;;
++
+ # IBM s/370 and similar
+ [s3[6-9]0*-*-*])
+ gcc_cflags="-O2 $fomit_frame_pointer"
+--- configure
++++ configure
+@@ -1050,6 +1050,9 @@
+ ;;
+
+
++ s390x-*-*)
++ path="s390x" ;;
++
+ # IBM s/370 and similar
+ s3[6-9]0*-*-*)
+ gcc_cflags="-O2 $fomit_frame_pointer"
+--- mpn/s390/gmp-mparam.h
++++ mpn/s390/gmp-mparam.h
+@@ -20,7 +20,8 @@
+ MA 02110-1301, USA. */
+
+
+-/* BITS_PER_MP_LIMB etc generated by configure */
++#define BITS_PER_MP_LIMB 32
++#define BYTES_PER_MP_LIMB 4
+
+
+ /* Generated by tuneup.c, 2001-12-03, gcc 2.95 */
+--- mpn/s390x/gmp-mparam.h
++++ mpn/s390x/gmp-mparam.h
+@@ -0,0 +1,27 @@
++/* gmp-mparam.h -- Compiler/machine parameter header file.
++
++Copyright (C) 1991, 1993, 1994, 1995 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 the GNU Library General Public License as published by
++the Free Software Foundation; either version 2 of the License, or (at your
++option) any later version.
++
++The GNU MP Library is distributed in the hope that it will be useful, but
++WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
++License for more details.
++
++You should have received a copy of the GNU Library General Public License
++along with the GNU MP Library; see the file COPYING.LIB. If not, write to
++the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
++MA 02111-1307, USA. */
++
++#define BITS_PER_MP_LIMB 64
++#define BYTES_PER_MP_LIMB 8
++#define BITS_PER_LONGINT 64
++#define BITS_PER_INT 32
++#define BITS_PER_SHORTINT 16
++#define BITS_PER_CHAR 8
diff --git a/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch b/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch
new file mode 100644
index 000000000000..558ba60d080a
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch
@@ -0,0 +1,23 @@
+gmp's -Wa,--noexecstack check is based on glibc's, so backport a change
+that went into it there:
+https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=215a87451d1fd623fd2699fa57f16f8ab6f6a2f3
+https://sourceware.org/bugzilla/show_bug.cgi?id=6428
+
+this is to workaround broken clang assembler that fails w/CFLAGS=-g:
+http://crbug.com/585930
+https://llvm.org/bugs/show_bug.cgi?id=11740
+
+patch has been sent upstream too:
+https://gmplib.org/list-archives/gmp-bugs/2016-February/003916.html
+
+--- a/configure
++++ b/configure
+@@ -11339,7 +11339,7 @@ EOF
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } \
+ && grep .note.GNU-stack conftest.s >/dev/null \
+- && { ac_try='${CC} $CFLAGS $CPPFLAGS -Wa,--noexecstack
++ && { ac_try='${CC} $ASMFLAGS -Wa,--noexecstack
+ -c -o conftest.o conftest.s >/dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
diff --git a/dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch b/dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch
new file mode 100644
index 000000000000..8960464ac4f4
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-6.1.2-gcc-apple-4.0.1.patch
@@ -0,0 +1,21 @@
+--- gmp-6.0.0/gmp-h.in.orig 2015-01-16 22:25:51.000000000 +0100
++++ gmp-6.0.0/gmp-h.in 2015-01-16 22:26:40.000000000 +0100
+@@ -360,14 +360,14 @@
+ GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. */
+ #ifdef __GNUC__
+-#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
+- || (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+ #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+-#else
++#define __GMP_INLINE_PROTOTYPES 1
++#elif !(defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && __STDC_VERSION__ >= 199901L)
+ #define __GMP_EXTERN_INLINE extern __inline__
+-#endif
+ #define __GMP_INLINE_PROTOTYPES 1
+ #endif
++#endif
+
+ /* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
+ strict ANSI mode. Inlining is done even when not optimizing (ie. -O0
diff --git a/dev-libs/gmp/gmp-4.3.2-r1.ebuild b/dev-libs/gmp/gmp-4.3.2-r1.ebuild
new file mode 100644
index 000000000000..119a7b9dd487
--- /dev/null
+++ b/dev-libs/gmp/gmp-4.3.2-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# this ebuild is only for the libgmp.so.3 ABI SONAME
+
+EAPI="5"
+
+inherit eutils libtool toolchain-funcs multilib-minimal
+
+DESCRIPTION="Library for arbitrary-precision arithmetic on different type of numbers"
+HOMEPAGE="https://gmplib.org/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-3"
+SLOT="3"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="sys-devel/m4"
+RDEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-4.1.4-noexecstack.patch
+ epatch "${FILESDIR}"/${PN}-4.2.1-s390.diff
+
+ # note: we cannot run autotools here as gcc depends on this package
+ elibtoolize
+
+ # GMP uses the "ABI" env var during configure as does Gentoo (econf).
+ # So, to avoid patching the source constantly, wrap things up.
+ mv configure configure.wrapped || die
+ cat <<-\EOF > configure
+ #!/bin/sh
+ exec env ABI="${GMPABI}" "$0.wrapped" "$@"
+ EOF
+ chmod a+rx configure
+}
+
+multilib_src_configure() {
+ # Because of our 32-bit userland, 1.0 is the only HPPA ABI that works
+ # https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613)
+ if [[ ${CHOST} == hppa2.0-* ]] ; then
+ GMPABI="1.0"
+ fi
+
+ # ABI mappings (needs all architectures supported)
+ case ${ABI} in
+ 32|x86) GMPABI=32;;
+ 64|amd64|n64) GMPABI=64;;
+ [onx]32) GMPABI=${ABI};;
+ esac
+ export GMPABI
+
+ tc-export CC
+ ECONF_SOURCE="${S}" econf \
+ --localstatedir=/var/state/gmp \
+ --disable-mpfr \
+ --disable-mpbsd \
+ --disable-static \
+ --disable-cxx
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install-libLTLIBRARIES
+ rm "${D}"/usr/*/libgmp.{la,so} || die
+}
diff --git a/dev-libs/gmp/gmp-6.1.2-r1.ebuild b/dev-libs/gmp/gmp-6.1.2-r1.ebuild
new file mode 100644
index 000000000000..4f9a4359fca7
--- /dev/null
+++ b/dev-libs/gmp/gmp-6.1.2-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic eutils libtool multilib-minimal
+
+MY_PV=${PV/_p*}
+MY_PV=${MY_PV/_/-}
+MY_P=${PN}-${MY_PV}
+PLEVEL=${PV/*p}
+DESCRIPTION="Library for arbitrary-precision arithmetic on different type of numbers"
+HOMEPAGE="https://gmplib.org/"
+SRC_URI="ftp://ftp.gmplib.org/pub/${MY_P}/${MY_P}.tar.xz
+ mirror://gnu/${PN}/${MY_P}.tar.xz
+ doc? ( https://gmplib.org/${PN}-man-${MY_PV}.pdf )"
+
+LICENSE="|| ( LGPL-3+ GPL-2+ )"
+# The subslot reflects the C & C++ SONAMEs.
+SLOT="0/10.4"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+asm doc cxx static-libs"
+
+DEPEND="sys-devel/m4
+ app-arch/xz-utils"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P%a}
+
+DOCS=( AUTHORS ChangeLog NEWS README doc/configuration doc/isa_abi_headache )
+HTML_DOCS=( doc )
+MULTILIB_WRAPPED_HEADERS=( /usr/include/gmp.h )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
+)
+
+src_prepare() {
+ default
+
+ # note: we cannot run autotools here as gcc depends on this package
+ elibtoolize
+
+ # https://bugs.gentoo.org/536894
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ eapply "${FILESDIR}"/${PN}-6.1.2-gcc-apple-4.0.1.patch
+ fi
+
+ # GMP uses the "ABI" env var during configure as does Gentoo (econf).
+ # So, to avoid patching the source constantly, wrap things up.
+ mv configure configure.wrapped || die
+ cat <<-\EOF > configure
+ #!/usr/bin/env sh
+ exec env ABI="${GMPABI}" "$0.wrapped" "$@"
+ EOF
+ # Patches to original configure might have lost the +x bit.
+ chmod a+rx configure{,.wrapped} || die
+}
+
+multilib_src_configure() {
+ # Because of our 32-bit userland, 1.0 is the only HPPA ABI that works
+ # https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613)
+ if [[ ${CHOST} == hppa2.0-* ]] ; then
+ GMPABI="1.0"
+ fi
+
+ # ABI mappings (needs all architectures supported)
+ case ${ABI} in
+ 32|x86) GMPABI=32;;
+ 64|amd64|n64) GMPABI=64;;
+ [onx]32) GMPABI=${ABI};;
+ esac
+ export GMPABI
+
+ #367719
+ if [[ ${CHOST} == *-mint* ]]; then
+ filter-flags -O?
+ fi
+
+ tc-export CC
+ ECONF_SOURCE="${S}" econf \
+ --localstatedir="${EPREFIX}"/var/state/gmp \
+ --enable-shared \
+ $(use_enable asm assembly) \
+ $(use_enable cxx) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ emake
+}
+
+multilib_src_test() {
+ emake check
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ # should be a standalone lib
+ rm -f "${ED}"/usr/$(get_libdir)/libgmp.la
+ # this requires libgmp
+ local la="${ED}/usr/$(get_libdir)/libgmpxx.la"
+ use static-libs \
+ && sed -i 's:/[^ ]*/libgmp.la:-lgmp:' "${la}" \
+ || rm -f "${la}"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ use doc && cp "${DISTDIR}"/gmp-man-${MY_PV}.pdf "${ED}"/usr/share/doc/${PF}/
+}
diff --git a/dev-libs/gmp/gmp-6.1.2.ebuild b/dev-libs/gmp/gmp-6.1.2.ebuild
new file mode 100644
index 000000000000..6481d95238be
--- /dev/null
+++ b/dev-libs/gmp/gmp-6.1.2.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit flag-o-matic eutils libtool multilib-minimal
+
+MY_PV=${PV/_p*}
+MY_PV=${MY_PV/_/-}
+MY_P=${PN}-${MY_PV}
+PLEVEL=${PV/*p}
+DESCRIPTION="Library for arbitrary-precision arithmetic on different type of numbers"
+HOMEPAGE="https://gmplib.org/"
+SRC_URI="ftp://ftp.gmplib.org/pub/${MY_P}/${MY_P}.tar.xz
+ mirror://gnu/${PN}/${MY_P}.tar.xz
+ doc? ( https://gmplib.org/${PN}-man-${MY_PV}.pdf )"
+
+LICENSE="|| ( LGPL-3+ GPL-2+ )"
+# The subslot reflects the C & C++ SONAMEs.
+SLOT="0/10.4"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+asm doc cxx pgo static-libs"
+
+DEPEND="sys-devel/m4
+ app-arch/xz-utils"
+RDEPEND=""
+
+S=${WORKDIR}/${MY_P%a}
+
+DOCS=( AUTHORS ChangeLog NEWS README doc/configuration doc/isa_abi_headache )
+HTML_DOCS=( doc )
+MULTILIB_WRAPPED_HEADERS=( /usr/include/gmp.h )
+
+src_prepare() {
+ [[ -d ${FILESDIR}/${PV} ]] && EPATCH_SUFFIX="diff" EPATCH_FORCE="yes" epatch "${FILESDIR}"/${PV}
+
+ # note: we cannot run autotools here as gcc depends on this package
+ elibtoolize
+
+ epatch "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
+
+ # https://bugs.gentoo.org/536894
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ epatch "${FILESDIR}"/${PN}-6.1.2-gcc-apple-4.0.1.patch
+ fi
+
+ # GMP uses the "ABI" env var during configure as does Gentoo (econf).
+ # So, to avoid patching the source constantly, wrap things up.
+ mv configure configure.wrapped || die
+ cat <<-\EOF > configure
+ #!/usr/bin/env sh
+ exec env ABI="${GMPABI}" "$0.wrapped" "$@"
+ EOF
+ # Patches to original configure might have lost the +x bit.
+ chmod a+rx configure{,.wrapped}
+}
+
+multilib_src_configure() {
+ # Because of our 32-bit userland, 1.0 is the only HPPA ABI that works
+ # https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613)
+ if [[ ${CHOST} == hppa2.0-* ]] ; then
+ GMPABI="1.0"
+ fi
+
+ # ABI mappings (needs all architectures supported)
+ case ${ABI} in
+ 32|x86) GMPABI=32;;
+ 64|amd64|n64) GMPABI=64;;
+ [onx]32) GMPABI=${ABI};;
+ esac
+ export GMPABI
+
+ #367719
+ if [[ ${CHOST} == *-mint* ]]; then
+ filter-flags -O?
+ fi
+
+ tc-export CC
+ ECONF_SOURCE="${S}" econf \
+ --localstatedir="${EPREFIX}"/var/state/gmp \
+ --enable-shared \
+ $(use_enable asm assembly) \
+ $(use_enable cxx) \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ emake
+
+ if use pgo ; then
+ emake -j1 -C tune tuneup
+ ebegin "Trying to generate tuned data"
+ ./tune/tuneup | tee gmp.mparam.h.new
+ if eend $(( 0 + ${PIPESTATUS[*]/#/+} )) ; then
+ mv gmp.mparam.h.new gmp-mparam.h || die
+ emake clean
+ emake
+ fi
+ fi
+}
+
+multilib_src_test() {
+ emake check
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ # should be a standalone lib
+ rm -f "${ED}"/usr/$(get_libdir)/libgmp.la
+ # this requires libgmp
+ local la="${ED}/usr/$(get_libdir)/libgmpxx.la"
+ use static-libs \
+ && sed -i 's:/[^ ]*/libgmp.la:-lgmp:' "${la}" \
+ || rm -f "${la}"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ use doc && cp "${DISTDIR}"/gmp-man-${MY_PV}.pdf "${ED}"/usr/share/doc/${PF}/
+}
diff --git a/dev-libs/gmp/metadata.xml b/dev-libs/gmp/metadata.xml
new file mode 100644
index 000000000000..02ee38fa71f9
--- /dev/null
+++ b/dev-libs/gmp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>toolchain@gentoo.org</email>
+ <name>Gentoo Toolchain Project</name>
+</maintainer>
+<use>
+ <flag name="asm">Enable use of hand optimized assembly routines (faster execution)</flag>
+ <flag name="pgo">After building gmp, run some tests against to produce faster libraries -- this option will double the compile time</flag>
+</use>
+</pkgmetadata>