* symfile.c (place_section): Correct retry logic.

This commit is contained in:
Daniel Jacobowitz 2006-02-20 15:02:10 +00:00
parent c52c689725
commit 3bd72c6f17
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2006-02-20 Daniel Jacobowitz <dan@codesourcery.com>
* symfile.c (place_section): Correct retry logic.
2006-02-19 Christopher Faylor <cgf@timesys.com>
* win32_nat.c (cygwin_load_start): New variable.

View File

@ -476,6 +476,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
struct place_section_arg *arg = obj;
CORE_ADDR *offsets = arg->offsets->offsets, start_addr;
int done;
ULONGEST align = ((ULONGEST) 1) << bfd_get_section_alignment (abfd, sect);
/* We are only interested in loadable sections. */
if ((bfd_get_section_flags (abfd, sect) & SEC_LOAD) == 0)
@ -486,11 +487,11 @@ place_section (bfd *abfd, asection *sect, void *obj)
return;
/* Otherwise, let's try to find a place for the section. */
start_addr = (arg->lowest + align - 1) & -align;
do {
asection *cur_sec;
ULONGEST align = 1 << bfd_get_section_alignment (abfd, sect);
start_addr = (arg->lowest + align - 1) & -align;
done = 1;
for (cur_sec = abfd->sections; cur_sec != NULL; cur_sec = cur_sec->next)
@ -524,7 +525,7 @@ place_section (bfd *abfd, asection *sect, void *obj)
start_addr = offsets[indx] + bfd_get_section_size (cur_sec);
start_addr = (start_addr + align - 1) & -align;
done = 0;
continue;
break;
}
/* Otherwise, we appear to be OK. So far. */