mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 16:21:06 +00:00
Relocate objects in dependency order
This commit is contained in:
parent
fbeb5f4db1
commit
2bc174332b
@ -1,3 +1,7 @@
|
|||||||
|
2011-08-30 Andreas Schwab <schwab@redhat.com>
|
||||||
|
|
||||||
|
* elf/rtld.c (dl_main): Relocate objects in dependency order.
|
||||||
|
|
||||||
2011-08-29 Jiri Olsa <jolsa@redhat.com>
|
2011-08-29 Jiri Olsa <jolsa@redhat.com>
|
||||||
|
|
||||||
* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi
|
* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Fix cfi
|
||||||
|
12
elf/rtld.c
12
elf/rtld.c
@ -2255,13 +2255,12 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
|||||||
/* If we are profiling we also must do lazy reloaction. */
|
/* If we are profiling we also must do lazy reloaction. */
|
||||||
GLRO(dl_lazy) |= consider_profiling;
|
GLRO(dl_lazy) |= consider_profiling;
|
||||||
|
|
||||||
struct link_map *l = main_map;
|
|
||||||
while (l->l_next)
|
|
||||||
l = l->l_next;
|
|
||||||
|
|
||||||
HP_TIMING_NOW (start);
|
HP_TIMING_NOW (start);
|
||||||
do
|
unsigned i = main_map->l_searchlist.r_nlist;
|
||||||
|
while (i-- > 0)
|
||||||
{
|
{
|
||||||
|
struct link_map *l = main_map->l_initfini[i];
|
||||||
|
|
||||||
/* While we are at it, help the memory handling a bit. We have to
|
/* While we are at it, help the memory handling a bit. We have to
|
||||||
mark some data structures as allocated with the fake malloc()
|
mark some data structures as allocated with the fake malloc()
|
||||||
implementation in ld.so. */
|
implementation in ld.so. */
|
||||||
@ -2280,10 +2279,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
|||||||
/* Add object to slot information data if necessasy. */
|
/* Add object to slot information data if necessasy. */
|
||||||
if (l->l_tls_blocksize != 0 && tls_init_tp_called)
|
if (l->l_tls_blocksize != 0 && tls_init_tp_called)
|
||||||
_dl_add_to_slotinfo (l);
|
_dl_add_to_slotinfo (l);
|
||||||
|
|
||||||
l = l->l_prev;
|
|
||||||
}
|
}
|
||||||
while (l);
|
|
||||||
HP_TIMING_NOW (stop);
|
HP_TIMING_NOW (stop);
|
||||||
|
|
||||||
HP_TIMING_DIFF (relocate_time, start, stop);
|
HP_TIMING_DIFF (relocate_time, start, stop);
|
||||||
|
Loading…
Reference in New Issue
Block a user