diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h
index d2c0de5..c5febc6 100644
--- a/src/vk_mem_alloc.h
+++ b/src/vk_mem_alloc.h
@@ -3955,11 +3955,18 @@ void *vma_aligned_alloc(size_t alignment, size_t size)
 }
 #elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
 #include <cstdlib>
+
+#if defined(__APPLE__)
+#include <AvailabilityMacros.h>
+#endif
+
 void *vma_aligned_alloc(size_t alignment, size_t size)
 {
-#if defined(__APPLE__)
+#if defined(__APPLE__) && (defined(MAC_OS_X_VERSION_10_15) || defined(__IPHONE_13_0))
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_15 || __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
     if (__builtin_available(macOS 10.15, iOS 13, *))
         return aligned_alloc(alignment, size);
+#endif
 #endif
     // alignment must be >= sizeof(void*)
     if(alignment < sizeof(void*))