<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Subject: [PATCH 2002/2002] Work around no libdispatch on &lt; 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 &lt;AvailabilityMacros.h&gt;
 #include &lt;TargetConditionals.h&gt;
+#if MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1060
 #include &lt;dispatch/dispatch.h&gt;
+#endif
 #include &lt;dlfcn.h&gt;
 #include &lt;stdint.h&gt;
 #include &lt;stdio.h&gt;
@@ -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 &gt;= 1060
+ static dispatch_once_t DispatchOnceCounter;
+#endif
 
 // We can't include &lt;CoreFoundation/CoreFoundation.h&gt; 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 &gt;= 1060
   dispatch_once_f(&amp;DispatchOnceCounter, NULL, parseSystemVersionPList);
+#else
+  /* expensive procedure, only do once. GlobalMajor will not be 0 once run. */
+  if (GlobalMajor == 0)
+    parseSystemVersionPList(NULL);
+#endif
 
   if (Major &lt; GlobalMajor)
     return 1;
-- 
2.21.0 (Apple Git-120)

</pre></body></html>