diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix index c832d12627a..8551a3ee4ca 100644 --- a/pkgs/applications/science/logic/abc/default.nix +++ b/pkgs/applications/science/logic/abc/default.nix @@ -1,16 +1,20 @@ { fetchFromGitHub, stdenv, readline, cmake }: -stdenv.mkDerivation { +let + rev = "71f2b40320127561175ad60f6f2428f3438e5243"; +in stdenv.mkDerivation { pname = "abc-verifier"; - version = "2018-07-08"; + version = "2020-01-11"; src = fetchFromGitHub { + inherit rev; owner = "berkeley-abc"; repo = "abc"; - rev = "24407e13db4b8ca16c3996049b2d33ec3722de39"; - sha256 = "1rckji7nk81n6v1yajz7daqwipxacv7zlafknvmbiwji30j47sq5"; + sha256 = "15sn146ajxql7l1h8rsag5lhn4spwvgjhwzqawfr78snzadw8by3"; }; + passthru.rev = rev; + nativeBuildInputs = [ cmake ]; buildInputs = [ readline ]; diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix index 8948af17145..7027c5a0523 100644 --- a/pkgs/development/compilers/yosys/default.nix +++ b/pkgs/development/compilers/yosys/default.nix @@ -1,75 +1,65 @@ -{ stdenv, fetchFromGitHub -, pkgconfig, bison, flex -, tcl, readline, libffi, python3 -, protobuf, zlib +{ stdenv +, abc-verifier +, bison +, fetchFromGitHub +, flex +, libffi +, pkgconfig +, protobuf +, python3 +, readline +, tcl , verilog +, zlib }: -with builtins; - stdenv.mkDerivation rec { pname = "yosys"; - version = "2019.10.18"; + version = "2020.02.01"; - srcs = [ - (fetchFromGitHub { - owner = "yosyshq"; - repo = "yosys"; - rev = "3c41599ee1f62e4d77ba630fa1a245ef3fe236fa"; - sha256 = "0jg2g8v08ax1q6qlvn8c1h147m03adzrgf21043xwbh4c7s5k137"; - name = "yosys"; - }) - - # NOTE: the version of abc used here is synchronized with - # the one in the yosys Makefile of the version above; - # keep them the same for quality purposes. - (fetchFromGitHub { - owner = "berkeley-abc"; - repo = "abc"; - rev = "623b5e82513d076a19f864c01930ad1838498894"; - sha256 = "1mrfqwsivflqdzc3531r6mzp33dfyl6dnqjdwfcq137arqh36m67"; - name = "yosys-abc"; - }) - ]; - sourceRoot = "yosys"; + src = fetchFromGitHub { + owner = "yosyshq"; + repo = "yosys"; + rev = "a1c840ca5d6e8b580e21ae48550570aa9665741a"; + sha256 = "1vna04dh6l68nifssgs3hxqwn4k529krmm4crj94a8wwhwra52mh"; + name = "yosys"; + }; enableParallelBuilding = true; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ tcl readline libffi python3 bison flex protobuf zlib ]; - makeFlags = [ "ENABLE_PROTOBUF=1" ]; + makeFlags = [ "ENABLE_PROTOBUF=1" "PREFIX=${placeholder "out"}"]; patchPhase = '' - substituteInPlace ../yosys-abc/Makefile \ - --replace 'CC := gcc' "" \ - --replace 'CXX := g++' "" substituteInPlace ./Makefile \ --replace 'CXX = clang' "" \ --replace 'LD = clang++' 'LD = $(CXX)' \ --replace 'CXX = gcc' "" \ --replace 'LD = gcc' 'LD = $(CXX)' \ --replace 'ABCMKARGS = CC="$(CXX)" CXX="$(CXX)"' 'ABCMKARGS =' \ - --replace 'echo UNKNOWN' 'echo ${substring 0 10 (elemAt srcs 0).rev}' + --replace 'echo UNKNOWN' 'echo ${builtins.substring 0 10 src.rev}' patchShebangs tests ''; - preBuild = '' - chmod -R u+w ../yosys-abc - ln -s ../yosys-abc abc + preBuild = let + shortAbcRev = builtins.substring 0 7 abc-verifier.rev; + in '' + chmod -R u+w . make config-${if stdenv.cc.isClang or false then "clang" else "gcc"} - echo 'ABCREV := default' >> Makefile.conf - makeFlags="PREFIX=$out $makeFlags" + echo 'ABCEXTERNAL = ${abc-verifier}/bin/abc' >> Makefile.conf # we have to do this ourselves for some reason... (cd misc && ${protobuf}/bin/protoc --cpp_out ../backends/protobuf/ ./yosys.proto) + + if ! grep -q "ABCREV = ${shortAbcRev}" Makefile;then + echo "yosys isn't compatible with the provided abc (${shortAbcRev}), failing." + exit 1 + fi ''; doCheck = true; checkInputs = [ verilog ]; - # checkPhase defaults to VERBOSE=y, which gets passed down to abc, - # which then does $(VERBOSE)gcc, which then complains about not - # being able to find ygcc. Life is pain. - checkFlags = [ " " ]; meta = { description = "Framework for RTL synthesis tools";