authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-07-20 06:29:24+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-07-22 12:06:02+02:00
log5d9fd5bcdeb9f7a1af50b0eaffd22b61f3e440a6
treeecf56a71194de36091ce7c6c109bd0a99142852d
parent617f89f0823d766f2276651fc1bf467f54a22d35

macho: remove stale code


1 files changed, 0 insertions(+), 81 deletions(-)

src/link/MachO.zig-81
......@@ -1285,53 +1285,6 @@ fn markLive(self: *MachO) void {
12851285 if (self.getInternalObject()) |obj| obj.markLive(self);
12861286}
12871287
1288fn resolveSyntheticSymbols(self: *MachO) !void {
1289 const internal = self.getInternalObject() orelse return;
1290
1291 if (!self.base.isDynLib()) {
1292 self.mh_execute_header_index = try internal.addSymbol("__mh_execute_header", self);
1293 const sym = self.getSymbol(self.mh_execute_header_index.?);
1294 sym.flags.@"export" = true;
1295 sym.flags.dyn_ref = true;
1296 sym.visibility = .global;
1297 } else {
1298 self.mh_dylib_header_index = try internal.addSymbol("__mh_dylib_header", self);
1299 }
1300
1301 self.dso_handle_index = try internal.addSymbol("___dso_handle", self);
1302 self.dyld_private_index = try internal.addSymbol("dyld_private", self);
1303
1304 {
1305 const gpa = self.base.comp.gpa;
1306 var boundary_symbols = std.AutoHashMap(Symbol.Index, void).init(gpa);
1307 defer boundary_symbols.deinit();
1308
1309 for (self.objects.items) |index| {
1310 const object = self.getFile(index).?.object;
1311 for (object.symbols.items, 0..) |sym_index, i| {
1312 const nlist = object.symtab.items(.nlist)[i];
1313 const name = self.getSymbol(sym_index).getName(self);
1314 if (!nlist.undf() or !nlist.ext()) continue;
1315 if (mem.startsWith(u8, name, "segment$start$") or
1316 mem.startsWith(u8, name, "segment$stop$") or
1317 mem.startsWith(u8, name, "section$start$") or
1318 mem.startsWith(u8, name, "section$stop$"))
1319 {
1320 _ = try boundary_symbols.put(sym_index, {});
1321 }
1322 }
1323 }
1324
1325 try self.boundary_symbols.ensureTotalCapacityPrecise(gpa, boundary_symbols.count());
1326
1327 var it = boundary_symbols.iterator();
1328 while (it.next()) |entry| {
1329 _ = try internal.addSymbol(self.getSymbol(entry.key_ptr.*).getName(self), self);
1330 self.boundary_symbols.appendAssumeCapacity(entry.key_ptr.*);
1331 }
1332 }
1333}
1334
13351288fn convertTentativeDefsAndResolveSpecialSymbols(self: *MachO) !void {
13361289 for (self.objects.items) |index| {
13371290 try self.getFile(index).?.object.convertTentativeDefinitions(self);
......@@ -1342,40 +1295,6 @@ fn convertTentativeDefsAndResolveSpecialSymbols(self: *MachO) !void {
13421295 }
13431296}
13441297
1345fn createObjcSections(self: *MachO) !void {
1346 const gpa = self.base.comp.gpa;
1347 var objc_msgsend_syms = std.AutoArrayHashMap(Symbol.Index, void).init(gpa);
1348 defer objc_msgsend_syms.deinit();
1349
1350 for (self.objects.items) |index| {
1351 const object = self.getFile(index).?.object;
1352
1353 for (object.symbols.items, 0..) |sym_index, i| {
1354 const nlist_idx = @as(Symbol.Index, @intCast(i));
1355 const nlist = object.symtab.items(.nlist)[nlist_idx];
1356 if (!nlist.ext()) continue;
1357 if (!nlist.undf()) continue;
1358
1359 const sym = self.getSymbol(sym_index);
1360 if (sym.getFile(self) != null) continue;
1361 if (mem.startsWith(u8, sym.getName(self), "_objc_msgSend$")) {
1362 _ = try objc_msgsend_syms.put(sym_index, {});
1363 }
1364 }
1365 }
1366
1367 for (objc_msgsend_syms.keys()) |sym_index| {
1368 const internal = self.getInternalObject().?;
1369 const sym = self.getSymbol(sym_index);
1370 _ = try internal.addSymbol(sym.getName(self), self);
1371 sym.visibility = .hidden;
1372 const name = eatPrefix(sym.getName(self), "_objc_msgSend$").?;
1373 const selrefs_index = try internal.addObjcMsgsendSections(name, self);
1374 try sym.addExtra(.{ .objc_selrefs = selrefs_index }, self);
1375 sym.flags.objc_stubs = true;
1376 }
1377}
1378
13791298pub fn dedupLiterals(self: *MachO) !void {
13801299 const tracy = trace(@src());
13811300 defer tracy.end();