py3c: unconditionally drop -Werror (fix gcc-11 build)
On gcc-11 build fails as:
$ nix-build -E 'with import ./. {}; py3c.override { stdenv = gcc11Stdenv; }'
gcc -fno-strict-aliasing ... -Werror -Wall
cc1plus: warning:
command-line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
In file included from /nix/store/...-python-2.7.18/include/python2.7/Python.h:88,
from test_py3c.cpp:4:
/nix/store/...-python-2.7.18/include/python2.7/unicodeobject.h:534:24:
error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register]
534 | register PyObject *obj, /* Object */
| ^~~
The fix was already present o clang toolchain. Let's extendt it to all toolchains.
commitc1ff7da0a91ccb74b78757b93eef57aa1b2203e0
authorSergei Trofimovich <slyich@gmail.com>
dateTue 28 Sep 2021, 13:03 (5 years ago)
parent7affc06
pkgs/development/libraries/py3c/default.nix+3−1
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
1111 sha256 = "04i2z7hrig78clc59q3i1z2hh24g7z1bfvxznlzxv00d4s57nhpi";
1212 };
1313
14− postPatch = lib.optionalString stdenv.cc.isClang ''
14+ postPatch = ''
15+ # clang and gcc-11 complain about 'register' keywords used by
16+ # python-2.7. Let's avoid blanket -Werror.
1517 substituteInPlace test/setup.py \
1618 --replace "'-Werror', " ""
1719 '';