From f17f4fe8f70bec8413af340f56925b31b5620c85 Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Thu, 16 Oct 2025 10:06:10 +0000 Subject: Include musl-compiled and statically-linked redis as dependency --- flake.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/flake.nix b/flake.nix index a1420ba..8f6fd89 100644 --- a/flake.nix +++ b/flake.nix @@ -254,6 +254,10 @@ version = "git"; src = ./rr; }); + + musl-redis-nocheck = musl-pkgs.pkgsStatic.redis.overrideAttrs (_: { + doCheck = false; + }); in rec { # Default package just builds Focaccia packages = rec { @@ -390,9 +394,25 @@ packages = [ packages.dev rr + pkgs.capnproto musl-pkgs.gcc + musl-pkgs.pkg-config + ]; + + hardeningDisable = [ "pie" ]; + + env = uvEnv; + shellHook = uvShellHook; + }; + + musl-all = pkgs.mkShell { + packages = [ + packages.dev + pkgs.rr pkgs.capnproto + musl-pkgs.gcc musl-pkgs.pkg-config + musl-redis-nocheck ]; hardeningDisable = [ "pie" ]; -- cgit 1.4.1 From ee64519abb38d4d30d0704ad6f79f700aa53ee47 Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Fri, 17 Oct 2025 07:00:49 +0000 Subject: Make Redis build use reduced instruction set --- flake.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 8f6fd89..9520807 100644 --- a/flake.nix +++ b/flake.nix @@ -255,8 +255,14 @@ src = ./rr; }); - musl-redis-nocheck = musl-pkgs.pkgsStatic.redis.overrideAttrs (_: { + redis-flags = " -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -mno-avx" + + " -mno-avx2 -mno-avx512f"; + musl-redis-nocheck = musl-pkgs.pkgsStatic.redis.overrideAttrs (old: rec { doCheck = false; + env = (old.env or {}) // { + NIX_CFLAGS_COMPILE = (old.env.NIX_CFLAGS_COMPILE or "") + redis-flags; + }; + makeFlags = (old.makeFlags or []) ++ [ "CFLAGS=${env.NIX_CFLAGS_COMPILE}" ]; }); in rec { # Default package just builds Focaccia -- cgit 1.4.1 From f007f43dfd8129a51e8c02df80a6b7eda8c8e99d Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Fri, 17 Oct 2025 11:39:49 +0000 Subject: Add support for building entire musl with reduced x86 instruction set --- flake.nix | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/flake.nix b/flake.nix index 9520807..9a9b9f8 100644 --- a/flake.nix +++ b/flake.nix @@ -55,6 +55,30 @@ }; }; + minimal-compile-flags = " -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -mno-avx" + + " -mno-avx2 -mno-avx512f"; + musl-minimal-pkgs = import nixpkgs { + inherit system; + crossSystem = { + config = "${system}-musl"; + }; + overlays = [ + (final: prev: { + stdenv = prev.stdenv.override (old: { + cc = if old.cc != null then old.cc.overrideAttrs (ccOld: { + env = let + oldEnv = ccOld.env or {}; + oldFlags = oldEnv.NIX_CFLAGS_COMPILE or ""; + in + oldEnv // { + NIX_CFLAGS_COMPILE = oldFlags + minimal-compile-flags; + }; + }) else null; + }); + }) + ]; + }; + # Pin Python version python = pkgs.python312; @@ -255,14 +279,8 @@ src = ./rr; }); - redis-flags = " -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -mno-avx" + - " -mno-avx2 -mno-avx512f"; - musl-redis-nocheck = musl-pkgs.pkgsStatic.redis.overrideAttrs (old: rec { + musl-minimal-redis-nocheck = musl-minimal-pkgs.pkgsStatic.redis.overrideAttrs (old: { doCheck = false; - env = (old.env or {}) // { - NIX_CFLAGS_COMPILE = (old.env.NIX_CFLAGS_COMPILE or "") + redis-flags; - }; - makeFlags = (old.makeFlags or []) ++ [ "CFLAGS=${env.NIX_CFLAGS_COMPILE}" ]; }); in rec { # Default package just builds Focaccia @@ -418,7 +436,7 @@ pkgs.capnproto musl-pkgs.gcc musl-pkgs.pkg-config - musl-redis-nocheck + musl-minimal-redis-nocheck ]; hardeningDisable = [ "pie" ]; -- cgit 1.4.1 From 84e05e0a34ebeaaf79a35645bfebd03f79833380 Mon Sep 17 00:00:00 2001 From: Theofilos Augoustis Date: Fri, 24 Oct 2025 08:09:37 +0000 Subject: Add more packages to test in Focaccia --- flake.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 9a9b9f8..b560660 100644 --- a/flake.nix +++ b/flake.nix @@ -56,7 +56,7 @@ }; minimal-compile-flags = " -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -mno-avx" + - " -mno-avx2 -mno-avx512f"; + " -mno-avx2 -mno-avx512f -static"; musl-minimal-pkgs = import nixpkgs { inherit system; crossSystem = { @@ -437,6 +437,8 @@ musl-pkgs.gcc musl-pkgs.pkg-config musl-minimal-redis-nocheck + musl-minimal-pkgs.pkgsStatic.gzip + musl-minimal-pkgs.pkgsStatic.file ]; hardeningDisable = [ "pie" ]; -- cgit 1.4.1