aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-01-15 08:52:05 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-01-24 12:34:40 +0100
commit8105390fff82f372645b01dbfe89f7972ba4e49d (patch)
tree62d0b70614a167b1d1222f5dc6921506c41ce355 /src/link
parentb1cf6d310323f2908ed401d1a6926d096ade530d (diff)
downloadzig-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.zig15
-rw-r--r--src/link/MachO/load_commands.zig2
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,