From fcf70d4114db9ff7923f5dfeb3fea6e2d623e5c2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 24 Jul 1999 19:45:13 +0000 Subject: Update. 1999-07-24 Ulrich Drepper * elf/dl-fini.c: Handle DT_FINI_ARRAY. * elf/link.h (struct link_map): Remove l_init_running. Add l_runcount and l_initcount. * elf/dl-init.c: Handle DT_INIT_ARRAY. * elf/dynamic-link.h: Change parameters. Now only get link_map pointer. Calculate l_initcount. * elf/link.h (struct link_map): Add l_runpath_dirs. * elf/dynamic-link.h: If RUNPATH is given, set RPATH to NULL. * elf/dl-load.c: Pretty print. (decompose_rpath): Take new parameter with info from where the path comes. Pass it the fillin_rpath. (_dl_init_paths): Initialize l_runpath_dirs. (_dl_map_object): Don't search using RPATHs if object has RUNPATH. Search using RUNPATH after LD_LIBRARY_PATH. * elf/dl-support.c: Adjust comment. * elf/rtld.c: Adjust help message. --- elf/link.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'elf/link.h') diff --git a/elf/link.h b/elf/link.h index 5e9d7a8868..cda739df99 100644 --- a/elf/link.h +++ b/elf/link.h @@ -163,7 +163,6 @@ struct link_map } l_type:2; unsigned int l_relocated:1; /* Nonzero if object's relocations done. */ unsigned int l_init_called:1; /* Nonzero if DT_INIT function called. */ - unsigned int l_init_running:1; /* Nonzero while DT_INIT function runs. */ unsigned int l_global:1; /* Nonzero if object in _dl_global_scope. */ unsigned int l_reserved:2; /* Reserved for internal use. */ @@ -202,6 +201,16 @@ struct link_map /* Nonzero if the data structure pointed to by `l_phdr' is allocated. */ int l_phdr_allocated; + + /* Counter for running constructors and destructors. */ + unsigned int l_runcount; + + /* Number of constructors. We compute this during loading to avoid + duplication of this during the possibly many calls to _dl_init_next. */ + unsigned int l_initcount; + + /* Collected information about own RUNPATH directories. */ + struct r_search_path_elem **l_runpath_dirs; }; #endif /* link.h */ -- cgit 1.4.1