[PATCH] malloc: Fix malloc init order

Wilco Dijkstra Wilco.Dijkstra@arm.com
Tue May 27 14:00:19 GMT 2025


__ptmalloc_init was called too early in __libc_early_init: it uses __libc_initial
which is not set yet.  Fix this by moving initialization to the end of __libc_early_init.

Passes regress, OK for commit?

---

diff --git a/elf/libc_early_init.c b/elf/libc_early_init.c
index 24b99d82fe28f4c324800dbc665fb0e9c702c228..4da170a7ca3a9a6c6ec41c983fc9fc0e33e63be8 100644
--- a/elf/libc_early_init.c
+++ b/elf/libc_early_init.c
@@ -33,9 +33,6 @@ _Bool __libc_initial;
 void
 __libc_early_init (_Bool initial)
 {
-  /* Initialize system malloc.  */
-  call_function_static_weak (__ptmalloc_init);
-
   /* Initialize ctype data.  */
   __ctype_init ();
 
@@ -53,4 +50,7 @@ __libc_early_init (_Bool initial)
 #if ENABLE_ELISION_SUPPORT
   __lll_elision_init ();
 #endif
+
+  /* Initialize system malloc (needs __libc_initial to be set).  */
+  call_function_static_weak (__ptmalloc_init);
 }



More information about the Libc-alpha mailing list