test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
In glibc >= 2.34 MALLOC_CHECK_ and MALLOC_PERTURB_ environment variables have been replaced by GLIBC_TUNABLES. Also the new glibc requires that you preload a library called libc_malloc_debug.so to get these features. Using the ordinary glibc system variable detect if this is glibc >= 2.34 and use GLIBC_TUNABLES and the new library. This patch was inspired by a Richard W.M. Jones ndbkit patch Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Elia Pinto <gitter.spiros@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4c53a8c20f
commit
131b94a10a
@ -518,9 +518,25 @@ else
|
||||
setup_malloc_check () {
|
||||
MALLOC_CHECK_=3 MALLOC_PERTURB_=165
|
||||
export MALLOC_CHECK_ MALLOC_PERTURB_
|
||||
if _GLIBC_VERSION=$(getconf GNU_LIBC_VERSION 2>/dev/null) &&
|
||||
_GLIBC_VERSION=${_GLIBC_VERSION#"glibc "} &&
|
||||
expr 2.34 \<= "$_GLIBC_VERSION" >/dev/null
|
||||
then
|
||||
g=
|
||||
LD_PRELOAD="libc_malloc_debug.so.0"
|
||||
for t in \
|
||||
glibc.malloc.check=1 \
|
||||
glibc.malloc.perturb=165
|
||||
do
|
||||
g="${g#:}:$t"
|
||||
done
|
||||
GLIBC_TUNABLES=$g
|
||||
export LD_PRELOAD GLIBC_TUNABLES
|
||||
fi
|
||||
}
|
||||
teardown_malloc_check () {
|
||||
unset MALLOC_CHECK_ MALLOC_PERTURB_
|
||||
unset LD_PRELOAD GLIBC_TUNABLES
|
||||
}
|
||||
fi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user