@@ -1504,6 +1504,7 @@ BUILTIN_OBJS += builtin/write-tree.o
15041504# upstream unnecessarily (making merging in future changes easier).
15051505THIRD_PARTY_SOURCES += compat/inet_ntop.c
15061506THIRD_PARTY_SOURCES += compat/inet_pton.c
1507+ THIRD_PARTY_SOURCES += compat/mimalloc/%
15071508THIRD_PARTY_SOURCES += compat/nedmalloc/%
15081509THIRD_PARTY_SOURCES += compat/obstack.%
15091510THIRD_PARTY_SOURCES += compat/poll/%
@@ -2265,6 +2266,46 @@ ifdef USE_NED_ALLOCATOR
22652266 OVERRIDE_STRDUP = YesPlease
22662267endif
22672268
2269+ ifdef USE_MIMALLOC
2270+ MIMALLOC_OBJS = \
2271+ compat/mimalloc/alloc-aligned.o \
2272+ compat/mimalloc/alloc.o \
2273+ compat/mimalloc/arena.o \
2274+ compat/mimalloc/bitmap.o \
2275+ compat/mimalloc/heap.o \
2276+ compat/mimalloc/init.o \
2277+ compat/mimalloc/libc.o \
2278+ compat/mimalloc/options.o \
2279+ compat/mimalloc/os.o \
2280+ compat/mimalloc/page.o \
2281+ compat/mimalloc/random.o \
2282+ compat/mimalloc/prim/prim.o \
2283+ compat/mimalloc/segment.o \
2284+ compat/mimalloc/segment-map.o \
2285+ compat/mimalloc/stats.o
2286+
2287+ COMPAT_CFLAGS += -Icompat/mimalloc -DMI_DEBUG=0 -DUSE_MIMALLOC --std=gnu11
2288+ COMPAT_OBJS += $(MIMALLOC_OBJS)
2289+
2290+ $(MIMALLOC_OBJS ) : COMPAT_CFLAGS += -DBANNED_H
2291+
2292+ $(MIMALLOC_OBJS ) : COMPAT_CFLAGS += \
2293+ -DMI_WIN_USE_FLS \
2294+ -Wno-attributes \
2295+ -Wno-unknown-pragmas \
2296+ -Wno-unused-function \
2297+ -Wno-array-bounds
2298+
2299+ ifdef DEVELOPER
2300+ $(MIMALLOC_OBJS ) : COMPAT_CFLAGS += \
2301+ -Wno-pedantic \
2302+ -Wno-declaration-after-statement \
2303+ -Wno-old-style-definition \
2304+ -Wno-missing-prototypes \
2305+ -Wno-implicit-function-declaration
2306+ endif
2307+ endif
2308+
22682309ifdef OVERRIDE_STRDUP
22692310 COMPAT_CFLAGS += -DOVERRIDE_STRDUP
22702311 COMPAT_OBJS += compat/strdup.o
0 commit comments