From 7efd5abe4888d6270acd4b2cf6b736d24438cd0f Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sun, 29 Oct 2017 01:47:46 +0200 Subject: [PATCH] python-cffi: fix clang build --- pkgs/development/python-modules/cffi/clang.patch | 13 +++++++++++++ pkgs/development/python-modules/cffi/default.nix | 6 ++++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/cffi/clang.patch diff --git a/pkgs/development/python-modules/cffi/clang.patch b/pkgs/development/python-modules/cffi/clang.patch new file mode 100644 index 000000000000..27674edb58b4 --- /dev/null +++ b/pkgs/development/python-modules/cffi/clang.patch @@ -0,0 +1,13 @@ +diff --git a/testing/cffi1/test_recompiler.py b/testing/cffi1/test_recompiler.py +index a3277b0..0d6e2c3 100644 +--- a/testing/cffi1/test_recompiler.py ++++ b/testing/cffi1/test_recompiler.py +@@ -2270,7 +2270,7 @@ def test_char16_char32_type(no_cpp=False): + char32_t foo_4bytes(char32_t); + """) + lib = verify(ffi, "test_char16_char32_type" + no_cpp * "_nocpp", """ +- #if !defined(__cplusplus) || __cplusplus < 201103L ++ #if !defined(__cplusplus) + typedef uint_least16_t char16_t; + typedef uint_least32_t char32_t; + #endif diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix index 5c99e77af56b..3389a6fd7054 100644 --- a/pkgs/development/python-modules/cffi/default.nix +++ b/pkgs/development/python-modules/cffi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytest }: +{ stdenv, buildPythonPackage, isPy27, isPyPy, fetchPypi, libffi, pycparser, pytest }: if isPyPy then null else buildPythonPackage rec { pname = "cffi"; @@ -10,13 +10,15 @@ if isPyPy then null else buildPythonPackage rec { sha256 = "ab87dd91c0c4073758d07334c1e5f712ce8fe48f007b86f8238773963ee700a6"; }; + patches = stdenv.lib.optional isPy27 ./clang.patch; + outputs = [ "out" "dev" ]; propagatedBuildInputs = [ libffi pycparser ]; buildInputs = [ pytest ]; # The tests use -Werror but with python3.6 clang detects some unreachable code. - NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-unreachable-code"; + NIX_CFLAGS_COMPILE = stdenv.lib.optionals stdenv.cc.isClang [ "-Wno-unused-command-line-argument" "-Wno-unreachable-code" ]; checkPhase = '' py.test