From 7d908e550750df8680b06dba69e5379c4c9318f9 Mon Sep 17 00:00:00 2001 From: Syo Ikeda Date: Thu, 12 Jan 2017 00:20:42 +0900 Subject: [PATCH 1/2] Weakly link `_os_log_set_nscf_formatter` to make the framework run on macOS 10.11 The symbol does exist in libSystem.B.dylib on 10.12 but does not on 10.11. --- CoreFoundation/Base.subproj/CFRuntime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CoreFoundation/Base.subproj/CFRuntime.c b/CoreFoundation/Base.subproj/CFRuntime.c index 5b3a091130..fc148cbd17 100644 --- a/CoreFoundation/Base.subproj/CFRuntime.c +++ b/CoreFoundation/Base.subproj/CFRuntime.c @@ -957,7 +957,7 @@ pthread_t _CF_pthread_main_thread_np(void) { #if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) typedef bool (*_os_log_NSCF_callback)(const void *obj, char *string_value, size_t string_sz, bool *publicData); -extern void _os_log_set_nscf_formatter(_os_log_NSCF_callback function); +extern void _os_log_set_nscf_formatter(_os_log_NSCF_callback function) OS_WEAK_IMPORT; bool os_log_callback(const void *obj, char *string_value, size_t string_sz, bool *publicData) { return false; } @@ -1188,7 +1188,7 @@ void __CFInitialize(void) { __CFProphylacticAutofsAccess = false; #if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) - _os_log_set_nscf_formatter(&os_log_callback); + if (_os_log_set_nscf_formatter != NULL) _os_log_set_nscf_formatter(&os_log_callback); #endif __CFInitializing = 0; From c1dfbb3bf268ec0f9d8ac4406efedc509ac548c5 Mon Sep 17 00:00:00 2001 From: Syo Ikeda Date: Thu, 12 Jan 2017 01:43:31 +0900 Subject: [PATCH 2/2] Delete `_os_log_set_nscf_formatter` related lines as requested --- CoreFoundation/Base.subproj/CFRuntime.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/CoreFoundation/Base.subproj/CFRuntime.c b/CoreFoundation/Base.subproj/CFRuntime.c index fc148cbd17..26727049f8 100644 --- a/CoreFoundation/Base.subproj/CFRuntime.c +++ b/CoreFoundation/Base.subproj/CFRuntime.c @@ -955,14 +955,6 @@ pthread_t _CF_pthread_main_thread_np(void) { #endif -#if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) -typedef bool (*_os_log_NSCF_callback)(const void *obj, char *string_value, size_t string_sz, bool *publicData); -extern void _os_log_set_nscf_formatter(_os_log_NSCF_callback function) OS_WEAK_IMPORT; -bool os_log_callback(const void *obj, char *string_value, size_t string_sz, bool *publicData) { - return false; -} -#endif - #if DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD static void __CFInitialize(void) __attribute__ ((constructor)); @@ -1187,10 +1179,6 @@ void __CFInitialize(void) { __CFProphylacticAutofsAccess = false; -#if DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED) - if (_os_log_set_nscf_formatter != NULL) _os_log_set_nscf_formatter(&os_log_callback); -#endif - __CFInitializing = 0; __CFInitialized = 1; }