diff options
author | Roland McGrath <roland@gnu.org> | 2005-04-06 02:50:21 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-04-06 02:50:21 +0000 |
commit | 75a67c6432cb2387863012a701edc16690a69287 (patch) | |
tree | 695ce26520ec3580bc3f53301019f64b86f580c2 | |
parent | 65e9e91064766e909513dd4610f2bc98aff9f901 (diff) |
2005-03-18 Ulrich Drepper <drepper@redhat.com>
[BZ #821]
* elf/dl-fini.c (_dl_fini): Split sorting of the maps in separate
function _dl_sort_fini.
(_dl_sort_fini): New function.
* sysdeps/generic/ldsodefs.h: Declare _dl_sort_fini.
* elf/dl-close.c (_dl_close): Call _dl_sort_fini before running
destructors to call them in the right order.
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index ec68e1a565..ccd997cd89 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -783,6 +783,11 @@ extern void _dl_init (struct link_map *main_map, int argc, char **argv, initializer functions have completed. */ extern void _dl_fini (void) internal_function; +/* Sort array MAPS according to dependencies of the contained objects. */ +extern void _dl_sort_fini (struct link_map *l, struct link_map **maps, + size_t nmaps, char *used, Lmid_t ns) + internal_function; + /* The dynamic linker calls this function before and having changing any shared object mappings. The `r_state' member of `struct r_debug' says what change is taking place. This function's address is |