{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs }: let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" "riscv64-linux" ]; eachSystem = f: nixpkgs.lib.genAttrs systems ( system: f { inherit system; pkgs = import nixpkgs { inherit system; }; } ); in { devShells = eachSystem ( { system, pkgs }: with pkgs; let stdenv = llvmPackages.stdenv; shell = mkShell.override { inherit stdenv; }; musl-src = runCommand "musl-src" { } '' mkdir $out tar -xf ${musl.src} -C $out ''; musl-static = musl.overrideAttrs (attrs: { # this HAS the be fixed in upstream nixpkgs one day, right? CFLAGS = attrs.CFLAGS ++ [ "-fdebug-prefix-map=/build=${musl-src}" ]; seperateDebugInfo = false; dontStrip = true; }); in { default = shell { buildInputs = [ musl-static ]; nativeBuildInputs = [ pkg-config gnumake lldb llvmPackages.bintools ]; }; } ); }; }