aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-08-06 22:28:38 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-08-07 10:21:03 +0200
commit89db24ec6d6195cc10f17bf21dd9bf23e6ff1bf1 (patch)
treed07d4fdbc63acb4d68ffc02969f10dfaad98637d /src/link/Elf
parente99818c602f7e2f75c62be7c4329688c8fa5afe1 (diff)
downloadzig-89db24ec6d6195cc10f17bf21dd9bf23e6ff1bf1.tar.gz
zig-89db24ec6d6195cc10f17bf21dd9bf23e6ff1bf1.zip
elf: fix .eh_frame calc in relocatable mode
Diffstat (limited to 'src/link/Elf')
-rw-r--r--src/link/Elf/eh_frame.zig6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/link/Elf/eh_frame.zig b/src/link/Elf/eh_frame.zig
index 30f35b16d8..f090cf0820 100644
--- a/src/link/Elf/eh_frame.zig
+++ b/src/link/Elf/eh_frame.zig
@@ -145,10 +145,10 @@ pub const Cie = struct {
if (cie_rel.r_addend != other_rel.r_addend) return false;
const cie_object = elf_file.file(cie.file_index).?.object;
+ const cie_ref = cie_object.resolveSymbol(cie_rel.r_sym(), elf_file);
const other_object = elf_file.file(other.file_index).?.object;
- const cie_sym = cie_object.symbols.items[cie_rel.r_sym()];
- const other_sym = other_object.symbols.items[other_rel.r_sym()];
- if (!std.mem.eql(u8, std.mem.asBytes(&cie_sym), std.mem.asBytes(&other_sym))) return false;
+ const other_ref = other_object.resolveSymbol(other_rel.r_sym(), elf_file);
+ if (!cie_ref.eql(other_ref)) return false;
}
return true;
}