diff options
Diffstat (limited to 'malloc-Fix-malloc-debug-for-2.35-onwards.patch')
-rw-r--r-- | malloc-Fix-malloc-debug-for-2.35-onwards.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/malloc-Fix-malloc-debug-for-2.35-onwards.patch b/malloc-Fix-malloc-debug-for-2.35-onwards.patch new file mode 100644 index 0000000..e564280 --- /dev/null +++ b/malloc-Fix-malloc-debug-for-2.35-onwards.patch @@ -0,0 +1,57 @@ +From f1bcfde3a7b1b2606ff9f267e1e4a9cd7c65497a Mon Sep 17 00:00:00 2001 +From: Stafford Horne <shorne@gmail.com> +Date: Wed, 13 Oct 2021 19:43:30 +0900 +Subject: [PATCH] malloc: Fix malloc debug for 2.35 onwards + +The change 1e5a5866cb ("Remove malloc hooks [BZ #23328]") has broken +ports that are using GLIBC_2_35, like the new OpenRISC port I am working +on. + +The libc_malloc_debug.so library used to bring in the debug +infrastructure is currently essentially empty for GLIBC_2_35 ports like +mine causing mtrace tests to fail: + + cat sysdeps/unix/sysv/linux/or1k/shlib-versions + DEFAULT GLIBC_2.35 + ld=ld-linux-or1k.so.1 + + FAIL: posix/bug-glob2-mem + FAIL: posix/bug-regex14-mem + FAIL: posix/bug-regex2-mem + FAIL: posix/bug-regex21-mem + FAIL: posix/bug-regex31-mem + FAIL: posix/bug-regex36-mem + FAIL: malloc/tst-mtrace. + +The issue seems to be with the ifdefs in malloc/malloc-debug.c. The +ifdefs are currently essentially exluding all symbols for ports > 2.35. + +Removing the top level SHLIB_COMPAT ifdef allows things to just work. + +Fixes: 1e5a5866cb ("Remove malloc hooks [BZ #23328]") +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +Signed-off-by: wanghongliang <wanghongliang@loongson.cn> +--- + malloc/malloc-debug.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/malloc/malloc-debug.c b/malloc/malloc-debug.c +index 3d7e6d44fd..99aa95b145 100644 +--- a/malloc/malloc-debug.c ++++ b/malloc/malloc-debug.c +@@ -24,7 +24,6 @@ + #include <unistd.h> + #include <sys/param.h> + +-#if SHLIB_COMPAT (libc_malloc_debug, GLIBC_2_0, GLIBC_2_34) + /* Support only the glibc allocators. */ + extern void *__libc_malloc (size_t); + extern void __libc_free (void *); +@@ -669,4 +668,3 @@ compat_symbol (libc_malloc_debug, __free_hook, __free_hook, GLIBC_2_0); + compat_symbol (libc_malloc_debug, __malloc_hook, __malloc_hook, GLIBC_2_0); + compat_symbol (libc_malloc_debug, __realloc_hook, __realloc_hook, GLIBC_2_0); + compat_symbol (libc_malloc_debug, __memalign_hook, __memalign_hook, GLIBC_2_0); +-#endif +-- +2.31.1 + |