authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-21 20:50:26-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-23 16:27:39-07:00
log3deb9ab30abcc418758b0365d2c0596a610555b4
treec04cbfbe45352eadf633aa1ded2bc7c791a16b68
parent336466c9dfcc5547c90dfe364e02a79576862e7c

use unstable sort in relocatable writeSyntheticSections

unstable sort is always better if you have no ties

1 files changed, 2 insertions(+), 1 deletions(-)

src/link/Elf/relocatable.zig+2-1
......@@ -382,11 +382,12 @@ fn writeSyntheticSections(elf_file: *Elf) !void {
382382 const SortRelocs = struct {
383383 pub fn lessThan(ctx: void, lhs: elf.Elf64_Rela, rhs: elf.Elf64_Rela) bool {
384384 _ = ctx;
385 assert(lhs.r_offset != rhs.r_offset);
385386 return lhs.r_offset < rhs.r_offset;
386387 }
387388 };
388389
389 mem.sort(elf.Elf64_Rela, relocs.items, {}, SortRelocs.lessThan);
390 mem.sortUnstable(elf.Elf64_Rela, relocs.items, {}, SortRelocs.lessThan);
390391
391392 log.debug("writing {s} from 0x{x} to 0x{x}", .{
392393 elf_file.getShString(shdr.sh_name),