{ pkgs ? import { overlays = [ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz")) ]; } }: let # Define the specific toolchain with ESP32-C6 support rustToolchain = pkgs.rust-bin.selectLatestNightlyWith(toolchain: toolchain.default.override { targets = [ "riscv32imac-unknown-none-elf" ]; extensions = [ "rust-src" "llvm-tools-preview" ]; }); in pkgs.mkShell { nativeBuildInputs = [ rustToolchain pkgs.probe-rs-tools pkgs.espflash # For flashing your ESP32-C6 pkgs.pkg-config pkgs.gcc # Critical: provides the 'cc' wrapper script ]; # Injects necessary library paths for the Nix-wrapped linker shellHook = '' export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [ pkgs.stdenv.cc.cc ]}" ''; }