diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-09-03 21:17:10 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-09-03 21:17:10 +0000 |
commit | b54df7ec544e86c33e534a67bb9e38250467df4e (patch) | |
tree | 3c608eddd9f6f8a99acb83b6ce83c6e58f2cf389 /ldso/include | |
parent | bec90733b9de6e7d75b8bda19b3f0a7117e6b78d (diff) |
First attempt to fix the INIT/FINI ordering. Fingers crossed :)
Diffstat (limited to 'ldso/include')
-rw-r--r-- | ldso/include/dl-hash.h | 2 | ||||
-rw-r--r-- | ldso/include/ldso.h | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/ldso/include/dl-hash.h b/ldso/include/dl-hash.h index a224012c4..a30c78afb 100644 --- a/ldso/include/dl-hash.h +++ b/ldso/include/dl-hash.h @@ -8,6 +8,7 @@ struct dyn_elf{ struct elf_resolve * dyn; struct dyn_elf * next_handle; /* Used by dlopen et al. */ + struct init_fini_list *init_fini; struct dyn_elf * next; struct dyn_elf * prev; }; @@ -57,6 +58,7 @@ struct elf_resolve{ #define RELOCS_DONE 2 #define JMP_RELOCS_DONE 4 #define INIT_FUNCS_CALLED 8 +#define FINI_FUNCS_CALLED 16 extern struct dyn_elf * _dl_symbol_tables; extern struct elf_resolve * _dl_loaded_modules; diff --git a/ldso/include/ldso.h b/ldso/include/ldso.h index 8248b1574..37ec439cb 100644 --- a/ldso/include/ldso.h +++ b/ldso/include/ldso.h @@ -31,6 +31,13 @@ #include <dl-elf.h> #include <dl-hash.h> +/* For INIT/FINI handling */ +struct init_fini_list { + struct init_fini_list *next; + struct init_fini_list *prev; + struct elf_resolve *tpnt; +}; + /* Global variables used within the shared library loader */ extern char *_dl_library_path; /* Where we look for libraries */ extern char *_dl_preload; /* Things to be loaded before the libs */ |