| ... | ... | @@ -253,58 +253,58 @@ pub fn link(self: *Zld, files: []const []const u8, output: Output, args: LinkArg |
| 253 | 253 | self.allocateLinkeditSegment(); |
| 254 | 254 | try self.allocateTextBlocks(); |
| 255 | 255 | |
| 256 | | log.warn("locals", .{}); |
| 257 | | for (self.locals.items) |sym, id| { |
| 258 | | log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 259 | | } |
| 256 | // log.warn("locals", .{}); |
| 257 | // for (self.locals.items) |sym, id| { |
| 258 | // log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 259 | // } |
| 260 | 260 | |
| 261 | | log.warn("globals", .{}); |
| 262 | | for (self.globals.items) |sym, id| { |
| 263 | | log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 264 | | } |
| 261 | // log.warn("globals", .{}); |
| 262 | // for (self.globals.items) |sym, id| { |
| 263 | // log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 264 | // } |
| 265 | 265 | |
| 266 | | log.warn("tentatives", .{}); |
| 267 | | for (self.tentatives.items) |sym, id| { |
| 268 | | log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 269 | | } |
| 266 | // log.warn("tentatives", .{}); |
| 267 | // for (self.tentatives.items) |sym, id| { |
| 268 | // log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 269 | // } |
| 270 | 270 | |
| 271 | | log.warn("undefines", .{}); |
| 272 | | for (self.undefs.items) |sym, id| { |
| 273 | | log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 274 | | } |
| 271 | // log.warn("undefines", .{}); |
| 272 | // for (self.undefs.items) |sym, id| { |
| 273 | // log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 274 | // } |
| 275 | 275 | |
| 276 | | log.warn("imports", .{}); |
| 277 | | for (self.imports.items) |sym, id| { |
| 278 | | log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 279 | | } |
| 276 | // log.warn("imports", .{}); |
| 277 | // for (self.imports.items) |sym, id| { |
| 278 | // log.warn(" {d}: {s}, {}", .{ id, self.getString(sym.n_strx), sym }); |
| 279 | // } |
| 280 | 280 | |
| 281 | | log.warn("symbol resolver", .{}); |
| 282 | | for (self.symbol_resolver.keys()) |key| { |
| 283 | | log.warn(" {s} => {}", .{ key, self.symbol_resolver.get(key).? }); |
| 284 | | } |
| 285 | | |
| 286 | | log.warn("mappings", .{}); |
| 287 | | for (self.objects.items) |object, id| { |
| 288 | | const object_id = @intCast(u16, id); |
| 289 | | log.warn(" in object {s}", .{object.name.?}); |
| 290 | | for (object.symtab.items) |sym, sym_id| { |
| 291 | | if (object.symbol_mapping.get(@intCast(u32, sym_id))) |local_id| { |
| 292 | | log.warn(" | {d} => {d}", .{ sym_id, local_id }); |
| 293 | | } else { |
| 294 | | log.warn(" | {d} no local mapping for {s}", .{ sym_id, object.getString(sym.n_strx) }); |
| 295 | | } |
| 296 | | } |
| 297 | | } |
| 281 | // log.warn("symbol resolver", .{}); |
| 282 | // for (self.symbol_resolver.keys()) |key| { |
| 283 | // log.warn(" {s} => {}", .{ key, self.symbol_resolver.get(key).? }); |
| 284 | // } |
| 298 | 285 | |
| 299 | | var it = self.blocks.iterator(); |
| 300 | | while (it.next()) |entry| { |
| 301 | | const seg = self.load_commands.items[entry.key_ptr.seg].Segment; |
| 302 | | const sect = seg.sections.items[entry.key_ptr.sect]; |
| 286 | // log.warn("mappings", .{}); |
| 287 | // for (self.objects.items) |object, id| { |
| 288 | // const object_id = @intCast(u16, id); |
| 289 | // log.warn(" in object {s}", .{object.name.?}); |
| 290 | // for (object.symtab.items) |sym, sym_id| { |
| 291 | // if (object.symbol_mapping.get(@intCast(u32, sym_id))) |local_id| { |
| 292 | // log.warn(" | {d} => {d}", .{ sym_id, local_id }); |
| 293 | // } else { |
| 294 | // log.warn(" | {d} no local mapping for {s}", .{ sym_id, object.getString(sym.n_strx) }); |
| 295 | // } |
| 296 | // } |
| 297 | // } |
| 303 | 298 | |
| 304 | | log.warn("\n\n{s},{s} contents:", .{ segmentName(sect), sectionName(sect) }); |
| 305 | | log.warn(" {}", .{sect}); |
| 306 | | entry.value_ptr.*.print(self); |
| 307 | | } |
| 299 | // var it = self.blocks.iterator(); |
| 300 | // while (it.next()) |entry| { |
| 301 | // const seg = self.load_commands.items[entry.key_ptr.seg].Segment; |
| 302 | // const sect = seg.sections.items[entry.key_ptr.sect]; |
| 303 | |
| 304 | // log.warn("\n\n{s},{s} contents:", .{ segmentName(sect), sectionName(sect) }); |
| 305 | // log.warn(" {}", .{sect}); |
| 306 | // entry.value_ptr.*.print(self); |
| 307 | // } |
| 308 | 308 | |
| 309 | 309 | try self.flush(); |
| 310 | 310 | } |
| ... | ... | @@ -1411,7 +1411,7 @@ fn writeStubInStubHelper(self: *Zld, index: u32) !void { |
| 1411 | 1411 | fn resolveSymbolsInObject(self: *Zld, object_id: u16) !void { |
| 1412 | 1412 | const object = self.objects.items[object_id]; |
| 1413 | 1413 | |
| 1414 | | log.warn("resolving symbols in '{s}'", .{object.name}); |
| 1414 | log.debug("resolving symbols in '{s}'", .{object.name}); |
| 1415 | 1415 | |
| 1416 | 1416 | for (object.symtab.items) |sym, id| { |
| 1417 | 1417 | const sym_id = @intCast(u32, id); |