authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-10-19 10:55:00+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-10-22 07:59:23+02:00
log04a590a171c68570be1b2371617d747efbda7f1f
treedcd6a02cb13f27f16bbbca7c453690c7a6da6493
parentd57639a30802ac9b42d8528c466f7b3123dbc469

macho: remove unused nlist flags


2 files changed, 2 insertions(+), 19 deletions(-)

src/link/MachO.zig+2-17
......@@ -55,8 +55,6 @@ pub const SearchStrategy = enum {
5555 dylibs_first,
5656};
5757
58pub const N_DESC_GCED: u16 = @bitCast(u16, @as(i16, -1));
59
6058const Section = struct {
6159 header: macho.section_64,
6260 segment_index: u8,
......@@ -3602,7 +3600,6 @@ fn collectExportData(self: *MachO, trie: *Trie) !void {
36023600
36033601 if (sym.undf()) continue;
36043602 if (!sym.ext()) continue;
3605 if (sym.n_desc == N_DESC_GCED) continue;
36063603
36073604 const sym_name = self.getSymbolName(global);
36083605 log.debug(" (putting '{s}' defined at 0x{x})", .{ sym_name, sym.n_value });
......@@ -3850,7 +3847,6 @@ fn writeSymtab(self: *MachO, lc: *macho.symtab_command) !SymtabCtx {
38503847
38513848 for (self.locals.items) |sym, sym_id| {
38523849 if (sym.n_strx == 0) continue; // no name, skip
3853 if (sym.n_desc == N_DESC_GCED) continue; // GCed, skip
38543850 const sym_loc = SymbolWithLoc{ .sym_index = @intCast(u32, sym_id), .file = null };
38553851 if (self.symbolIsTemp(sym_loc)) continue; // local temp symbol, skip
38563852 if (self.getGlobal(self.getSymbolName(sym_loc)) != null) continue; // global symbol is either an export or import, skip
......@@ -3863,7 +3859,6 @@ fn writeSymtab(self: *MachO, lc: *macho.symtab_command) !SymtabCtx {
38633859 for (self.globals.items) |global| {
38643860 const sym = self.getSymbol(global);
38653861 if (sym.undf()) continue; // import, skip
3866 if (sym.n_desc == N_DESC_GCED) continue; // GCed, skip
38673862 var out_sym = sym;
38683863 out_sym.n_strx = try self.strtab.insert(gpa, self.getSymbolName(global));
38693864 try exports.append(out_sym);
......@@ -3966,8 +3961,6 @@ fn writeDysymtab(self: *MachO, ctx: SymtabCtx, lc: *macho.dysymtab_command) !voi
39663961 stubs.reserved1 = 0;
39673962 for (self.stubs.items) |entry| {
39683963 if (entry.sym_index == 0) continue;
3969 const atom_sym = entry.getSymbol(self);
3970 if (atom_sym.n_desc == N_DESC_GCED) continue;
39713964 const target_sym = self.getSymbol(entry.target);
39723965 assert(target_sym.undf());
39733966 try writer.writeIntLittle(u32, iundefsym + ctx.imports_table.get(entry.target).?);
......@@ -3979,8 +3972,6 @@ fn writeDysymtab(self: *MachO, ctx: SymtabCtx, lc: *macho.dysymtab_command) !voi
39793972 got.reserved1 = nstubs;
39803973 for (self.got_entries.items) |entry| {
39813974 if (entry.sym_index == 0) continue;
3982 const atom_sym = entry.getSymbol(self);
3983 if (atom_sym.n_desc == N_DESC_GCED) continue;
39843975 const target_sym = self.getSymbol(entry.target);
39853976 if (target_sym.undf()) {
39863977 try writer.writeIntLittle(u32, iundefsym + ctx.imports_table.get(entry.target).?);
......@@ -3995,8 +3986,6 @@ fn writeDysymtab(self: *MachO, ctx: SymtabCtx, lc: *macho.dysymtab_command) !voi
39953986 la_symbol_ptr.reserved1 = nstubs + ngot_entries;
39963987 for (self.stubs.items) |entry| {
39973988 if (entry.sym_index == 0) continue;
3998 const atom_sym = entry.getSymbol(self);
3999 if (atom_sym.n_desc == N_DESC_GCED) continue;
40003989 const target_sym = self.getSymbol(entry.target);
40013990 assert(target_sym.undf());
40023991 try writer.writeIntLittle(u32, iundefsym + ctx.imports_table.get(entry.target).?);
......@@ -4594,7 +4583,7 @@ pub fn logSections(self: *MachO) void {
45944583 }
45954584}
45964585
4597fn logSymAttributes(sym: macho.nlist_64, buf: *[9]u8) []const u8 {
4586fn logSymAttributes(sym: macho.nlist_64, buf: *[4]u8) []const u8 {
45984587 mem.set(u8, buf[0..4], '_');
45994588 mem.set(u8, buf[4..], ' ');
46004589 if (sym.sect()) {
......@@ -4613,14 +4602,11 @@ fn logSymAttributes(sym: macho.nlist_64, buf: *[9]u8) []const u8 {
46134602 if (sym.undf()) {
46144603 buf[3] = 'u';
46154604 }
4616 if (sym.n_desc == N_DESC_GCED) {
4617 mem.copy(u8, buf[5..], "DEAD");
4618 }
46194605 return buf[0..];
46204606}
46214607
46224608pub fn logSymtab(self: *MachO) void {
4623 var buf: [9]u8 = undefined;
4609 var buf: [4]u8 = undefined;
46244610
46254611 log.debug("symtab:", .{});
46264612 for (self.locals.items) |sym, sym_id| {
......@@ -4648,7 +4634,6 @@ pub fn logSymtab(self: *MachO) void {
46484634 log.debug("GOT entries:", .{});
46494635 for (self.got_entries.items) |entry, i| {
46504636 const atom_sym = entry.getSymbol(self);
4651 if (atom_sym.n_desc == N_DESC_GCED) continue;
46524637 const target_sym = self.getSymbol(entry.target);
46534638 if (target_sym.undf()) {
46544639 log.debug(" {d}@{x} => import('{s}')", .{
src/link/MachO/DebugSymbols.zig-2
......@@ -477,7 +477,6 @@ fn writeSymtab(self: *DebugSymbols, lc: *macho.symtab_command) !void {
477477
478478 for (self.base.locals.items) |sym, sym_id| {
479479 if (sym.n_strx == 0) continue; // no name, skip
480 if (sym.n_desc == MachO.N_DESC_GCED) continue; // GCed, skip
481480 const sym_loc = MachO.SymbolWithLoc{ .sym_index = @intCast(u32, sym_id), .file = null };
482481 if (self.base.symbolIsTemp(sym_loc)) continue; // local temp symbol, skip
483482 if (self.base.getGlobal(self.base.getSymbolName(sym_loc)) != null) continue; // global symbol is either an export or import, skip
......@@ -492,7 +491,6 @@ fn writeSymtab(self: *DebugSymbols, lc: *macho.symtab_command) !void {
492491 for (self.base.globals.items) |global| {
493492 const sym = self.base.getSymbol(global);
494493 if (sym.undf()) continue; // import, skip
495 if (sym.n_desc == MachO.N_DESC_GCED) continue; // GCed, skip
496494 var out_sym = sym;
497495 out_sym.n_strx = try self.strtab.insert(gpa, self.base.getSymbolName(global));
498496 try exports.append(out_sym);