mirror of
https://github.com/php/php-src.git
synced 2024-09-23 02:47:26 +00:00
bedbecf56d
To work around the limitation of the current rudimentary vectorcall support in our patched libffi, we forbid yet unsupported declarations, i.e. float/double parameters at certain positions (SIMD vector types and HVA types are not supported anyway).
24 lines
1.0 KiB
Plaintext
24 lines
1.0 KiB
Plaintext
ARG_WITH('ffi', 'ffi support', 'no');
|
|
|
|
if (PHP_FFI != 'no') {
|
|
if (CHECK_HEADER_ADD_INCLUDE("ffi.h", "CFLAGS_FFI", PHP_FFI+ ";" + PHP_PHP_BUILD + "\\include") &&
|
|
CHECK_LIB("libffi.lib", "ffi", PHP_FFI)) {
|
|
AC_DEFINE('HAVE_FFI', 1, 'ffi support enabled');
|
|
|
|
if (!X64) {
|
|
AC_DEFINE('HAVE_FFI_FASTCALL', 1 ,'libffi supports fastcall calling convention');
|
|
AC_DEFINE('HAVE_FFI_THISCALL', 1 ,'libffi supports thiscall calling convention');
|
|
AC_DEFINE('HAVE_FFI_STDCALL', 1 ,'libffi supports stdcall calling convention');
|
|
AC_DEFINE('HAVE_FFI_MS_CDECL', 1 ,'libffi supports ms_cdecl calling convention');
|
|
AC_DEFINE('HAVE_FFI_SYSV', 1 ,'libffi supports sysv calling convention');
|
|
}
|
|
if (GREP_HEADER("ffitarget.h", "FFI_VECTORCALL_PARTIAL", PHP_PHP_BUILD + "\\include")) {
|
|
AC_DEFINE('HAVE_FFI_VECTORCALL_PARTIAL', 1 ,'libffi partially supports vectorcall calling convention');
|
|
}
|
|
|
|
EXTENSION('ffi', 'ffi.c ffi_parser.c', null, '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1');
|
|
} else {
|
|
WARNING('ffi not enabled, headers or libraries not found');
|
|
}
|
|
}
|