| ... | @@ -1544,32 +1544,6 @@ pub fn execveZ( | ... | @@ -1544,32 +1544,6 @@ pub fn execveZ( |
| 1544 | child_argv: [*:null]const ?[*:0]const u8, | 1544 | child_argv: [*:null]const ?[*:0]const u8, |
| 1545 | envp: [*:null]const ?[*:0]const u8, | 1545 | envp: [*:null]const ?[*:0]const u8, |
| 1546 | ) ExecveError { | 1546 | ) ExecveError { |
| 1547 | if (comptime builtin.target.isDarwin()) { | | |
| 1548 | // Darwin gets its own branch because it has BADEXEC and BADARCH | | |
| 1549 | // which are beyond posix. | | |
| 1550 | switch (errno(system.execve(path, child_argv, envp))) { | | |
| 1551 | .SUCCESS => unreachable, | | |
| 1552 | .FAULT => unreachable, | | |
| 1553 | .@"2BIG" => return error.SystemResources, | | |
| 1554 | .MFILE => return error.ProcessFdQuotaExceeded, | | |
| 1555 | .NAMETOOLONG => return error.NameTooLong, | | |
| 1556 | .NFILE => return error.SystemFdQuotaExceeded, | | |
| 1557 | .NOMEM => return error.SystemResources, | | |
| 1558 | .ACCES => return error.AccessDenied, | | |
| 1559 | .PERM => return error.AccessDenied, | | |
| 1560 | .INVAL => return error.InvalidExe, | | |
| 1561 | .NOEXEC => return error.InvalidExe, | | |
| 1562 | .BADEXEC => return error.InvalidExe, | | |
| 1563 | .BADARCH => return error.InvalidExe, | | |
| 1564 | .IO => return error.FileSystem, | | |
| 1565 | .LOOP => return error.FileSystem, | | |
| 1566 | .ISDIR => return error.IsDir, | | |
| 1567 | .NOENT => return error.FileNotFound, | | |
| 1568 | .NOTDIR => return error.NotDir, | | |
| 1569 | .TXTBSY => return error.FileBusy, | | |
| 1570 | else => |err| return unexpectedErrno(err), | | |
| 1571 | } | | |
| 1572 | } | | |
| 1573 | switch (errno(system.execve(path, child_argv, envp))) { | 1547 | switch (errno(system.execve(path, child_argv, envp))) { |
| 1574 | .SUCCESS => unreachable, | 1548 | .SUCCESS => unreachable, |
| 1575 | .FAULT => unreachable, | 1549 | .FAULT => unreachable, |
| ... | @@ -1588,7 +1562,18 @@ pub fn execveZ( | ... | @@ -1588,7 +1562,18 @@ pub fn execveZ( |
| 1588 | .NOENT => return error.FileNotFound, | 1562 | .NOENT => return error.FileNotFound, |
| 1589 | .NOTDIR => return error.NotDir, | 1563 | .NOTDIR => return error.NotDir, |
| 1590 | .TXTBSY => return error.FileBusy, | 1564 | .TXTBSY => return error.FileBusy, |
| 1591 | else => |err| return unexpectedErrno(err), | 1565 | else => |err| switch (builtin.os.tag) { |
| | 1566 | .macos, .ios, .tvos, .watchos => switch (err) { |
| | 1567 | .BADEXEC => return error.InvalidExe, |
| | 1568 | .BADARCH => return error.InvalidExe, |
| | 1569 | else => return unexpectedErrno(err), |
| | 1570 | }, |
| | 1571 | .linux, .solaris => switch (err) { |
| | 1572 | .LIBBAD => return error.InvalidExe, |
| | 1573 | else => return unexpectedErrno(err), |
| | 1574 | }, |
| | 1575 | else => return unexpectedErrno(err), |
| | 1576 | }, |
| 1592 | } | 1577 | } |
| 1593 | } | 1578 | } |
| 1594 | | 1579 | |