vkmemalloc: make it compile with macOS 10.15 SDK
Simply rename the function in order to not clash with aligned_alloc() that is marked as 10.15 only (and thus would need annotation etc.) in the 10.15 SDK. (note that aligned_alloc is a C11 function which was presumably not present in earlier SDKs, by renaming our own version everyone will be happy, hopefully) Change-Id: Iee400d81df6a0af4fa2129358ed27b049720685b Pick-to: 5.15 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
3ef7a760ff
commit
574898c9eb
46
src/3rdparty/VulkanMemoryAllocator/patches/0004-Make-it-compile-macos-10-15.patch
vendored
Normal file
46
src/3rdparty/VulkanMemoryAllocator/patches/0004-Make-it-compile-macos-10-15.patch
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
diff --git a/src/3rdparty/VulkanMemoryAllocator/vk_mem_alloc.h b/src/3rdparty/VulkanMemoryAllocator/vk_mem_alloc.h
|
||||
index 2355de091f..5d311b750d 100644
|
||||
--- a/src/3rdparty/VulkanMemoryAllocator/vk_mem_alloc.h
|
||||
+++ b/src/3rdparty/VulkanMemoryAllocator/vk_mem_alloc.h
|
||||
@@ -3167,7 +3167,7 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
|
||||
return memalign(alignment, size);
|
||||
}
|
||||
-#elif defined(__APPLE__) || defined(__ANDROID__)
|
||||
+#elif defined(__ANDROID__)
|
||||
#include <cstdlib>
|
||||
void *aligned_alloc(size_t alignment, size_t size)
|
||||
{
|
||||
@@ -3182,6 +3182,23 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
return pointer;
|
||||
return VMA_NULL;
|
||||
}
|
||||
+#elif defined(__APPLE__)
|
||||
+#include <cstdlib>
|
||||
+// aligned_alloc() is marked as macOS 10.15 only in the 10.15 SDK,
|
||||
+// avoid the mess by using a different name
|
||||
+void *vma_aligned_alloc(size_t alignment, size_t size)
|
||||
+{
|
||||
+ // alignment must be >= sizeof(void*)
|
||||
+ if(alignment < sizeof(void*))
|
||||
+ {
|
||||
+ alignment = sizeof(void*);
|
||||
+ }
|
||||
+
|
||||
+ void *pointer;
|
||||
+ if(posix_memalign(&pointer, alignment, size) == 0)
|
||||
+ return pointer;
|
||||
+ return VMA_NULL;
|
||||
+}
|
||||
#endif
|
||||
|
||||
// If your compiler is not compatible with C++11 and definition of
|
||||
@@ -3215,6 +3232,8 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
#ifndef VMA_SYSTEM_ALIGNED_MALLOC
|
||||
#if defined(_WIN32)
|
||||
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (_aligned_malloc((size), (alignment)))
|
||||
+ #elif defined(__APPLE__)
|
||||
+ #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (vma_aligned_alloc((alignment), (size) ))
|
||||
#else
|
||||
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (aligned_alloc((alignment), (size) ))
|
||||
#endif
|
@ -3167,7 +3167,7 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
|
||||
return memalign(alignment, size);
|
||||
}
|
||||
#elif defined(__APPLE__) || defined(__ANDROID__)
|
||||
#elif defined(__ANDROID__)
|
||||
#include <cstdlib>
|
||||
void *aligned_alloc(size_t alignment, size_t size)
|
||||
{
|
||||
@ -3182,6 +3182,23 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
return pointer;
|
||||
return VMA_NULL;
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#include <cstdlib>
|
||||
// aligned_alloc() is marked as macOS 10.15 only in the 10.15 SDK,
|
||||
// avoid the mess by using a different name
|
||||
void *vma_aligned_alloc(size_t alignment, size_t size)
|
||||
{
|
||||
// alignment must be >= sizeof(void*)
|
||||
if(alignment < sizeof(void*))
|
||||
{
|
||||
alignment = sizeof(void*);
|
||||
}
|
||||
|
||||
void *pointer;
|
||||
if(posix_memalign(&pointer, alignment, size) == 0)
|
||||
return pointer;
|
||||
return VMA_NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
// If your compiler is not compatible with C++11 and definition of
|
||||
@ -3215,6 +3232,8 @@ void *aligned_alloc(size_t alignment, size_t size)
|
||||
#ifndef VMA_SYSTEM_ALIGNED_MALLOC
|
||||
#if defined(_WIN32)
|
||||
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (_aligned_malloc((size), (alignment)))
|
||||
#elif defined(__APPLE__)
|
||||
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (vma_aligned_alloc((alignment), (size) ))
|
||||
#else
|
||||
#define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment) (aligned_alloc((alignment), (size) ))
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user