Message ID | bd7ec4292a698ad867c64673c2f17049e2fb070b.1601569371.git.fweimer@redhat.com |
---|---|
State | New |
Headers | show |
Series | glibc-hwcaps support | expand |
On 01/10/2020 13:31, Florian Weimer via Libc-alpha wrote: > In some cases, it is difficult to determine the kind of malloc > based on the execution context, so a function to determine that > is helpful. LGTM, thanks. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > elf/dl-minimal.c | 8 ++++++++ > include/rtld-malloc.h | 4 ++++ > 2 files changed, 12 insertions(+) > > diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c > index 7c64e24c87..dc79f02458 100644 > --- a/elf/dl-minimal.c > +++ b/elf/dl-minimal.c > @@ -59,6 +59,14 @@ __rtld_malloc_init_stubs (void) > __rtld_realloc = &rtld_realloc; > } > > +bool > +__rtld_malloc_is_full (void) > +{ > + /* The caller assumes that there is an active malloc. */ > + assert (__rtld_malloc != NULL); > + return __rtld_malloc != &rtld_malloc; > +} > + The 'full' is somewhat confusing, maybe 'complete'? > /* Lookup NAME at VERSION in the scope of MATCH. */ > static void * > lookup_malloc_symbol (struct link_map *main_map, const char *name, > diff --git a/include/rtld-malloc.h b/include/rtld-malloc.h > index b026a3270c..54f53f7888 100644 > --- a/include/rtld-malloc.h > +++ b/include/rtld-malloc.h > @@ -66,6 +66,10 @@ realloc (void *ptr, size_t size) > implementation. */ > void __rtld_malloc_init_stubs (void) attribute_hidden; > > +/* Return false if the active malloc is the ld.so minimal malloc, true > + if it is the full implementation from libc.so. */ > +_Bool __rtld_malloc_is_full (void) attribute_hidden; > + > /* Called shortly before the final self-relocation (when RELRO > variables are still writable) to activate the real malloc > implementation. MAIN_MAP is the link map of the executable. */ >
* Adhemerval Zanella via Libc-alpha: > On 01/10/2020 13:31, Florian Weimer via Libc-alpha wrote: >> In some cases, it is difficult to determine the kind of malloc >> based on the execution context, so a function to determine that >> is helpful. > > LGTM, thanks. > > Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Thanks, pushed as: commit 72d36ffd7db55ae599f4c77feb0eae25a0f3714e Author: Florian Weimer <fweimer@redhat.com> Date: Thu Oct 8 10:57:09 2020 +0200 elf: Implement __rtld_malloc_is_complete In some cases, it is difficult to determine the kind of malloc based on the execution context, so a function to determine that is helpful. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Florian
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index 7c64e24c87..dc79f02458 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -59,6 +59,14 @@ __rtld_malloc_init_stubs (void) __rtld_realloc = &rtld_realloc; } +bool +__rtld_malloc_is_full (void) +{ + /* The caller assumes that there is an active malloc. */ + assert (__rtld_malloc != NULL); + return __rtld_malloc != &rtld_malloc; +} + /* Lookup NAME at VERSION in the scope of MATCH. */ static void * lookup_malloc_symbol (struct link_map *main_map, const char *name, diff --git a/include/rtld-malloc.h b/include/rtld-malloc.h index b026a3270c..54f53f7888 100644 --- a/include/rtld-malloc.h +++ b/include/rtld-malloc.h @@ -66,6 +66,10 @@ realloc (void *ptr, size_t size) implementation. */ void __rtld_malloc_init_stubs (void) attribute_hidden; +/* Return false if the active malloc is the ld.so minimal malloc, true + if it is the full implementation from libc.so. */ +_Bool __rtld_malloc_is_full (void) attribute_hidden; + /* Called shortly before the final self-relocation (when RELRO variables are still writable) to activate the real malloc implementation. MAIN_MAP is the link map of the executable. */