zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 6f3ee587ba5ad82178e9fe8a8d788729a3e18d6b (tree)
parent 993a83081a975464d1201597cf6f4cb7f6735284
Author: Winter <winter@winter.cafe>
Date:   Thu, 14 Sep 2023 19:16:34 -0400

std.zig.system.NativePaths: ignore linkage directives in `NIX_LDFLAGS`

`NIX_LDFLAGS` typically contains just `-rpath` and `-L`, which we already
handle. However, at least one setup hook in Nixpkgs [0] adds a linkage
directive to it. To prevent library paths from being missed (as I've
observed myself with `NIX_LDFLAGS` being `-liconv ...`, making it so that
*all* paths are missed), let's just skip over them.

[0]: https://github.com/NixOS/nixpkgs/blob/08f615eb1b3c5cf7481996f29c6092c7c891b15b/pkgs/development/libraries/libiconv/setup-hook.sh

Diffstat:
Mlib/std/zig/system/NativePaths.zig | 2++
1 file changed, 2 insertions(+), 0 deletions(-)

diff --git a/lib/std/zig/system/NativePaths.zig b/lib/std/zig/system/NativePaths.zig @@ -60,6 +60,8 @@ pub fn detect(arena: Allocator, native_target: std.Target) !NativePaths { const lib_path = word[2..]; try self.addLibDir(lib_path); try self.addRPath(lib_path); + } else if (word.len > 2 and word[0] == '-' and word[1] == 'l') { + // There could still be paths after this. } else { try self.addWarningFmt("Unrecognized C flag from NIX_LDFLAGS: {s}", .{word}); break;