{ lib , stdenv , fetchFromGitHub , fetchpatch , cmake , pkg-config , zlib , curl , elfutils , python3 , libiberty , libopcodes , runCommand , gcc , rustc }: let self = stdenv.mkDerivation rec { pname = "kcov"; version = "38"; src = fetchFromGitHub { owner = "SimonKagstrom"; repo = "kcov"; rev = "v${version}"; sha256 = "sha256-6LoIo2/yMUz8qIpwJVcA3qZjjF+8KEM1MyHuyHsQD38="; }; patches = [ # Pull upstream patch for binutils-2/39 support: # https://github.com/SimonKagstrom/kcov/pull/383 (fetchpatch { name = "binutils-2.39.patch"; url = "https://github.com/SimonKagstrom/kcov/commit/fd1a4fd2f02cee49afd74e427e38c61b89154582.patch"; hash = "sha256-licQkC8qDg2i6No3j0yKEU6i+Owi4lhrnfGvETkzz7w="; }) ]; preConfigure = "patchShebangs src/bin-to-c-source.py"; nativeBuildInputs = [ cmake pkg-config python3 ]; buildInputs = [ curl zlib elfutils libiberty libopcodes ]; strictDeps = true; passthru.tests = { works-on-c = runCommand "works-on-c" {} '' set -ex cat - > a.c < a.rs <