Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/libffi/files/, dev-libs/libffi/
Date: Mon, 10 Dec 2018 13:12:12
Message-Id: 1544447512.d572e261cc14127032df8cf5ed513ca5e1d27590.grobian@gentoo
1 commit: d572e261cc14127032df8cf5ed513ca5e1d27590
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Mon Dec 10 13:11:52 2018 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Mon Dec 10 13:11:52 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d572e261
7
8 dev-libs/libffi: fix compilation for ppc-macos
9
10 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
11 Package-Manager: Portage-2.3.51, Repoman-2.3.11
12
13 .../libffi/files/libffi-3.3_rc0-ppc-macos-go.patch | 79 ++++++++++++++++++++++
14 dev-libs/libffi/libffi-3.3_rc0.ebuild | 1 +
15 2 files changed, 80 insertions(+)
16
17 diff --git a/dev-libs/libffi/files/libffi-3.3_rc0-ppc-macos-go.patch b/dev-libs/libffi/files/libffi-3.3_rc0-ppc-macos-go.patch
18 new file mode 100644
19 index 00000000000..88f9b455765
20 --- /dev/null
21 +++ b/dev-libs/libffi/files/libffi-3.3_rc0-ppc-macos-go.patch
22 @@ -0,0 +1,79 @@
23 +ffi_darwin: use FFI_GO_CLOSURES guard to avoid unsolvable dependencies
24 +
25 +The go calls depend on compilation and link-time signatures and symbols
26 +which are missing because they aren't build due to FFO_GO_CLOSURES not
27 +being set.
28 +
29 +Signed-off-by: Fabian Groffen <grobian@g.o>
30 +
31 +--- a/src/powerpc/ffi_darwin.c 2018-04-02 14:21:51.000000000 +0200
32 ++++ b/src/powerpc/ffi_darwin.c 2018-12-10 13:57:26.000000000 +0100
33 +@@ -909,8 +909,10 @@
34 + extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *,
35 + void (*fn)(void), void (*fn2)(void));
36 +
37 ++#if FFI_GO_CLOSURES
38 + extern void ffi_call_go_AIX(extended_cif *, long, unsigned, unsigned *,
39 + void (*fn)(void), void (*fn2)(void), void *closure);
40 ++#endif
41 +
42 + extern void ffi_call_DARWIN(extended_cif *, long, unsigned, unsigned *,
43 + void (*fn)(void), void (*fn2)(void), ffi_type*);
44 +@@ -950,6 +952,7 @@
45 + }
46 + }
47 +
48 ++#if FFI_GO_CLOSURES
49 + void
50 + ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue,
51 + void *closure)
52 +@@ -981,6 +984,7 @@
53 + break;
54 + }
55 + }
56 ++#endif
57 +
58 + static void flush_icache(char *);
59 + static void flush_range(char *, int);
60 +@@ -1110,6 +1114,7 @@
61 + return FFI_OK;
62 + }
63 +
64 ++#if FFI_GO_CLOSURES
65 + ffi_status
66 + ffi_prep_go_closure (ffi_go_closure* closure,
67 + ffi_cif* cif,
68 +@@ -1133,6 +1138,7 @@
69 + }
70 + return FFI_OK;
71 + }
72 ++#endif
73 +
74 + static void
75 + flush_icache(char *addr)
76 +@@ -1168,9 +1174,11 @@
77 + ffi_closure_helper_DARWIN (ffi_closure *, void *,
78 + unsigned long *, ffi_dblfl *);
79 +
80 ++#if FFI_GO_CLOSURES
81 + ffi_type *
82 + ffi_go_closure_helper_DARWIN (ffi_go_closure*, void *,
83 + unsigned long *, ffi_dblfl *);
84 ++#endif
85 +
86 + /* Basically the trampoline invokes ffi_closure_ASM, and on
87 + entry, r11 holds the address of the closure.
88 +@@ -1430,6 +1438,7 @@
89 + closure->user_data, rvalue, pgr, pfr);
90 + }
91 +
92 ++#if FFI_GO_CLOSURES
93 + ffi_type *
94 + ffi_go_closure_helper_DARWIN (ffi_go_closure *closure, void *rvalue,
95 + unsigned long *pgr, ffi_dblfl *pfr)
96 +@@ -1437,4 +1446,5 @@
97 + return ffi_closure_helper_common (closure->cif, closure->fun,
98 + closure, rvalue, pgr, pfr);
99 + }
100 ++#endif
101 +
102
103 diff --git a/dev-libs/libffi/libffi-3.3_rc0.ebuild b/dev-libs/libffi/libffi-3.3_rc0.ebuild
104 index 0a31487e51f..5f56796bb87 100644
105 --- a/dev-libs/libffi/libffi-3.3_rc0.ebuild
106 +++ b/dev-libs/libffi/libffi-3.3_rc0.ebuild
107 @@ -25,6 +25,7 @@ DOCS="ChangeLog* README.md"
108 PATCHES=(
109 "${FILESDIR}"/${PN}-3.2.1-o-tmpfile-eacces.patch #529044
110 "${FILESDIR}"/${PN}-3.3_rc0-hppa-no-TEXTREL.patch
111 + "${FILESDIR}"/${PN}-3.3_rc0-ppc-macos-go.patch
112 )
113
114 S=${WORKDIR}/${MY_P}