nixpkgs-suyu/pkgs/development/tools/analysis/kcov/default.nix
Léo Gaspard 4317f7ab26
kcov: fix build on aarch64
Apparently, without this patch `NT_PRSTATUS` is not found. So the patch
adds the include apparently necessary. `NT_PRSTATUS` is also defined in
`<linux/ptrace.h>`, which would likely have been a better name, were it
not in the `linux/` directory, which is a priori not stable.

The need to do that is kind of weird (the change was introduced in [1],
and fedora apparently didn't need this additional import), but I'll try
to upstream it.

[1] https://github.com/SimonKagstrom/kcov/pull/239
2018-04-28 00:10:40 +02:00

40 lines
1.2 KiB
Nix

{stdenv, fetchFromGitHub, cmake, pkgconfig, zlib, curl, elfutils, python, libiberty, libopcodes}:
stdenv.mkDerivation rec {
name = "kcov-${version}";
version = "35";
src = fetchFromGitHub {
owner = "SimonKagstrom";
repo = "kcov";
rev = "v${version}";
sha256 = "1da9vm87pi5m9ika0q1f1ai85w3vwlap8yln147yr9sc37jp5jcw";
};
preConfigure = "patchShebangs src/bin-to-c-source.py";
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ zlib curl elfutils python libiberty libopcodes ];
patches = [ ./aarch64_nt_prstatus.patch ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
longDescription = ''
Kcov is a code coverage tester for compiled programs, Python
scripts and shell scripts. It allows collecting code coverage
information from executables without special command-line
arguments, and continuosly produces output from long-running
applications.
'';
homepage = http://simonkagstrom.github.io/kcov/index.html;
license = licenses.gpl2;
maintainers = with maintainers; [ gal_bolle ekleog ];
platforms = platforms.linux;
};
}