5 #include <dispatch/dispatch.h>
9 #include "flutter/fml/logging.h"
19 typedef uint32_t dyld_platform_t;
22 dyld_platform_t platform;
24 } dyld_build_version_t;
26 typedef bool (*AvailabilityVersionCheckFn)(uint32_t count,
27 dyld_build_version_t versions[]);
29 AvailabilityVersionCheckFn AvailabilityVersionCheck;
31 dispatch_once_t DispatchOnceCounter;
33 void InitializeAvailabilityCheck(
void* unused) {
34 if (AvailabilityVersionCheck) {
37 AvailabilityVersionCheck =
reinterpret_cast<AvailabilityVersionCheckFn
>(
38 dlsym(RTLD_DEFAULT,
"_availability_version_check"));
39 FML_CHECK(AvailabilityVersionCheck);
42 extern "C" bool _availability_version_check(uint32_t count,
43 dyld_build_version_t versions[]) {
44 dispatch_once_f(&DispatchOnceCounter, NULL, InitializeAvailabilityCheck);
45 return AvailabilityVersionCheck(count, versions);