[PATCH 5/4] meson: turn on NO_MMAP when building with LSan
- From
Jeff King <peff@peff.net>
- Date
- Mar 6, 2026, 16:25 UTC
- 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:
Show 14 quoted lines
> > 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 <peff@peff.net> --- 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