From c142eb253f3814f46527e9b37484041dd85702cf Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 22 Jul 2021 18:38:02 +0530 Subject: mcheck: Wean away from malloc hooks [BZ #23489] Split the mcheck implementation into the debugging hooks and API so that the API can be replicated in libc and libc_malloc_debug.so. The libc APIs always result in failure. The mcheck implementation has also been moved entirely into libc_malloc_debug.so and with it, all of the hook initialization code can now be moved into the debug library. Now the initialization can be done independently of libc internals. With this patch, libc_malloc_debug.so can no longer be used with older libcs, which is not its goal anyway. tst-vfork3 breaks due to this since it spawns shell scripts, which in turn execute using the system glibc. Move the test to tests-container so that only the built glibc is used. This move also fixes bugs in the mcheck version of memalign and realloc, thus allowing removal of the tests from tests-mcheck exclusion list. Reviewed-by: Carlos O'Donell Tested-by: Carlos O'Donell --- posix/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'posix/Makefile') diff --git a/posix/Makefile b/posix/Makefile index b895638865..059efb3cd2 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -87,7 +87,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ bug-regex29 bug-regex30 bug-regex31 bug-regex32 \ tst-nice tst-nanosleep tst-regex2 \ transbug tst-rxspencer tst-pcre tst-boost \ - bug-ga1 tst-vfork1 tst-vfork2 tst-vfork3 \ + bug-ga1 tst-vfork1 tst-vfork2 \ tst-waitid tst-wait4 tst-wait3 \ tst-getaddrinfo2 bug-glob2 bug-glob3 tst-sysconf \ tst-execvp1 tst-execvp2 tst-execlp1 tst-execlp2 \ @@ -122,7 +122,7 @@ endif tests-internal := bug-regex5 bug-regex20 bug-regex33 \ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 -tests-container := bug-ga2 +tests-container := bug-ga2 tst-vfork3 tests-time64 := tst-wait4-time64 tst-wait3-time64 tst-gnuglob64-time64 xtests := tst-getaddrinfo4 tst-getaddrinfo5 tst-sched_rr_get_interval xtests-time64 := tst-sched_rr_get_interval-time64 @@ -359,7 +359,9 @@ tst-vfork3-ENV = MALLOC_TRACE=$(objpfx)tst-vfork3.mtrace \ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so $(objpfx)tst-vfork3-mem.out: $(objpfx)tst-vfork3.out - $(common-objpfx)malloc/mtrace $(objpfx)tst-vfork3.mtrace > $@; \ + { test -r $(objpfx)tst-vfork3.mtrace \ + || ( echo "tst-vfork3.mtrace does not exist"; exit 77; ) \ + && $(common-objpfx)malloc/mtrace $(objpfx)tst-vfork3.mtrace; } > $@; \ $(evaluate-test) # tst-rxspencer.mtrace is not generated, only -- cgit 1.4.1