authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-11-30 18:12:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-11-30 18:12:07-07:00
logc55984b58f6a235893556f0b906e1ba3d301ec12
tree573ce3827a015f7a349f7e333fda0580d2e0ea6e
parent8c9919ec7b409d11ca73ca5764f44282dec0fe25
parent9d1816111d1d30e18b8cb43a4aa31c194fb204c4

Merge branch 'alexnask-fix_6868' into master

Closes #7139 Closes #6868

3 files changed, 7 insertions(+), 6 deletions(-)

lib/std/build.zig+3-6
...@@ -1980,13 +1980,10 @@ pub const LibExeObjStep = struct {...@@ -1980,13 +1980,10 @@ pub const LibExeObjStep = struct {
1980 try zig_args.append(other.getOutputPath());1980 try zig_args.append(other.getOutputPath());
1981 },1981 },
1982 .Lib => {1982 .Lib => {
1983 if (!other.is_dynamic or self.target.isWindows()) {1983 const full_path_lib = other.getOutputPath();
1984 try zig_args.append(other.getOutputLibPath());1984 try zig_args.append(full_path_lib);
1985 } else {
1986 const full_path_lib = other.getOutputPath();
1987 try zig_args.append("--library");
1988 try zig_args.append(full_path_lib);
19891985
1986 if (other.is_dynamic and !self.target.isWindows()) {
1990 if (fs.path.dirname(full_path_lib)) |dirname| {1987 if (fs.path.dirname(full_path_lib)) |dirname| {
1991 try zig_args.append("-rpath");1988 try zig_args.append("-rpath");
1992 try zig_args.append(dirname);1989 try zig_args.append(dirname);
lib/std/os.zig+1
...@@ -3809,6 +3809,7 @@ pub fn faccessatW(dirfd: fd_t, sub_path_w: [*:0]const u16, mode: u32, flags: u32...@@ -3809,6 +3809,7 @@ pub fn faccessatW(dirfd: fd_t, sub_path_w: [*:0]const u16, mode: u32, flags: u32
3809 .SUCCESS => return,3809 .SUCCESS => return,
3810 .OBJECT_NAME_NOT_FOUND => return error.FileNotFound,3810 .OBJECT_NAME_NOT_FOUND => return error.FileNotFound,
3811 .OBJECT_PATH_NOT_FOUND => return error.FileNotFound,3811 .OBJECT_PATH_NOT_FOUND => return error.FileNotFound,
3812 .OBJECT_NAME_INVALID => unreachable,
3812 .INVALID_PARAMETER => unreachable,3813 .INVALID_PARAMETER => unreachable,
3813 .ACCESS_DENIED => return error.PermissionDenied,3814 .ACCESS_DENIED => return error.PermissionDenied,
3814 .OBJECT_PATH_SYNTAX_BAD => unreachable,3815 .OBJECT_PATH_SYNTAX_BAD => unreachable,
src/main.zig+3
...@@ -1401,6 +1401,9 @@ fn buildOutputType(...@@ -1401,6 +1401,9 @@ fn buildOutputType(
1401 _ = system_libs.orderedRemove(i);1401 _ = system_libs.orderedRemove(i);
1402 continue;1402 continue;
1403 }1403 }
1404 if (std.fs.path.isAbsolute(lib_name)) {
1405 fatal("cannot use absolute path as a system library: {s}", .{lib_name});
1406 }
1404 i += 1;1407 i += 1;
1405 }1408 }
1406 }1409 }