From 94a047ca74cb4a596bf3b2e7b8902a8366822b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Povi=C5=A1er?= Date: Tue, 9 Nov 2021 14:10:19 +0100 Subject: [PATCH] yosys: fix build on darwin Attempt to work around a confusion in yosys' build system that causes builds under clang to fail. --- pkgs/development/compilers/yosys/default.nix | 8 +----- .../compilers/yosys/fix-clang-build.patch | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/compilers/yosys/fix-clang-build.patch diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix index f2624d124185..56e0dc3b57d6 100644 --- a/pkgs/development/compilers/yosys/default.nix +++ b/pkgs/development/compilers/yosys/default.nix @@ -51,6 +51,7 @@ stdenv.mkDerivation rec { patches = [ ./plugin-search-dirs.patch + ./fix-clang-build.patch # see https://github.com/YosysHQ/yosys/issues/2011 ]; postPatch = '' @@ -104,12 +105,5 @@ stdenv.mkDerivation rec { license = licenses.isc; platforms = platforms.all; maintainers = with maintainers; [ shell thoughtpolice emily ]; - #In file included from kernel/driver.cc:20: - #./kernel/yosys.h:42:10: fatal error: 'map' file not found - ##include - - #https://github.com/YosysHQ/yosys/issues/681 - #https://github.com/YosysHQ/yosys/issues/2011 - broken = stdenv.isDarwin; }; } diff --git a/pkgs/development/compilers/yosys/fix-clang-build.patch b/pkgs/development/compilers/yosys/fix-clang-build.patch new file mode 100644 index 000000000000..685841e0f750 --- /dev/null +++ b/pkgs/development/compilers/yosys/fix-clang-build.patch @@ -0,0 +1,26 @@ +diff --git a/Makefile b/Makefile +index 86abc6958..a72f7b792 100644 +--- a/Makefile ++++ b/Makefile +@@ -145,7 +145,12 @@ bumpversion: + ABCREV = 4f5f73d + ABCPULL = 1 + ABCURL ?= https://github.com/YosysHQ/abc ++ ++ifneq ($(CONFIG),clang) ++ABCMKARGS = CC=clang CXX="$(CXX)" LD=clang ABC_USE_LIBSTDCXX=1 VERBOSE=$(Q) ++else + ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 VERBOSE=$(Q) ++endif + + # set ABCEXTERNAL = to use an external ABC instance + # Note: The in-tree ABC (yosys-abc) will not be installed when ABCEXTERNAL is set. +@@ -187,7 +192,7 @@ endif + endif + + ifeq ($(CONFIG),clang) +-CXX = clang ++CXX = clang++ + LD = clang++ + CXXFLAGS += -std=$(CXXSTD) -Os + ABCMKARGS += ARCHFLAGS="-DABC_USE_STDINT_H"