From: Nick Clifton Date: Wed, 1 Aug 2001 16:10:42 +0000 (+0000) Subject: Return zero only as the last step of qsort function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=00a7cdc55ae2984c6323667e947cdfbd4bba4d6d;p=binutils-gdb.git Return zero only as the last step of qsort function. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f451dde616e..71208e52c69 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2001-08-01 Adam Nemet + + * elf.c (elf_sort_sections): Return zero only as the last step. + 2001-08-01 Nick Clifton * config.bfd (arm-vxworks): Change name of define from VXWORKS to diff --git a/bfd/elf.c b/bfd/elf.c index 4e2d7ae8d99..8dc2f314544 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -2677,18 +2677,22 @@ elf_sort_sections (arg1, arg2) if (TOEND (sec1)) { if (TOEND (sec2)) - return sec1->target_index - sec2->target_index; + { + /* If the indicies are the same, do not return 0 + here, but continue to try the next comparison. */ + if (sec1->target_index - sec2->target_index != 0) + return sec1->target_index - sec2->target_index; + } else return 1; } - - if (TOEND (sec2)) + else if (TOEND (sec2)) return -1; #undef TOEND - /* Sort by size, to put zero sized sections before others at the - same address. */ + /* Sort by size, to put zero sized sections + before others at the same address. */ if (sec1->_raw_size < sec2->_raw_size) return -1;