diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-03-19 07:22:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-03-19 07:22:23 +0000 |
commit | c3381f3eb21b3660c8854e9bada5e7bd201a40af (patch) | |
tree | f6611e40528d1538584411b0cdc94855c0e09b38 /sysdeps/generic | |
parent | bb4bb82b13533eee4dfe09e21a23a150d0d3ee8a (diff) | |
download | glibc-c3381f3eb21b3660c8854e9bada5e7bd201a40af.tar.gz glibc-c3381f3eb21b3660c8854e9bada5e7bd201a40af.tar.xz glibc-c3381f3eb21b3660c8854e9bada5e7bd201a40af.zip |
* 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.
Diffstat (limited to 'sysdeps/generic')
-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 a3cef20251..dd1b2c8345 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -892,6 +892,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 |