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} |