Seems I had to use ffi.manager.pas too. However when building then it fails 
with;

Undefined symbols for architecture arm64:
  "_ffi_call", referenced from:
      _FFI.MANAGER_$$_FFIINVOKE$crc7AE31AA0 in ffi.manager.o
  "_ffi_closure_alloc", referenced from:
      _FFI.MANAGER$_$TFFIFUNCTIONCALLBACK_$__$$_CREATE$crc5C7D27E4 in 
ffi.manager.o
  "_ffi_closure_free", referenced from:
      _FFI.MANAGER$_$TFFIFUNCTIONCALLBACK_$__$$_DESTROY in ffi.manager.o
  "_ffi_prep_cif", referenced from:
      _FFI.MANAGER_$$_CREATECIF$crcD3E75E66 in ffi.manager.o
  "_ffi_prep_closure_loc", referenced from:
      _FFI.MANAGER$_$TFFIFUNCTIONCALLBACK_$__$$_CREATE$crc5C7D27E4 in 
ffi.manager.o
  "_ffi_type_double", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_float", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_pointer", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_sint16", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_sint32", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_sint64", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_sint8", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_uint16", referenced from:
      _FFI.MANAGER_$$_RECORDOROBJECTTOFFITYPE$PTYPEINFO$$PFFI_TYPE in 
ffi.manager.o
      _FFI.MANAGER_$$_SETTOFFITYPE$INT64$$PFFI_TYPE in ffi.manager.o
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_uint32", referenced from:
      _FFI.MANAGER_$$_RECORDOROBJECTTOFFITYPE$PTYPEINFO$$PFFI_TYPE in 
ffi.manager.o
      _FFI.MANAGER_$$_SETTOFFITYPE$INT64$$PFFI_TYPE in ffi.manager.o
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_uint64", referenced from:
      _FFI.MANAGER_$$_RECORDOROBJECTTOFFITYPE$PTYPEINFO$$PFFI_TYPE in 
ffi.manager.o
      _FFI.MANAGER_$$_SETTOFFITYPE$INT64$$PFFI_TYPE in ffi.manager.o
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_uint8", referenced from:
      _FFI.MANAGER_$$_RECORDOROBJECTTOFFITYPE$PTYPEINFO$$PFFI_TYPE in 
ffi.manager.o
      _FFI.MANAGER_$$_SETTOFFITYPE$INT64$$PFFI_TYPE in ffi.manager.o
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
  "_ffi_type_void", referenced from:
      _FFI.MANAGER_$$_TYPEINFOTOFFITYPE$PTYPEINFO$TPARAMFLAGS$$PFFI_TYPE in 
ffi.manager.o
      _FFI.MANAGER_$$_CREATECIF$crcD3E75E66 in ffi.manager.o
ld: symbol(s) not found for architecture arm64

Is there something else I need to do to allow FFI to work on arm64? (Does this 
depend on a dylib? or a static library?, and do I need to explicitly reference 
that?)

On Wed, Aug 19, 2020, at 16:01, Carlo Kok via fpc-pascal wrote:
> It looks like I misread the error completely, and presumed, from the include 
> logic that it was x86_64 / x86 only.  It compiles now, thanks!
> 
> On Wed, Aug 19, 2020, at 14:09, Sven Barth via fpc-pascal wrote:
>> Carlo Kok via fpc-pascal <fpc-pascal@lists.freepascal.org> schrieb am Mi., 
>> 19. Aug. 2020, 13:17:
>>> Hi,
>>> 
>>> for PascalScript FFI support, are there plans to support RTTI .Invoke, or 
>>> any form of FFI available to do dynamic invoke from Pascalscript to FPC/api 
>>> code?
>> 
>> Rtti.Invoke is available in 3.2.0 however for all platforms except for Win64 
>> and the register calling convention on i386 the libffi library is used. 
>> Officially libffi does not yet seem to support macOS on Aarch64 however it 
>> supports iOS, so you'll need to check whether you can get a variant working 
>> for macOS on Aarch64. 
>> 
>> Alternatively you'd need to implement a custom function call manager for 
>> Aarch64. 
>> 
>> Regards, 
>> Sven 
>>> 
>> _______________________________________________
>> fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>> 
> 
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
> 
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to