public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v4 00/10] Remove malloc hooks
@ 2021-07-02 11:38 Siddhesh Poyarekar
  2021-07-02 11:38 ` [PATCH v4 01/10] Drop source dependencies on hooks.c and arena.c Siddhesh Poyarekar
                   ` (10 more replies)
  0 siblings, 11 replies; 35+ messages in thread
From: Siddhesh Poyarekar @ 2021-07-02 11:38 UTC (permalink / raw)
  To: libc-alpha; +Cc: dj, carlos, fweimer

This patchset removes the malloc hooks __malloc_hook, __free_hook,
__realloc_hook and __memalign_hook from the API and leaves compatibility
symbols so that existing applications can continue to link to them.  The
reading and execution of the hooks has been moved to a DSO
libmalloc_compathooks.so, which can be preloaded for applications that
need it.  By default these hooks no longer have any effect in the
library.

Further, the __morecore, __morecore_after_hook and __default_morecore
hooks have also been moved to compat symbols and removed from the API.
Existing applications will continue to link to them but they won't have
any effect on malloc behaviour.

To enable this, the MALLOC_CHECK_, mcheck() and mtrace() hooks have been
weaned away from hooks.  In the process, some mcheck() failures have
been fixed and the overall behaviour is now simpler to follow.  Finally,
tr_break and mallwatch symbols have been deprecated and are not used
anywhere.  Users are advised to use gdb watchpoints and conditional
breakpoints to debug malloc internals since they ought to provide
equivalent functionality.

Changes from v3:
- Remove source file dependencies
- Commit mcheck tests

Changes from v2:
- Move hooks dependencies to malloc.o{,sS}

Changes from v1:

- Added makefile dependencies for the new hooks files
- Fixed memset call in calloc debugging hooks
- Added the tr_break deprecation patch and mcheck test patch to this
  series

Siddhesh Poyarekar (10):
  Drop source dependencies on hooks.c and arena.c
  mtrace: Deprecate mallwatch and tr_break
  Move glibc.malloc.check implementation into its own file
  malloc: Move malloc hook references to hooks.c
  glibc.malloc.check: Wean away from malloc hooks
  mcheck: Wean away from malloc hooks
  mtrace: Wean away from malloc hooks
  Remove malloc hooks
  Remove __after_morecore_hook
  Remove __morecore and __default_morecore

 Makeconfig                                    |   2 +-
 NEWS                                          |  18 +
 include/malloc.h                              |  11 +-
 include/stdlib.h                              |   3 -
 malloc/Makefile                               |  23 +-
 malloc/Versions                               |   3 +
 malloc/arena.c                                |  26 +-
 malloc/hooks.c                                | 545 +++++++-----------
 malloc/malloc-check.c                         | 376 ++++++++++++
 malloc/malloc-compathooks.c                   | 166 ++++++
 malloc/malloc-internal.h                      |   6 +
 malloc/malloc.c                               | 235 ++++----
 malloc/malloc.h                               |  27 -
 malloc/mcheck-hooks.c                         | 411 +++++++++++++
 malloc/mcheck-init.c                          |  14 +-
 malloc/mcheck.c                               | 369 +-----------
 malloc/morecore.c                             |  15 +-
 malloc/mtrace-hooks.c                         | 137 +++++
 malloc/mtrace.c                               | 276 +--------
 manual/memory.texi                            | 191 +-----
 sysdeps/mach/hurd/i386/libc.abilist           |   1 +
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   1 +
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   1 +
 sysdeps/unix/sysv/linux/arc/libc.abilist      |   1 +
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   1 +
 .../sysv/linux/m68k/coldfire/libc.abilist     |   1 +
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   1 +
 .../sysv/linux/microblaze/be/libc.abilist     |   1 +
 .../sysv/linux/microblaze/le/libc.abilist     |   1 +
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   1 +
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   1 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   1 +
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   1 +
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   1 +
 .../powerpc/powerpc32/nofpu/libc.abilist      |   1 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   1 +
 .../linux/powerpc/powerpc64/le/libc.abilist   |   1 +
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |   1 +
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   1 +
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   1 +
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   1 +
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   1 +
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   1 +
 .../sysv/linux/sparc/sparc32/libc.abilist     |   1 +
 .../sysv/linux/sparc/sparc64/libc.abilist     |   1 +
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   1 +
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   1 +
 53 files changed, 1547 insertions(+), 1340 deletions(-)
 create mode 100644 malloc/malloc-check.c
 create mode 100644 malloc/malloc-compathooks.c
 create mode 100644 malloc/mcheck-hooks.c
 create mode 100644 malloc/mtrace-hooks.c

-- 
2.31.1


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

end of thread, other threads:[~2021-07-02 21:47 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-02 11:38 [PATCH v4 00/10] Remove malloc hooks Siddhesh Poyarekar
2021-07-02 11:38 ` [PATCH v4 01/10] Drop source dependencies on hooks.c and arena.c Siddhesh Poyarekar
2021-07-02 12:12   ` Andreas Schwab
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 02/10] mtrace: Deprecate mallwatch and tr_break Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 20:37   ` Tulio Magno Quites Machado Filho
2021-07-02 20:42     ` Adhemerval Zanella
2021-07-02 20:46       ` Siddhesh Poyarekar
2021-07-02 20:56         ` Tulio Magno Quites Machado Filho
2021-07-02 21:03           ` Florian Weimer
2021-07-02 21:46             ` [COMMITTED] mtrace: Add attribute nocommon to mallwatch Tulio Magno Quites Machado Filho
2021-07-02 20:43     ` [PATCH v4 02/10] mtrace: Deprecate mallwatch and tr_break Florian Weimer
2021-07-02 20:47       ` Siddhesh Poyarekar
2021-07-02 11:38 ` [PATCH v4 03/10] Move glibc.malloc.check implementation into its own file Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 04/10] malloc: Move malloc hook references to hooks.c Siddhesh Poyarekar
2021-07-02 19:07   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 05/10] glibc.malloc.check: Wean away from malloc hooks Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 06/10] mcheck: " Siddhesh Poyarekar
2021-07-02 18:34   ` Carlos O'Donell
2021-07-02 18:46     ` Siddhesh Poyarekar
2021-07-02 11:38 ` [PATCH v4 07/10] mtrace: " Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 08/10] Remove " Siddhesh Poyarekar
2021-07-02 18:48   ` Carlos O'Donell
2021-07-02 19:06     ` Siddhesh Poyarekar
2021-07-02 11:38 ` [PATCH v4 09/10] Remove __after_morecore_hook Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 11:38 ` [PATCH v4 10/10] Remove __morecore and __default_morecore Siddhesh Poyarekar
2021-07-02 19:06   ` Carlos O'Donell
2021-07-02 19:05 ` [PATCH v4 00/10] Remove malloc hooks Carlos O'Donell
2021-07-02 19:15   ` Siddhesh Poyarekar
2021-07-02 19:33     ` Siddhesh Poyarekar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).