* elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
sh_size.
This commit is contained in:
parent
cc60ad636d
commit
d211786089
2 changed files with 15 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue