From: Jeff King Date: Fri, 06 Mar 2026 16:25:13 GMT Subject: [PATCH 5/4] meson: turn on NO_MMAP when building with LSan Message-ID: <20260306162513.GB3483423@coredump.intra.peff.net> In-Reply-To: <796110ee-d795-4445-9d82-7026370a88cf@intel.com> On Fri, Mar 06, 2026 at 01:17:24AM -0800, Jacob Keller wrote: > > diff --git a/Makefile b/Makefile > > index f3264d0a37..4cf1afd395 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -1600,6 +1600,7 @@ BASIC_CFLAGS += -DSHA1DC_FORCE_ALIGNED_ACCESS > > endif > > ifneq ($(filter leak,$(SANITIZERS)),) > > BASIC_CFLAGS += -O0 > > +NO_MMAP = CatchMapLeaks > > SANITIZE_LEAK = YesCompiledWithIt > > endif > > ifneq ($(filter address,$(SANITIZERS)),) > > Should this patch also affect the meson.build? Ugh, yes. I don't think we use meson in the CI sanitizer builds (which is where I'd guess most leak-checking happens), but the two systems should remain consistent. Patch below (that can go on top or be squashed into 4/4). > Also I think this might be somewhat less flexible than Make since you > can't forcibly enable mmap even with sanitizers enabled. I suppose thats > not a big deal since enabling sanitizers already has a high cost. I don't pay much attention to the meson support, but yeah, it looks like there's no equivalent to tweak the NO_MMAP knob independently there. I doubt anybody is clamoring for it. -- >8 -- Subject: [PATCH] meson: turn on NO_MMAP when building with LSan The previous commit taught the Makefile to turn on NO_MMAP in this instance. We should do the same with meson for consistency. We already do this for ASan builds, so we can just tweak one conditional. Signed-off-by: Jeff King --- Tested and confirmed this finds the test failures fixed by the earlier patches. meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 4b536e0124..4e13afbb41 100644 --- a/meson.build +++ b/meson.build @@ -1426,7 +1426,7 @@ else 'getpagesize' : [], } - if get_option('b_sanitize').contains('address') + if get_option('b_sanitize').contains('address') or get_option('b_sanitize').contains('leak') libgit_c_args += '-DNO_MMAP' libgit_sources += 'compat/mmap.c' else -- 2.53.0.791.g8baeb4ea4d