From fb0a12e0d5dcdc5977a2e61553d644c9dfe963f4 Mon Sep 17 00:00:00 2001 From: Raboneko <119771935+raboneko@users.noreply.github.com> Date: Sun, 4 Jan 2026 14:25:21 -0800 Subject: [PATCH] chore(zig-master): Update patches (#8782) (#8926) (cherry picked from commit 7f2754d5761be6c120f27e17f63d0a73a9431396) Co-authored-by: Gilver --- ...ve-native-lib-directories-from-rpath.patch | 8 ++-- ...t-directory-of-libraries-to-linker-p.patch | 43 ------------------- .../zig/bootstrap/zig-master-bootstrap.spec | 1 - ...ve-native-lib-directories-from-rpath.patch | 8 ++-- ...t-directory-of-libraries-to-linker-p.patch | 43 ------------------- anda/langs/zig/master/zig-master.spec | 1 - 6 files changed, 8 insertions(+), 96 deletions(-) delete mode 100644 anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch delete mode 100644 anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch diff --git a/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch b/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch index 1e1c1f1709..034d8ed0f3 100644 --- a/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch +++ b/anda/langs/zig/bootstrap/0000-remove-native-lib-directories-from-rpath.patch @@ -1,9 +1,9 @@ ---- a/src/main.zig 2025-04-25 06:01:31.337458939 -0500 -+++ b/src/main.zig 2025-04-25 06:03:02.239473385 -0500 -@@ -4072,6 +4072,15 @@ +--- a/src/main.zig 2025-12-27 19:19:30.000000000 -0600 ++++ b/src/main.zig 2025-12-31 08:25:12.962257290 -0600 +@@ -3998,6 +3998,15 @@ try create_module.lib_directories.ensureUnusedCapacity(arena, paths.lib_dirs.items.len); - for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(&create_module.lib_directories, path, true); + for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(io, &create_module.lib_directories, path, true); + + for (paths.lib_dirs.items) |native_lib_dir| { + for (0.., create_module.rpath_list.items) |i, rpath_dir| { diff --git a/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch b/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch deleted file mode 100644 index d4dd5bb4eb..0000000000 --- a/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1796a91063dc5ed71418f164bb7d98ca65c33d4a Mon Sep 17 00:00:00 2001 -From: Jan200101 -Date: Mon, 16 Jun 2025 20:46:25 +0200 -Subject: [PATCH] link.Elf: add root directory of libraries to linker path - -All the given dynamic shared objects will be linked with an absolute -path however they may link to other dynamic shared objects which won't -have an absolute path, for this we need to add the library path so that -lld can resolve it. - -Signed-off-by: Jan200101 ---- - src/link/Lld.zig | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/link/Lld.zig b/src/link/Lld.zig -index 4ea809428e..b8421dd60a 100644 ---- a/src/link/Lld.zig -+++ b/src/link/Lld.zig -@@ -1109,9 +1109,19 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { - // Positional arguments to the linker such as object files. - var whole_archive = false; - -+ var lib_directories = std.StringArrayHashMap(void).init(gpa); -+ defer lib_directories.deinit(); -+ - for (base.comp.link_inputs) |link_input| switch (link_input) { - .res => unreachable, // Windows-only -- .dso => continue, -+ .dso => |dso| { -+ if (dso.path.root_dir.path) |root_dir| { -+ const lib_dir = try lib_directories.getOrPut(root_dir); -+ if (lib_dir.found_existing) continue; -+ try argv.append("-L"); -+ try argv.append(root_dir); -+ } -+ }, - .object, .archive => |obj| { - if (obj.must_link and !whole_archive) { - try argv.append("-whole-archive"); --- -2.49.0 - diff --git a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec index 8ff2ecb563..9e7b95abef 100644 --- a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec +++ b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec @@ -47,7 +47,6 @@ URL: https://ziglang.org Source0: %{archive_name} Source1: %{archive_name}.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch3: 0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ diff --git a/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch b/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch index 1e1c1f1709..034d8ed0f3 100644 --- a/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch +++ b/anda/langs/zig/master/0000-remove-native-lib-directories-from-rpath.patch @@ -1,9 +1,9 @@ ---- a/src/main.zig 2025-04-25 06:01:31.337458939 -0500 -+++ b/src/main.zig 2025-04-25 06:03:02.239473385 -0500 -@@ -4072,6 +4072,15 @@ +--- a/src/main.zig 2025-12-27 19:19:30.000000000 -0600 ++++ b/src/main.zig 2025-12-31 08:25:12.962257290 -0600 +@@ -3998,6 +3998,15 @@ try create_module.lib_directories.ensureUnusedCapacity(arena, paths.lib_dirs.items.len); - for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(&create_module.lib_directories, path, true); + for (paths.lib_dirs.items) |path| addLibDirectoryWarn2(io, &create_module.lib_directories, path, true); + + for (paths.lib_dirs.items) |native_lib_dir| { + for (0.., create_module.rpath_list.items) |i, rpath_dir| { diff --git a/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch b/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch deleted file mode 100644 index d4dd5bb4eb..0000000000 --- a/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1796a91063dc5ed71418f164bb7d98ca65c33d4a Mon Sep 17 00:00:00 2001 -From: Jan200101 -Date: Mon, 16 Jun 2025 20:46:25 +0200 -Subject: [PATCH] link.Elf: add root directory of libraries to linker path - -All the given dynamic shared objects will be linked with an absolute -path however they may link to other dynamic shared objects which won't -have an absolute path, for this we need to add the library path so that -lld can resolve it. - -Signed-off-by: Jan200101 ---- - src/link/Lld.zig | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/link/Lld.zig b/src/link/Lld.zig -index 4ea809428e..b8421dd60a 100644 ---- a/src/link/Lld.zig -+++ b/src/link/Lld.zig -@@ -1109,9 +1109,19 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { - // Positional arguments to the linker such as object files. - var whole_archive = false; - -+ var lib_directories = std.StringArrayHashMap(void).init(gpa); -+ defer lib_directories.deinit(); -+ - for (base.comp.link_inputs) |link_input| switch (link_input) { - .res => unreachable, // Windows-only -- .dso => continue, -+ .dso => |dso| { -+ if (dso.path.root_dir.path) |root_dir| { -+ const lib_dir = try lib_directories.getOrPut(root_dir); -+ if (lib_dir.found_existing) continue; -+ try argv.append("-L"); -+ try argv.append(root_dir); -+ } -+ }, - .object, .archive => |obj| { - if (obj.must_link and !whole_archive) { - try argv.append("-whole-archive"); --- -2.49.0 - diff --git a/anda/langs/zig/master/zig-master.spec b/anda/langs/zig/master/zig-master.spec index d6af6c90d4..d9f56ad402 100644 --- a/anda/langs/zig/master/zig-master.spec +++ b/anda/langs/zig/master/zig-master.spec @@ -22,7 +22,6 @@ URL: https://ziglang.org Source0: %{archive_name} Source1: %{archive_name}.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch3: 0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++