Subject: [PATCH 2002/2002] Work around no libdispatch on < 10.6 --- lib/builtins/os_version_check.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git llvm_master/projects/compiler-rt/lib/builtins/os_version_check.c macports_master/projects/compiler-rt/lib/builtins/os_version_check.c index 3794b9794..e3877449a 100644 --- llvm_master/projects/compiler-rt/lib/builtins/os_version_check.c +++ macports_master/projects/compiler-rt/lib/builtins/os_version_check.c @@ -13,8 +13,11 @@ #ifdef __APPLE__ +#include #include +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 #include +#endif #include #include #include @@ -23,7 +26,9 @@ // These three variables hold the host's OS version. static int32_t GlobalMajor, GlobalMinor, GlobalSubminor; -static dispatch_once_t DispatchOnceCounter; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 + static dispatch_once_t DispatchOnceCounter; +#endif // We can't include directly from here, so // just forward declare everything that we need from it. @@ -203,7 +208,13 @@ Fail: int32_t __isOSVersionAtLeast(int32_t Major, int32_t Minor, int32_t Subminor) { // Populate the global version variables, if they haven't already. +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 dispatch_once_f(&DispatchOnceCounter, NULL, parseSystemVersionPList); +#else + /* expensive procedure, only do once. GlobalMajor will not be 0 once run. */ + if (GlobalMajor == 0) + parseSystemVersionPList(NULL); +#endif if (Major < GlobalMajor) return 1; -- 2.21.0 (Apple Git-120)