aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-10-20 20:57:56 +0200
committerJakub Konka <kubkon@jakubkonka.com>2022-10-22 07:59:24 +0200
commitf8cbe29a17e17edf6679feb0d582f59ed4be7d7f (patch)
treec5a47838be79bb0df426ef6f3997c0e0ec0315bb /src
parent93cc5496e1cca17ac8bc766bbb6aaec96ebb3588 (diff)
downloadzig-f8cbe29a17e17edf6679feb0d582f59ed4be7d7f.tar.gz
zig-f8cbe29a17e17edf6679feb0d582f59ed4be7d7f.zip
macho: fix incorrect lookup of symbols when calculating subtractors
Diffstat (limited to 'src')
-rw-r--r--src/link/MachO/ZldAtom.zig6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/link/MachO/ZldAtom.zig b/src/link/MachO/ZldAtom.zig
index ea173b73ad..270dd2d4a7 100644
--- a/src/link/MachO/ZldAtom.zig
+++ b/src/link/MachO/ZldAtom.zig
@@ -498,8 +498,9 @@ fn resolveRelocsArm64(
atom.file,
});
+ const sym_index = reverse_lookup[rel.r_symbolnum];
const sym_loc = SymbolWithLoc{
- .sym_index = rel.r_symbolnum,
+ .sym_index = sym_index,
.file = atom.file,
};
const sym = zld.getSymbol(sym_loc);
@@ -783,8 +784,9 @@ fn resolveRelocsX86(
atom.file,
});
+ const sym_index = reverse_lookup[rel.r_symbolnum];
const sym_loc = SymbolWithLoc{
- .sym_index = rel.r_symbolnum,
+ .sym_index = sym_index,
.file = atom.file,
};
const sym = zld.getSymbol(sym_loc);