From: Phillip Rulon Date: Fri, 8 Oct 1999 23:08:28 +0000 (+0000) Subject: (unexec): Don't get confused by a short section X-Git-Tag: emacs-pretest-21.0.90~6508 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f1aba5123374f06e8670874cf3e1d5400025b508;p=emacs.git (unexec): Don't get confused by a short section just before the bss section. --- diff --git a/src/unexelf.c b/src/unexelf.c index 7fa8eb00ce0..015522638f4 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -926,9 +926,15 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) >= OLD_SECTION_H (old_bss_index-1).sh_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #else - if (round_up (NEW_SECTION_H (nn).sh_offset, + /* The idea of this is that the bss section's sh_offset + may need rounding up to compare with new_data2_offset. + So we cannot simply compare the sh_offset. + However, another small section could exist just before + the bss section, and we need to know that is before. */ + if (round_up (NEW_SECTION_H (nn).sh_offset + + NEW_SECTION_H (nn).sh_size, OLD_SECTION_H (old_bss_index).sh_addralign) - >= new_data2_offset) + > new_data2_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #endif /* Any section that was originally placed after the section