From 40c97fc6d18713f6c97d16539555f6d6ab825c1e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 19 Jul 2002 01:10:28 +0000 Subject: [PATCH] * elfxx-ia64.c: (elfNN_ia64_modify_segment_map): Properly scan PT_IA_64_UNWIND segments for a given section. --- bfd/ChangeLog | 7 ++++++- bfd/elfxx-ia64.c | 18 ++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6128b86ac0e..db137f94caa 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-07-19 Alan Modra + + * 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 * Makefile.am: Fix a typo. @@ -27,7 +32,7 @@ 2002-07-17 Ian Rickards - * 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. 2002-07-16 Moritz Jodeit diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 108cdf06641..b63cfb0c27a 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -1369,8 +1369,6 @@ elfNN_ia64_modify_segment_map (abfd) struct elf_segment_map *m, **pm; Elf_Internal_Shdr *hdr; asection *s; - boolean unwind_found; - asection *unwind_sec; /* If we need a PT_IA_64_ARCHEXT segment, it must come before 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) if (m->p_type == PT_IA_64_UNWIND) { + int i; + /* Look through all sections in the unwind segment for a match since there may be multiple sections to a segment. */ + for (i = m->count - 1; i >= 0; --i) + if (m->sections[i] == s) + break; - unwind_sec = m->sections[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) + if (i >= 0) break; } -- 2.30.2