| ... | @@ -2141,35 +2141,18 @@ pub const Zld = struct { | ... | @@ -2141,35 +2141,18 @@ pub const Zld = struct { |
| 2141 | const exec_segment = self.segments.items[segment_index]; | 2141 | const exec_segment = self.segments.items[segment_index]; |
| 2142 | const base_address = exec_segment.vmaddr; | 2142 | const base_address = exec_segment.vmaddr; |
| 2143 | | 2143 | |
| 2144 | if (self.options.output_mode == .Exe) { | 2144 | for (self.globals.items) |global| { |
| 2145 | for (&[_]SymbolWithLoc{ | 2145 | const sym = self.getSymbol(global); |
| 2146 | self.getEntryPoint(), | 2146 | if (sym.undf()) continue; |
| 2147 | self.globals.items[self.mh_execute_header_index.?], | 2147 | if (sym.n_desc == N_DEAD) continue; |
| 2148 | }) |global| { | | |
| 2149 | const sym = self.getSymbol(global); | | |
| 2150 | const sym_name = self.getSymbolName(global); | | |
| 2151 | log.debug(" (putting '{s}' defined at 0x{x})", .{ sym_name, sym.n_value }); | | |
| 2152 | try trie.put(gpa, .{ | | |
| 2153 | .name = sym_name, | | |
| 2154 | .vmaddr_offset = sym.n_value - base_address, | | |
| 2155 | .export_flags = macho.EXPORT_SYMBOL_FLAGS_KIND_REGULAR, | | |
| 2156 | }); | | |
| 2157 | } | | |
| 2158 | } else { | | |
| 2159 | assert(self.options.output_mode == .Lib); | | |
| 2160 | for (self.globals.items) |global| { | | |
| 2161 | const sym = self.getSymbol(global); | | |
| 2162 | if (sym.undf()) continue; | | |
| 2163 | if (sym.n_desc == N_DEAD) continue; | | |
| 2164 | | 2148 | |
| 2165 | const sym_name = self.getSymbolName(global); | 2149 | const sym_name = self.getSymbolName(global); |
| 2166 | log.debug(" (putting '{s}' defined at 0x{x})", .{ sym_name, sym.n_value }); | 2150 | log.debug(" (putting '{s}' defined at 0x{x})", .{ sym_name, sym.n_value }); |
| 2167 | try trie.put(gpa, .{ | 2151 | try trie.put(gpa, .{ |
| 2168 | .name = sym_name, | 2152 | .name = sym_name, |
| 2169 | .vmaddr_offset = sym.n_value - base_address, | 2153 | .vmaddr_offset = sym.n_value - base_address, |
| 2170 | .export_flags = macho.EXPORT_SYMBOL_FLAGS_KIND_REGULAR, | 2154 | .export_flags = macho.EXPORT_SYMBOL_FLAGS_KIND_REGULAR, |
| 2171 | }); | 2155 | }); |
| 2172 | } | | |
| 2173 | } | 2156 | } |
| 2174 | | 2157 | |
| 2175 | try trie.finalize(gpa); | 2158 | try trie.finalize(gpa); |