From 3099a1842417dc32972f2575abe4f4573bde39e5 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 22 Mar 2025 22:36:24 -0400 Subject: [PATCH] Enable optimization on odo. --- nix/configuration/flake.lock | 29 +++++++++++++---- nix/configuration/flake.nix | 7 +++++ .../hosts/odo/optimized_build.nix | 31 ++++++++++++++++--- nix/configuration/roles/wasm/default.nix | 3 +- 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/nix/configuration/flake.lock b/nix/configuration/flake.lock index a147e7a..424a1ab 100644 --- a/nix/configuration/flake.lock +++ b/nix/configuration/flake.lock @@ -135,11 +135,11 @@ ] }, "locked": { - "lastModified": 1741955947, - "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", + "lastModified": 1742588233, + "narHash": "sha256-Fi5g8H5FXMSRqy+mU6gPG0v+C9pzjYbkkiePtz8+PpA=", "owner": "nix-community", "repo": "home-manager", - "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", + "rev": "296ddc64627f4a6a4eb447852d7346b9dd16197d", "type": "github" }, "original": { @@ -191,11 +191,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1741851582, - "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", + "lastModified": 1742422364, + "narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", + "rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc", "type": "github" }, "original": { @@ -237,6 +237,22 @@ "type": "github" } }, + "nixpkgs-unoptimized": { + "locked": { + "lastModified": 1742422364, + "narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -272,6 +288,7 @@ "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs", "nixpkgs-b93b4e9b5": "nixpkgs-b93b4e9b5", + "nixpkgs-unoptimized": "nixpkgs-unoptimized", "zsh-histdb": "zsh-histdb" } }, diff --git a/nix/configuration/flake.nix b/nix/configuration/flake.nix index 0d5faf3..9ca9626 100644 --- a/nix/configuration/flake.nix +++ b/nix/configuration/flake.nix @@ -32,6 +32,7 @@ impermanence.url = "github:nix-community/impermanence"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-b93b4e9b5.url = "github:NixOS/nixpkgs/b93b4e9b527904aadf52dba6ca35efde2067cbd4"; + nixpkgs-unoptimized.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote = { @@ -58,6 +59,7 @@ { self, nixpkgs, + nixpkgs-unoptimized, nixpkgs-b93b4e9b5, impermanence, home-manager, @@ -73,6 +75,11 @@ pkgs-b93b4e9b5 = import nixpkgs-b93b4e9b5 { inherit system; }; + pkgs-unoptimized = import nixpkgs-unoptimized { + inherit system; + hostPlatform.gcc.arch = "default"; + hostPlatform.gcc.tune = "default"; + }; }; modules = [ impermanence.nixosModules.impermanence diff --git a/nix/configuration/hosts/odo/optimized_build.nix b/nix/configuration/hosts/odo/optimized_build.nix index 74a0cc3..45ebd7b 100644 --- a/nix/configuration/hosts/odo/optimized_build.nix +++ b/nix/configuration/hosts/odo/optimized_build.nix @@ -2,6 +2,7 @@ config, lib, pkgs, + pkgs-unoptimized, ... }: { @@ -25,11 +26,11 @@ # Keep ALL dependencies so we can rebuild offline. This DRASTICALLY increase disk usage, but disk space is cheap. # system.includeBuildDependencies = true; - # nixpkgs.hostPlatform = { - # gcc.arch = "znver4"; - # gcc.tune = "znver4"; - # system = "x86_64-linux"; - # }; + nixpkgs.hostPlatform = { + gcc.arch = "znver4"; + gcc.tune = "znver4"; + system = "x86_64-linux"; + }; nixpkgs.overlays = [ ( @@ -77,6 +78,26 @@ # }); } ) + (final: prev: { + haskellPackages = prev.haskellPackages.extend ( + final': prev': { + crypton = pkgs-unoptimized.haskellPackages.crypton; + } + ); + }) + # (final: prev: { + # haskell = prev.haskell // { + # packageOverrides = final.lib.composeExtensions prev.haskell.packageOverrides ( + # final': prev': { + # crypton = pkgs-unoptimized.haskellPackages.crypton; + # } + # ); + # }; + # }) + (final: prev: { + redis = pkgs-unoptimized.redis; + gsl = pkgs-unoptimized.gsl; + }) ]; boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_znver4; diff --git a/nix/configuration/roles/wasm/default.nix b/nix/configuration/roles/wasm/default.nix index f564ec8..3ce9433 100644 --- a/nix/configuration/roles/wasm/default.nix +++ b/nix/configuration/roles/wasm/default.nix @@ -2,6 +2,7 @@ config, lib, pkgs, + pkgs-unoptimized, ... }: @@ -23,7 +24,7 @@ environment.systemPackages = with pkgs; [ wabt wasm-bindgen-cli - binaryen # for wasm-opt + pkgs-unoptimized.binaryen # for wasm-opt ]; } ]