2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
4 |
EAPI=7
|
5 |
|
inherit libtool multilib-minimal
|
|
5 |
|
|
6 |
inherit multilib-minimal
|
6 |
7 |
|
7 |
8 |
DESCRIPTION="a portable, high level programming interface to various calling conventions"
|
8 |
9 |
HOMEPAGE="https://sourceware.org/libffi/"
|
9 |
|
SRC_URI="ftp://sourceware.org/pub/libffi/libffi-${PV}.tar.gz"
|
|
10 |
SRC_URI="https://github.com/libffi/libffi/releases/download/v${PV}/libffi-${PV}.tar.gz"
|
10 |
11 |
|
11 |
12 |
LICENSE="MIT"
|
12 |
|
SLOT="6" # libffi.so.6
|
13 |
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
|
13 |
SLOT="7" # SONAME=libffi.so.7
|
|
14 |
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
14 |
15 |
IUSE="debug pax-kernel test"
|
15 |
16 |
|
16 |
17 |
RESTRICT="!test? ( test )"
|
17 |
18 |
|
18 |
|
RDEPEND="!dev-libs/libffi:0/0" # conflicts on libffi.so.6
|
19 |
|
DEPEND="test? ( dev-util/dejagnu )"
|
|
19 |
RDEPEND="!dev-libs/libffi:0/7" # conflicts on libffi.so.7
|
|
20 |
DEPEND=""
|
|
21 |
BDEPEND="test? ( dev-util/dejagnu )"
|
20 |
22 |
|
21 |
|
DOCS="ChangeLog* README"
|
|
23 |
DOCS="ChangeLog* README.md"
|
22 |
24 |
|
23 |
25 |
PATCHES=(
|
24 |
26 |
"${FILESDIR}"/libffi-3.2.1-o-tmpfile-eacces.patch #529044
|
25 |
|
"${FILESDIR}"/libffi-3.2.1-complex_alpha.patch
|
26 |
|
"${FILESDIR}"/libffi-3.1-darwin-x32.patch
|
27 |
|
"${FILESDIR}"/libffi-3.2.1-complex-ia64.patch
|
28 |
|
"${FILESDIR}"/libffi-3.2.1-include-path.patch
|
29 |
|
"${FILESDIR}"/libffi-3.2.1-include-path-autogen.patch
|
30 |
|
"${FILESDIR}"/libffi-3.2.1-ia64-small-struct.patch #634190
|
31 |
|
"${FILESDIR}"/libffi-3.2.1-musl-emutramp.patch #694916
|
|
27 |
"${FILESDIR}"/libffi-3.3_rc0-ppc-macos-go.patch
|
|
28 |
"${FILESDIR}"/libffi-3.3-power7.patch
|
|
29 |
"${FILESDIR}"/libffi-3.3-power7-memcpy.patch
|
|
30 |
"${FILESDIR}"/libffi-3.3-power7-memcpy-2.patch
|
|
31 |
"${FILESDIR}"/libffi-3.3-ppc-int128.patch
|
|
32 |
"${FILESDIR}"/libffi-3.3-ppc-vector-offset.patch
|
|
33 |
"${FILESDIR}"/libffi-3.3-compiler-vendor-quote.patch
|
32 |
34 |
)
|
33 |
35 |
|
34 |
36 |
S=${WORKDIR}/libffi-${PV}
|
|
37 |
|
35 |
38 |
ECONF_SOURCE=${S}
|
36 |
39 |
|
37 |
40 |
src_prepare() {
|
38 |
41 |
default
|
39 |
|
|
40 |
|
sed -i -e 's:@toolexeclibdir@:$(libdir):g' Makefile.in || die #462814
|
41 |
|
elibtoolize
|
|
42 |
if [[ ${CHOST} == arm64-*-darwin* ]] ; then
|
|
43 |
# ensure we use aarch64 asm, not x86 on arm64
|
|
44 |
sed -i -e 's/aarch64\*-\*-\*/arm64*-*-*|&/' \
|
|
45 |
configure configure.host || die
|
|
46 |
fi
|
42 |
47 |
}
|
43 |
48 |
|
44 |
49 |
multilib_src_configure() {
|
|
50 |
# --includedir= path maintains a few properties:
|
|
51 |
# 1. have stable name across libffi versions: some packages like
|
|
52 |
# dev-lang/ghc or kde-frameworks/networkmanager-qt embed
|
|
53 |
# ${includedir} at build-time. Don't require those to be
|
|
54 |
# rebuilt unless SONAME changes. bug #695788
|
|
55 |
#
|
|
56 |
# We use /usr/.../${PN} (instead of former /usr/.../${P}).
|
|
57 |
#
|
|
58 |
# 2. have ${ABI}-specific location as ffi.h is target-dependent.
|
|
59 |
#
|
|
60 |
# We use /usr/$(get_libdir)/... to have ABI identifier.
|
45 |
61 |
econf \
|
|
62 |
--includedir="${EPREFIX}"/usr/$(get_libdir)/${PN}/include \
|
|
63 |
--disable-multi-os-directory \
|
46 |
64 |
--disable-static \
|
47 |
65 |
$(use_enable pax-kernel pax_emutramp) \
|
48 |
66 |
$(use_enable debug)
|