diff options
author | Will Dietz <w@wdtz.org> | 2017-02-10 15:22:49 -0600 |
---|---|---|
committer | Will Dietz <w@wdtz.org> | 2017-02-12 14:31:16 -0600 |
commit | a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6 (patch) | |
tree | 300c65627b03a4aaba0bc20a6ca9a0f8cc4d8413 /pkgs/development/tools | |
parent | 06bacb10e5c0ae4af621648891da0aa979c8c8de (diff) | |
download | nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar.gz nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar.bz2 nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar.lz nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar.xz nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.tar.zst nixlib-a82b3dd8e22e1d4555bd4f5487192e9d7cd58be6.zip |
creduce: init at 2.6.0
Also includes perl dependency 'GetOpt::Tabular'.
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r-- | pkgs/development/tools/misc/creduce/default.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix new file mode 100644 index 000000000000..a9296adf3343 --- /dev/null +++ b/pkgs/development/tools/misc/creduce/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, cmake +, llvm, clang-unwrapped +, flex +, zlib +, perl, ExporterLite, FileWhich, GetoptTabular, RegexpCommon, TermReadKey +, utillinux +}: + +assert stdenv.isLinux -> (utillinux != null); + +stdenv.mkDerivation rec { + name = "creduce-${version}"; + version = "2.6.0"; + + src = fetchurl { + url = "http://embed.cs.utah.edu/creduce/${name}.tar.gz"; + sha256 = "0pf5q0n8vkdcr1wrkxn2jzxv0xkrir13bwmqfw3jpbm3dh2c3b6d"; + }; + + buildInputs = [ + # Ensure stdenv's CC is on PATH before clang-unwrapped + stdenv.cc + # Actual deps: + cmake + llvm clang-unwrapped + flex zlib + ]; + + # On Linux, c-reduce's preferred way to reason about + # the cpu architecture/topology is to use 'lscpu', + # so let's make sure it knows where to find it: + patchPhase = stdenv.lib.optionalString stdenv.isLinux '' + substituteInPlace creduce/creduce_utils.pm --replace \ + lscpu ${utillinux}/bin/lscpu + ''; + + perlDeps = [ + perl ExporterLite FileWhich GetoptTabular RegexpCommon TermReadKey + ]; + + propagatedNativeBuildInputs = perlDeps; + propagatedUserEnvPkgs = perlDeps; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "A C program reducer"; + homepage = "https://embed.cs.utah.edu/creduce"; + # Officially, the license is: https://github.com/csmith-project/creduce/blob/master/COPYING + license = licenses.ncsa; + longDescription = '' + C-Reduce is a tool that takes a large C or C++ program that has a + property of interest (such as triggering a compiler bug) and + automatically produces a much smaller C/C++ program that has the same + property. It is intended for use by people who discover and report + bugs in compilers and other tools that process C/C++ code. + ''; + maintainers = [ maintainers.dtzWill ]; + platforms = platforms.all; + }; +} |