Hi David, as far as I can see the code has already been patched. This is from the tip version of platforms/unix/vm/sqUnixSpurMemory.c, commit b0558b43c6598198f870834f00def6b85f8ab5d6 Author: Eliot Miranda eliot.miranda@gmail.com Date: Tue Dec 13 17:04:50 2022 -0800
Change the type of sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto to get sqMacV2Memory.c to compile on 32-bit MacOS. It should have taken usqInts in the first place. Implement allocateJITMemory for sqMacV2Memory.c/V3 macOS.
usqInt sqAllocateMemory(usqInt minHeapSize, usqInt desiredHeapSize) { char *hint, *address, *alloc; unsigned long alignment; sqInt allocBytes;
#if !COGVM if (pageSize) { fprintf(stderr, "sqAllocateMemory: already called\n"); exit(1); } pageSize = getpagesize(); pageMask = ~(pageSize - 1);
hint = sbrk(0); #else assert(pageSize != 0 && pageMask != 0); hint = endOfJITZone; #endif
alignment = max(pageSize,1024*1024); address = (char *)(((usqInt)hint + alignment - 1) & ~(alignment - 1));
alloc = sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto (roundUpToPage(desiredHeapSize), address, &allocBytes); if (!alloc) { fprintf(stderr, "sqAllocateMemory: initial alloc failed!\n"); exit(errno); } return (usqInt)alloc; }