diff --git a/anda/langs/zig/bootstrap/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch b/anda/langs/zig/bootstrap/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch deleted file mode 100644 index f2e22e1bf0..0000000000 --- a/anda/langs/zig/bootstrap/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/build.zig 2025-05-21 00:23:29.485933582 -0500 -+++ b/build.zig 2025-05-21 00:25:06.001631897 -0500 -@@ -690,7 +690,7 @@ - fn addCompilerStep(b: *std.Build, options: AddCompilerModOptions) *std.Build.Step.Compile { - const exe = b.addExecutable(.{ - .name = "zig", -- .max_rss = 7_800_000_000, -+ .max_rss = 10_000_000_000, - .root_module = addCompilerMod(b, options), - }); - exe.stack_size = stack_size; diff --git a/anda/langs/zig/bootstrap/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch b/anda/langs/zig/bootstrap/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch deleted file mode 100644 index 21438943cc..0000000000 --- a/anda/langs/zig/bootstrap/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/build.zig 2025-04-25 05:56:25.033100994 -0500 -+++ b/build.zig 2025-04-25 05:57:16.965173352 -0500 -@@ -1392,7 +1392,14 @@ - // in a temporary directory - "--cache-root", b.cache_root.path orelse ".", - }); -- cmd.addArgs(&.{ "--zig-lib-dir", b.fmt("{}", .{b.graph.zig_lib_directory}) }); -+ if (b.graph.zig_lib_directory.path) |zig_lib_dir| { -+ cmd.addArgs(&.{"--zig-lib-dir"}); -+ if (fs.path.isAbsolute(zig_lib_dir)) { -+ cmd.addArgs(&.{zig_lib_dir}); -+ } else { -+ cmd.addDirectoryArg(b.path(zig_lib_dir)); -+ } -+ } - cmd.addArgs(&.{"-i"}); - cmd.addFileArg(b.path(b.fmt("doc/langref/{s}", .{entry.name}))); - 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 new file mode 100644 index 0000000000..4bfc87db0e --- /dev/null +++ b/anda/langs/zig/bootstrap/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch @@ -0,0 +1,40 @@ +From 48aa23307d1a47b444854fc09478da6d4ee8e624 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Sun, 11 May 2025 01:09:41 +0200 +Subject: [PATCH 5/5] 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/Elf.zig | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/link/Elf.zig b/src/link/Elf.zig +index 53f88101b1..fe2b7abd48 100644 +--- a/src/link/Elf.zig ++++ b/src/link/Elf.zig +@@ -1938,9 +1938,19 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s + // 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 (self.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 c52d567b78..0bbbb5c83f 100644 --- a/anda/langs/zig/bootstrap/zig-master-bootstrap.spec +++ b/anda/langs/zig/bootstrap/zig-master-bootstrap.spec @@ -46,9 +46,7 @@ URL: https://ziglang.org Source0: %{url}/builds/zig-%{ver}.tar.xz Source1: %{url}/builds/zig-%{ver}.tar.xz.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch1: 0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch -Patch2: 0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch -Patch3: https://src.fedoraproject.org/rpms/zig/raw/rawhide/f/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.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/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch b/anda/langs/zig/master/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch deleted file mode 100644 index f2e22e1bf0..0000000000 --- a/anda/langs/zig/master/0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/build.zig 2025-05-21 00:23:29.485933582 -0500 -+++ b/build.zig 2025-05-21 00:25:06.001631897 -0500 -@@ -690,7 +690,7 @@ - fn addCompilerStep(b: *std.Build, options: AddCompilerModOptions) *std.Build.Step.Compile { - const exe = b.addExecutable(.{ - .name = "zig", -- .max_rss = 7_800_000_000, -+ .max_rss = 10_000_000_000, - .root_module = addCompilerMod(b, options), - }); - exe.stack_size = stack_size; diff --git a/anda/langs/zig/master/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch b/anda/langs/zig/master/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch deleted file mode 100644 index 21438943cc..0000000000 --- a/anda/langs/zig/master/0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/build.zig 2025-04-25 05:56:25.033100994 -0500 -+++ b/build.zig 2025-04-25 05:57:16.965173352 -0500 -@@ -1392,7 +1392,14 @@ - // in a temporary directory - "--cache-root", b.cache_root.path orelse ".", - }); -- cmd.addArgs(&.{ "--zig-lib-dir", b.fmt("{}", .{b.graph.zig_lib_directory}) }); -+ if (b.graph.zig_lib_directory.path) |zig_lib_dir| { -+ cmd.addArgs(&.{"--zig-lib-dir"}); -+ if (fs.path.isAbsolute(zig_lib_dir)) { -+ cmd.addArgs(&.{zig_lib_dir}); -+ } else { -+ cmd.addDirectoryArg(b.path(zig_lib_dir)); -+ } -+ } - cmd.addArgs(&.{"-i"}); - cmd.addFileArg(b.path(b.fmt("doc/langref/{s}", .{entry.name}))); - 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 new file mode 100644 index 0000000000..4bfc87db0e --- /dev/null +++ b/anda/langs/zig/master/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch @@ -0,0 +1,40 @@ +From 48aa23307d1a47b444854fc09478da6d4ee8e624 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Sun, 11 May 2025 01:09:41 +0200 +Subject: [PATCH 5/5] 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/Elf.zig | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/link/Elf.zig b/src/link/Elf.zig +index 53f88101b1..fe2b7abd48 100644 +--- a/src/link/Elf.zig ++++ b/src/link/Elf.zig +@@ -1938,9 +1938,19 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s + // 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 (self.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 6a15c35a13..6e2111df6a 100644 --- a/anda/langs/zig/master/zig-master.spec +++ b/anda/langs/zig/master/zig-master.spec @@ -21,9 +21,7 @@ URL: https://ziglang.org Source0: %{url}/builds/zig-%{version_no_tilde}.tar.xz Source1: %{url}/builds/zig-%{version_no_tilde}.tar.xz.minisig Patch0: 0000-remove-native-lib-directories-from-rpath.patch -Patch1: 0001-increase-upper-bounds-of-main-zig-executable-to-10G.patch -Patch2: 0002-build-pass-zig-lib-dir-as-directory-instead-of-as-st.patch -Patch3: https://src.fedoraproject.org/rpms/zig/raw/rawhide/f/0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch +Patch3: 0005-link.Elf-add-root-directory-of-libraries-to-linker-p.patch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++