aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-10-15 15:38:16 +0200
committerJakub Konka <kubkon@jakubkonka.com>2023-10-16 19:33:06 +0200
commit7b2cbcf0fe6dcaea7ee108c13422f6d00ed4bc8e (patch)
tree1926dba17efdbd327ac737551b68f8e649c5f06d /src
parent45197ea7adfa34806b549263c06b988b5e35d48c (diff)
downloadzig-7b2cbcf0fe6dcaea7ee108c13422f6d00ed4bc8e.tar.gz
zig-7b2cbcf0fe6dcaea7ee108c13422f6d00ed4bc8e.zip
codegen+elf: check if extern is a variable ref
Diffstat (limited to 'src')
-rw-r--r--src/codegen.zig7
-rw-r--r--src/link/Elf.zig1
-rw-r--r--src/link/Elf/Object.zig2
3 files changed, 5 insertions, 5 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index de5ff9651a..54ed9c0cf5 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -892,9 +892,12 @@ fn genDeclRef(
if (bin_file.cast(link.File.Elf)) |elf_file| {
if (is_extern) {
- const variable = decl.getOwnedVariable(mod).?;
const name = mod.intern_pool.stringToSlice(decl.name);
- const lib_name = mod.intern_pool.stringToSliceUnwrap(variable.lib_name);
+ // TODO audit this
+ const lib_name = if (decl.getOwnedVariable(mod)) |ov|
+ mod.intern_pool.stringToSliceUnwrap(ov.lib_name)
+ else
+ null;
return GenResult.mcv(.{ .load_actual_got = try elf_file.getGlobalSymbol(name, lib_name) });
}
const sym_index = try elf_file.getOrCreateMetadataForDecl(decl_index);
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index d27e3c7f3b..589a13d0ad 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -4597,7 +4597,6 @@ fn allocateAllocSections(self: *Elf) error{OutOfMemory}!void {
for (slice, 0..) |*shdr, ii| {
if (shdr.sh_type == elf.SHT_NOBITS) continue;
off = alignment.@"align"(cover.start + ii, shdr.sh_addralign, off);
- // off = mem.alignForward(u64, off, shdr.sh_addralign);
shdr.sh_offset = off;
off += shdr.sh_size;
try self.phdr_to_shdr_table.putNoClobber(gpa, @intCast(ii + cover.start), phndx);
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
index 3c42a0e349..173934db86 100644
--- a/src/link/Elf/Object.zig
+++ b/src/link/Elf/Object.zig
@@ -214,8 +214,6 @@ fn initOutputSection(self: Object, elf_file: *Elf, shdr: ElfShdr) error{OutOfMem
break :blk prefix;
}
}
- if (std.mem.eql(u8, name, ".tcommon")) break :blk ".tbss";
- if (std.mem.eql(u8, name, ".common")) break :blk ".bss";
break :blk name;
};
const @"type" = switch (shdr.sh_type) {