authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-05 08:08:29+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-08-07 10:21:02+02:00
log0a198789f14f56dc55e6006e243b36402e3c20fc
tree0ae6cca1fca8c0f0e2520e290c40cf7fdfb91bfa
parent137d43c0ea77d5cc21040eadbd38fdfd945a3216

elf: scan LinkerDefined obj for symbol indirection too


1 files changed, 3 insertions(+), 5 deletions(-)

src/link/Elf.zig+3-5
......@@ -2021,11 +2021,6 @@ fn scanRelocs(self: *Elf) !void {
20212021 undefs.deinit();
20222022 }
20232023
2024 var objects = try std.ArrayList(File.Index).initCapacity(gpa, self.objects.items.len + 1);
2025 defer objects.deinit();
2026 if (self.zigObjectPtr()) |zo| objects.appendAssumeCapacity(zo.index);
2027 objects.appendSliceAssumeCapacity(self.objects.items);
2028
20292024 var has_reloc_errors = false;
20302025 if (self.zigObjectPtr()) |zo| {
20312026 zo.asFile().scanRelocs(self, &undefs) catch |err| switch (err) {
......@@ -2063,6 +2058,9 @@ fn scanRelocs(self: *Elf) !void {
20632058 for (self.shared_objects.items) |index| {
20642059 try self.file(index).?.createSymbolIndirection(self);
20652060 }
2061 if (self.linkerDefinedPtr()) |obj| {
2062 try obj.asFile().createSymbolIndirection(self);
2063 }
20662064 if (self.got.flags.needs_tlsld) {
20672065 log.debug("program needs TLSLD", .{});
20682066 try self.got.addTlsLdSymbol(self);