Carlo Kok via fpc-pascal <fpc-pascal@lists.freepascal.org> schrieb am Mi., 2. Sep. 2020, 11:09:
> 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?) > You need the libffi library compiled for macOS on ARM ( https://github.com/libffi/libffi ) and then you might need to add a "{$linklibrary ffi}" or so, cause the ffi unit was not set tested on macOS. Regards, Sven >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal