From df94b6412e0628cd577da0ce5626358a3967ee44 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 19 May 2007 07:08:23 +0000 Subject: * elf/dl-close.c (_dl_close_worker): When removing object from global scope, wait for all lookups to finish afterwards. * elf/dl-open.c (add_to_global): When global scope array must grow, allocate a new one and free old array only after all lookups finish. * elf/dl-runtime.c (_dl_fixup): Protect using global scope. (_dl_lookup_symbol_x): Likewise. * elf/dl-support.c: Define _dl_wait_lookup_done. * sysdeps/generic/ldsodefs.h (struct rtld_global): Add _dl_wait_lookup_done. --- sysdeps/generic/ldsodefs.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sysdeps/generic/ldsodefs.h') diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index a9d20b2150..5205c41493 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -486,6 +486,8 @@ struct rtld_global EXTERN void (*_dl_init_static_tls) (struct link_map *); + EXTERN void (*_dl_wait_lookup_done) (void); + #ifdef SHARED }; # define __rtld_global_attribute__ -- cgit 1.4.1