nixpkgs/pkgs/development/tools/analysis/rr/default.nix
Will Dietz 541d30a3a9 rr: enable on 32bit x86
Lack of 32bit support led to the creation
of an overlay to add it back again,
but since it at least builds and seems to work
don't see why we'd disallow it here :).
2018-07-30 07:27:25 -05:00

57 lines
1.6 KiB
Nix

{ stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkgconfig, python2Packages, which, procps, gdb, capnproto }:
stdenv.mkDerivation rec {
version = "5.2.0";
name = "rr-${version}";
src = fetchFromGitHub {
owner = "mozilla";
repo = "rr";
rev = version;
sha256 = "19jsnm8n2smalx2z60x9d8f6g4kdm7zghwyjfvwcxnslk1vn9dkc";
};
postPatch = ''
substituteInPlace src/Command.cc --replace '_BSD_SOURCE' '_DEFAULT_SOURCE'
sed '7i#include <math.h>' -i src/Scheduler.cc
patchShebangs .
'';
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
cmake libpfm zlib python2Packages.python python2Packages.pexpect which procps gdb capnproto
];
cmakeFlags = [
"-DCMAKE_C_FLAGS_RELEASE:STRING="
"-DCMAKE_CXX_FLAGS_RELEASE:STRING="
"-Ddisable32bit=ON"
];
# we turn on additional warnings due to hardening
NIX_CFLAGS_COMPILE = "-Wno-error";
hardeningDisable = [ "fortify" ];
enableParallelBuilding = true;
# FIXME
#doCheck = true;
preCheck = "export HOME=$TMPDIR";
meta = {
homepage = https://rr-project.org/;
description = "Records nondeterministic executions and debugs them deterministically";
longDescription = ''
rr aspires to be your primary debugging tool, replacing -- well,
enhancing -- gdb. You record a failure once, then debug the
recording, deterministically, as many times as you want. Every
time the same execution is replayed.
'';
license = "custom";
maintainers = with stdenv.lib.maintainers; [ pierron thoughtpolice ];
platforms = stdenv.lib.platforms.x86;
};
}