[PATCH v2] malloc: Fix malloc debug for 2.35 onwards
Siddhesh Poyarekar
siddhesh@gotplt.org
Wed Nov 17 03:44:15 GMT 2021
On 11/17/21 03:02, Stafford Horne wrote:
> 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.
LGTM. I verified that the only change to the build in x86_64 is in the
debug sections to account for change in line numbers.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
>
> Fixes: 1e5a5866cb ("Remove malloc hooks [BZ #23328]")
> Cc: Siddhesh Poyarekar <siddhesh@gotplt.org>
> ---
>
> Changes since v2:
> - Just remove SHLIB_COMPAT, using compat_symbol seems to do what
> Siddhesh was explaining he wanted to do.
>
> 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
>
More information about the Libc-alpha
mailing list