[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