* elfxx-ia64.c: (elfNN_ia64_modify_segment_map): Properly scan

PT_IA_64_UNWIND segments for a given section.
This commit is contained in:
Alan Modra 2002-07-19 01:10:28 +00:00
parent 0f815cdf7e
commit 40c97fc6d1
2 changed files with 12 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2002-07-19 Alan Modra <amodra@bigpond.net.au>
* elfxx-ia64.c: (elfNN_ia64_modify_segment_map): Properly scan
PT_IA_64_UNWIND segments for a given section.
2002-07-17 H.J. Lu <hjl@gnu.org> 2002-07-17 H.J. Lu <hjl@gnu.org>
* Makefile.am: Fix a typo. * Makefile.am: Fix a typo.
@ -27,7 +32,7 @@
2002-07-17 Ian Rickards <irickard@arm.com> 2002-07-17 Ian Rickards <irickard@arm.com>
* dwarf2.c (concat_filename): If we can't establish the directory * dwarf2.c (concat_filename): If we can't establish the directory
just return the filename. just return the filename.
2002-07-16 Moritz Jodeit <moritz@jodeit.org> 2002-07-16 Moritz Jodeit <moritz@jodeit.org>

View File

@ -1369,8 +1369,6 @@ elfNN_ia64_modify_segment_map (abfd)
struct elf_segment_map *m, **pm; struct elf_segment_map *m, **pm;
Elf_Internal_Shdr *hdr; Elf_Internal_Shdr *hdr;
asection *s; asection *s;
boolean unwind_found;
asection *unwind_sec;
/* If we need a PT_IA_64_ARCHEXT segment, it must come before /* If we need a PT_IA_64_ARCHEXT segment, it must come before
all PT_LOAD segments. */ all PT_LOAD segments. */
@ -1415,20 +1413,16 @@ elfNN_ia64_modify_segment_map (abfd)
for (m = elf_tdata (abfd)->segment_map; m != NULL; m = m->next) for (m = elf_tdata (abfd)->segment_map; m != NULL; m = m->next)
if (m->p_type == PT_IA_64_UNWIND) if (m->p_type == PT_IA_64_UNWIND)
{ {
int i;
/* Look through all sections in the unwind segment /* Look through all sections in the unwind segment
for a match since there may be multiple sections for a match since there may be multiple sections
to a segment. */ to a segment. */
for (i = m->count - 1; i >= 0; --i)
if (m->sections[i] == s)
break;
unwind_sec = m->sections[0]; if (i >= 0)
unwind_found = false;
while (unwind_sec != NULL && !unwind_found)
{
if (unwind_sec == s)
unwind_found = true;
else
unwind_sec = unwind_sec -> next;
}
if (unwind_found)
break; break;
} }