aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-09-02 08:58:49 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-09-04 13:34:26 +0200
commit6a50a0f0ed3902b46afeda9c4a5b7f10cec60dba (patch)
treed532ed7648285dbb0b7ffa9ad006c78e9064361a /src
parentf87a7251a3f9ae7259c64f458823117370071943 (diff)
downloadzig-6a50a0f0ed3902b46afeda9c4a5b7f10cec60dba.tar.gz
zig-6a50a0f0ed3902b46afeda9c4a5b7f10cec60dba.zip
elf: update osec index for section chunks in objects
Diffstat (limited to 'src')
-rw-r--r--src/link/Elf.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 8963da645f..752d0082c8 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -3411,6 +3411,7 @@ fn shdrRank(self: *Elf, shndx: u32) u8 {
return 0xf9;
}
},
+ elf.SHT_X86_64_UNWIND => return 0xf0,
elf.SHT_NOBITS => return if (flags & elf.SHF_TLS != 0) 0xf5 else 0xf7,
elf.SHT_SYMTAB => return 0xfa,
@@ -3503,6 +3504,12 @@ fn resetShdrIndexes(self: *Elf, backlinks: []const u32) void {
}
}
+ for (self.objects.items) |index| {
+ for (self.file(index).?.object.section_chunks.items) |*chunk| {
+ chunk.output_section_index = backlinks[chunk.output_section_index];
+ }
+ }
+
for (self.comdat_group_sections.items) |*cg| {
cg.shndx = backlinks[cg.shndx];
}