]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/glibc/glibc-rh1019916.patch
lcdproc: Update to 0.5.7
[ipfire-2.x.git] / src / patches / glibc / glibc-rh1019916.patch
1 commit 48b67d71ec677d1b3168e52a68b644784cead604
2 Author: Andreas Schwab <schwab@redhat.com>
3 Date: Wed Sep 14 12:12:25 2011 +0200
4
5 Also relocate in dependency order when doing symbol dependency testing
6
7 diff --git a/elf/rtld.c b/elf/rtld.c
8 index 764140d..324d979 100644
9 --- a/elf/rtld.c
10 +++ b/elf/rtld.c
11 @@ -2027,24 +2027,21 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
12 {
13 /* We have to do symbol dependency testing. */
14 struct relocate_args args;
15 - struct link_map *l;
16 + unsigned int i;
17
18 args.reloc_mode = GLRO(dl_lazy) ? RTLD_LAZY : 0;
19
20 - l = main_map;
21 - while (l->l_next != NULL)
22 - l = l->l_next;
23 - do
24 + i = main_map->l_searchlist.r_nlist;
25 + while (i-- > 0)
26 {
27 + struct link_map *l = main_map->l_initfini[i];
28 if (l != &GL(dl_rtld_map) && ! l->l_faked)
29 {
30 args.l = l;
31 _dl_receive_error (print_unresolved, relocate_doit,
32 &args);
33 }
34 - l = l->l_prev;
35 }
36 - while (l != NULL);
37
38 if ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
39 && rtld_multiple_ref)