aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf/ZigModule.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-09-14 01:45:23 +0200
committerGitHub <noreply@github.com>2023-09-14 01:45:23 +0200
commit8fb4a4efbabbe3fe98521201eac41feee5a9a50a (patch)
tree398abef45faa8065836c6a5f8cad167ae8adb4ed /src/link/Elf/ZigModule.zig
parent223f62acbd32c04db3169906f33869f43e5258f7 (diff)
parent59a586a8785b8aea417824e5b6b8d6b8a1b2b695 (diff)
downloadzig-8fb4a4efbabbe3fe98521201eac41feee5a9a50a.tar.gz
zig-8fb4a4efbabbe3fe98521201eac41feee5a9a50a.zip
Merge pull request #17146 from ziglang/elf-linker
elf: upstream zld/ELF functionality, part 2
Diffstat (limited to 'src/link/Elf/ZigModule.zig')
-rw-r--r--src/link/Elf/ZigModule.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/link/Elf/ZigModule.zig b/src/link/Elf/ZigModule.zig
index 46a382abf9..98496a2c38 100644
--- a/src/link/Elf/ZigModule.zig
+++ b/src/link/Elf/ZigModule.zig
@@ -148,6 +148,15 @@ pub fn scanRelocs(self: *ZigModule, elf_file: *Elf, undefs: anytype) !void {
}
}
+pub fn resetGlobals(self: *ZigModule, elf_file: *Elf) void {
+ for (self.globals()) |index| {
+ const global = elf_file.symbol(index);
+ const off = global.name_offset;
+ global.* = .{};
+ global.name_offset = off;
+ }
+}
+
pub fn updateSymtabSize(self: *ZigModule, elf_file: *Elf) void {
for (self.locals()) |local_index| {
const local = elf_file.symbol(local_index);