Fix libffi initialization error on x64 devices
This commit is contained in:
parent
12bfa49f5a
commit
65fb45fb10
Binary file not shown.
|
@ -1 +1 @@
|
||||||
1708076202435
|
1708092122018
|
|
@ -36,19 +36,6 @@
|
||||||
|
|
||||||
/* ---- System specific configurations ----------------------------------- */
|
/* ---- System specific configurations ----------------------------------- */
|
||||||
|
|
||||||
/* For code common to all platforms on x86 and x86_64. */
|
|
||||||
#define X86_ANY
|
|
||||||
|
|
||||||
#if defined (X86_64) && defined (__i386__)
|
|
||||||
#undef X86_64
|
|
||||||
#define X86
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef X86_WIN64
|
|
||||||
#define FFI_SIZEOF_ARG 8
|
|
||||||
#define USE_BUILTIN_FFS 0 /* not yet implemented in mingw-64 */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
|
#define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
#define FFI_TARGET_HAS_COMPLEX_TYPE
|
#define FFI_TARGET_HAS_COMPLEX_TYPE
|
||||||
|
@ -57,53 +44,11 @@
|
||||||
/* ---- Generic type definitions ----------------------------------------- */
|
/* ---- Generic type definitions ----------------------------------------- */
|
||||||
|
|
||||||
#ifndef LIBFFI_ASM
|
#ifndef LIBFFI_ASM
|
||||||
#ifdef X86_WIN64
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
typedef unsigned __int64 ffi_arg;
|
|
||||||
typedef __int64 ffi_sarg;
|
|
||||||
#else
|
|
||||||
typedef unsigned long long ffi_arg;
|
|
||||||
typedef long long ffi_sarg;
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#if defined __x86_64__ && defined __ILP32__
|
|
||||||
#define FFI_SIZEOF_ARG 8
|
|
||||||
#define FFI_SIZEOF_JAVA_RAW 4
|
|
||||||
typedef unsigned long long ffi_arg;
|
|
||||||
typedef long long ffi_sarg;
|
|
||||||
#else
|
|
||||||
typedef unsigned long ffi_arg;
|
typedef unsigned long ffi_arg;
|
||||||
typedef signed long ffi_sarg;
|
typedef signed long ffi_sarg;
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef enum ffi_abi {
|
typedef enum ffi_abi {
|
||||||
#if defined(X86_WIN64)
|
|
||||||
FFI_FIRST_ABI = 0,
|
|
||||||
FFI_WIN64, /* sizeof(long double) == 8 - microsoft compilers */
|
|
||||||
FFI_GNUW64, /* sizeof(long double) == 16 - GNU compilers */
|
|
||||||
FFI_LAST_ABI,
|
|
||||||
#ifdef __GNUC__
|
|
||||||
FFI_DEFAULT_ABI = FFI_GNUW64,
|
|
||||||
#else
|
|
||||||
FFI_DEFAULT_ABI = FFI_WIN64,
|
|
||||||
|
|
||||||
// LWJGL
|
|
||||||
//FFI_WIN64 = -1,
|
|
||||||
//FFI_GNUW64 = -1,
|
|
||||||
FFI_UNIX64 = -1,
|
|
||||||
FFI_EFI64 = -1,
|
|
||||||
FFI_SYSV = -1,
|
|
||||||
FFI_STDCALL = -1,
|
|
||||||
FFI_THISCALL = -1,
|
|
||||||
FFI_FASTCALL = -1,
|
|
||||||
FFI_MS_CDECL = -1,
|
|
||||||
FFI_PASCAL = -1,
|
|
||||||
FFI_REGISTER = -1,
|
|
||||||
FFI_VFP = -1,
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
|
|
||||||
FFI_FIRST_ABI = 1,
|
FFI_FIRST_ABI = 1,
|
||||||
FFI_UNIX64,
|
FFI_UNIX64,
|
||||||
FFI_WIN64,
|
FFI_WIN64,
|
||||||
|
@ -126,57 +71,6 @@ typedef enum ffi_abi {
|
||||||
FFI_REGISTER = -1,
|
FFI_REGISTER = -1,
|
||||||
FFI_VFP = -1,
|
FFI_VFP = -1,
|
||||||
|
|
||||||
#elif defined(X86_WIN32)
|
|
||||||
FFI_FIRST_ABI = 0,
|
|
||||||
FFI_SYSV = 1,
|
|
||||||
FFI_STDCALL = 2,
|
|
||||||
FFI_THISCALL = 3,
|
|
||||||
FFI_FASTCALL = 4,
|
|
||||||
FFI_MS_CDECL = 5,
|
|
||||||
FFI_PASCAL = 6,
|
|
||||||
FFI_REGISTER = 7,
|
|
||||||
FFI_LAST_ABI,
|
|
||||||
FFI_DEFAULT_ABI = FFI_MS_CDECL,
|
|
||||||
|
|
||||||
// LWJGL
|
|
||||||
FFI_WIN64 = -1,
|
|
||||||
FFI_GNUW64 = -1,
|
|
||||||
FFI_UNIX64 = -1,
|
|
||||||
FFI_EFI64 = -1,
|
|
||||||
//FFI_SYSV = -1,
|
|
||||||
//FFI_STDCALL = -1,
|
|
||||||
//FFI_THISCALL = -1,
|
|
||||||
//FFI_FASTCALL = -1,
|
|
||||||
//FFI_MS_CDECL = -1,
|
|
||||||
//FFI_PASCAL = -1,
|
|
||||||
//FFI_REGISTER = -1,
|
|
||||||
FFI_VFP = -1,
|
|
||||||
#else
|
|
||||||
FFI_FIRST_ABI = 0,
|
|
||||||
FFI_SYSV = 1,
|
|
||||||
FFI_THISCALL = 3,
|
|
||||||
FFI_FASTCALL = 4,
|
|
||||||
FFI_STDCALL = 5,
|
|
||||||
FFI_PASCAL = 6,
|
|
||||||
FFI_REGISTER = 7,
|
|
||||||
FFI_MS_CDECL = 8,
|
|
||||||
FFI_LAST_ABI,
|
|
||||||
FFI_DEFAULT_ABI = FFI_SYSV,
|
|
||||||
|
|
||||||
// LWJGL
|
|
||||||
FFI_WIN64 = -1,
|
|
||||||
FFI_GNUW64 = -1,
|
|
||||||
FFI_UNIX64 = -1,
|
|
||||||
FFI_EFI64 = -1,
|
|
||||||
//FFI_SYSV = -1,
|
|
||||||
//FFI_STDCALL = -1,
|
|
||||||
//FFI_THISCALL = -1,
|
|
||||||
//FFI_FASTCALL = -1,
|
|
||||||
//FFI_MS_CDECL = -1,
|
|
||||||
//FFI_PASCAL = -1,
|
|
||||||
//FFI_REGISTER = -1,
|
|
||||||
FFI_VFP = -1,
|
|
||||||
#endif
|
|
||||||
} ffi_abi;
|
} ffi_abi;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -190,28 +84,12 @@ typedef enum ffi_abi {
|
||||||
#define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
|
#define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
|
||||||
#define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
|
#define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
|
||||||
|
|
||||||
#if defined (X86_64) || defined(X86_WIN64) \
|
|
||||||
|| (defined (__x86_64__) && defined (X86_DARWIN))
|
|
||||||
/* 4 bytes of ENDBR64 + 7 bytes of LEA + 6 bytes of JMP + 7 bytes of NOP
|
/* 4 bytes of ENDBR64 + 7 bytes of LEA + 6 bytes of JMP + 7 bytes of NOP
|
||||||
+ 8 bytes of pointer. */
|
+ 8 bytes of pointer. */
|
||||||
# define FFI_TRAMPOLINE_SIZE 32
|
# define FFI_TRAMPOLINE_SIZE 32
|
||||||
# define FFI_NATIVE_RAW_API 0
|
# define FFI_NATIVE_RAW_API 0
|
||||||
#else
|
|
||||||
/* 4 bytes of ENDBR32 + 5 bytes of MOV + 5 bytes of JMP + 2 unused
|
|
||||||
bytes. */
|
|
||||||
# define FFI_TRAMPOLINE_SIZE 16
|
|
||||||
# define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(GENERATE_LIBFFI_MAP) && defined(__CET__)
|
|
||||||
# include <cet.h>
|
|
||||||
# if (__CET__ & 1) != 0
|
|
||||||
# define ENDBR_PRESENT
|
|
||||||
# endif
|
|
||||||
# define _CET_NOTRACK notrack
|
|
||||||
#else
|
|
||||||
# define _CET_ENDBR
|
# define _CET_ENDBR
|
||||||
# define _CET_NOTRACK
|
# define _CET_NOTRACK
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue