From c2d881be09b0697c663a49ceb6292cbe26aad3cf Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 10 Dec 2024 11:07:01 +0100 Subject: [PATCH] Remove check for working malloc_set_state This check was added to 'malloc_initialize_hook' in order to "insulate Emacs better from configuration screwups" (commit b4788b9394f3). With unexec gone, we no longer use 'malloc_set_state', and thus don't need this check. Note that this patch removes the last uses of the deprecated glibc functions 'malloc_set_state' and 'malloc_get_state' from our code. * src/alloc.c (malloc_initialize_hook) [DOUG_LEA_MALLOC]: Remove check for working 'malloc_set_state'. (alloc_unexec_pre) [DOUG_LEA_MALLOC]: Delete unused function. (alloc_unexec_post) [DOUG_LEA_MALLOC]: Delete function. (malloc_state_ptr) [DOUG_LEA_MALLOC]: Delete variable. * configure.ac (emacs_cv_var_doug_lea_malloc): Don't check for malloc_set_state and malloc_get_state. (cherry picked from commit 892be3b3d7a459808ee47709d0f4e7f65566a6e5) --- configure.ac | 5 ++--- src/alloc.c | 29 ----------------------------- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/configure.ac b/configure.ac index 84644090aaa..bd74490baa9 100644 --- a/configure.ac +++ b/configure.ac @@ -3206,8 +3206,7 @@ AC_CACHE_CHECK( [AC_LANG_PROGRAM( [[#include static void hook (void) {}]], - [[malloc_set_state (malloc_get_state ()); - __after_morecore_hook = hook; + [[__after_morecore_hook = hook; __malloc_initialize_hook = hook;]])], [emacs_cv_var_doug_lea_malloc=yes]) fi]) @@ -3255,7 +3254,7 @@ if test "$doug_lea_malloc" = "yes"; then fi AC_DEFINE([DOUG_LEA_MALLOC], [1], [Define to 1 if the system memory allocator is Doug Lea style, - with malloc hooks and malloc_set_state.]) + with malloc hooks.]) ## Use mmap directly for allocating larger buffers. ## FIXME this comes from src/s/{gnu,gnu-linux}.h: diff --git a/src/alloc.c b/src/alloc.c index 17970803b83..a3f0403eb02 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -209,10 +209,6 @@ enum { MALLOC_ALIGNMENT = max (2 * sizeof (size_t), alignof (long double)) }; # define MMAP_MAX_AREAS 100000000 -/* A pointer to the memory allocated that copies that static data - inside glibc's malloc. */ -static void *malloc_state_ptr; - /* Restore the dumped malloc state. Because malloc can be invoked even before main (e.g. by the dynamic linker), the dumped malloc state must be restored as early as possible using this special hook. */ @@ -247,10 +243,6 @@ malloc_initialize_hook (void) break; } } - - if (malloc_set_state (malloc_state_ptr) != 0) - emacs_abort (); - alloc_unexec_post (); } } @@ -266,27 +258,6 @@ voidfuncptr __MALLOC_HOOK_VOLATILE __malloc_initialize_hook EXTERNALLY_VISIBLE #endif #if defined DOUG_LEA_MALLOC - -/* Allocator-related actions to do just before and after unexec. */ - -void -alloc_unexec_pre (void) -{ -# ifdef DOUG_LEA_MALLOC - malloc_state_ptr = malloc_get_state (); - if (!malloc_state_ptr) - fatal ("malloc_get_state: %s", strerror (errno)); -# endif -} - -void -alloc_unexec_post (void) -{ -# ifdef DOUG_LEA_MALLOC - free (malloc_state_ptr); -# endif -} - # ifdef GNU_LINUX /* The address where the heap starts. */ -- 2.39.5