diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-05-19 07:08:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-05-19 07:08:23 +0000 |
commit | df94b6412e0628cd577da0ce5626358a3967ee44 (patch) | |
tree | 3b969d3e4175fe3a72f824c482d8c9f9a3b3bf3e /elf/dl-support.c | |
parent | 2acd01acb10d0c0113f87bf7e787e0854498269d (diff) | |
download | glibc-df94b6412e0628cd577da0ce5626358a3967ee44.tar.gz glibc-df94b6412e0628cd577da0ce5626358a3967ee44.tar.xz glibc-df94b6412e0628cd577da0ce5626358a3967ee44.zip |
* 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.
Diffstat (limited to 'elf/dl-support.c')
-rw-r--r-- | elf/dl-support.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/elf/dl-support.c b/elf/dl-support.c index c7479dc639..cecb603ae6 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1996-2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -132,6 +132,9 @@ int (*_dl_make_stack_executable_hook) (void **) internal_function = _dl_make_stack_executable; +/* Function in libpthread to wait for termination of lookups. */ +void (*_dl_wait_lookup_done) (void); + #ifdef NEED_DL_SYSINFO /* Needed for improved syscall handling on at least x86/Linux. */ uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT; |