* elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking

sh_size.
This commit is contained in:
Ian Lance Taylor 1995-03-07 17:25:07 +00:00
parent cc60ad636d
commit d211786089
2 changed files with 15 additions and 14 deletions

View File

@ -1,3 +1,8 @@
Tue Mar 7 12:23:47 1995 Ian Lance Taylor <ian@cygnus.com>
* elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
sh_size.
Mon Mar 6 23:31:36 1995 Doug Evans <dje@chestnut.cygnus.com>
* elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after

View File

@ -2261,28 +2261,24 @@ elf_sort_hdrs (arg1, arg2)
if ((hdr1->sh_flags & SHF_ALLOC) != 0)
{
int ret;
if ((hdr2->sh_flags & SHF_ALLOC) == 0)
return -1;
if (hdr1->sh_addr < hdr2->sh_addr)
return -1;
else if (hdr1->sh_addr > hdr2->sh_addr)
return 1;
if (hdr1->sh_size == 0)
{
if (hdr2->sh_size == 0)
{
/* Put !SHT_NOBITS sections before SHT_NOBITS ones.
The main loop in map_program_segments requires this. */
return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS);
}
else
return -1;
}
else if (hdr2->sh_size == 0)
return 1;
/* Put !SHT_NOBITS sections before SHT_NOBITS ones.
The main loop in map_program_segments requires this. */
return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS);
ret = (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS);
if (ret != 0)
return ret;
if (hdr1->sh_size == 0)
return -1;
else if (hdr2->sh_size == 0)
return 1;
return 0;
}
else
{