Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.11.0 - kraoñenn #1946

Merged
merged 3 commits into from
Dec 14, 2021
Merged

0.11.0 - kraoñenn #1946

merged 3 commits into from
Dec 14, 2021

Conversation

serge-sans-paille
Copy link
Owner

No description provided.

@serge-sans-paille
Copy link
Owner Author

@rgommers, @jeanlaroche, @stefanv, @hroncok, @drew-parsons, @mgorny, @h-vetinari : this is the release candidate for a new pythran release, with as major change the move from xsimd 7 to xsimd 8. I plan to do the release by the end of the week, feel free to report bug (if any!)

@jeanlaroche
Copy link
Contributor

jeanlaroche commented Dec 6, 2021 via email

@h-vetinari
Copy link

I'm happy to test this in conda-forge, but it would be a fair bit easier with an rc-tag rather than just a PR. Would that be possible?

@jeanlaroche
Copy link
Contributor

All my builds are successful with 0.11.0 . Very happy about that!

@serge-sans-paille
Copy link
Owner Author

I'm happy to test this in conda-forge, but it would be a fair bit easier with an rc-tag rather than just a PR. Would that be possible?

Using the branch name is jot an option ? feature/0.11.0 ?

@h-vetinari
Copy link

Using the branch name is not an option ? feature/0.11.0 ?

Yes, that works. I hadn't seen that it's a public branch on the repo here.

@h-vetinari
Copy link

Tried this branch in conda-forge/pythran-feedstock#63 - PPC fails at test time with something related to xsimd (we're using 8.0.3 like vendored here, but coming from conda-forge), the other arches/OSes build & test fine.

[...]
creating /tmp/tmplw22jw5l/tmp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_BLAS -I$PREFIX/lib/python3.8/site-packages/pythran -I$PREFIX/lib/python3.8/site-packages/numpy/core/include -I$PREFIX/include -I$PREFIX/include/python3.8 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -mcpu=power8 -mtune=power8 -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pythran-0.11.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix'
powerpc64le-conda-linux-gnu-c++: /tmp/tmptpt_mfv6.cpp
In file included from /home/conda/feedstock_root/build_artifacts/[...]/include/xsimd/memory/xsimd_alignment.hpp:15,
                 from /home/conda/feedstock_root/build_artifacts/[...]/include/xsimd/types/xsimd_batch.hpp:19,
                 from /home/conda/feedstock_root/build_artifacts/[...]/include/xsimd/xsimd.hpp:22,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/include/numpy/maximum.hpp:9,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/include/operator_/imax.hpp:5,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/include/utils/neutral.hpp:8,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/utils/neutral.hpp:4,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/numpy/reduce.hpp:9,
                 from /home/conda/feedstock_root/build_artifacts/[...]/lib/python3.8/site-packages/pythran/pythonic/numpy/sum.hpp:5,
                 from /tmp/tmptpt_mfv6.cpp:16:
/home/conda/feedstock_root/build_artifacts/[...]/include/xsimd/memory/xsimd_aligned_allocator.hpp:42:51: error: 'alignment' is not a member of 'xsimd::default_arch' {aka 'xsimd::unavailable'}
   42 |     template <class T, size_t Align=default_arch::alignment()>
      |                                                   ^~~~~~~~~

@serge-sans-paille
Copy link
Owner Author

cc @JohanMabille : I think it's fixed in current xsimd master branch, maybe we could do a minor release?

@rgommers
Copy link
Contributor

rgommers commented Dec 7, 2021

I'm seeing that xsimd_aligned_allocator failure on a SciPy build on macOS as well.

@drew-parsons
Copy link

drew-parsons commented Dec 7, 2021

Basic build seems fine, testing on amd64 (debian unstable). test_complex_conj fails with xsimd 7.6, as you would expect (cf. #1943 ). All the tests that I ran (test_base.py) succeed with xsimd 8.

Building the docs with sphinx gives this error: "module 'mistune' has no attribute 'BlockGrammar'"

   debian/rules override_dh_sphinxdoc
make[1]: Entering directory '/projects/pythran'
PYTHONPATH=. sphinx-build -b html -N docs/ /projects/pythran/debian/python-pythran-doc/usr/share/doc/python-pythran-doc/html
Running Sphinx v4.3.1

Exception occurred:
  File "/usr/lib/python3/dist-packages/nbconvert/filters/markdown_mistune.py", line 31, in <module>
    class MathBlockGrammar(mistune.BlockGrammar):
AttributeError: module 'mistune' has no attribute 'BlockGrammar'
The full traceback has been saved in /tmp/sphinx-err-u9r1jpi9.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make[1]: *** [debian/rules:27: override_dh_sphinxdoc] Error 2
make[1]: Leaving directory '/projects/pythran'
make: *** [debian/rules:23: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

But I can't see a reference to mistune or BlockGrammar in pythran, so it could be that my sphinx installation, or jupyter (nbconvert), got itself broken.

edit: looks like this doc problem is due to mistune, which was just updated to v2.0.0. cf. miyakogi/m2r#66 . Not a pythran error.

@hroncok
Copy link
Contributor

hroncok commented Dec 7, 2021

There is a new mistune release 2.0.0 that breaks things.

@serge-sans-paille
Copy link
Owner Author

@hroncok what's "mistune" ?

@drew-parsons
Copy link

drew-parsons commented Dec 7, 2021

I don't know it, except that it's https://github.com/lepture/mistune . nbconvert has a filter that uses it.

@hroncok
Copy link
Contributor

hroncok commented Dec 7, 2021

https://pypi.org/project/mistune/ is a dependency of nbconvert which is a dependency of nbsphinx. The AttributeError: module 'mistune' has no attribute 'BlockGrammar' problem is that nbconvert needs to solve or pin mistune to be < 2.

@hroncok
Copy link
Contributor

hroncok commented Dec 7, 2021

Except they already did that years ago: jupyter/nbconvert@365683f

No idea where is the error coming from then, sorry.

@drew-parsons
Copy link

Looks like the debian packaging for nbconvert is overriding or ignoring the < 2 constraint.

@serge-sans-paille serge-sans-paille force-pushed the feature/0.11.0 branch 2 times, most recently from 8ef3eea to c11e1d8 Compare December 8, 2021 20:21
@serge-sans-paille
Copy link
Owner Author

I've updated the PR with the new version of xsimd. conda-forge has been updated as well and Fedora is being updated. This should fix most of the above issues (if not all!)

@mgorny
Copy link

mgorny commented Dec 8, 2021

Well, I'm getting a test failure on Python 3.10.1 (3.8 & 3.9 seem to pass 100%):

=================================== FAILURES ===================================
________________________ TestNumpyFunc3.test_interp_6c _________________________
[gw0] linux -- Python 3.10.1 /usr/bin/python3.10

self = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>

    def test_interp_6c(self):
>       self.run_test('def interp6c(x,xp,fp): import numpy as np; return np.interp(x,xp,fp)',
                      1.4,
                      numpy.sort(numpy.random.randn(1000)),
                      numpy.random.randn(1000) + 1j*numpy.random.randn(1000),
                      interp6c=[float,NDArray[float,:],NDArray[complex,:]])

self       = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>

pythran/tests/test_numpy_func3.py:799: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pythran/tests/__init__.py:334: in run_test
    self.assertAlmostEqual(python_ref, pythran_res)
        check_exception = False
        code       = 'def interp6c(x,xp,fp): import numpy as np; return np.interp(x,xp,fp)'
        cxx_compiled = '/tmp/portage/dev-python/pythran-0.11.0/work/pythran-feature-0.11.0/test_interp6c.cpython-310-x86_64-linux-gnu.so'
        interface  = {'interp6c': [<class 'float'>,
              <class 'pythran.typing.NDArray'>,
              <class 'pythran.typing.NDArray'>]}
        modname    = 'test_interp6c'
        name       = 'interp6c'
        params     = (1.4,
<some huge arrays>
 None,
 False)
        self       = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>
        thread_count = 1
pythran/tests/__init__.py:150: in assertAlmostEqual
    self.assertAlmostEqual(ref.real, res.real)
        ref        = (-0.0003286414794497179-0.5371815126048907j)
        res        = (-0.0003286414794497171-0.5371815126048907j)
        self       = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>
pythran/tests/__init__.py:148: in assertAlmostEqual
    self.assertLessEqual(abs(e) / sys.float_info.epsilon, 3.)
E   AssertionError: 7.5 not less than or equal to 3.0
        e          = -1.6653345369377348e-15
        e_ref      = -11
        e_res      = -11
        expo       = -11
        m_ref      = -0.6730577499130223
        m_res      = -0.6730577499130206
        n_ref      = -0.6730577499130223
        n_res      = -0.6730577499130206
        ref        = -0.0003286414794497179
        res        = -0.0003286414794497171
        self       = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>
----------------------------- Captured stdout call -----------------------------
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
building 'test_interp6c' extension
C compiler: x86_64-pc-linux-gnu-g++ -march=znver2 --param l1-cache-size=32 --param l1-cache-line-size=64 -O2 -pipe -frecord-gcc-switches -fPIC

creating /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp
creating /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp/portage
creating /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp/portage/dev-python
creating /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp/portage/dev-python/pythran-0.11.0
creating /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp/portage/dev-python/pythran-0.11.0/temp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_BLAS -I/tmp/portage/dev-python/pythran-0.11.0/work/pythran-feature-0.11.0/pythran -I/usr/lib/python3.10/site-packages/numpy/core/include -I/usr/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -march=znver2 --param l1-cache-size=32 --param l1-cache-line-size=64 -O2 -pipe -frecord-gcc-switches -O0 -Wall -UNDEBUG -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-absolute-value -Wno-missing-braces -Wno-unknown-pragmas'
x86_64-pc-linux-gnu-g++: /tmp/portage/dev-python/pythran-0.11.0/temp/tmp6oojpax9.cpp
x86_64-pc-linux-gnu-g++ -shared -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -march=znver2 --param l1-cache-size=32 --param l1-cache-line-size=64 -O2 -pipe -frecord-gcc-switches /tmp/portage/dev-python/pythran-0.11.0/temp/tmpvjep_du3/tmp/portage/dev-python/pythran-0.11.0/temp/tmp6oojpax9.o -L/usr/lib64 -L/usr/lib64 -lcblas -lblas -o /tmp/portage/dev-python/pythran-0.11.0/temp/tmpm9ofv3vl/test_interp6c.cpython-310-x86_64-linux-gnu.so -fvisibility=hidden -Wl,-strip-all -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0
Python result:  (-0.0003286414794497179-0.5371815126048907j)
Pythran result:  (-0.0003286414794497171-0.5371815126048907j)
Type of Pythran res :  <class 'complex'>
Type of Python ref :  <class 'numpy.complex128'>
Type of Pythran res :  <class 'float'>
Type of Python ref :  <class 'numpy.float64'>
----------------------------- Captured stderr call -----------------------------
cc1plus: warning: command-line option ‘-Wno-absolute-value’ is valid for C/ObjC but not for C++
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
INFO: Generated module: test_interp6c
INFO: Output: /tmp/portage/dev-python/pythran-0.11.0/work/pythran-feature-0.11.0/test_interp6c.cpython-310-x86_64-linux-gnu.so
------------------------------ Captured log call -------------------------------
INFO     pythran:toolchain.py:340 Generated module: test_interp6c
INFO     pythran:toolchain.py:341 Output: /tmp/portage/dev-python/pythran-0.11.0/work/pythran-feature-0.11.0/test_interp6c.cpython-310-x86_64-linux-gnu.so

There's also a lot of warnings.

Full build & test log (.xz, expands to 3.7M):
dev-python:pythran-0.11.0:20211208-204758.log

>>> numpy.__version__
'1.21.4'
>>> numpy.show_config() 
system_info:
  NOT AVAILABLE
blas_info:
    libraries = ['cblas', 'blas']
    library_dirs = ['/usr/lib64']
    include_dirs = ['/usr/include']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    libraries = ['cblas', 'blas']
    library_dirs = ['/usr/lib64']
    include_dirs = ['/usr/include']
    language = c
flame_info:
  NOT AVAILABLE
lapack_info:
    libraries = ['lapack']
    library_dirs = ['/usr/lib64']
    language = f77
lapack_opt_info:
    libraries = ['lapack', 'cblas', 'blas']
    library_dirs = ['/usr/lib64']
    language = c
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    include_dirs = ['/usr/include']
Supported SIMD extensions in this NumPy install:
    baseline = SSE,SSE2,SSE3
    found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2
    not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL

@h-vetinari
Copy link

Happy to report no more failures on the conda-forge feedstock with xsimd 8.0.5 (note that as of now, the recipe is not running the full upstream test suite - that could be changed though)

@serge-sans-paille
Copy link
Owner Author

Thanks @mgorny. I suspect this is an unstable test. You can ignore it.

@serge-sans-paille
Copy link
Owner Author

Thanks @h-vetinari . I think I'll merge tomorrow then.

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

I'll try today. Sorry for not getting to it sooner.

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

There will be test failures on ppc64le as well as other architectures:

......................................s................................. [  2%]
....................................F...............s................... [  4%]
........................................................................ [  6%]
.................................................................F...... [  8%]
..........F...F......................s....................F............. [ 10%]

Full logs available only after it runs all tests.

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

ppc64le

https://koji.fedoraproject.org/koji/taskinfo?taskID=79788039

build.log.ppc64le.txt

...
----------------------------- Captured stdout call -----------------------------
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
building 'test_complex_conjugate' extension
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
creating /tmp/tmpzy3yx1sc/tmp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_OPENBLAS -I/usr/include/flexiblas -I/builddir/build/BUILD/pythran-feature-0.11.0/pythran -I/usr/lib64/python3.10/site-packages/numpy/core/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -O1 -Wall -w -UNDEBUG -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-absolute-value -Wno-missing-braces -Wno-unknown-pragmas'
gcc: /tmp/tmp8z3fscwo.cpp
----------------------------- Captured stderr call -----------------------------
cc1plus: warning: command-line option ‘-Wno-absolute-value’ is valid for C/ObjC but not for C++
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/__dispatch__/conjugate.hpp:4,
                 from /tmp/tmp8z3fscwo.cpp:10:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp: In function ‘xsimd::batch<std::complex<_Tp>, A> {anonymous}::pythonic::numpy::wrapper::conjugate(const xsimd::batch<std::complex<_Tp>, A>&)’:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp:25:21: error: ‘conj’ is not a member of ‘xsimd’; did you mean ‘std::conj’?
   25 |       return xsimd::conj(v);
      |                     ^~~~
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/traits.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/core.hpp:32,
                 from /tmp/tmp8z3fscwo.cpp:1:
/usr/include/c++/11/complex:1975:5: note: ‘std::conj’ declared here
 1975 |     conj(_Tp __x)
      |     ^~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
WARNING: Compilation error, trying hard to find its origin...
WARNING: Nop, I'm going to flood you with C++ errors!
...
=== 155 failed, 3275 passed, 49 skipped, 611 warnings in 3884.50s (1:04:44) ====

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

s390x

https://koji.fedoraproject.org/koji/taskinfo?taskID=79788040

build.log.s390x.txt

...
----------------------------- Captured stdout call -----------------------------
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
building 'test_complex_conjugate' extension
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
creating /tmp/tmp1bqpwxvc/tmp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_OPENBLAS -I/usr/include/flexiblas -I/builddir/build/BUILD/pythran-feature-0.11.0/pythran -I/usr/lib64/python3.10/site-packages/numpy/core/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -O1 -Wall -w -UNDEBUG -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-absolute-value -Wno-missing-braces -Wno-unknown-pragmas'
gcc: /tmp/tmps_105733.cpp
----------------------------- Captured stderr call -----------------------------
cc1plus: warning: command-line option ‘-Wno-absolute-value’ is valid for C/ObjC but not for C++
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/__dispatch__/conjugate.hpp:4,
                 from /tmp/tmps_105733.cpp:10:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp: In function ‘xsimd::batch<std::complex<_Tp>, A> {anonymous}::pythonic::numpy::wrapper::conjugate(const xsimd::batch<std::complex<_Tp>, A>&)’:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp:25:21: error: ‘conj’ is not a member of ‘xsimd’; did you mean ‘std::conj’?
   25 |       return xsimd::conj(v);
      |                     ^~~~
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/traits.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/core.hpp:32,
                 from /tmp/tmps_105733.cpp:1:
/usr/include/c++/11/complex:1975:5: note: ‘std::conj’ declared here
 1975 |     conj(_Tp __x)
      |     ^~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
WARNING: Compilation error, trying hard to find its origin...
WARNING: Nop, I'm going to flood you with C++ errors!
------------------------------ Captured log call -------------------------------
WARNING  pythran:toolchain.py:423 Compilation error, trying hard to find its origin...
WARNING  pythran:toolchain.py:426 Nop, I'm going to flood you with C++ errors!
...
=== 155 failed, 3330 passed, 49 skipped, 559 warnings in 4007.68s (1:06:47) ====

Seems like the same problem as on ppc64le.

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

armv7hl will also fail. The remaining architectures (i686, x86_64 and aarch64) all passed.

@hroncok
Copy link
Contributor

hroncok commented Dec 10, 2021

armv7hl

https://koji.fedoraproject.org/koji/taskinfo?taskID=79788035

build.log.armv7hl.txt

...
----------------------------- Captured stdout call -----------------------------
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
building 'test_complex_conjugate' extension
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -fPIC
creating /tmp/tmpgh48vkr1/tmp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_OPENBLAS -I/usr/include/flexiblas -I/builddir/build/BUILD/pythran-feature-0.11.0/pythran -I/usr/lib/python3.10/site-packages/numpy/core/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -O1 -Wall -w -UNDEBUG -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-absolute-value -Wno-missing-braces -Wno-unknown-pragmas'
gcc: /tmp/tmpmaa3k7_v.cpp
----------------------------- Captured stderr call -----------------------------
cc1plus: warning: command-line option ‘-Wno-absolute-value’ is valid for C/ObjC but not for C++
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/__dispatch__/conjugate.hpp:4,
                 from /tmp/tmpmaa3k7_v.cpp:10:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp: In function ‘xsimd::batch<std::complex<_Tp>, A> {anonymous}::pythonic::numpy::wrapper::conjugate(const xsimd::batch<std::complex<_Tp>, A>&)’:
/builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/numpy/conjugate.hpp:25:21: error: ‘conj’ is not a member of ‘xsimd’; did you mean ‘std::conj’?
   25 |       return xsimd::conj(v);
      |                     ^~~~
In file included from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/traits.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/include/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/types/combined.hpp:4,
                 from /builddir/build/BUILD/pythran-feature-0.11.0/pythran/pythonic/core.hpp:32,
                 from /tmp/tmpmaa3k7_v.cpp:1:
/usr/include/c++/11/complex:1975:5: note: ‘std::conj’ declared here
 1975 |     conj(_Tp __x)
      |     ^~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
WARNING: Compilation error, trying hard to find its origin...
WARNING: Nop, I'm going to flood you with C++ errors!
------------------------------ Captured log call -------------------------------
WARNING  pythran:toolchain.py:423 Compilation error, trying hard to find its origin...
WARNING  pythran:toolchain.py:426 Nop, I'm going to flood you with C++ errors!
...
=== 154 failed, 3317 passed, 63 skipped, 580 warnings in 8057.72s (2:14:17) ====

Again, this sounds very similar, if not the same, to the failures on ppc64le and s390x.

@rgommers
Copy link
Contributor

rgommers commented Dec 10, 2021

A SciPy build with Pythran 0.10.0 plus xsimd 8.0.5 fails on an xsimd issue (as probably expected) on Linux:

building 'scipy.interpolate._rbfinterp_pythran' extension
compiling C++ sources
C compiler: /home/rgommers/anaconda3/envs/scipy-dev/bin/x86_64-conda-linux-gnu-c++ -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -fPIC

compile options: '-DUSE_XSIMD -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_NONE -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/numpy/core/include -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.9/numpy/distutils/include -I/home/rgommers/anaconda3/envs/scipy-dev/include/python3.9 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -msse -msse2 -msse3'
x86_64-conda-linux-gnu-c++: scipy/interpolate/_rbfinterp_pythran.cpp
In file included from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conj.hpp:5,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/numpy/conj.hpp:4,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/numpy/linalg/norm.hpp:5,
                 from scipy/interpolate/_rbfinterp_pythran.cpp:54:
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:22:36: error: type/value mismatch at argument 2 in template parameter list for 'template<class T, class A> class xsimd::batch'
   22 |     xsimd::batch<std::complex<T>, N>
      |                                    ^
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:22:36: note:   expected a type, got 'N'
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:23:46: error: type/value mismatch at argument 2 in template parameter list for 'template<class T, class A> class xsimd::batch'
   23 |     conjugate(xsimd::batch<std::complex<T>, N> const &v)
      |                                              ^
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:23:46: note:   expected a type, got 'N'
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp: In function 'int {anonymous}::pythonic::numpy::wrapper::conjugate(const int&)':
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:25:27: error: no matching function for call to 'conj(const int&)'
   25 |       return xsimd::conj(v);
      |                           ^
In file included from /home/rgommers/anaconda3/envs/scipy-dev/include/xsimd/xsimd.hpp:34,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/types/nditerator.hpp:7,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/types/tuple.hpp:6,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/builtins/bool_.hpp:5,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/builtins/bool_.hpp:4,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/types/NoneType.hpp:8,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/types/slice.hpp:5,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/core.hpp:36,
                 from scipy/interpolate/_rbfinterp_pythran.cpp:1:
/home/rgommers/anaconda3/envs/scipy-dev/include/xsimd/types/xsimd_api.hpp:420:46: note: candidate: 'template<class A, class T> xsimd::complex_batch_type_t<xsimd::batch<T, A> > xsimd::conj(const xsimd::batch<T, A>&)'
  420 |     inline complex_batch_type_t<batch<T, A>> conj(batch<T, A> const& z) noexcept
      |                                              ^~~~
/home/rgommers/anaconda3/envs/scipy-dev/include/xsimd/types/xsimd_api.hpp:420:46: note:   template argument deduction/substitution failed:
In file included from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conj.hpp:5,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/numpy/conj.hpp:4,
                 from /home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/numpy/linalg/norm.hpp:5,
                 from scipy/interpolate/_rbfinterp_pythran.cpp:54:
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:25:27: note:   mismatched types 'const xsimd::batch<T, A>' and 'const int'
   25 |       return xsimd::conj(v);
      |                           ^
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp: At global scope:
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:28:22: error: type/value mismatch at argument 2 in template parameter list for 'template<class T, class A> class xsimd::batch'
   28 |     xsimd::batch<T, N> conjugate(xsimd::batch<T, N> const &v)
      |                      ^
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:28:22: note:   expected a type, got 'N'
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:28:51: error: type/value mismatch at argument 2 in template parameter list for 'template<class T, class A> class xsimd::batch'
   28 |     xsimd::batch<T, N> conjugate(xsimd::batch<T, N> const &v)
      |                                                   ^
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:28:51: note:   expected a type, got 'N'
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:28:24: error: redefinition of 'template<class T, long unsigned int N> int {anonymous}::pythonic::numpy::wrapper::conjugate(const int&)'
   28 |     xsimd::batch<T, N> conjugate(xsimd::batch<T, N> const &v)
      |                        ^~~~~~~~~
/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran/pythonic/include/numpy/conjugate.hpp:23:5: note: 'template<class T, long unsigned int N> int {anonymous}::pythonic::numpy::wrapper::conjugate(const int&)' previously declared here
   23 |     conjugate(xsimd::batch<std::complex<T>, N> const &v)
      |     ^~~~~~~~~
cc1plus: warning: unrecognized command line option '-Wno-unknown-warning-option'
error: Command "/home/rgommers/anaconda3/envs/scipy-dev/bin/x86_64-conda-linux-gnu-c++ -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -fPIC -DUSE_XSIMD -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_NONE -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/pythran -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/numpy/core/include -I/home/rgommers/anaconda3/envs/scipy-dev/lib/python3.9/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.9/numpy/distutils/include -I/home/rgommers/anaconda3/envs/scipy-dev/include/python3.9 -c scipy/interpolate/_rbfinterp_pythran.cpp -o build/temp.linux-x86_64-3.9/scipy/interpolate/_rbfinterp_pythran.o -MMD -MF build/temp.linux-x86_64-3.9/scipy/interpolate/_rbfinterp_pythran.o.d -std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/rgommers/anaconda3/envs/scipy-dev/include -msse -msse2 -msse3" failed with exit status 1

With Pythran installed from source from this PR, plus xsimd 8.0.5 from conda-forge, building SciPy succeeds and all tests pass. So all good so far.

I will do some testing on CI as well tonight to check Windows/macOS are happy.

EDIT:

@serge-sans-paille
Copy link
Owner Author

A SciPy build with Pythran 0.10.0 plus xsimd 8.0.5 fails on an xsimd issue (as probably expected) on Linux:

Yeah that's totally expected :-)

@serge-sans-paille
Copy link
Owner Author

@hroncok I've pushed an extra patch that hopefully solves the xsimd::conj issue.

@hroncok
Copy link
Contributor

hroncok commented Dec 12, 2021

I could also backport xtensor-stack/xsimd#655 to Fedora's xsimd package if that seems nicer.

@serge-sans-paille
Copy link
Owner Author

I could also backport xtensor-stack/xsimd#655 to Fedora's xsimd package if that seems nicer.

If it's applied in pythran source, we touch more than the Fedora users, so I don't think it's needed. But I did the patch without testing it, so I'd be happy with a green light from your side ;-)

@hroncok
Copy link
Contributor

hroncok commented Dec 13, 2021

I thought I submitted a build yesterday evening, but I've made a mistake and the build did not see xsimd 8.0.5, hence retrying now. Sorry for the delay.

@hroncok
Copy link
Contributor

hroncok commented Dec 13, 2021

ppc64le 1 test failure:

___________________ TestDistutils.test_setup_bdist_install3 ____________________
[gw5] linux -- Python 3.10.1 /usr/bin/python3
self = <pythran.tests.test_distutils.TestDistutils testMethod=test_setup_bdist_install3>
    def test_setup_bdist_install3(self):
>       check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"],
                   cwd=os.path.join(cwd, 'test_distutils_numpy'))
pythran/tests/test_distutils.py:136: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
popenargs = (['python', 'setup.py', 'bdist', '--dist-dir=bdist'],)
kwargs = {'cwd': '/builddir/build/BUILD/pythran-feature-0.11.0/pythran/tests/test_distutils_numpy'}
retcode = 1, cmd = ['python', 'setup.py', 'bdist', '--dist-dir=bdist']
    def check_call(*popenargs, **kwargs):
        """Run command with arguments.  Wait for command to complete.  If
        the exit code was zero then return, otherwise raise
        CalledProcessError.  The CalledProcessError object will have the
        return code in the returncode attribute.
    
        The arguments are the same as for the call function.  Example:
    
        check_call(["ls", "-l"])
        """
        retcode = call(*popenargs, **kwargs)
        if retcode:
            cmd = kwargs.get("args")
            if cmd is None:
                cmd = popenargs[0]
>           raise CalledProcessError(retcode, cmd)
E           subprocess.CalledProcessError: Command '['python', 'setup.py', 'bdist', '--dist-dir=bdist']' returned non-zero exit status 1.
/usr/lib64/python3.10/subprocess.py:369: CalledProcessError
----------------------------- Captured stdout call -----------------------------
running bdist
running bdist_dumb
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "demo3.a" sources
build_src: building npy-pkg config files
running build_ext
customize UnixCCompiler
customize UnixCCompiler using PythranBuildExt
CCompilerOpt.cc_test_flags[1008] : testing flags (-march=native)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
creating /tmp/tmpgu_3wgv7/usr
creating /tmp/tmpgu_3wgv7/usr/lib64
creating /tmp/tmpgu_3wgv7/usr/lib64/python3.10
creating /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages
creating /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages/numpy
creating /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages/numpy/distutils
creating /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages/numpy/distutils/checks
compile options: '-I/usr/include/python3.10 -c'
extra options: '-march=native'
CCompilerOpt.dist_test[576] : CCompilerOpt._dist_test_spawn[711] : Command (gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC -I/usr/include/python3.10 -c /usr/lib64/python3.10/site-packages/numpy/distutils/checks/test_flags.c -o /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages/numpy/distutils/checks/test_flags.o -MMD -MF /tmp/tmpgu_3wgv7/usr/lib64/python3.10/site-packages/numpy/distutils/checks/test_flags.o.d -march=native) failed with exit status 1 output -> 
cc1: error: unrecognized command-line option ‘-march=native’
CCompilerOpt.cc_test_flags[1012] : testing failed
CCompilerOpt.cc_test_flags[1008] : testing flags (-O3)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-O3'
CCompilerOpt.cc_test_flags[1008] : testing flags (-Werror)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-Werror'
CCompilerOpt.__init__[1696] : check requested baseline
CCompilerOpt.cc_test_flags[1008] : testing flags (-mvsx)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mvsx'
CCompilerOpt.cc_test_flags[1008] : testing flags (-mcpu=power8)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power8'
CCompilerOpt.feature_test[1461] : testing feature 'VSX2' with flags (-mcpu=power8)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power8 -Werror'
CCompilerOpt.feature_test[1461] : testing feature 'VSX' with flags (-mcpu=power8)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power8 -Werror'
CCompilerOpt.__init__[1705] : check requested dispatch-able features
CCompilerOpt.cc_test_flags[1008] : testing flags (-mcpu=power9 -mtune=power9)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power9 -mtune=power9'
CCompilerOpt.feature_test[1461] : testing feature 'VSX3' with flags (-mcpu=power9 -mtune=power9)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power9 -mtune=power9 -Werror'
CCompilerOpt.__init__[1717] : skip features (VSX VSX2) since its part of baseline
CCompilerOpt.__init__[1721] : initialize targets groups
CCompilerOpt.__init__[1723] : parse target group simd_test
CCompilerOpt._parse_target_tokens[1934] : skip targets (NEON (FMA3 AVX2) SSE2 SSE42 ASIMD XOP AVX512F AVX512_SKX FMA4) not part of baseline or dispatch-able features
CCompilerOpt._parse_policy_not_keepbase[2046] : skip baseline features (VSX2)
CCompilerOpt.generate_dispatch_header[2267] : generate CPU dispatch header: (build/src.linux-ppc64le-3.10/numpy/distutils/include/npy_cpu_dispatch_config.h)
CCompilerOpt.feature_extra_checks[1541] : Testing extra checks for feature 'VSX' (VSX_ASM)
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-I/usr/include/python3.10 -c'
extra options: '-mcpu=power8 -Werror'
customize UnixCCompiler
customize UnixCCompiler using PythranBuildExt
building 'demo3.a' extension
compiling C++ sources
C compiler: g++ -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -fPIC
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_OPENBLAS -I/usr/include/flexiblas -I/builddir/build/BUILDROOT/pythran-0.11.0-0.fc36.ppc64le/usr/lib/python3.10/site-packages/pythran -I/usr/lib64/python3.10/site-packages/numpy/core/include -I/usr/lib64/python3.10/site-packages/numpy/core/include -Ibuild/src.linux-ppc64le-3.10/numpy/distutils/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -mcpu=power8'
g++: demo3/a.cpp
g++ -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection build/temp.linux-ppc64le-3.10/demo3/a.o -L/usr/lib64 -L/usr/lib64 -lflexiblas -lflexiblas -lflexiblas -o build/lib.linux-ppc64le-3.10/demo3/a.cpython-310-powerpc64le-linux-gnu.so -fvisibility=hidden -Wl,-strip-all -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
########### EXT COMPILER OPTIMIZATION ###########
Platform      : 
  Architecture: ppc64le
  Compiler    : gcc
CPU baseline  : 
  Requested   : 'min'
  Enabled     : VSX VSX2
  Flags       : -mcpu=power8
  Extra checks: VSX_ASM
CPU dispatch  : 
  Requested   : 'max -xop -fma4'
  Enabled     : VSX3
  Generated   : none
CCompilerOpt.cache_flush[804] : write cache to path -> /builddir/build/BUILD/pythran-feature-0.11.0/pythran/tests/test_distutils_numpy/build/temp.linux-ppc64le-3.10/ccompiler_opt_cache_ext.py
----------------------------- Captured stderr call -----------------------------
lto1: error: open build/temp.linux-ppc64le-3.10/demo3/a.o failed: No such file or directory
lto1: fatal error: errors during merging of translation units
compilation terminated.
lto-wrapper: fatal error: g++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
error: Command "g++ -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection build/temp.linux-ppc64le-3.10/demo3/a.o -L/usr/lib64 -L/usr/lib64 -lflexiblas -lflexiblas -lflexiblas -o build/lib.linux-ppc64le-3.10/demo3/a.cpython-310-powerpc64le-linux-gnu.so -fvisibility=hidden -Wl,-strip-all -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" failed with exit status 1

@hroncok
Copy link
Contributor

hroncok commented Dec 13, 2021

armv7hl:

________________________ TestNumpyFunc3.test_interp_6c _________________________
[gw0] linux -- Python 3.10.1 /usr/bin/python3
self = <pythran.tests.test_numpy_func3.TestNumpyFunc3 testMethod=test_interp_6c>
    def test_interp_6c(self):
>       self.run_test('def interp6c(x,xp,fp): import numpy as np; return np.interp(x,xp,fp)',
                      1.4,
                      numpy.sort(numpy.random.randn(1000)),
                      numpy.random.randn(1000) + 1j*numpy.random.randn(1000),
                      interp6c=[float,NDArray[float,:],NDArray[complex,:]])
pythran/tests/test_numpy_func3.py:799: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pythran/tests/__init__.py:334: in run_test
    self.assertAlmostEqual(python_ref, pythran_res)
pythran/tests/__init__.py:151: in assertAlmostEqual
    self.assertAlmostEqual(ref.imag, res.imag)
pythran/tests/__init__.py:148: in assertAlmostEqual
    self.assertLessEqual(abs(e) / sys.float_info.epsilon, 3.)
E   AssertionError: 128.0 not less than or equal to 3.0
----------------------------- Captured stdout call -----------------------------
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
building 'test_interp6c' extension
C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard -fPIC
creating /tmp/tmpgddv2ha3/tmp
compile options: '-DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_OPENBLAS -I/usr/include/flexiblas -I/builddir/build/BUILD/pythran-feature-0.11.0/pythran -I/usr/lib/python3.10/site-packages/numpy/core/include -I/usr/include/python3.10 -c'
extra options: '-std=c++11 -fno-math-errno -fvisibility=hidden -fno-wrapv -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -O1 -Wall -w -UNDEBUG -Wno-unused-function -Wno-int-in-bool-context -Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-absolute-value -Wno-missing-braces -Wno-unknown-pragmas'
gcc: /tmp/tmpnug5k9v3.cpp
g++ -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -march=armv7-a -mfpu=vfpv3-d16 -mtune=generic-armv7-a -mabi=aapcs-linux -mfloat-abi=hard /tmp/tmpgddv2ha3/tmp/tmpnug5k9v3.o -L/usr/lib -L/usr/lib -lflexiblas -lflexiblas -lflexiblas -o /tmp/tmpf_tj6tdm/test_interp6c.cpython-310-arm-linux-gnueabihf.so -fvisibility=hidden -Wl,-strip-all -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
Python result:  (0.31644176401516355-0.0037434525646641292j)
Pythran result:  (0.31644176401516355-0.0037434525646642403j)
Type of Pythran res :  <class 'complex'>
Type of Python ref :  <class 'numpy.complex128'>
Type of Pythran res :  <class 'float'>
Type of Python ref :  <class 'numpy.float64'>
Type of Pythran res :  <class 'float'>
Type of Python ref :  <class 'numpy.float64'>
----------------------------- Captured stderr call -----------------------------
cc1plus: warning: command-line option ‘-Wno-absolute-value’ is valid for C/ObjC but not for C++
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ may have been intended to silence earlier diagnostics
INFO: Generated module: test_interp6c
INFO: Output: /builddir/build/BUILD/pythran-feature-0.11.0/test_interp6c.cpython-310-arm-linux-gnueabihf.so
------------------------------ Captured log call -------------------------------
INFO     pythran:toolchain.py:340 Generated module: test_interp6c
INFO     pythran:toolchain.py:341 Output: /builddir/build/BUILD/pythran-feature-0.11.0/test_interp6c.cpython-310-arm-linux-gnueabihf.so

@serge-sans-paille
Copy link
Owner Author

serge-sans-paille commented Dec 13, 2021

I think we can ignore that one, it's at the rounding limit (the armv7 one)

@serge-sans-paille
Copy link
Owner Author

And the ppc one may be an LTO issue, I don't want to block the release for it.

@serge-sans-paille serge-sans-paille merged commit b87f458 into master Dec 14, 2021
@serge-sans-paille
Copy link
Owner Author

Thanks for all the reviews and tests. Tag 0.11.0 set, sources uploaded to PyPI

@hroncok
Copy link
Contributor

hroncok commented Dec 14, 2021

And the ppc one may be an LTO issue, I don't want to block the release for it.

Would you recommend disabling LTO on PPC or skipping the test?

@serge-sans-paille
Copy link
Owner Author

serge-sans-paille commented Dec 14, 2021 via email

@drew-parsons
Copy link

For the record, LTO has given problems also with pybind11 on mips64el and ppc64el, cf. https://lists.debian.org/debian-mips/2020/09/msg00000.html , https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1000780

@DWesl
Copy link
Contributor

DWesl commented May 31, 2022

Out of curiosity, how did the -Wno-absolute-value errors get fixed? Just skipping those tests?

@hroncok
Copy link
Contributor

hroncok commented May 31, 2022

In Fedora, we skip (with pytest's -k option):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants