summaryrefslogtreecommitdiff
path: root/dev-libs/libffi/files/libffi-3.3_rc0-ppc-macos-go.patch
blob: 88f9b455765771e1a73597cfd2ef52310aa3e738 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
ffi_darwin: use FFI_GO_CLOSURES guard to avoid unsolvable dependencies

The go calls depend on compilation and link-time signatures and symbols
which are missing because they aren't build due to FFO_GO_CLOSURES not
being set.

Signed-off-by: Fabian Groffen <grobian@gentoo.org>

--- a/src/powerpc/ffi_darwin.c	2018-04-02 14:21:51.000000000 +0200
+++ b/src/powerpc/ffi_darwin.c	2018-12-10 13:57:26.000000000 +0100
@@ -909,8 +909,10 @@
 extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *,
 			 void (*fn)(void), void (*fn2)(void));
 
+#if FFI_GO_CLOSURES
 extern void ffi_call_go_AIX(extended_cif *, long, unsigned, unsigned *,
 			    void (*fn)(void), void (*fn2)(void), void *closure);
+#endif
 
 extern void ffi_call_DARWIN(extended_cif *, long, unsigned, unsigned *,
 			    void (*fn)(void), void (*fn2)(void), ffi_type*);
@@ -950,6 +952,7 @@
     }
 }
 
+#if FFI_GO_CLOSURES
 void
 ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue,
 	     void *closure)
@@ -981,6 +984,7 @@
       break;
     }
 }
+#endif
 
 static void flush_icache(char *);
 static void flush_range(char *, int);
@@ -1110,6 +1114,7 @@
   return FFI_OK;
 }
 
+#if FFI_GO_CLOSURES
 ffi_status
 ffi_prep_go_closure (ffi_go_closure* closure,
 		     ffi_cif* cif,
@@ -1133,6 +1138,7 @@
     }
   return FFI_OK;
 }
+#endif
 
 static void
 flush_icache(char *addr)
@@ -1168,9 +1174,11 @@
 ffi_closure_helper_DARWIN (ffi_closure *, void *,
 			   unsigned long *, ffi_dblfl *);
 
+#if FFI_GO_CLOSURES
 ffi_type *
 ffi_go_closure_helper_DARWIN (ffi_go_closure*, void *,
 			      unsigned long *, ffi_dblfl *);
+#endif
 
 /* Basically the trampoline invokes ffi_closure_ASM, and on
    entry, r11 holds the address of the closure.
@@ -1430,6 +1438,7 @@
 				    closure->user_data, rvalue, pgr, pfr);
 }
 
+#if FFI_GO_CLOSURES
 ffi_type *
 ffi_go_closure_helper_DARWIN (ffi_go_closure *closure, void *rvalue,
 			      unsigned long *pgr, ffi_dblfl *pfr)
@@ -1437,4 +1446,5 @@
   return ffi_closure_helper_common (closure->cif, closure->fun,
 				    closure, rvalue, pgr, pfr);
 }
+#endif