]> git.pld-linux.org Git - packages/gcc.git/blob - gcc32-fde-merge-compat.patch
- one source wan't for this release, changed it, corrected md5sum,
[packages/gcc.git] / gcc32-fde-merge-compat.patch
1 2001-10-31  Jakub Jelinek  <jakub@redhat.com>
2
3         * frame.c (fde_merge): Choose just one from FDEs for the
4         same function in erratic array.
5
6 --- gcc/unwind-dw2-fde.c.jj     Fri Jan 11 14:01:21 2002
7 +++ gcc/unwind-dw2-fde.c        Tue Jan 15 15:58:27 2002
8 @@ -535,7 +535,7 @@ fde_merge (struct object *ob, fde_compar
9            struct fde_vector *v1, struct fde_vector *v2)
10  {
11    size_t i1, i2;
12 -  fde * fde2;
13 +  fde * fde2 = NULL;
14  
15    i2 = v2->count;
16    if (i2 > 0)
17 @@ -544,6 +544,17 @@ fde_merge (struct object *ob, fde_compar
18        do
19         {
20           i2--;
21 +         if (fde2 != NULL && fde_compare (ob, v2->array[i2], fde2) == 0)
22 +           {
23 +             /* Some linkers (e.g. 2.10.91.0.2 or 2.11.92.0.8) resolve
24 +                section relative relocations against removed linkonce
25 +                section to corresponding location in the output linkonce
26 +                section. Always use the earliest fde in that case.  */
27 +             fde2 = v2->array[i2];
28 +             v1->array[i1+i2+1] = fde2;
29 +             v1->array[i1+i2] = fde2;
30 +             continue;
31 +           }
32           fde2 = v2->array[i2];
33           while (i1 > 0 && fde_compare (ob, v1->array[i1-1], fde2) > 0)
34             {
This page took 0.089412 seconds and 3 git commands to generate.