All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
@ 2022-03-04 13:37 Elia Pinto
  2022-03-04 19:59 ` Junio C Hamano
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Elia Pinto @ 2022-03-04 13:37 UTC (permalink / raw)
  To: git; +Cc: gitster, Elia Pinto

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>
---
This is the third version of the patch.

Compared to the second version[1], the code is further simplified,
eliminating a case statement and modifying a string statement.

[1] https://www.spinics.net/lists/git/msg433917.html

 t/test-lib.sh | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index 9af5fb7674..4d10646015 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -550,9 +550,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

--
2.35.1


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-04-05 21:50 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-04 13:37 [PATCH v3] test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34 Elia Pinto
2022-03-04 19:59 ` Junio C Hamano
2022-03-08 11:33 ` [PATCH] test-lib.sh: use awk instead of expr for a POSIX non integer check Carlo Marcelo Arenas Belón
2022-03-08 23:55   ` Eric Sunshine
2022-03-08 23:58     ` Eric Sunshine
2022-03-09  0:05       ` Eric Sunshine
2022-03-09 17:47         ` Junio C Hamano
2022-03-09 20:07           ` Ævar Arnfjörð Bjarmason
2022-03-11 23:06             ` Eric Sunshine
2022-03-12 10:38               ` Ævar Arnfjörð Bjarmason
2022-03-13  2:20                 ` Junio C Hamano
2022-03-13  2:37                   ` Carlo Arenas
2022-03-13  7:34                     ` Junio C Hamano
2022-03-11 23:02           ` Eric Sunshine
2022-03-13 19:02   ` Elia Pinto
2022-04-04 20:39 ` [PATCH v3] test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34 Phillip Wood
2022-04-05 10:03   ` Making the tests ~2.5x faster (was: [PATCH v3] test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34) Ævar Arnfjörð Bjarmason
2022-04-05 13:36     ` Phillip Wood
2022-04-05 19:59       ` Ævar Arnfjörð Bjarmason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.