aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO
diff options
context:
space:
mode:
authorCody Tapscott <topolarity@tapscott.me>2022-10-31 08:28:16 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-10-31 13:12:37 -0400
commit6f2408aab847113cb991058fbcd6d8a8296f1465 (patch)
tree6cc307f1e59d9518a43c17a37798eac16d39653f /src/link/MachO
parentd02242661e667e67b07faf69490bb0db3dfd4bf0 (diff)
downloadzig-6f2408aab847113cb991058fbcd6d8a8296f1465.tar.gz
zig-6f2408aab847113cb991058fbcd6d8a8296f1465.zip
link/MachO: Avoid depending on host PATH_MAX
Repeat of a4eb221b9 for the newly-synchronized zld code. Restores ability to compile Zig for WASI.
Diffstat (limited to 'src/link/MachO')
-rw-r--r--src/link/MachO/zld.zig13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig
index 9508d68895..bccf1ec1d1 100644
--- a/src/link/MachO/zld.zig
+++ b/src/link/MachO/zld.zig
@@ -1516,11 +1516,6 @@ pub const Zld = struct {
}
}
- inline fn calcInstallNameLen(cmd_size: u64, name: []const u8, assume_max_path_len: bool) u64 {
- const name_len = if (assume_max_path_len) std.os.PATH_MAX else std.mem.len(name) + 1;
- return mem.alignForwardGeneric(u64, cmd_size + name_len, @alignOf(u64));
- }
-
fn calcLCsSize(self: *Zld, assume_max_path_len: bool) !u32 {
const gpa = self.gpa;
@@ -1542,7 +1537,7 @@ pub const Zld = struct {
// LC_DYSYMTAB
sizeofcmds += @sizeOf(macho.dysymtab_command);
// LC_LOAD_DYLINKER
- sizeofcmds += calcInstallNameLen(
+ sizeofcmds += MachO.calcInstallNameLen(
@sizeOf(macho.dylinker_command),
mem.sliceTo(MachO.default_dyld_path, 0),
false,
@@ -1555,7 +1550,7 @@ pub const Zld = struct {
if (self.options.output_mode == .Lib) {
sizeofcmds += blk: {
const install_name = self.options.install_name orelse self.options.emit.?.sub_path;
- break :blk calcInstallNameLen(
+ break :blk MachO.calcInstallNameLen(
@sizeOf(macho.dylib_command),
install_name,
assume_max_path_len,
@@ -1567,7 +1562,7 @@ pub const Zld = struct {
var it = RpathIterator.init(gpa, self.options.rpath_list);
defer it.deinit();
while (try it.next()) |rpath| {
- sizeofcmds += calcInstallNameLen(
+ sizeofcmds += MachO.calcInstallNameLen(
@sizeOf(macho.rpath_command),
rpath,
assume_max_path_len,
@@ -1584,7 +1579,7 @@ pub const Zld = struct {
for (self.referenced_dylibs.keys()) |id| {
const dylib = self.dylibs.items[id];
const dylib_id = dylib.id orelse unreachable;
- sizeofcmds += calcInstallNameLen(
+ sizeofcmds += MachO.calcInstallNameLen(
@sizeOf(macho.dylib_command),
dylib_id.name,
assume_max_path_len,