--- vendor/ocaml-lmdb/mdb.c 2026-02-11 11:32:57.000000000 +0800 +++ vendor/ocaml-lmdb/mdb.c 2026-03-06 07:33:19.000000000 +0800 @@ -35,6 +35,11 @@ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif + +#ifdef __APPLE__ +#include +#endif + #if defined(MDB_VL32) || defined(__WIN64__) #define _FILE_OFFSET_BITS 64 #endif @@ -243,6 +248,16 @@ #define MISALIGNED_OK 1 #endif +#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +static int posix_memalign_fallback(void **memptr, size_t alignment, size_t size) { + void *ptr = malloc(size + alignment - 1); + if (!ptr) return ENOMEM; + *memptr = (void *)(((size_t)ptr + alignment - 1) & ~(alignment - 1)); + return 0; +} +#define posix_memalign posix_memalign_fallback +#endif + #include "lmdb.h" #include "midl.h"