diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-15 08:52:05 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-01-24 12:34:40 +0100 |
| commit | 8105390fff82f372645b01dbfe89f7972ba4e49d (patch) | |
| tree | 62d0b70614a167b1d1222f5dc6921506c41ce355 /src/link | |
| parent | b1cf6d310323f2908ed401d1a6926d096ade530d (diff) | |
| download | zig-8105390fff82f372645b01dbfe89f7972ba4e49d.tar.gz zig-8105390fff82f372645b01dbfe89f7972ba4e49d.zip | |
macho: remove all rpath parsing from the linker
Diffstat (limited to 'src/link')
| -rw-r--r-- | src/link/MachO.zig | 15 | ||||
| -rw-r--r-- | src/link/MachO/load_commands.zig | 2 |
2 files changed, 4 insertions, 13 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 21966d351c..cbc0c8ec65 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -114,8 +114,6 @@ compatibility_version: ?std.SemanticVersion, entry_name: ?[]const u8, platform: Platform, sdk_version: ?std.SemanticVersion, -/// Rpath table -rpath_table: std.StringArrayHashMapUnmanaged(void) = .{}, /// When set to true, the linker will hoist all dylibs including system dependent dylibs. no_implicit_dylibs: bool = false, @@ -210,12 +208,6 @@ pub fn createEmpty( .mode = link.File.determineMode(false, output_mode, link_mode), }); - // Filter rpaths - try self.rpath_table.ensureUnusedCapacity(gpa, self.base.rpath_list.len); - for (options.rpath_list) |rpath| { - _ = self.rpath_table.putAssumeCapacity(rpath, {}); - } - // Append null file try self.files.append(gpa, .null); // Atom at index 0 is reserved as null atom @@ -333,7 +325,6 @@ pub fn deinit(self: *MachO) void { } self.thunks.deinit(gpa); self.unwind_records.deinit(gpa); - self.rpath_table.deinit(gpa); } pub fn flush(self: *MachO, arena: Allocator, prog_node: *std.Progress.Node) link.File.FlushError!void { @@ -701,7 +692,7 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { try argv.append(syslibroot); } - for (self.rpath_table.keys()) |rpath| { + for (self.base.rpath_list) |rpath| { try argv.append("-rpath"); try argv.append(rpath); } @@ -2812,8 +2803,8 @@ fn writeLoadCommands(self: *MachO) !struct { usize, usize, usize } { ncmds += 1; } - try load_commands.writeRpathLCs(self.rpath_table.keys(), writer); - ncmds += self.rpath_table.keys().len; + try load_commands.writeRpathLCs(self.base.rpath_list, writer); + ncmds += self.base.rpath_list.len; try writer.writeStruct(macho.source_version_command{ .version = 0 }); ncmds += 1; diff --git a/src/link/MachO/load_commands.zig b/src/link/MachO/load_commands.zig index bd6a41d39c..7d045779fe 100644 --- a/src/link/MachO/load_commands.zig +++ b/src/link/MachO/load_commands.zig @@ -59,7 +59,7 @@ pub fn calcLoadCommandsSize(macho_file: *MachO, assume_max_path_len: bool) u32 { } // LC_RPATH { - for (macho_file.rpath_table.keys()) |rpath| { + for (macho_file.base.rpath_list) |rpath| { sizeofcmds += calcInstallNameLen( @sizeOf(macho.rpath_command), rpath, |
