]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/glibc/glibc-rh1019916.patch
pakfire: use correct tree on x86_64.
[ipfire-2.x.git] / src / patches / glibc / glibc-rh1019916.patch
CommitLineData
fe875de8
MT
1commit 48b67d71ec677d1b3168e52a68b644784cead604
2Author: Andreas Schwab <schwab@redhat.com>
3Date: Wed Sep 14 12:12:25 2011 +0200
4
5 Also relocate in dependency order when doing symbol dependency testing
6
7diff --git a/elf/rtld.c b/elf/rtld.c
8index 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)