diff options
author | Filippo Arcidiacono <filippo.arcidiacono@st.com> | 2010-08-02 17:23:35 +0200 |
---|---|---|
committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2010-09-17 16:13:17 +0200 |
commit | a33796043bdef5345bc00a528c942f91a87af8e9 (patch) | |
tree | d69b340439feac78601648c29efb34d9b889e5e8 /ldso/ldso/dl-hash.c | |
parent | 02f56b3ae9f620528c3c1bb42662b4499d19f383 (diff) |
ldso: Add runtime prelink support
Added runtime prelink support to be able to run a prelinked
application; at process startup only the conflicts will be relocated.
This speed up the startup time.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'ldso/ldso/dl-hash.c')
-rw-r--r-- | ldso/ldso/dl-hash.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ldso/ldso/dl-hash.c b/ldso/ldso/dl-hash.c index 2e2111fa9..f0683c60f 100644 --- a/ldso/ldso/dl-hash.c +++ b/ldso/ldso/dl-hash.c @@ -145,7 +145,11 @@ struct elf_resolve *_dl_add_elf_hash_table(const char *libname, hash_addr += tpnt->nbucket; tpnt->chains = hash_addr; } +#ifdef __LDSO_PRELINK_SUPPORT__ + tpnt->loadaddr = dynamic_info[DT_GNU_PRELINKED_IDX] ? 0 : loadaddr; +#else tpnt->loadaddr = loadaddr; +#endif tpnt->mapaddr = DL_RELOC_ADDR(loadaddr, 0); for (i = 0; i < DYNAMIC_SIZE; i++) tpnt->dynamic_info[i] = dynamic_info[i]; |