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

1.12.0 [BUG]: pytest fails in all units using scipy.special._ufuncs DSO module with undefined symb ol: npy_cexp #20735

Closed
kloczek opened this issue May 17, 2024 · 6 comments
Labels
Build issues Issues with building from source, including different choices of architecture, compilers and OS defect A clear bug or issue that prevents SciPy from being installed or used as expected scipy.special

Comments

@kloczek
Copy link

kloczek commented May 17, 2024

Describe your issue.

Looks like something is wrong and pytest fails in all units using scipy.special._ufuncs DSO module with undefined symb ol: npy_cexp.

Reproducing Code Example

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix> using installer module
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")

Please let me know if you need more details or want me to perform some diagnostics.

Error message

Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network' --import-mode=importlib scipy --ignore scipy/_lib/highs/src/interfaces/highspy/highspy/tests/test_highspy.py
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0
configfile: pytest.ini
plugins: hypothesis-6.100.0, xdist-3.6.1, timeout-2.3.1
collected 13615 items / 199 errors

==================================== ERRORS ====================================
__________ ERROR collecting scipy/cluster/tests/test_disjoint_set.py ___________
ImportError while importing test module '/home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/scipy/cluster/tests/test_disjoint_set.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
scipy/cluster/tests/test_disjoint_set.py:4: in <module>
    from scipy.cluster.hierarchy import DisjointSet
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/cluster/__init__.py:27: in <module>
    from . import vq, hierarchy
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/cluster/vq.py:74: in <module>
    from scipy.spatial.distance import cdist
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/__init__.py:116: in <module>
    from ._geometric_slerp import geometric_slerp
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/_geometric_slerp.py:9: in <module>
    from scipy.spatial.distance import euclidean
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/distance.py:121: in <module>
    from ..special import rel_entr
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/special/__init__.py:777: in <module>
    from . import _ufuncs
E   ImportError: /home/tkloczko/rpmbuild/BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/special/_ufuncs.cpython-310-x86_64-linux-gnu.so: undefined symbol: npy_cexp
____________ ERROR collecting scipy/cluster/tests/test_hierarchy.py ____________
ImportError while importing test module '/home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/scipy/cluster/tests/test_hierarchy.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
scipy/cluster/tests/test_hierarchy.py:39: in <module>
    import scipy.cluster.hierarchy
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/cluster/__init__.py:27: in <module>
    from . import vq, hierarchy
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/cluster/vq.py:74: in <module>
    from scipy.spatial.distance import cdist
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/__init__.py:116: in <module>
    from ._geometric_slerp import geometric_slerp
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/_geometric_slerp.py:9: in <module>
    from scipy.spatial.distance import euclidean
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/spatial/distance.py:121: in <module>
    from ..special import rel_entr
../../BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/special/__init__.py:777: in <module>
    from . import _ufuncs
E   ImportError: /home/tkloczko/rpmbuild/BUILDROOT/python-scipy-1.12.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages/scipy/special/_ufuncs.cpython-310-x86_64-linux-gnu.so: undefined symbol: npy_cexp

[.and so on.]

=========================== short test summary info ============================
ERROR scipy/cluster/tests/test_disjoint_set.py
ERROR scipy/cluster/tests/test_hierarchy.py
ERROR scipy/cluster/tests/test_vq.py
ERROR scipy/datasets/tests/test_data.py
ERROR scipy/fft/_pocketfft/tests/test_basic.py
ERROR scipy/fft/_pocketfft/tests/test_real_transforms.py
ERROR scipy/fft/tests/test_backend.py
ERROR scipy/fft/tests/test_basic.py
ERROR scipy/fft/tests/test_fftlog.py
ERROR scipy/fft/tests/test_helper.py
ERROR scipy/fft/tests/test_multithreading.py
ERROR scipy/fft/tests/test_real_transforms.py
ERROR scipy/fftpack/tests/test_basic.py
ERROR scipy/fftpack/tests/test_helper.py
ERROR scipy/fftpack/tests/test_pseudo_diffs.py
ERROR scipy/fftpack/tests/test_real_transforms.py
ERROR scipy/integrate/_ivp/tests/test_ivp.py
ERROR scipy/integrate/_ivp/tests/test_rk.py
ERROR scipy/integrate/tests/test__quad_vec.py
ERROR scipy/integrate/tests/test_banded_ode_solvers.py
ERROR scipy/integrate/tests/test_bvp.py
ERROR scipy/integrate/tests/test_integrate.py
ERROR scipy/integrate/tests/test_odeint_jac.py
ERROR scipy/integrate/tests/test_quadpack.py
ERROR scipy/integrate/tests/test_quadrature.py
ERROR scipy/interpolate/tests/test_bsplines.py
ERROR scipy/interpolate/tests/test_fitpack.py
ERROR scipy/interpolate/tests/test_fitpack2.py
ERROR scipy/interpolate/tests/test_gil.py
ERROR scipy/interpolate/tests/test_interpnd.py
ERROR scipy/interpolate/tests/test_interpolate.py
ERROR scipy/interpolate/tests/test_ndgriddata.py
ERROR scipy/interpolate/tests/test_pade.py
ERROR scipy/interpolate/tests/test_polyint.py
ERROR scipy/interpolate/tests/test_rbf.py
ERROR scipy/interpolate/tests/test_rbfinterp.py
ERROR scipy/interpolate/tests/test_rgi.py
ERROR scipy/linalg/tests/test_decomp.py
ERROR scipy/linalg/tests/test_decomp_cossin.py
ERROR scipy/linalg/tests/test_lapack.py
ERROR scipy/linalg/tests/test_matfuncs.py
ERROR scipy/linalg/tests/test_special_matrices.py
ERROR scipy/ndimage/tests/test_c_api.py
ERROR scipy/ndimage/tests/test_datatypes.py
ERROR scipy/ndimage/tests/test_filters.py
ERROR scipy/ndimage/tests/test_fourier.py
ERROR scipy/ndimage/tests/test_interpolation.py
ERROR scipy/ndimage/tests/test_measurements.py
ERROR scipy/ndimage/tests/test_morphology.py
ERROR scipy/ndimage/tests/test_splines.py
ERROR scipy/optimize/_trustregion_constr/tests/test_report.py
ERROR scipy/optimize/tests/test__basinhopping.py
ERROR scipy/optimize/tests/test__differential_evolution.py
ERROR scipy/optimize/tests/test__dual_annealing.py
ERROR scipy/optimize/tests/test__remove_redundancy.py
ERROR scipy/optimize/tests/test__root.py
ERROR scipy/optimize/tests/test__shgo.py
ERROR scipy/optimize/tests/test__spectral.py
ERROR scipy/optimize/tests/test_chandrupatla.py
ERROR scipy/optimize/tests/test_cobyla.py
ERROR scipy/optimize/tests/test_constraint_conversion.py
ERROR scipy/optimize/tests/test_cython_optimize.py
ERROR scipy/optimize/tests/test_differentiable_functions.py
ERROR scipy/optimize/tests/test_direct.py
ERROR scipy/optimize/tests/test_hessian_update_strategy.py
ERROR scipy/optimize/tests/test_isotonic_regression.py
ERROR scipy/optimize/tests/test_lbfgsb_hessinv.py
ERROR scipy/optimize/tests/test_lbfgsb_setulb.py
ERROR scipy/optimize/tests/test_least_squares.py
ERROR scipy/optimize/tests/test_linear_assignment.py
ERROR scipy/optimize/tests/test_linesearch.py
ERROR scipy/optimize/tests/test_linprog.py
ERROR scipy/optimize/tests/test_lsq_linear.py
ERROR scipy/optimize/tests/test_milp.py
ERROR scipy/optimize/tests/test_minimize_constrained.py
ERROR scipy/optimize/tests/test_minpack.py
ERROR scipy/optimize/tests/test_nnls.py
ERROR scipy/optimize/tests/test_nonlin.py
ERROR scipy/optimize/tests/test_optimize.py
ERROR scipy/optimize/tests/test_quadratic_assignment.py
ERROR scipy/optimize/tests/test_regression.py
ERROR scipy/optimize/tests/test_slsqp.py
ERROR scipy/optimize/tests/test_tnc.py
ERROR scipy/optimize/tests/test_trustregion.py
ERROR scipy/optimize/tests/test_zeros.py
ERROR scipy/signal/tests/test_array_tools.py
ERROR scipy/signal/tests/test_bsplines.py
ERROR scipy/signal/tests/test_cont2discrete.py
ERROR scipy/signal/tests/test_czt.py
ERROR scipy/signal/tests/test_dltisys.py
ERROR scipy/signal/tests/test_filter_design.py
ERROR scipy/signal/tests/test_fir_filter_design.py
ERROR scipy/signal/tests/test_ltisys.py
ERROR scipy/signal/tests/test_max_len_seq.py
ERROR scipy/signal/tests/test_peak_finding.py
ERROR scipy/signal/tests/test_result_type.py
ERROR scipy/signal/tests/test_savitzky_golay.py
ERROR scipy/signal/tests/test_short_time_fft.py
ERROR scipy/signal/tests/test_signaltools.py
ERROR scipy/signal/tests/test_spectral.py
ERROR scipy/signal/tests/test_upfirdn.py
ERROR scipy/signal/tests/test_waveforms.py
ERROR scipy/signal/tests/test_wavelets.py
ERROR scipy/signal/tests/test_windows.py
ERROR scipy/sparse/linalg/tests/test_matfuncs.py
ERROR scipy/spatial/tests/test__plotutils.py
ERROR scipy/spatial/tests/test__procrustes.py
ERROR scipy/spatial/tests/test_distance.py
ERROR scipy/spatial/tests/test_hausdorff.py
ERROR scipy/spatial/tests/test_kdtree.py
ERROR scipy/spatial/tests/test_qhull.py
ERROR scipy/spatial/tests/test_slerp.py
ERROR scipy/spatial/tests/test_spherical_voronoi.py
ERROR scipy/spatial/transform/tests/test_rotation.py
ERROR scipy/spatial/transform/tests/test_rotation_groups.py
ERROR scipy/spatial/transform/tests/test_rotation_spline.py
ERROR scipy/special/tests/test_basic.py
ERROR scipy/special/tests/test_bdtr.py
ERROR scipy/special/tests/test_boxcox.py
ERROR scipy/special/tests/test_cdflib.py
ERROR scipy/special/tests/test_cdft_asymptotic.py
ERROR scipy/special/tests/test_cosine_distr.py
ERROR scipy/special/tests/test_cython_special.py
ERROR scipy/special/tests/test_data.py
ERROR scipy/special/tests/test_dd.py
ERROR scipy/special/tests/test_digamma.py
ERROR scipy/special/tests/test_ellip_harm.py
ERROR scipy/special/tests/test_erfinv.py
ERROR scipy/special/tests/test_exponential_integrals.py
ERROR scipy/special/tests/test_faddeeva.py
ERROR scipy/special/tests/test_gamma.py
ERROR scipy/special/tests/test_gammainc.py
ERROR scipy/special/tests/test_hyp2f1.py
ERROR scipy/special/tests/test_hypergeometric.py
ERROR scipy/special/tests/test_kolmogorov.py
ERROR scipy/special/tests/test_lambertw.py
ERROR scipy/special/tests/test_log_softmax.py
ERROR scipy/special/tests/test_loggamma.py
ERROR scipy/special/tests/test_logit.py
ERROR scipy/special/tests/test_logsumexp.py
ERROR scipy/special/tests/test_mpmath.py
ERROR scipy/special/tests/test_nan_inputs.py
ERROR scipy/special/tests/test_ndtr.py
ERROR scipy/special/tests/test_ndtri_exp.py
ERROR scipy/special/tests/test_orthogonal.py
ERROR scipy/special/tests/test_orthogonal_eval.py
ERROR scipy/special/tests/test_owens_t.py
ERROR scipy/special/tests/test_pcf.py
ERROR scipy/special/tests/test_pdtr.py
ERROR scipy/special/tests/test_powm1.py
ERROR scipy/special/tests/test_precompute_expn_asy.py
ERROR scipy/special/tests/test_precompute_gammainc.py
ERROR scipy/special/tests/test_precompute_utils.py
ERROR scipy/special/tests/test_round.py
ERROR scipy/special/tests/test_sf_error.py
ERROR scipy/special/tests/test_sici.py
ERROR scipy/special/tests/test_spence.py
ERROR scipy/special/tests/test_spfun_stats.py
ERROR scipy/special/tests/test_sph_harm.py
ERROR scipy/special/tests/test_spherical_bessel.py
ERROR scipy/special/tests/test_support_alternative_backends.py
ERROR scipy/special/tests/test_trig.py
ERROR scipy/special/tests/test_wright_bessel.py
ERROR scipy/special/tests/test_wrightomega.py
ERROR scipy/special/tests/test_zeta.py
ERROR scipy/stats/_bws_test.py
ERROR scipy/stats/_page_trend_test.py
ERROR scipy/stats/tests/test_axis_nan_policy.py
ERROR scipy/stats/tests/test_binned_statistic.py
ERROR scipy/stats/tests/test_boost_ufuncs.py
ERROR scipy/stats/tests/test_censored_data.py
ERROR scipy/stats/tests/test_contingency.py
ERROR scipy/stats/tests/test_continuous_basic.py
ERROR scipy/stats/tests/test_continuous_fit_censored.py
ERROR scipy/stats/tests/test_crosstab.py
ERROR scipy/stats/tests/test_discrete_basic.py
ERROR scipy/stats/tests/test_discrete_distns.py
ERROR scipy/stats/tests/test_distributions.py
ERROR scipy/stats/tests/test_entropy.py
ERROR scipy/stats/tests/test_fast_gen_inversion.py
ERROR scipy/stats/tests/test_fit.py
ERROR scipy/stats/tests/test_hypotests.py
ERROR scipy/stats/tests/test_kdeoth.py
ERROR scipy/stats/tests/test_morestats.py
ERROR scipy/stats/tests/test_mstats_basic.py
ERROR scipy/stats/tests/test_mstats_extras.py
ERROR scipy/stats/tests/test_multicomp.py
ERROR scipy/stats/tests/test_multivariate.py
ERROR scipy/stats/tests/test_odds_ratio.py
ERROR scipy/stats/tests/test_qmc.py
ERROR scipy/stats/tests/test_rank.py
ERROR scipy/stats/tests/test_relative_risk.py
ERROR scipy/stats/tests/test_resampling.py
ERROR scipy/stats/tests/test_sampling.py
ERROR scipy/stats/tests/test_sensitivity_analysis.py
ERROR scipy/stats/tests/test_stats.py
ERROR scipy/stats/tests/test_survival.py
ERROR scipy/stats/tests/test_tukeylambda_stats.py
ERROR scipy/stats/tests/test_variation.py
!!!!!!!!!!!!!!!!!! Interrupted: 199 errors during collection !!!!!!!!!!!!!!!!!!!
============================= 199 errors in 20.85s =============================

SciPy/NumPy/Python version and system information

List of installed modules in build env:
Package                       Version
----------------------------- -----------
alabaster                     0.7.16
attrs                         23.2.0
Babel                         2.15.0
beniget                       0.4.1
build                         1.2.1
charset-normalizer            3.3.2
contourpy                     1.2.1
cycler                        0.12.1
Cython                        3.0.10
defusedxml                    0.7.1
docutils                      0.20.1
exceptiongroup                1.1.3
execnet                       2.1.1
fonttools                     4.51.0
gast                          0.5.4
hypothesis                    6.100.0
idna                          3.7
imagesize                     1.4.1
importlib_metadata            7.1.0
iniconfig                     2.0.0
installer                     0.7.0
Jinja2                        3.1.4
kiwisolver                    1.4.5
MarkupSafe                    2.1.5
matplotlib                    3.8.4
meson                         1.4.0
meson-python                  0.15.0
numpy                         1.26.5
numpydoc                      1.7.0
olefile                       0.47
packaging                     24.0
pillow                        10.3.0
pluggy                        1.4.0
ply                           3.11
pybind11                      2.12.0
Pygments                      2.18.0
pyparsing                     3.1.2
pyproject_hooks               1.0.0
pyproject-metadata            0.8.0
pytest                        8.1.1
pytest-timeout                2.3.1
pytest-xdist                  3.6.1
python-dateutil               2.9.0.post0
pythran                       0.15.0
requests                      2.31.0
setuptools                    69.4.0
snowballstemmer               2.2.0
sortedcontainers              2.4.0
Sphinx                        7.3.7
sphinxcontrib-applehelp       1.0.8
sphinxcontrib-devhelp         1.0.6
sphinxcontrib-htmlhelp        2.0.5
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.7
sphinxcontrib-serializinghtml 1.1.10
tabulate                      0.9.0
tokenize_rt                   5.2.0
tomli                         2.0.1
urllib3                       2.2.1
wheel                         0.43.0
zipp                          3.18.2

</details>
@kloczek kloczek added the defect A clear bug or issue that prevents SciPy from being installed or used as expected label May 17, 2024
@kloczek
Copy link
Author

kloczek commented May 17, 2024

I don't see anywhere in scipy code that symbol declared as external

[tkloczko@pers-jacek scipy-1.12.0]$ grep -r npy_cexp
scipy/special/_complexstuff.pxd:    np.npy_cdouble npy_cexp(np.npy_cdouble z) nogil
scipy/special/_complexstuff.pxd:        r = npy_cexp(npy_cdouble_from_double_complex(x))
scipy/special/_cunity.pxd:    np.npy_cdouble npy_cexp(np.npy_cdouble x) nogil
scipy/special/_cunity.pxd:        ret = npy_cexp(npy_cdouble_from_double_complex(z))

Below is as well begin of the build log with meson output:

+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
* Building wheel...
+ meson setup /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0 /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/.mesonpy-tv2ym3w8 -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=/home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/.mesonpy-tv2ym3w8/meson-python-native-file.ini
The Meson build system
Version: 1.4.0
Source dir: /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0
Build dir: /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/.mesonpy-tv2ym3w8
Build type: native build
Project name: scipy
Project version: 1.12.0
C compiler for the host machine: /usr/bin/gcc (gcc 14.1.1 "gcc (GCC) 14.1.1 20240507 (Red Hat 14.1.1-1)")
C linker for the host machine: /usr/bin/gcc ld.bfd 2.42.50.20240513
C++ compiler for the host machine: /usr/bin/g++ (gcc 14.1.1 "g++ (GCC) 14.1.1 20240507 (Red Hat 14.1.1-1)")
C++ linker for the host machine: /usr/bin/g++ ld.bfd 2.42.50.20240513
Cython compiler for the host machine: cython (cython 3.0.10)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program python found: YES (/usr/bin/python3)
Found pkg-config: YES (/usr/bin/pkg-config) 2.1.1
Run-time dependency python found: YES 3.10
Program cython found: YES (/usr/bin/cython)
Compiler for C supports arguments -Wno-unused-but-set-variable: YES
Compiler for C supports arguments -Wno-unused-function: YES
Compiler for C supports arguments -Wno-conversion: YES
Compiler for C supports arguments -Wno-misleading-indentation: YES
Library m found: YES
Fortran compiler for the host machine: /usr/bin/gfortran (gcc 14.1.1 "GNU Fortran (GCC) 14.1.1 20240507 (Red Hat 14.1.1-1)")
Fortran linker for the host machine: /usr/bin/gfortran ld.bfd 2.42.50.20240513
Compiler for Fortran supports arguments -Wno-conversion: YES
Checking if "-Wl,--version-script" : links: YES
Program pythran found: YES (/usr/bin/pythran)
Found CMake: /usr/bin/cmake (3.29.1)
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Run-time dependency xsimd found: NO (tried pkgconfig and cmake)
Run-time dependency threads found: YES
Library npymath found: YES
Library npyrandom found: YES
Run-time dependency pybind11 found: YES 2.12.0
Run-time dependency scipy-openblas found: NO (tried pkgconfig)
Run-time dependency openblas found: YES 0.3.27
Dependency openblas found: YES 0.3.27 (cached)
Compiler for C supports arguments -Wno-maybe-uninitialized: YES
Compiler for C supports arguments -Wno-discarded-qualifiers: YES
Compiler for C supports arguments -Wno-empty-body: YES
Compiler for C supports arguments -Wno-implicit-function-declaration: YES
Compiler for C supports arguments -Wno-parentheses: YES
Compiler for C supports arguments -Wno-switch: YES
Compiler for C supports arguments -Wno-unused-label: YES
Compiler for C supports arguments -Wno-unused-result: YES
Compiler for C supports arguments -Wno-unused-variable: YES
Compiler for C supports arguments -Wno-incompatible-pointer-types: YES
Compiler for C++ supports arguments -Wno-cpp: YES
Compiler for C++ supports arguments -Wno-deprecated-declarations: YES
Compiler for C++ supports arguments -Wno-class-memaccess: YES
Compiler for C++ supports arguments -Wno-format-truncation: YES
Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES
Compiler for C++ supports arguments -Wno-sign-compare: YES
Compiler for C++ supports arguments -Wno-switch: YES
Compiler for C++ supports arguments -Wno-terminate: YES
Compiler for C++ supports arguments -Wno-unused-but-set-variable: YES
Compiler for C++ supports arguments -Wno-unused-function: YES
Compiler for C++ supports arguments -Wno-unused-local-typedefs: YES
Compiler for C++ supports arguments -Wno-unused-variable: YES
Compiler for C++ supports arguments -Wno-int-in-bool-context: YES
Compiler for Fortran supports arguments -Wno-argument-mismatch: YES
Compiler for Fortran supports arguments -Wno-conversion: YES (cached)
Compiler for Fortran supports arguments -Wno-intrinsic-shadow: YES
Compiler for Fortran supports arguments -Wno-maybe-uninitialized: YES
Compiler for Fortran supports arguments -Wno-surprising: YES
Compiler for Fortran supports arguments -Wno-uninitialized: YES
Compiler for Fortran supports arguments -Wno-unused-dummy-argument: YES
Compiler for Fortran supports arguments -Wno-unused-label: YES
Compiler for Fortran supports arguments -Wno-unused-variable: YES
Compiler for Fortran supports arguments -Wno-tabs: YES
Compiler for Fortran supports arguments -Wno-argument-mismatch: YES (cached)
Compiler for Fortran supports arguments -Wno-conversion: YES (cached)
Compiler for Fortran supports arguments -Wno-maybe-uninitialized: YES (cached)
Compiler for Fortran supports arguments -Wno-unused-dummy-argument: YES (cached)
Compiler for Fortran supports arguments -Wno-unused-label: YES (cached)
Compiler for Fortran supports arguments -Wno-unused-variable: YES (cached)
Compiler for Fortran supports arguments -Wno-tabs: YES (cached)
Checking if "Check atomic builtins without -latomic" : links: YES
Configuring __config__.py using configuration
Checking for function "open_memstream" : NO
Configuring messagestream_config.h using configuration
Compiler for Fortran supports arguments -w: YES
Checking for size of "void*" : 8
Compiler for Fortran supports arguments -w: YES (cached)
Checking for size of "void*" : 8 (cached)
Build targets in project: 252

scipy 1.12.0

  User defined options
    Native files: /home/tkloczko/rpmbuild/BUILD/scipy-1.12.0/.mesonpy-tv2ym3w8/meson-python-native-file.ini
    buildtype   : release
    b_ndebug    : if-release
    b_vscrt     : md

Found ninja-1.12.1 at /usr/bin/ninja

@kloczek kloczek changed the title BUG: pytest fails in all units using scipy.special._ufuncs DSO module with undefined symb ol: npy_cexp 1.12.0 [BUG]: pytest fails in all units using scipy.special._ufuncs DSO module with undefined symb ol: npy_cexp May 17, 2024
@dschmitz89 dschmitz89 added the Build issues Issues with building from source, including different choices of architecture, compilers and OS label May 17, 2024
@tylerjereddy
Copy link
Contributor

I'm just skimming, but in your list of installed build env modules you have:

numpy 1.26.5

There's no such stable release of NumPy that I'm aware of?

@kloczek
Copy link
Author

kloczek commented May 18, 2024

That is side effect of merging patches from 1.26.x branch.
numpy/numpy@v1.26.4...maintenance/1.26.x
None of those commits are related to npy_cexp.

@kloczek
Copy link
Author

kloczek commented May 18, 2024

Actually I just found that 1.26.5 has been already tagged https://github.com/numpy/numpy/releases/tag/v1.26.5

@tylerjereddy
Copy link
Contributor

I'm pretty sure they decided not to release it though, on balance, per: numpy/numpy#26383 (comment).

They did have some symbol issues in that discussion, though not the same as yours. I'm not entirely sure it is an amazing idea to try to support SciPy alongside an unreleased version of NumPy that was having some issues like that (even if they were surmountable and just things in the CI).

I'm pretty sure the problem you're having here (or a very similar one) is already described in some detail starting at: numpy/numpy#24873 (comment)

Looks like some distributors for non-C99 compliant platforms cherry-picked changes from numpy/numpy#24876 to work around it.

@rgommers
Copy link
Member

I'm pretty sure the problem you're having here (or a very similar one) is already described in some detail starting at: numpy/numpy#24873 (comment)

Looks like some distributors for non-C99 compliant platforms cherry-picked changes from numpy/numpy#24876 to work around it.

That sounds like the right diagnosis and solution. Either way, npy_cexp is a symbol provided by numpy's libnpymath, so this isn't a SciPy issue.

Given @tylerjereddy provided the answer here, I'll assume that that solved it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build issues Issues with building from source, including different choices of architecture, compilers and OS defect A clear bug or issue that prevents SciPy from being installed or used as expected scipy.special
Projects
None yet
Development

No branches or pull requests

5 participants