aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-10-02 13:14:22 +0200
committerAndrew Kelley <andrew@ziglang.org>2024-10-09 12:38:48 -0700
commitcf2e462d91cf1e07f5aedbae404cce311de6b664 (patch)
tree6d7f93c71ed803dd60bf9678e4a001f68092be15 /src/link/Elf.zig
parent133aa709b07040838007ade90f9cfb1a5643fcff (diff)
downloadzig-cf2e462d91cf1e07f5aedbae404cce311de6b664.tar.gz
zig-cf2e462d91cf1e07f5aedbae404cce311de6b664.zip
elf: add some extra logging for created dynamic relocs
Diffstat (limited to 'src/link/Elf.zig')
-rw-r--r--src/link/Elf.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index fd7c54dd20..51987eb9cc 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -4834,6 +4834,7 @@ const RelaDyn = struct {
sym: u64 = 0,
type: u32,
addend: i64 = 0,
+ target: ?*const Symbol = null,
};
pub fn addRelaDyn(self: *Elf, opts: RelaDyn) !void {
@@ -4842,6 +4843,13 @@ pub fn addRelaDyn(self: *Elf, opts: RelaDyn) !void {
}
pub fn addRelaDynAssumeCapacity(self: *Elf, opts: RelaDyn) void {
+ relocs_log.debug(" {s}: [{x} => {d}({s})] + {x}", .{
+ relocation.fmtRelocType(opts.type, self.getTarget().cpu.arch),
+ opts.offset,
+ opts.sym,
+ if (opts.target) |sym| sym.name(self) else "",
+ opts.addend,
+ });
self.rela_dyn.appendAssumeCapacity(.{
.r_offset = opts.offset,
.r_info = (opts.sym << 32) | opts.type,
@@ -5772,6 +5780,7 @@ const assert = std.debug.assert;
const elf = std.elf;
const fs = std.fs;
const log = std.log.scoped(.link);
+const relocs_log = std.log.scoped(.link_relocs);
const state_log = std.log.scoped(.link_state);
const math = std.math;
const mem = std.mem;