kcov: 38 -> 41 (#220464)

This commit is contained in:
tricktron 2023-03-19 21:17:00 +01:00 committed by GitHub
parent 42ceacb854
commit 314ea5125a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,6 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, cmake , cmake
, pkg-config , pkg-config
, zlib , zlib
@ -10,8 +9,7 @@
, python3 , python3
, libiberty , libiberty
, libopcodes , libopcodes
, runCommand , runCommandCC
, gcc
, rustc , rustc
}: }:
@ -19,25 +17,15 @@ let
self = self =
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kcov"; pname = "kcov";
version = "38"; version = "41";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SimonKagstrom"; owner = "SimonKagstrom";
repo = "kcov"; repo = "kcov";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-6LoIo2/yMUz8qIpwJVcA3qZjjF+8KEM1MyHuyHsQD38="; sha256 = "sha256-Kit4Yn5Qeg3uAc6+RxwlVEhDKN6at+Uc7V38yhDPrAY=";
}; };
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"; preConfigure = "patchShebangs src/bin-to-c-source.py";
nativeBuildInputs = [ cmake pkg-config python3 ]; nativeBuildInputs = [ cmake pkg-config python3 ];
@ -46,25 +34,25 @@ let
strictDeps = true; strictDeps = true;
passthru.tests = { passthru.tests = {
works-on-c = runCommand "works-on-c" {} '' works-on-c = runCommandCC "works-on-c" { } ''
set -ex set -ex
cat - > a.c <<EOF cat - > a.c <<EOF
int main() {} int main() {}
EOF EOF
${gcc}/bin/gcc a.c -o a.out $CC a.c -o a.out
${self}/bin/kcov /tmp/kcov ./a.out ${self}/bin/kcov /tmp/kcov ./a.out
test -e /tmp/kcov/index.html test -e /tmp/kcov/index.html
touch $out touch $out
set +x set +x
''; '';
works-on-rust = runCommand "works-on-rust" {} '' works-on-rust = runCommandCC "works-on-rust" { nativeBuildInputs = [ rustc ]; } ''
set -ex set -ex
cat - > a.rs <<EOF cat - > a.rs <<EOF
fn main() {} fn main() {}
EOF EOF
# Put gcc in the path so that `cc` is found # Put gcc in the path so that `cc` is found
PATH=${gcc}/bin:$PATH ${rustc}/bin/rustc a.rs -o a.out rustc a.rs -o a.out
${self}/bin/kcov /tmp/kcov ./a.out ${self}/bin/kcov /tmp/kcov ./a.out
test -e /tmp/kcov/index.html test -e /tmp/kcov/index.html
touch $out touch $out