add prim/osx directory

This commit is contained in:
Daan Leijen 2023-03-20 10:49:56 -07:00
parent f58357548c
commit c0c762611c
5 changed files with 32 additions and 17 deletions

View file

@ -38,20 +38,20 @@ include(GNUInstallDirs)
include("cmake/mimalloc-config-version.cmake") include("cmake/mimalloc-config-version.cmake")
set(mi_sources set(mi_sources
src/stats.c
src/random.c
src/os.c
src/bitmap.c
src/arena.c
src/region.c
src/segment.c
src/page.c
src/alloc.c src/alloc.c
src/alloc-aligned.c src/alloc-aligned.c
src/alloc-posix.c src/alloc-posix.c
src/arena.c
src/bitmap.c
src/heap.c src/heap.c
src/options.c
src/init.c src/init.c
src/options.c
src/os.c
src/page.c
src/random.c
src/region.c
src/segment.c
src/stats.c
src/prim/prim.c) src/prim/prim.c)
set(mi_cflags "") set(mi_cflags "")
@ -92,7 +92,7 @@ if(MI_OVERRIDE)
if(MI_OSX_ZONE) if(MI_OSX_ZONE)
# use zone's on macOS # use zone's on macOS
message(STATUS " Use malloc zone to override malloc (MI_OSX_ZONE=ON)") message(STATUS " Use malloc zone to override malloc (MI_OSX_ZONE=ON)")
list(APPEND mi_sources src/alloc-override-osx.c) list(APPEND mi_sources src/prim/osx/alloc-override-zone.c)
list(APPEND mi_defines MI_OSX_ZONE=1) list(APPEND mi_defines MI_OSX_ZONE=1)
if (NOT MI_OSX_INTERPOSE) if (NOT MI_OSX_INTERPOSE)
message(STATUS " WARNING: zone overriding usually also needs interpose (use -DMI_OSX_INTERPOSE=ON)") message(STATUS " WARNING: zone overriding usually also needs interpose (use -DMI_OSX_INTERPOSE=ON)")

9
src/prim/osx/prim.c Normal file
View file

@ -0,0 +1,9 @@
/* ----------------------------------------------------------------------------
Copyright (c) 2018-2023, Microsoft Research, Daan Leijen
This is free software; you can redistribute it and/or modify it under the
terms of the MIT license. A copy of the license can be found in the file
"LICENSE" at the root of this distribution.
-----------------------------------------------------------------------------*/
// We use the unix/prim.c with the mmap API on macOSX
#include "../unix/prim.c"

View file

@ -10,9 +10,15 @@ terms of the MIT license. A copy of the license can be found in the file
#if defined(_WIN32) #if defined(_WIN32)
#include "windows/prim.c" // VirtualAlloc (Windows) #include "windows/prim.c" // VirtualAlloc (Windows)
#elif defined(__APPLE__)
#include "osx/prim.c" // macOSX (actually defers to mmap in unix/prim.c)
#elif defined(__wasi__) #elif defined(__wasi__)
#define MI_USE_SBRK #define MI_USE_SBRK
#include "wasi/prim.c" // memory-grow or sbrk (Wasm) #include "wasi/prim.c" // memory-grow or sbrk (Wasm)
#else #else
#include "unix/prim.c" // mmap() (Linux, macOSX, BSD, Illumnos, Haiku, DragonFly, etc.) #include "unix/prim.c" // mmap() (Linux, macOSX, BSD, Illumnos, Haiku, DragonFly, etc.)
#endif #endif

View file

@ -20,11 +20,8 @@ terms of the MIT license. A copy of the license can be found in the file
// containing the whole library. If it is linked first // containing the whole library. If it is linked first
// it will override all the standard library allocation // it will override all the standard library allocation
// functions (on Unix's). // functions (on Unix's).
#include "alloc.c" #include "alloc.c" // includes alloc-override.c
#include "alloc-aligned.c" #include "alloc-aligned.c"
#if MI_OSX_ZONE
#include "alloc-override-osx.c"
#endif
#include "alloc-posix.c" #include "alloc-posix.c"
#include "arena.c" #include "arena.c"
#include "bitmap.c" #include "bitmap.c"
@ -32,9 +29,12 @@ terms of the MIT license. A copy of the license can be found in the file
#include "init.c" #include "init.c"
#include "options.c" #include "options.c"
#include "os.c" #include "os.c"
#include "page.c" #include "page.c" // includes page-queue.c
#include "prim/prim.c" #include "random.c"
#include "random.c"
#include "region.c" #include "region.c"
#include "segment.c" #include "segment.c"
#include "stats.c" #include "stats.c"
#include "prim/prim.c"
#if MI_OSX_ZONE
#include "prim/osx/alloc-override-zone.c"
#endif