summaryrefslogtreecommitdiff
path: root/ldso/ldso
diff options
context:
space:
mode:
Diffstat (limited to 'ldso/ldso')
-rw-r--r--ldso/ldso/dl-elf.c17
-rw-r--r--ldso/ldso/ldso.c4
-rw-r--r--ldso/ldso/powerpc/elfinterp.c9
3 files changed, 4 insertions, 26 deletions
diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
index 80c8fe438..3e4e3482c 100644
--- a/ldso/ldso/dl-elf.c
+++ b/ldso/ldso/dl-elf.c
@@ -741,7 +741,8 @@ int _dl_fixup(struct dyn_elf *rpnt, int now_flag)
tpnt = rpnt->dyn;
#if defined (__SUPPORT_LD_DEBUG__)
- if(_dl_debug) _dl_dprintf(_dl_debug_file,"\nrelocation processing: %s", tpnt->libname);
+ if(_dl_debug && !(tpnt->init_flag & RELOCS_DONE))
+ _dl_dprintf(_dl_debug_file,"\nrelocation processing: %s\n", tpnt->libname);
#endif
if (unlikely(tpnt->dynamic_info[UNSUPPORTED_RELOC_TYPE])) {
@@ -784,20 +785,6 @@ int _dl_fixup(struct dyn_elf *rpnt, int now_flag)
}
}
- if (tpnt->init_flag & COPY_RELOCS_DONE)
- return goof;
- tpnt->init_flag |= COPY_RELOCS_DONE;
- goof += _dl_parse_copy_information(rpnt,
- tpnt->dynamic_info[DT_RELOC_TABLE_ADDR],
- tpnt->dynamic_info[DT_RELOC_TABLE_SIZE]);
-
-#if defined (__SUPPORT_LD_DEBUG__)
- if(_dl_debug) {
- _dl_dprintf(_dl_debug_file,"\nrelocation processing: %s", tpnt->libname);
- _dl_dprintf(_dl_debug_file,"; finished\n\n");
- }
-#endif
-
return goof;
}
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 02dd786f2..71905b9c0 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -759,14 +759,14 @@ next_lib2:
tpnt->rtld_flags = RTLD_NOW | RTLD_GLOBAL; /* Must not be LAZY */
#ifdef RERELOCATE_LDSO
/* Only rerelocate functions for now. */
- tpnt->init_flag = RELOCS_DONE | COPY_RELOCS_DONE;
+ tpnt->init_flag = RELOCS_DONE;
lpnt = (unsigned long *) (tpnt->dynamic_info[DT_PLTGOT] + load_addr);
# ifdef ALLOW_ZERO_PLTGOT
if (tpnt->dynamic_info[DT_PLTGOT])
# endif
INIT_GOT(lpnt, tpnt);
#else
- tpnt->init_flag = RELOCS_DONE | JMP_RELOCS_DONE | COPY_RELOCS_DONE;
+ tpnt->init_flag = RELOCS_DONE | JMP_RELOCS_DONE;
#endif
tpnt = NULL;
}
diff --git a/ldso/ldso/powerpc/elfinterp.c b/ldso/ldso/powerpc/elfinterp.c
index e959468ae..d154a18a4 100644
--- a/ldso/ldso/powerpc/elfinterp.c
+++ b/ldso/ldso/powerpc/elfinterp.c
@@ -477,12 +477,3 @@ int _dl_parse_relocation_information(struct dyn_elf *rpnt,
{
return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc);
}
-
-/* Should be a static inline instead, but that conflicts with ld_elf.h */
-int _dl_parse_copy_information(struct dyn_elf *rpnt,
- unsigned long rel_addr, unsigned long rel_size)
-{
- /* Not used! */
- return 0;
-}
-