summaryrefslogtreecommitdiff
path: root/malloc-Fix-malloc-debug-for-2.35-onwards.patch
diff options
context:
space:
mode:
Diffstat (limited to 'malloc-Fix-malloc-debug-for-2.35-onwards.patch')
-rw-r--r--malloc-Fix-malloc-debug-for-2.35-onwards.patch57
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
+