aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf/Object.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-07-24 22:06:12 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-07-30 10:00:50 +0200
commit494ae149e0a52c4afd71f6741379d4a7a9afe3f3 (patch)
tree96d2ca5cd12b65bfd4c2811b510e80d69d1eb0b2 /src/link/Elf/Object.zig
parent669f28594393e90e4d1aacd0d28f67ebe015b922 (diff)
downloadzig-494ae149e0a52c4afd71f6741379d4a7a9afe3f3.tar.gz
zig-494ae149e0a52c4afd71f6741379d4a7a9afe3f3.zip
elf: skip storing comdat group signature globally
Diffstat (limited to 'src/link/Elf/Object.zig')
-rw-r--r--src/link/Elf/Object.zig9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
index 08ad4e8378..649c6e0354 100644
--- a/src/link/Elf/Object.zig
+++ b/src/link/Elf/Object.zig
@@ -208,9 +208,9 @@ fn initAtoms(self: *Object, allocator: Allocator, handle: std.fs.File, elf_file:
const group_signature = blk: {
if (group_info_sym.st_name == 0 and group_info_sym.st_type() == elf.STT_SECTION) {
const sym_shdr = shdrs[group_info_sym.st_shndx];
- break :blk self.getString(sym_shdr.sh_name);
+ break :blk sym_shdr.sh_name;
}
- break :blk self.getString(group_info_sym.st_name);
+ break :blk group_info_sym.st_name;
};
const shndx = @as(u32, @intCast(i));
@@ -228,7 +228,10 @@ fn initAtoms(self: *Object, allocator: Allocator, handle: std.fs.File, elf_file:
const group_start = @as(u32, @intCast(self.comdat_group_data.items.len));
try self.comdat_group_data.appendUnalignedSlice(allocator, group_members[1..]);
- const gop = try elf_file.getOrCreateComdatGroupOwner(group_signature);
+ const gop = try elf_file.getOrCreateComdatGroupOwner(.{
+ .off = group_signature,
+ .file_index = self.index,
+ });
const comdat_group_index = try self.addComdatGroup(allocator);
const comdat_group = self.comdatGroup(comdat_group_index);
comdat_group.* = .{