dart-sdk/samples/ffi
Daco Harkes 7eac9f355e [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking.
This CL introduces dart_api_dl.h which exposes a subset of dart_api.h
and dart_native_api.h for dynamic linking at runtime through the FFI.
Dynamic linking is done through including dart_api_dl.cc in a shared
library and passing NativeApi.initializeApiDLData to the init function.

This CL also includes Native API versioning to deal with possible
version skew between native api version against which native libraries
are compiled and the version in the DartVM the code is run on.

The subset of symbols in the CL includes handle related symbols, error
related symbols, handle scope symbols, and native port sumbols.

Design: http://go/dart-ffi-expose-dart-api

Closes: https://github.com/dart-lang/sdk/issues/40607
Closes: https://github.com/dart-lang/sdk/issues/36858
Closes: https://github.com/dart-lang/sdk/issues/41319
Closes: https://github.com/flutter/flutter/issues/46887
Closes: https://github.com/flutter/flutter/issues/47061

Misc:
Closes: https://github.com/dart-lang/sdk/issues/42260

Change-Id: I9e557808dbc99b341f23964cbddbb05f26d7a6c5
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-nnbd-linux-debug-x64-try,analyzer-nnbd-linux-release-try,front-end-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145592
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-06-18 07:30:43 +00:00
..
async [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking. 2020-06-18 07:30:43 +00:00
resource_management [samples/ffi] Native resource lifetime management 2019-12-12 10:27:22 +00:00
sqlite Fixed #39679 make sqlite ffi sample run success 2019-12-12 09:04:11 +00:00
coordinate.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
dylib_utils.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
sample_ffi_bitfield.dart [samples/ffi] Add bitfield sample 2019-10-24 17:40:27 +00:00
sample_ffi_data.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
sample_ffi_dynamic_library.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
sample_ffi_functions.dart [vm/ffi] Test alignment of small stack arguments 2020-01-14 10:50:25 +00:00
sample_ffi_functions_callbacks.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
sample_ffi_functions_callbacks_closures.dart [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking. 2020-06-18 07:30:43 +00:00
sample_ffi_functions_structs.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
sample_ffi_structs.dart [samples/ffi] Fix samples and run them as test 2019-10-23 22:20:37 +00:00
samples_test.dart [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking. 2020-06-18 07:30:43 +00:00