authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-05-03 16:56:46+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-05-04 13:09:32+02:00
log1867c3c34c10312a742041e6525aea8abe32f48d
tree2abb591eb1a9e5a952770208775c80a33e2d0b76
parent9e11f27c4134b885786f703f0c340392644a39db

zld: disable most logs


1 files changed, 57 insertions(+), 56 deletions(-)

src/link/MachO/Zld.zig+57-56
......@@ -267,7 +267,7 @@ fn parseInputFiles(self: *Zld, files: []const []const u8) !void {
267267 continue;
268268 }
269269
270 log.warn("unexpected input file of unknown type '{s}'", .{file_name});
270 log.debug("unexpected input file of unknown type '{s}'", .{file_name});
271271 }
272272
273273 // Based on our classification, proceed with parsing.
......@@ -325,7 +325,7 @@ fn mapAndUpdateSections(
325325 .target_sect_id = target_sect_id,
326326 .offset = @intCast(u32, offset),
327327 });
328 log.warn("{s}: {s},{s} mapped to {s},{s} from 0x{x} to 0x{x}", .{
328 log.debug("{s}: {s},{s} mapped to {s},{s} from 0x{x} to 0x{x}", .{
329329 object.name,
330330 parseName(&source_sect.segname),
331331 parseName(&source_sect.sectname),
......@@ -555,7 +555,7 @@ fn updateMetadata(self: *Zld) !void {
555555 });
556556 },
557557 else => {
558 log.warn("unhandled section type 0x{x} for '{s}/{s}'", .{ flags, segname, sectname });
558 log.debug("unhandled section type 0x{x} for '{s}/{s}'", .{ flags, segname, sectname });
559559 },
560560 }
561561 }
......@@ -580,7 +580,7 @@ fn updateMetadata(self: *Zld) !void {
580580 const segname = parseName(&source_sect.segname);
581581 const sectname = parseName(&source_sect.sectname);
582582
583 log.warn("section '{s}/{s}' will be unmapped", .{ segname, sectname });
583 log.debug("section '{s}/{s}' will be unmapped", .{ segname, sectname });
584584
585585 try self.unhandled_sections.putNoClobber(self.allocator, .{
586586 .object_id = object_id,
......@@ -928,7 +928,7 @@ fn allocateSymbols(self: *Zld) !void {
928928 const target_addr = target_sect.addr + target_mapping.offset;
929929 const address = reg.address - source_sect.addr + target_addr;
930930
931 log.warn("resolving symbol '{s}' at 0x{x}", .{ sym.name, address });
931 log.debug("resolving symbol '{s}' at 0x{x}", .{ sym.name, address });
932932
933933 // TODO there might be a more generic way of doing this.
934934 var section: u8 = 0;
......@@ -1099,7 +1099,7 @@ fn writeLazySymbolPointer(self: *Zld, index: u32) !void {
10991099 var buf: [@sizeOf(u64)]u8 = undefined;
11001100 mem.writeIntLittle(u64, &buf, end);
11011101 const off = la_symbol_ptr.offset + index * @sizeOf(u64);
1102 log.warn("writing lazy symbol pointer entry 0x{x} at 0x{x}", .{ end, off });
1102 log.debug("writing lazy symbol pointer entry 0x{x} at 0x{x}", .{ end, off });
11031103 try self.file.?.pwriteAll(&buf, off);
11041104}
11051105
......@@ -1112,7 +1112,7 @@ fn writeStub(self: *Zld, index: u32) !void {
11121112 const stub_off = stubs.offset + index * stubs.reserved2;
11131113 const stub_addr = stubs.addr + index * stubs.reserved2;
11141114 const la_ptr_addr = la_symbol_ptr.addr + index * @sizeOf(u64);
1115 log.warn("writing stub at 0x{x}", .{stub_off});
1115 log.debug("writing stub at 0x{x}", .{stub_off});
11161116 var code = try self.allocator.alloc(u8, stubs.reserved2);
11171117 defer self.allocator.free(code);
11181118 switch (self.arch.?) {
......@@ -1216,7 +1216,7 @@ fn writeStubInStubHelper(self: *Zld, index: u32) !void {
12161216}
12171217
12181218fn resolveSymbolsInObject(self: *Zld, object: *Object) !void {
1219 log.warn("resolving symbols in '{s}'", .{object.name});
1219 log.debug("resolving symbols in '{s}'", .{object.name});
12201220
12211221 for (object.symbols.items) |sym| {
12221222 if (sym.cast(Symbol.Regular)) |reg| {
......@@ -1245,7 +1245,7 @@ fn resolveSymbolsInObject(self: *Zld, object: *Object) !void {
12451245 },
12461246 .global => {
12471247 if (reg.linkage == .global) {
1248 log.warn("symbol '{s}' defined multiple times", .{reg.base.name});
1248 log.debug("symbol '{s}' defined multiple times", .{reg.base.name});
12491249 return error.MultipleSymbolDefinitions;
12501250 }
12511251 sym.alias = g_sym;
......@@ -1363,7 +1363,7 @@ fn resolveSymbols(self: *Zld) !void {
13631363
13641364fn resolveStubsAndGotEntries(self: *Zld) !void {
13651365 for (self.objects.items) |object| {
1366 log.warn("resolving stubs and got entries from {s}", .{object.name});
1366 log.debug("resolving stubs and got entries from {s}", .{object.name});
13671367
13681368 for (object.sections.items) |sect| {
13691369 const relocs = sect.relocs orelse continue;
......@@ -1378,7 +1378,7 @@ fn resolveStubsAndGotEntries(self: *Zld) !void {
13781378 sym.got_index = index;
13791379 try self.got_entries.append(self.allocator, sym);
13801380
1381 log.warn(" | found GOT entry {s}: {*}", .{ sym.name, sym });
1381 log.debug(" | found GOT entry {s}: {*}", .{ sym.name, sym });
13821382 },
13831383 else => {
13841384 if (rel.target != .symbol) continue;
......@@ -1387,15 +1387,16 @@ fn resolveStubsAndGotEntries(self: *Zld) !void {
13871387 assert(sym.@"type" != .unresolved);
13881388
13891389 if (sym.stubs_index != null) continue;
1390 if (sym.cast(Symbol.Regular)) |reg| {
1391 if (!reg.weak_ref) continue;
1392 }
1390 if (sym.@"type" != .proxy) continue;
1391 // if (sym.cast(Symbol.Regular)) |reg| {
1392 // if (!reg.weak_ref) continue;
1393 // }
13931394
13941395 const index = @intCast(u32, self.stubs.items.len);
13951396 sym.stubs_index = index;
13961397 try self.stubs.append(self.allocator, sym);
13971398
1398 log.warn(" | found stub {s}: {*}", .{ sym.name, sym });
1399 log.debug(" | found stub {s}: {*}", .{ sym.name, sym });
13991400 },
14001401 }
14011402 }
......@@ -1408,12 +1409,12 @@ fn resolveStubsAndGotEntries(self: *Zld) !void {
14081409 sym.got_index = index;
14091410 try self.got_entries.append(self.allocator, sym);
14101411
1411 log.warn(" | found GOT entry {s}: {*}", .{ sym.name, sym });
1412 log.debug(" | found GOT entry {s}: {*}", .{ sym.name, sym });
14121413}
14131414
14141415fn resolveRelocsAndWriteSections(self: *Zld) !void {
14151416 for (self.objects.items) |object, object_id| {
1416 log.warn("relocating object {s}", .{object.name});
1417 log.debug("relocating object {s}", .{object.name});
14171418
14181419 for (object.sections.items) |sect, source_sect_id| {
14191420 if (sect.inner.flags == macho.S_MOD_INIT_FUNC_POINTERS or
......@@ -1422,14 +1423,14 @@ fn resolveRelocsAndWriteSections(self: *Zld) !void {
14221423 const segname = parseName(&sect.inner.segname);
14231424 const sectname = parseName(&sect.inner.sectname);
14241425
1425 log.warn("relocating section '{s},{s}'", .{ segname, sectname });
1426 log.debug("relocating section '{s},{s}'", .{ segname, sectname });
14261427
14271428 // Get mapping
14281429 const target_mapping = self.mappings.get(.{
14291430 .object_id = @intCast(u16, object_id),
14301431 .source_sect_id = @intCast(u16, source_sect_id),
14311432 }) orelse {
1432 log.warn("no mapping for {s},{s}; skipping", .{ segname, sectname });
1433 log.debug("no mapping for {s},{s}; skipping", .{ segname, sectname });
14331434 continue;
14341435 };
14351436 const target_seg = self.load_commands.items[target_mapping.target_seg_id].Segment;
......@@ -1518,7 +1519,7 @@ fn resolveRelocsAndWriteSections(self: *Zld) !void {
15181519 }
15191520 }
15201521
1521 log.warn("writing contents of '{s},{s}' section from '{s}' from 0x{x} to 0x{x}", .{
1522 log.debug("writing contents of '{s},{s}' section from '{s}' from 0x{x} to 0x{x}", .{
15221523 segname,
15231524 sectname,
15241525 object.name,
......@@ -1530,7 +1531,7 @@ fn resolveRelocsAndWriteSections(self: *Zld) !void {
15301531 target_sect.flags == macho.S_THREAD_LOCAL_ZEROFILL or
15311532 target_sect.flags == macho.S_THREAD_LOCAL_VARIABLES)
15321533 {
1533 log.warn("zeroing out '{s},{s}' from 0x{x} to 0x{x}", .{
1534 log.debug("zeroing out '{s},{s}' from 0x{x} to 0x{x}", .{
15341535 parseName(&target_sect.segname),
15351536 parseName(&target_sect.sectname),
15361537 target_sect_off,
......@@ -1555,17 +1556,17 @@ fn relocTargetAddr(self: *Zld, object_id: u16, target: reloc.Relocation.Target)
15551556 .symbol => |sym| {
15561557 const final = sym.getTopmostAlias();
15571558 if (final.cast(Symbol.Regular)) |reg| {
1558 log.warn(" | regular '{s}'", .{sym.name});
1559 log.debug(" | regular '{s}'", .{sym.name});
15591560 break :blk reg.address;
15601561 } else if (final.cast(Symbol.Proxy)) |proxy| {
15611562 if (mem.eql(u8, sym.name, "__tlv_bootstrap")) {
1562 log.warn(" | symbol '__tlv_bootstrap'", .{});
1563 log.debug(" | symbol '__tlv_bootstrap'", .{});
15631564 const segment = self.load_commands.items[self.data_segment_cmd_index.?].Segment;
15641565 const tlv = segment.sections.items[self.tlv_section_index.?];
15651566 break :blk tlv.addr;
15661567 }
15671568
1568 log.warn(" | symbol stub '{s}'", .{sym.name});
1569 log.debug(" | symbol stub '{s}'", .{sym.name});
15691570 const segment = self.load_commands.items[self.text_segment_cmd_index.?].Segment;
15701571 const stubs = segment.sections.items[self.stubs_section_index.?];
15711572 break :blk stubs.addr + proxy.base.stubs_index.? * stubs.reserved2;
......@@ -2103,7 +2104,7 @@ fn writeGotEntries(self: *Zld) !void {
21032104 try writer.writeIntLittle(u64, address);
21042105 }
21052106
2106 log.warn("writing GOT pointers at 0x{x} to 0x{x}", .{ sect.offset, sect.offset + buffer.len });
2107 log.debug("writing GOT pointers at 0x{x} to 0x{x}", .{ sect.offset, sect.offset + buffer.len });
21072108
21082109 try self.file.?.pwriteAll(buffer, sect.offset);
21092110}
......@@ -2189,7 +2190,7 @@ fn writeRebaseInfoTable(self: *Zld) !void {
21892190 dyld_info.rebase_size = @intCast(u32, mem.alignForwardGeneric(u64, buffer.len, @sizeOf(u64)));
21902191 seg.inner.filesize += dyld_info.rebase_size;
21912192
2192 log.warn("writing rebase info from 0x{x} to 0x{x}", .{ dyld_info.rebase_off, dyld_info.rebase_off + dyld_info.rebase_size });
2193 log.debug("writing rebase info from 0x{x} to 0x{x}", .{ dyld_info.rebase_off, dyld_info.rebase_off + dyld_info.rebase_size });
21932194
21942195 try self.file.?.pwriteAll(buffer, dyld_info.rebase_off);
21952196}
......@@ -2248,7 +2249,7 @@ fn writeBindInfoTable(self: *Zld) !void {
22482249 dyld_info.bind_size = @intCast(u32, mem.alignForwardGeneric(u64, buffer.len, @alignOf(u64)));
22492250 seg.inner.filesize += dyld_info.bind_size;
22502251
2251 log.warn("writing binding info from 0x{x} to 0x{x}", .{ dyld_info.bind_off, dyld_info.bind_off + dyld_info.bind_size });
2252 log.debug("writing binding info from 0x{x} to 0x{x}", .{ dyld_info.bind_off, dyld_info.bind_off + dyld_info.bind_size });
22522253
22532254 try self.file.?.pwriteAll(buffer, dyld_info.bind_off);
22542255}
......@@ -2290,7 +2291,7 @@ fn writeLazyBindInfoTable(self: *Zld) !void {
22902291 dyld_info.lazy_bind_size = @intCast(u32, mem.alignForwardGeneric(u64, buffer.len, @alignOf(u64)));
22912292 seg.inner.filesize += dyld_info.lazy_bind_size;
22922293
2293 log.warn("writing lazy binding info from 0x{x} to 0x{x}", .{ dyld_info.lazy_bind_off, dyld_info.lazy_bind_off + dyld_info.lazy_bind_size });
2294 log.debug("writing lazy binding info from 0x{x} to 0x{x}", .{ dyld_info.lazy_bind_off, dyld_info.lazy_bind_off + dyld_info.lazy_bind_size });
22942295
22952296 try self.file.?.pwriteAll(buffer, dyld_info.lazy_bind_off);
22962297 try self.populateLazyBindOffsetsInStubHelper(buffer);
......@@ -2394,7 +2395,7 @@ fn writeExportInfo(self: *Zld) !void {
23942395 dyld_info.export_size = @intCast(u32, mem.alignForwardGeneric(u64, buffer.len, @alignOf(u64)));
23952396 seg.inner.filesize += dyld_info.export_size;
23962397
2397 log.warn("writing export info from 0x{x} to 0x{x}", .{ dyld_info.export_off, dyld_info.export_off + dyld_info.export_size });
2398 log.debug("writing export info from 0x{x} to 0x{x}", .{ dyld_info.export_off, dyld_info.export_off + dyld_info.export_size });
23982399
23992400 try self.file.?.pwriteAll(buffer, dyld_info.export_off);
24002401}
......@@ -2511,7 +2512,7 @@ fn writeDebugInfo(self: *Zld) !void {
25112512
25122513 const stabs_off = symtab.symoff;
25132514 const stabs_size = symtab.nsyms * @sizeOf(macho.nlist_64);
2514 log.warn("writing symbol stabs from 0x{x} to 0x{x}", .{ stabs_off, stabs_size + stabs_off });
2515 log.debug("writing symbol stabs from 0x{x} to 0x{x}", .{ stabs_off, stabs_size + stabs_off });
25152516 try self.file.?.pwriteAll(mem.sliceAsBytes(stabs.items), stabs_off);
25162517
25172518 linkedit.inner.filesize += stabs_size;
......@@ -2582,17 +2583,17 @@ fn writeSymbolTable(self: *Zld) !void {
25822583
25832584 const locals_off = symtab.symoff + symtab.nsyms * @sizeOf(macho.nlist_64);
25842585 const locals_size = nlocals * @sizeOf(macho.nlist_64);
2585 log.warn("writing local symbols from 0x{x} to 0x{x}", .{ locals_off, locals_size + locals_off });
2586 log.debug("writing local symbols from 0x{x} to 0x{x}", .{ locals_off, locals_size + locals_off });
25862587 try self.file.?.pwriteAll(mem.sliceAsBytes(locals.items), locals_off);
25872588
25882589 const exports_off = locals_off + locals_size;
25892590 const exports_size = nexports * @sizeOf(macho.nlist_64);
2590 log.warn("writing exported symbols from 0x{x} to 0x{x}", .{ exports_off, exports_size + exports_off });
2591 log.debug("writing exported symbols from 0x{x} to 0x{x}", .{ exports_off, exports_size + exports_off });
25912592 try self.file.?.pwriteAll(mem.sliceAsBytes(exports.items), exports_off);
25922593
25932594 const undefs_off = exports_off + exports_size;
25942595 const undefs_size = nundefs * @sizeOf(macho.nlist_64);
2595 log.warn("writing undefined symbols from 0x{x} to 0x{x}", .{ undefs_off, undefs_size + undefs_off });
2596 log.debug("writing undefined symbols from 0x{x} to 0x{x}", .{ undefs_off, undefs_size + undefs_off });
25962597 try self.file.?.pwriteAll(mem.sliceAsBytes(undefs.items), undefs_off);
25972598
25982599 symtab.nsyms += @intCast(u32, nlocals + nexports + nundefs);
......@@ -2622,7 +2623,7 @@ fn writeSymbolTable(self: *Zld) !void {
26222623 const needed_size = dysymtab.nindirectsyms * @sizeOf(u32);
26232624 seg.inner.filesize += needed_size;
26242625
2625 log.warn("writing indirect symbol table from 0x{x} to 0x{x}", .{
2626 log.debug("writing indirect symbol table from 0x{x} to 0x{x}", .{
26262627 dysymtab.indirectsymoff,
26272628 dysymtab.indirectsymoff + needed_size,
26282629 });
......@@ -2665,7 +2666,7 @@ fn writeStringTable(self: *Zld) !void {
26652666 symtab.strsize = @intCast(u32, mem.alignForwardGeneric(u64, self.strtab.items.len, @alignOf(u64)));
26662667 seg.inner.filesize += symtab.strsize;
26672668
2668 log.warn("writing string table from 0x{x} to 0x{x}", .{ symtab.stroff, symtab.stroff + symtab.strsize });
2669 log.debug("writing string table from 0x{x} to 0x{x}", .{ symtab.stroff, symtab.stroff + symtab.strsize });
26692670
26702671 try self.file.?.pwriteAll(self.strtab.items, symtab.stroff);
26712672
......@@ -2711,7 +2712,7 @@ fn writeDataInCode(self: *Zld) !void {
27112712 dice_cmd.datasize = datasize;
27122713 seg.inner.filesize += datasize;
27132714
2714 log.warn("writing data-in-code from 0x{x} to 0x{x}", .{ fileoff, fileoff + datasize });
2715 log.debug("writing data-in-code from 0x{x} to 0x{x}", .{ fileoff, fileoff + datasize });
27152716
27162717 try self.file.?.pwriteAll(buf.items, fileoff);
27172718}
......@@ -2732,7 +2733,7 @@ fn writeCodeSignaturePadding(self: *Zld) !void {
27322733 seg.inner.filesize += needed_size;
27332734 seg.inner.vmsize = mem.alignForwardGeneric(u64, seg.inner.filesize, self.page_size.?);
27342735
2735 log.warn("writing code signature padding from 0x{x} to 0x{x}", .{ fileoff, fileoff + needed_size });
2736 log.debug("writing code signature padding from 0x{x} to 0x{x}", .{ fileoff, fileoff + needed_size });
27362737
27372738 // Pad out the space. We need to do this to calculate valid hashes for everything in the file
27382739 // except for code signature data.
......@@ -2758,7 +2759,7 @@ fn writeCodeSignature(self: *Zld) !void {
27582759 var stream = std.io.fixedBufferStream(buffer);
27592760 try code_sig.write(stream.writer());
27602761
2761 log.warn("writing code signature from 0x{x} to 0x{x}", .{ code_sig_cmd.dataoff, code_sig_cmd.dataoff + buffer.len });
2762 log.debug("writing code signature from 0x{x} to 0x{x}", .{ code_sig_cmd.dataoff, code_sig_cmd.dataoff + buffer.len });
27622763 try self.file.?.pwriteAll(buffer, code_sig_cmd.dataoff);
27632764}
27642765
......@@ -2776,7 +2777,7 @@ fn writeLoadCommands(self: *Zld) !void {
27762777 }
27772778
27782779 const off = @sizeOf(macho.mach_header_64);
2779 log.warn("writing {} load commands from 0x{x} to 0x{x}", .{ self.load_commands.items.len, off, off + sizeofcmds });
2780 log.debug("writing {} load commands from 0x{x} to 0x{x}", .{ self.load_commands.items.len, off, off + sizeofcmds });
27802781 try self.file.?.pwriteAll(buffer, off);
27812782}
27822783
......@@ -2814,7 +2815,7 @@ fn writeHeader(self: *Zld) !void {
28142815 for (self.load_commands.items) |cmd| {
28152816 header.sizeofcmds += cmd.cmdsize();
28162817 }
2817 log.warn("writing Mach-O header {}", .{header});
2818 log.debug("writing Mach-O header {}", .{header});
28182819 try self.file.?.pwriteAll(mem.asBytes(&header), 0);
28192820}
28202821
......@@ -2827,13 +2828,13 @@ pub fn makeStaticString(bytes: []const u8) [16]u8 {
28272828
28282829fn makeString(self: *Zld, bytes: []const u8) !u32 {
28292830 if (self.strtab_dir.get(bytes)) |offset| {
2830 log.warn("reusing '{s}' from string table at offset 0x{x}", .{ bytes, offset });
2831 log.debug("reusing '{s}' from string table at offset 0x{x}", .{ bytes, offset });
28312832 return offset;
28322833 }
28332834
28342835 try self.strtab.ensureCapacity(self.allocator, self.strtab.items.len + bytes.len + 1);
28352836 const offset = @intCast(u32, self.strtab.items.len);
2836 log.warn("writing new string '{s}' into string table at offset 0x{x}", .{ bytes, offset });
2837 log.debug("writing new string '{s}' into string table at offset 0x{x}", .{ bytes, offset });
28372838 self.strtab.appendSliceAssumeCapacity(bytes);
28382839 self.strtab.appendAssumeCapacity(0);
28392840 try self.strtab_dir.putNoClobber(self.allocator, try self.allocator.dupe(u8, bytes), offset);
......@@ -2851,31 +2852,31 @@ pub fn parseName(name: *const [16]u8) []const u8 {
28512852}
28522853
28532854fn printSymbols(self: *Zld) void {
2854 log.warn("globals", .{});
2855 log.debug("globals", .{});
28552856 for (self.globals.items()) |entry| {
28562857 const sym = entry.value.cast(Symbol.Regular) orelse unreachable;
2857 log.warn(" | {s} @ {*}", .{ sym.base.name, entry.value });
2858 log.warn(" => alias of {*}", .{sym.base.alias});
2859 log.warn(" => linkage {s}", .{sym.linkage});
2860 log.warn(" => defined in {s}", .{sym.file.name.?});
2858 log.debug(" | {s} @ {*}", .{ sym.base.name, entry.value });
2859 log.debug(" => alias of {*}", .{sym.base.alias});
2860 log.debug(" => linkage {s}", .{sym.linkage});
2861 log.debug(" => defined in {s}", .{sym.file.name.?});
28612862 }
28622863 for (self.objects.items) |object| {
2863 log.warn("locals in {s}", .{object.name.?});
2864 log.debug("locals in {s}", .{object.name.?});
28642865 for (object.symbols.items) |sym| {
2865 log.warn(" | {s} @ {*}", .{ sym.name, sym });
2866 log.warn(" => alias of {*}", .{sym.alias});
2866 log.debug(" | {s} @ {*}", .{ sym.name, sym });
2867 log.debug(" => alias of {*}", .{sym.alias});
28672868 if (sym.cast(Symbol.Regular)) |reg| {
2868 log.warn(" => linkage {s}", .{reg.linkage});
2869 log.debug(" => linkage {s}", .{reg.linkage});
28692870 } else {
2870 log.warn(" => unresolved", .{});
2871 log.debug(" => unresolved", .{});
28712872 }
28722873 }
28732874 }
2874 log.warn("proxies", .{});
2875 log.debug("proxies", .{});
28752876 for (self.imports.items()) |entry| {
28762877 const sym = entry.value.cast(Symbol.Proxy) orelse unreachable;
2877 log.warn(" | {s} @ {*}", .{ sym.base.name, entry.value });
2878 log.warn(" => alias of {*}", .{sym.base.alias});
2879 log.warn(" => defined in libSystem.B.dylib", .{});
2878 log.debug(" | {s} @ {*}", .{ sym.base.name, entry.value });
2879 log.debug(" => alias of {*}", .{sym.base.alias});
2880 log.debug(" => defined in libSystem.B.dylib", .{});
28802881 }
28812882}