mirror of
https://github.com/partic2/libffi
synced 2026-11-11 02:27:19 +00:00
Cleanup symbol exports on darwin and add architecture preprocessor checks to assist in building fat binaries (eg: i386+x86_64 on macOS or arm+aarch64 on iOS) (#450)
* x86: Ensure _efi64 suffixed symbols are not exported * x86: Ensure we do not export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * x86: Ensure we don't export ffi_call_win64, ffi_closure_win64, or ffi_go_closure_win64 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * closures: Silence a semantic warning libffi/src/closures.c:175:23: This function declaration is not a prototype Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch64: Ensure we don't export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * arm: Ensure we don't export ffi_prep_cif_machdep Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch64, arm, x86: Add architecture preprocessor checks to support easier fat builds (eg: iOS) Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * x86: Silence some static analysis warnings libffi/src/x86/ffi64.c:286:21: The left operand of '!=' is a garbage value due to array index out of bounds libffi/src/x86/ffi64.c:297:22: The left operand of '!=' is a garbage value due to array index out of bounds Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * aarch: Use FFI_HIDDEN rather than .hidden Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> * ffi.h: Don't advertise ffi_java_rvalue_to_raw, ffi_prep_java_raw_closure, and ffi_prep_java_raw_closure_loc when FFI_NATIVE_RAW_API is 0 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
This commit is contained in:
committed by
Anthony Green
parent
3ec522bc1c
commit
05a1796419
+5
-2
@@ -25,6 +25,7 @@
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
#ifdef __x86_64__
|
||||
#include <ffi.h>
|
||||
#include <ffi_common.h>
|
||||
#include <stdlib.h>
|
||||
@@ -33,7 +34,7 @@
|
||||
#ifdef X86_WIN64
|
||||
#define EFI64(name) name
|
||||
#else
|
||||
#define EFI64(name) name##_efi64
|
||||
#define EFI64(name) FFI_HIDDEN name##_efi64
|
||||
#endif
|
||||
|
||||
struct win64_call_frame
|
||||
@@ -48,7 +49,7 @@ struct win64_call_frame
|
||||
extern void ffi_call_win64 (void *stack, struct win64_call_frame *,
|
||||
void *closure) FFI_HIDDEN;
|
||||
|
||||
ffi_status
|
||||
ffi_status FFI_HIDDEN
|
||||
EFI64(ffi_prep_cif_machdep)(ffi_cif *cif)
|
||||
{
|
||||
int flags, n;
|
||||
@@ -306,3 +307,5 @@ ffi_closure_win64_inner(ffi_cif *cif,
|
||||
fun (cif, rvalue, avalue, user_data);
|
||||
return flags;
|
||||
}
|
||||
|
||||
#endif /* __x86_64__ */
|
||||
|
||||
Reference in New Issue
Block a user