| ... | @@ -923,9 +923,18 @@ const MachODumper = struct { | ... | @@ -923,9 +923,18 @@ const MachODumper = struct { |
| 923 | sect.segName(), | 923 | sect.segName(), |
| 924 | sect.sectName(), | 924 | sect.sectName(), |
| 925 | }); | 925 | }); |
| | 926 | if (sym.n_desc & macho.REFERENCED_DYNAMICALLY != 0) try writer.writeAll(" [referenced dynamically]"); |
| | 927 | if (sym.weakDef()) try writer.writeAll(" weak"); |
| | 928 | if (sym.weakRef()) try writer.writeAll(" weakref"); |
| 926 | if (sym.ext()) { | 929 | if (sym.ext()) { |
| | 930 | if (sym.pext()) try writer.writeAll(" private"); |
| 927 | try writer.writeAll(" external"); | 931 | try writer.writeAll(" external"); |
| 928 | } | 932 | } else if (sym.pext()) try writer.writeAll(" (was private external)"); |
| | 933 | try writer.print(" {s}\n", .{sym_name}); |
| | 934 | } else if (sym.tentative()) { |
| | 935 | const alignment = (sym.n_desc >> 8) & 0x0F; |
| | 936 | try writer.print(" 0x{x:0>16} (common) (alignment 2^{d})", .{ sym.n_value, alignment }); |
| | 937 | if (sym.ext()) try writer.writeAll(" external"); |
| 929 | try writer.print(" {s}\n", .{sym_name}); | 938 | try writer.print(" {s}\n", .{sym_name}); |
| 930 | } else if (sym.undf()) { | 939 | } else if (sym.undf()) { |
| 931 | const ordinal = @divTrunc(@as(i16, @bitCast(sym.n_desc)), macho.N_SYMBOL_RESOLVER); | 940 | const ordinal = @divTrunc(@as(i16, @bitCast(sym.n_desc)), macho.N_SYMBOL_RESOLVER); |
| ... | @@ -946,17 +955,13 @@ const MachODumper = struct { | ... | @@ -946,17 +955,13 @@ const MachODumper = struct { |
| 946 | break :blk basename[0..ext]; | 955 | break :blk basename[0..ext]; |
| 947 | }; | 956 | }; |
| 948 | try writer.writeAll("(undefined)"); | 957 | try writer.writeAll("(undefined)"); |
| 949 | if (sym.weakRef()) { | 958 | if (sym.weakRef()) try writer.writeAll(" weakref"); |
| 950 | try writer.writeAll(" weak"); | 959 | if (sym.ext()) try writer.writeAll(" external"); |
| 951 | } | | |
| 952 | if (sym.ext()) { | | |
| 953 | try writer.writeAll(" external"); | | |
| 954 | } | | |
| 955 | try writer.print(" {s} (from {s})\n", .{ | 960 | try writer.print(" {s} (from {s})\n", .{ |
| 956 | sym_name, | 961 | sym_name, |
| 957 | import_name, | 962 | import_name, |
| 958 | }); | 963 | }); |
| 959 | } else unreachable; | 964 | } |
| 960 | } | 965 | } |
| 961 | } | 966 | } |
| 962 | }; | 967 | }; |