From 486452affbac684db739b7fcca1e84e8a7ce33d1 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 24 Jan 2024 09:34:15 +0100 Subject: manual, NEWS: Document malloc side effect of dynamic TLS changes The increased malloc subsystem usage is a side effect of commit d2123d68275acc0f061e73d5f86ca504e0d5a344 ("elf: Fix slow tls access after dlopen [BZ #19924]"). Reviewed-by: Szabolcs Nagy --- manual/memory.texi | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'manual') diff --git a/manual/memory.texi b/manual/memory.texi index 258fdbd3a0..fb875f4c3c 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -1815,6 +1815,14 @@ using shared object dependencies or @code{LD_PRELOAD}. For static linking, the @code{malloc} replacement library must be linked in before linking against @code{libc.a} (explicitly or implicitly). +Care must be taken not to use functionality from @theglibc{} that uses +@code{malloc} internally. For example, the @code{fopen}, +@code{opendir}, @code{dlopen}, and @code{pthread_setspecific} functions +currently use the @code{malloc} subsystem internally. If the +replacement @code{malloc} or its dependencies use thread-local storage +(TLS), it must use the initial-exec TLS model, and not one of the +dynamic TLS variants. + @strong{Note:} Failure to provide a complete set of replacement functions (that is, all the functions used by the application, @theglibc{}, and other linked-in libraries) can lead to static linking -- cgit 1.4.1