mirror of
https://github.com/ziglang/zig.git
synced 2025-12-27 00:23:22 +00:00
macho: move all unimplemented function stubs into ZigObject
This commit is contained in:
parent
6d0ba6dd10
commit
667af6511f
@ -2967,60 +2967,16 @@ pub fn writeCodeSignature(self: *MachO, code_sig: *CodeSignature) !void {
|
||||
try self.base.file.?.pwriteAll(buffer.items, offset);
|
||||
}
|
||||
|
||||
fn shrinkAtom(self: *MachO, atom_index: Atom.Index, new_block_size: u64) void {
|
||||
_ = self;
|
||||
_ = atom_index;
|
||||
_ = new_block_size;
|
||||
// TODO check the new capacity, and if it crosses the size threshold into a big enough
|
||||
// capacity, insert a free list node for it.
|
||||
}
|
||||
|
||||
fn growAtom(self: *MachO, atom_index: Atom.Index, new_atom_size: u64, alignment: Alignment) !u64 {
|
||||
_ = self;
|
||||
_ = atom_index;
|
||||
_ = new_atom_size;
|
||||
_ = alignment;
|
||||
@panic("TODO growAtom");
|
||||
}
|
||||
|
||||
pub fn updateFunc(self: *MachO, mod: *Module, func_index: InternPool.Index, air: Air, liveness: Liveness) !void {
|
||||
if (build_options.skip_non_native and builtin.object_format != .macho) {
|
||||
@panic("Attempted to compile for object format that was disabled by build configuration");
|
||||
}
|
||||
if (self.llvm_object) |llvm_object| return llvm_object.updateFunc(mod, func_index, air, liveness);
|
||||
|
||||
@panic("TODO updateFunc");
|
||||
return self.getZigObject().?.updateFunc(self, mod, func_index, air, liveness);
|
||||
}
|
||||
|
||||
pub fn lowerUnnamedConst(self: *MachO, typed_value: TypedValue, decl_index: InternPool.DeclIndex) !u32 {
|
||||
_ = self;
|
||||
_ = typed_value;
|
||||
_ = decl_index;
|
||||
|
||||
@panic("TODO lowerUnnamedConst");
|
||||
}
|
||||
|
||||
const LowerConstResult = union(enum) {
|
||||
ok: Atom.Index,
|
||||
fail: *Module.ErrorMsg,
|
||||
};
|
||||
|
||||
fn lowerConst(
|
||||
self: *MachO,
|
||||
name: []const u8,
|
||||
tv: TypedValue,
|
||||
required_alignment: InternPool.Alignment,
|
||||
sect_id: u8,
|
||||
src_loc: Module.SrcLoc,
|
||||
) !LowerConstResult {
|
||||
_ = self;
|
||||
_ = name;
|
||||
_ = tv;
|
||||
_ = required_alignment;
|
||||
_ = sect_id;
|
||||
_ = src_loc;
|
||||
|
||||
@panic("TODO lowerConst");
|
||||
return self.getZigObject().?.lowerUnnamedConst(self, typed_value, decl_index);
|
||||
}
|
||||
|
||||
pub fn updateDecl(self: *MachO, mod: *Module, decl_index: InternPool.DeclIndex) !void {
|
||||
@ -3028,55 +2984,12 @@ pub fn updateDecl(self: *MachO, mod: *Module, decl_index: InternPool.DeclIndex)
|
||||
@panic("Attempted to compile for object format that was disabled by build configuration");
|
||||
}
|
||||
if (self.llvm_object) |llvm_object| return llvm_object.updateDecl(mod, decl_index);
|
||||
|
||||
const tracy = trace(@src());
|
||||
defer tracy.end();
|
||||
|
||||
@panic("TODO updateDecl");
|
||||
}
|
||||
|
||||
fn updateLazySymbolAtom(
|
||||
self: *MachO,
|
||||
sym: link.File.LazySymbol,
|
||||
atom_index: Atom.Index,
|
||||
section_index: u8,
|
||||
) !void {
|
||||
_ = self;
|
||||
_ = sym;
|
||||
_ = atom_index;
|
||||
_ = section_index;
|
||||
@panic("TODO updateLazySymbolAtom");
|
||||
}
|
||||
|
||||
pub fn getOrCreateAtomForLazySymbol(self: *MachO, sym: link.File.LazySymbol) !Atom.Index {
|
||||
_ = self;
|
||||
_ = sym;
|
||||
@panic("TODO getOrCreateAtomForLazySymbol");
|
||||
}
|
||||
|
||||
pub fn getOrCreateAtomForDecl(self: *MachO, decl_index: InternPool.DeclIndex) !Atom.Index {
|
||||
_ = self;
|
||||
_ = decl_index;
|
||||
@panic("TODO getOrCreateAtomForDecl");
|
||||
}
|
||||
|
||||
fn getDeclOutputSection(self: *MachO, decl_index: InternPool.DeclIndex) u8 {
|
||||
_ = self;
|
||||
_ = decl_index;
|
||||
@panic("TODO getDeclOutputSection");
|
||||
}
|
||||
|
||||
fn updateDeclCode(self: *MachO, decl_index: InternPool.DeclIndex, code: []u8) !u64 {
|
||||
_ = self;
|
||||
_ = decl_index;
|
||||
_ = code;
|
||||
@panic("TODO updateDeclCode");
|
||||
return self.getZigObject().?.updateDecl(self, mod, decl_index);
|
||||
}
|
||||
|
||||
pub fn updateDeclLineNumber(self: *MachO, module: *Module, decl_index: InternPool.DeclIndex) !void {
|
||||
if (self.d_sym) |*d_sym| {
|
||||
try d_sym.dwarf.updateDeclLineNumber(module, decl_index);
|
||||
}
|
||||
if (self.llvm_object) |_| return;
|
||||
return self.getZigObject().?.updateDeclLineNumber(module, decl_index);
|
||||
}
|
||||
|
||||
pub fn updateExports(
|
||||
@ -3088,10 +3001,8 @@ pub fn updateExports(
|
||||
if (build_options.skip_non_native and builtin.object_format != .macho) {
|
||||
@panic("Attempted to compile for object format that was disabled by build configuration");
|
||||
}
|
||||
if (self.llvm_object) |llvm_object|
|
||||
return llvm_object.updateExports(mod, exported, exports);
|
||||
|
||||
@panic("TODO updateExports");
|
||||
if (self.llvm_object) |llvm_object| return llvm_object.updateExports(mod, exported, exports);
|
||||
return self.getZigObject().?.updateExports(self, mod, exported, exports);
|
||||
}
|
||||
|
||||
pub fn deleteDeclExport(
|
||||
@ -3100,20 +3011,12 @@ pub fn deleteDeclExport(
|
||||
name: InternPool.NullTerminatedString,
|
||||
) Allocator.Error!void {
|
||||
if (self.llvm_object) |_| return;
|
||||
_ = decl_index;
|
||||
_ = name;
|
||||
@panic("TODO deleteDeclExport");
|
||||
}
|
||||
|
||||
fn freeUnnamedConsts(self: *MachO, decl_index: InternPool.DeclIndex) void {
|
||||
_ = self;
|
||||
_ = decl_index;
|
||||
@panic("TODO freeUnnamedConst");
|
||||
return self.getZigObject().?.deleteDeclExport(self, decl_index, name);
|
||||
}
|
||||
|
||||
pub fn freeDecl(self: *MachO, decl_index: InternPool.DeclIndex) void {
|
||||
if (self.llvm_object) |llvm_object| return llvm_object.freeDecl(decl_index);
|
||||
@panic("TODO freeDecl");
|
||||
return self.getZigObject().?.freeDecl(decl_index);
|
||||
}
|
||||
|
||||
pub fn getDeclVAddr(self: *MachO, decl_index: InternPool.DeclIndex, reloc_info: link.File.RelocInfo) !u64 {
|
||||
@ -3127,25 +3030,16 @@ pub fn lowerAnonDecl(
|
||||
explicit_alignment: InternPool.Alignment,
|
||||
src_loc: Module.SrcLoc,
|
||||
) !codegen.Result {
|
||||
_ = self;
|
||||
_ = decl_val;
|
||||
_ = explicit_alignment;
|
||||
_ = src_loc;
|
||||
@panic("TODO lowerAnonDecl");
|
||||
return self.getZigObject().?.lowerAnonDecl(self, decl_val, explicit_alignment, src_loc);
|
||||
}
|
||||
|
||||
pub fn getAnonDeclVAddr(self: *MachO, decl_val: InternPool.Index, reloc_info: link.File.RelocInfo) !u64 {
|
||||
assert(self.llvm_object == null);
|
||||
_ = decl_val;
|
||||
_ = reloc_info;
|
||||
@panic("TODO getAnonDeclVAddr");
|
||||
return self.getZigObject().?.getAnonDeclVAddr(self, decl_val, reloc_info);
|
||||
}
|
||||
|
||||
pub fn getGlobalSymbol(self: *MachO, name: []const u8, lib_name: ?[]const u8) !u32 {
|
||||
_ = self;
|
||||
_ = name;
|
||||
_ = lib_name;
|
||||
@panic("TODO getGlobalSymbol");
|
||||
return self.getZigObject().?.getGlobalSymbol(self, name, lib_name);
|
||||
}
|
||||
|
||||
pub fn padToIdeal(actual_size: anytype) @TypeOf(actual_size) {
|
||||
|
||||
@ -33,19 +33,6 @@ fn addNlist(self: *ZigObject, allocator: Allocator) !Symbol.Index {
|
||||
return index;
|
||||
}
|
||||
|
||||
pub fn getDeclVAddr(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
reloc_info: link.File.RelocInfo,
|
||||
) !u64 {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_index;
|
||||
_ = reloc_info;
|
||||
@panic("TODO getDeclVAddr");
|
||||
}
|
||||
|
||||
pub fn resolveSymbols(self: *ZigObject, macho_file: *MachO) void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
@ -115,6 +102,145 @@ pub fn getInputSection(self: ZigObject, atom: Atom, macho_file: *MachO) macho.se
|
||||
return sect;
|
||||
}
|
||||
|
||||
pub fn getDeclVAddr(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
reloc_info: link.File.RelocInfo,
|
||||
) !u64 {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_index;
|
||||
_ = reloc_info;
|
||||
@panic("TODO getDeclVAddr");
|
||||
}
|
||||
|
||||
pub fn getAnonDeclVAddr(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
decl_val: InternPool.Index,
|
||||
reloc_info: link.File.RelocInfo,
|
||||
) !u64 {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_val;
|
||||
_ = reloc_info;
|
||||
@panic("TODO getAnonDeclVAddr");
|
||||
}
|
||||
|
||||
pub fn lowerAnonDecl(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
decl_val: InternPool.Index,
|
||||
explicit_alignment: InternPool.Alignment,
|
||||
src_loc: Module.SrcLoc,
|
||||
) !codegen.Result {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_val;
|
||||
_ = explicit_alignment;
|
||||
_ = src_loc;
|
||||
@panic("TODO lowerAnonDecl");
|
||||
}
|
||||
|
||||
pub fn freeDecl(self: *ZigObject, macho_file: *MachO, decl_index: InternPool.DeclIndex) void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_index;
|
||||
@panic("TODO freeDecl");
|
||||
}
|
||||
|
||||
pub fn updateFunc(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
mod: *Module,
|
||||
func_index: InternPool.Index,
|
||||
air: Air,
|
||||
liveness: Liveness,
|
||||
) !void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = mod;
|
||||
_ = func_index;
|
||||
_ = air;
|
||||
_ = liveness;
|
||||
@panic("TODO updateFunc");
|
||||
}
|
||||
|
||||
pub fn updateDecl(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
mod: *Module,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
) link.File.UpdateDeclError!void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = mod;
|
||||
_ = decl_index;
|
||||
@panic("TODO updateDecl");
|
||||
}
|
||||
|
||||
pub fn lowerUnnamedConst(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
typed_value: TypedValue,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
) !u32 {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = typed_value;
|
||||
_ = decl_index;
|
||||
@panic("TODO lowerUnnamedConst");
|
||||
}
|
||||
|
||||
pub fn updateExports(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
mod: *Module,
|
||||
exported: Module.Exported,
|
||||
exports: []const *Module.Export,
|
||||
) link.File.UpdateExportsError!void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = mod;
|
||||
_ = exported;
|
||||
_ = exports;
|
||||
@panic("TODO updateExports");
|
||||
}
|
||||
|
||||
/// Must be called only after a successful call to `updateDecl`.
|
||||
pub fn updateDeclLineNumber(
|
||||
self: *ZigObject,
|
||||
mod: *Module,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
) !void {
|
||||
_ = self;
|
||||
_ = mod;
|
||||
_ = decl_index;
|
||||
@panic("TODO updateDeclLineNumber");
|
||||
}
|
||||
|
||||
pub fn deleteDeclExport(
|
||||
self: *ZigObject,
|
||||
macho_file: *MachO,
|
||||
decl_index: InternPool.DeclIndex,
|
||||
name: InternPool.NullTerminatedString,
|
||||
) void {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = decl_index;
|
||||
_ = name;
|
||||
@panic("TODO deleteDeclExport");
|
||||
}
|
||||
|
||||
pub fn getGlobalSymbol(self: *ZigObject, macho_file: *MachO, name: []const u8, lib_name: ?[]const u8) !u32 {
|
||||
_ = self;
|
||||
_ = macho_file;
|
||||
_ = name;
|
||||
_ = lib_name;
|
||||
@panic("TODO getGlobalSymbol");
|
||||
}
|
||||
|
||||
pub fn fmtSymtab(self: *ZigObject, macho_file: *MachO) std.fmt.Formatter(formatSymtab) {
|
||||
return .{ .data = .{
|
||||
.self = self,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user