]> git.pld-linux.org Git - packages/glibc.git/blame - glibc-pr12892.patch
- release 6
[packages/glibc.git] / glibc-pr12892.patch
CommitLineData
7af6ebb2
PS
1From d45c60c2feb38d95e7ad95af6edb39a6d5afba81 Mon Sep 17 00:00:00 2001
2From: Andreas Schwab <schwab@redhat.com>
3Date: Wed, 19 Oct 2011 17:13:56 +0200
4Subject: [PATCH] Preserve link time dependencies over relocation dependencies
5
6--- a/elf/dl-fini.c
7+++ b/elf/dl-fini.c
8@@ -100,7 +100,17 @@ _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
9 /* Look through the relocation dependencies of the object. */
10 while (m-- > 0)
11 if (__builtin_expect (relmaps[m] == thisp, 0))
12- goto move;
13+ {
14+ /* If a cycle exists with a link time dependency,
15+ preserve the latter. */
16+ struct link_map **runp = thisp->l_initfini;
17+ if (runp != NULL)
18+ while (*runp != NULL)
19+ if (__builtin_expect (*runp++ == maps[k], 0))
20+ goto ignore;
21+ goto move;
22+ }
23+ ignore:;
24 }
25
26 --k;
27
This page took 0.307399 seconds and 4 git commands to generate.