diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-09 19:51:01 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-24 12:34:38 +0100 |
| commit | dd0addab1fe11b019e83c0050eedfa0ec67eb408 (patch) | |
| tree | 852e59e811627cb8fb13f4091c5e1532fccda706 /src/codegen.zig | |
| parent | 2f94dc939e8acf0dab4cf1f3cf01b132ac6fdd3c (diff) | |
| download | zig-dd0addab1fe11b019e83c0050eedfa0ec67eb408.tar.gz zig-dd0addab1fe11b019e83c0050eedfa0ec67eb408.zip | |
macho: get the ball rolling!
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 1ac8626a79..f9263c2a69 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -984,20 +984,22 @@ fn genDeclRef( } return GenResult.mcv(.{ .load_symbol = sym.esym_index }); } else if (lf.cast(link.File.MachO)) |macho_file| { + _ = macho_file; if (is_extern) { // TODO make this part of getGlobalSymbol - const name = zcu.intern_pool.stringToSlice(decl.name); - const sym_name = try std.fmt.allocPrint(gpa, "_{s}", .{name}); - defer gpa.free(sym_name); - const global_index = try macho_file.addUndefined(sym_name, .{ .add_got = true }); - return GenResult.mcv(.{ .load_got = link.File.MachO.global_symbol_bit | global_index }); - } - const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index); - const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?; - if (is_threadlocal) { - return GenResult.mcv(.{ .load_tlv = sym_index }); + // const name = zcu.intern_pool.stringToSlice(decl.name); + // const sym_name = try std.fmt.allocPrint(gpa, "_{s}", .{name}); + // defer gpa.free(sym_name); + // const global_index = try macho_file.addUndefined(sym_name, .{ .add_got = true }); + // return GenResult.mcv(.{ .load_got = link.File.MachO.global_symbol_bit | global_index }); } - return GenResult.mcv(.{ .load_got = sym_index }); + // const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index); + // const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?; + // if (is_threadlocal) { + // return GenResult.mcv(.{ .load_tlv = sym_index }); + // } + // return GenResult.mcv(.{ .load_got = sym_index }); + @panic("TODO genDeclRef"); } else if (lf.cast(link.File.Coff)) |coff_file| { if (is_extern) { const name = zcu.intern_pool.stringToSlice(decl.name); |
