Fix for unknown 'task_info_data_t', 'TASK_VM_INFO_COUNT', 'TASK_VM_INFO'
  on MacOS <= 10.8.
New task info support was added in MacOS 10.9.
This patch applies only to ESMF versions <= 8.8.1.
Was fixed upstream.  Remove this patch on next release after 8.8.1.

Copied from upstream patch on ESMF 8.8.1 by @barracuda156:
https://github.com/esmf-org/esmf/pull/395

diff --git a/src/Infrastructure/VM/src/ESMCI_VM.C b/src/Infrastructure/VM/src/ESMCI_VM.C
index 3b0ea7ae13..e61ab17848 100644
--- src/Infrastructure/VM/src/ESMCI_VM.C.orig
+++ src/Infrastructure/VM/src/ESMCI_VM.C
@@ -52,6 +52,7 @@
 #endif
 #if (defined ESMF_OS_Darwin)
 #include <mach/mach.h>
+#include <AvailabilityMacros.h>
 #endif
 #include "ESMF_Pthread.h"
 #include "ESMCI_IO_Handler.h"
@@ -2770,6 +2771,7 @@ void VM::logMemInfo(
   log->Write(msg, msgType);
 #elif (defined ESMF_OS_Darwin)
   // Get memory
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
   task_vm_info_data_t mem_info;
   mach_msg_type_number_t size = TASK_VM_INFO_COUNT;
   kern_return_t kerr = task_info(mach_task_self(),
@@ -2808,6 +2810,21 @@ void VM::logMemInfo(
     log->Write(msg, msgType);
 #endif
   }
+#else
+  // Fallback for earlier systems
+  task_basic_info mem_info;
+  mach_msg_type_number_t size = TASK_BASIC_INFO_COUNT;
+  kern_return_t kerr = task_info(mach_task_self(),
+                                 TASK_BASIC_INFO,
+                                 (task_info_t)&mem_info,
+                                 &size);
+  if( kerr == KERN_SUCCESS ) {
+    sprintf(msg, "%s - MemInfo: VmRSS:                       \t%d (bytes)",prefix.c_str(),mem_info.resident_size);
+    log->Write(msg, msgType);
+    sprintf(msg, "%s - MemInfo: Total allocated space (bytes): \t%d",prefix.c_str(),mem_info.virtual_size);
+    log->Write(msg, msgType);
+  }
+#endif
 #endif
   // output the wtime since execution start
   double wt;
