From dfbbae4ca321070f0cce7bc3b619c953e1f72eb2 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Sun, 16 Jun 2002 20:48:46 +0000 Subject: [PATCH] * elf64-mmix.c (bpo_reloc_request_sort_fn): Use member bpo_reloc_no to break sort order ties, not address of items. --- bfd/ChangeLog | 5 +++++ bfd/elf64-mmix.c | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f732014ffd..3636adb012 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-06-16 Hans-Peter Nilsson + + * elf64-mmix.c (bpo_reloc_request_sort_fn): Use member + bpo_reloc_no to break sort order ties, not address of items. + 2002-06-16 John David Anglin * elf-hppa.h (elf_hppa_final_link): Fix formatting in comment. diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c index 55ef061d64..0dc6655f38 100644 --- a/bfd/elf64-mmix.c +++ b/bfd/elf64-mmix.c @@ -2226,8 +2226,12 @@ bpo_reloc_request_sort_fn (p1, p2) if (r1->value != r2->value) return r1->value > r2->value ? 1 : -1; - /* As a last re-sort, use the address so we get a stable sort. */ - return r1 > r2 ? 1 : (r1 < r2 ? -1 : 0); + /* As a last re-sort, use the relocation number, so we get a stable + sort. The *addresses* aren't stable since items are swapped during + sorting. It depends on the qsort implementation if this actually + happens. */ + return r1->bpo_reloc_no > r2->bpo_reloc_no + ? 1 : (r1->bpo_reloc_no < r2->bpo_reloc_no ? -1 : 0); } /* For debug use only. Dumps the global register allocations resulting -- 2.34.1