1diff -Naur net-snmp-5.6.orig/agent/mibgroup/hardware/memory.h net-snmp-5.6.working/agent/mibgroup/hardware/memory.h
2--- net-snmp-5.6.orig/agent/mibgroup/hardware/memory.h	2010-07-29 07:58:47.000000000 -0700
3+++ net-snmp-5.6.working/agent/mibgroup/hardware/memory.h	2013-04-26 16:53:16.000000000 -0700
4@@ -3,7 +3,7 @@
5 #if defined(linux)
6 config_require(hardware/memory/memory_linux)
7 
8-#elif (defined(darwin7) || defined(darwin8) || defined(darwin9))
9+#elif (defined(darwin7) || defined(darwin8) || defined(darwin9) || defined(darwin10) || defined(darwin11) || defined(darwin12) || defined(darwin13))
10 config_require(hardware/memory/memory_darwin)
11 
12 #elif (defined(freebsd2) || defined(freebsd3) || defined(freebsd4)  || defined(freebsd5)|| defined(freebsd6))
13diff -Naur net-snmp-5.4.1.orig/agent/mibgroup/hardware/memory/memory_darwin.c net-snmp-5.4.1.working/agent/mibgroup/hardware/memory/memory_darwin.c
14--- net-snmp-5.4.1.orig/agent/mibgroup/hardware/memory/memory_darwin.c  2008-04-04 16:43:29.000000000 -0700
15+++ net-snmp-5.4.1.working/agent/mibgroup/hardware/memory/memory_darwin.c	2008-04-09 19:01:36.000000000 -0700
16@@ -75,7 +75,12 @@
17             for (address = 0;; address += size) {
18                 /* Get memory region. */
19                 count = VM_REGION_EXTENDED_INFO_COUNT; 
20-                if (vm_region(tasks[j], &address, &size, VM_REGION_EXTENDED_INFO, (vm_region_extended_info_t)&info, &count, &object_name) != KERN_SUCCESS) {
21+                
22+#if defined(__ppc64__) || defined(__x86_64__)
23+                if (vm_region_64(tasks[j], &address, &size, VM_REGION_EXTENDED_INFO, (vm_region_extended_info_t)&info, &count, &object_name) != KERN_SUCCESS) {
24+#else			
25+				if (vm_region(tasks[j], &address, &size, VM_REGION_EXTENDED_INFO, (vm_region_extended_info_t)&info, &count, &object_name) != KERN_SUCCESS) {
26+#endif                    
27                     /* No more memory regions. */
28                     break;
29                 }
30
31diff -Naur net-snmp-5.6.orig/agent/mibgroup/hardware/memory/hw_mem.c net-snmp-5.6.working/agent/mibgroup/hardware/memory/hw_mem.c
32--- net-snmp-5.6.orig/agent/mibgroup/hardware/memory/hw_mem.c	2013-05-13 22:07:16.000000000 -0700
33+++ net-snmp-5.6.working/agent/mibgroup/hardware/memory/hw_mem.c	2013-04-26 12:43:57.000000000 -0700
34@@ -10,7 +10,7 @@
35 
36 void init_hw_mem( void ) {
37     oid nsMemory[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 31 };
38-    _mem_cache = netsnmp_cache_create( 5, netsnmp_mem_arch_load, NULL,
39+    _mem_cache = netsnmp_cache_create( 300, netsnmp_mem_arch_load, NULL,
40                                           nsMemory, OID_LENGTH(nsMemory));
41 }
42 
43diff -Naur net-snmp-5.4.1.orig/include/net-snmp/types.h net-snmp-5.4.1.working/include/net-snmp/types.h
44--- net-snmp-5.4.1.orig/include/net-snmp/types.h	2008-04-04 16:43:29.000000000 -0700
45+++ net-snmp-5.4.1.working/include/net-snmp/types.h	2008-04-04 16:57:08.000000000 -0700
46@@ -64,12 +64,14 @@
47 #endif
48 
49 #ifndef HAVE_SSIZE_T
50+#ifndef _SSIZE_T
51 #if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
52 typedef int ssize_t;
53 #else
54 typedef long ssize_t;
55 #endif
56 #endif
57+#endif
58 
59     /*
60      * Try to ensure we have 32-bit (and hopefully 64-bit)
61
62