From c3a5f937d374d9b2e6aee93bbec7b6786b7c1457 Mon Sep 17 00:00:00 2001 From: eldritch horrors Date: Mon, 25 Mar 2024 22:16:38 +0100 Subject: [PATCH] flake.nix: linearize meson builds parallel meson builds need too much ram. linearize them for now, and hopefully we can remove the make build system and this hack soonish. Change-Id: I42c092db8b0c63680e77da2263cdfe9e7f6575be --- flake.nix | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 5ab36408b..21d6de9e8 100644 --- a/flake.nix +++ b/flake.nix @@ -205,13 +205,20 @@ build = forAllSystems (system: self.packages.${system}.nix); # FIXME(Qyriad): remove this when the migration to Meson has been completed. - mesonBuild = forAllSystems (system: self.packages.${system}.nix.override { - buildWithMeson = true; - }); + # NOTE: mesonBuildClang depends on mesonBuild depends on build to avoid OOMs + # on aarch64 builders caused by too many parallel compiler/linker processes. + mesonBuild = forAllSystems (system: + (self.packages.${system}.nix.override { + buildWithMeson = true; + }).overrideAttrs (prev: { + buildInputs = prev.buildInputs ++ [ self.packages.${system}.nix ]; + })); mesonBuildClang = forAllSystems (system: - nixpkgsFor.${system}.stdenvs.clangStdenvPackages.nix.override { + (nixpkgsFor.${system}.stdenvs.clangStdenvPackages.nix.override { buildWithMeson = true; - } + }).overrideAttrs (prev: { + buildInputs = prev.buildInputs ++ [ self.hydraJobs.mesonBuild.${system} ]; + }) ); # Perl bindings for various platforms.