conda-forge / numba-feedstock

A conda-smithy repository for numba.
BSD 3-Clause "New" or "Revised" License
0 stars 27 forks source link

numba now requires glibc >= 2.14? #89

Closed beckermr closed 1 year ago

beckermr commented 2 years ago

Issue:

I am pretty sure numba 0.55.0 requires cos7 but the build is not marked as such.

I got this error:

/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs/pizza-cutter-sims/lib/python3.10/site-packages/numba/_helperlib.cpython-310-x86_64-linux-gnu.so)


Environment (conda list):

``` $ conda list $ mamba list # packages in environment at /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs/pizza-cutter-sims: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge asteval 0.9.23 pyhd8ed1ab_0 conda-forge astropy 5.0.1 py310h96516ba_0 conda-forge asttokens 2.0.5 pyhd8ed1ab_0 conda-forge attrs 21.4.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 py_2 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge black 22.1.0 pyhd8ed1ab_0 conda-forge blosc 1.21.0 h9c3ff4c_0 conda-forge bokeh 2.4.2 py310hff52083_0 conda-forge brotli 1.0.9 h7f98852_6 conda-forge brotli-bin 1.0.9 h7f98852_6 conda-forge brotlipy 0.7.0 py310h6acc77f_1003 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.18.1 h7f98852_0 conda-forge ca-certificates 2021.10.8 ha878542_0 conda-forge certifi 2021.10.8 py310hff52083_1 conda-forge cffi 1.15.0 py310h0fdd8cc_0 conda-forge cfitsio 4.0.0 h9a35b8e_0 conda-forge charset-normalizer 2.0.11 pyhd8ed1ab_0 conda-forge click 8.0.3 py310hff52083_1 conda-forge cloudpickle 2.0.0 pyhd8ed1ab_0 conda-forge colorama 0.4.4 pyh9f0ad1d_0 conda-forge cryptography 36.0.0 py310h9ce1e76_0 cx_oracle 8.3.0 py310h6acc77f_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge cytoolz 0.11.2 py310h6acc77f_1 conda-forge dask 2022.1.1 pyhd8ed1ab_0 conda-forge dask-core 2022.1.1 pyhd8ed1ab_0 conda-forge dataclasses 0.8 pyhc8e2a94_3 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge des-desmeds 0.9.13 py310hff52083_0 conda-forge des-easyaccess 1.4.7 py310hff52083_4 conda-forge des-pizza-cutter 0.5.3 py310hff52083_1 conda-forge des-sxdes 0.2.0 pyhd8ed1ab_0 conda-forge des-y6utils 0.2.0 pyhd8ed1ab_0 conda-forge distributed 2022.1.1 py310hff52083_0 conda-forge eigen 3.4.0 h4bd325d_0 conda-forge esutil 0.6.9 py310hb5077e9_1 conda-forge executing 0.8.2 pyhd8ed1ab_0 conda-forge fftw 3.3.10 nompi_h77c792f_102 conda-forge fitsio 1.1.7 py310h6ac4621_0 conda-forge flake8 4.0.1 pyhd8ed1ab_1 conda-forge fonttools 4.29.1 py310h6acc77f_0 conda-forge freetype 2.10.4 h0708190_1 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge fsspec 2022.1.0 pyhd8ed1ab_0 conda-forge future 0.18.2 py310hff52083_4 conda-forge galsim 2.3.3 py310h0a570c3_1 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge hdf5 1.12.1 nompi_h7f166f4_103 conda-forge heapdict 1.0.1 py_0 conda-forge hexalattice 1.2.1 pyh8a188c0_0 conda-forge hilbertcurve 2.0.5 pyhd8ed1ab_0 conda-forge idna 3.3 pyhd8ed1ab_0 conda-forge iminuit 2.8.4 py310h122e73d_1 conda-forge importlib-metadata 3.3.0 pyhd8ed1ab_1 conda-forge importlib_metadata 3.3.0 hd8ed1ab_3 conda-forge iniconfig 1.1.1 pyh9f0ad1d_0 conda-forge ipython 8.0.1 py310hff52083_0 conda-forge jbig 2.1 h7f98852_2003 conda-forge jedi 0.18.1 py310hff52083_0 conda-forge jinja2 3.0.3 pyhd8ed1ab_0 conda-forge joblib 1.1.0 pyhd8ed1ab_0 conda-forge jpeg 9e h7f98852_0 conda-forge kiwisolver 1.3.2 py310h91b1402_1 conda-forge krb5 1.19.2 h48eae69_3 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 3.0 h9c3ff4c_0 conda-forge libblas 3.9.0 13_linux64_openblas conda-forge libbrotlicommon 1.0.9 h7f98852_6 conda-forge libbrotlidec 1.0.9 h7f98852_6 conda-forge libbrotlienc 1.0.9 h7f98852_6 conda-forge libcblas 3.9.0 13_linux64_openblas conda-forge libcurl 7.81.0 h494985f_0 conda-forge libdeflate 1.8 h7f98852_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 11.2.0 h1d223b6_12 conda-forge libgfortran-ng 11.2.0 h69a702a_12 conda-forge libgfortran5 11.2.0 h5c6108e_12 conda-forge libgomp 11.2.0 h1d223b6_12 conda-forge libimagequant 2.17.0 h7f98852_1 conda-forge liblapack 3.9.0 13_linux64_openblas conda-forge libllvm11 11.1.0 hf817b99_2 conda-forge libnghttp2 1.46.0 ha19adfc_0 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libopenblas 0.3.18 pthreads_h8fe5266_0 conda-forge libpng 1.6.37 h21135ba_2 conda-forge libssh2 1.10.0 ha35d2d1_2 conda-forge libstdcxx-ng 11.2.0 he4da1e4_12 conda-forge libtiff 4.3.0 h6f004c6_2 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libwebp 1.2.2 h3452ae3_0 conda-forge libwebp-base 1.2.2 h7f98852_1 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libzlib 1.2.11 h36c2ea0_1013 conda-forge llvmlite 0.38.0 py310hee97dad_0 conda-forge lmfit 1.0.3 pyhd8ed1ab_0 conda-forge locket 0.2.0 py_2 conda-forge loky 3.0.0 pyhd8ed1ab_0 conda-forge lsstdesc.coord 1.2.2 py310h91b1402_1 conda-forge lsstdesc.weaklensingdeblending 1.0.0 py310hff52083_3 conda-forge lz4-c 1.9.3 h9c3ff4c_1 conda-forge lzo 2.10 h516909a_1000 conda-forge markupsafe 2.0.1 py310h6acc77f_1 conda-forge matplotlib-base 3.5.1 py310h23f4a51_0 conda-forge matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge mattspy 0.3.0 dev_0 mccabe 0.6.1 py_1 conda-forge meds 0.9.14 py310h96516ba_1 conda-forge metadetect 0.6.2 pyhd8ed1ab_0 conda-forge mpi 1.0 openmpi conda-forge mpi4py 3.1.3 py310h9f77124_0 conda-forge msgpack-python 1.0.3 py310h91b1402_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mypy_extensions 0.4.3 py310hff52083_4 conda-forge ncurses 6.3 h9c3ff4c_0 conda-forge ngmix 2.0.6 py310hff52083_1 conda-forge nomkl 1.0 h5ca1d4c_0 conda-forge numba 0.55.0 py310h00e6091_0 numexpr 2.8.0 py310hcff4476_101 conda-forge numpy 1.22.2 py310h454958d_0 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openmpi 4.1.2 hbfc84c5_0 conda-forge openssl 3.0.0 h7f98852_2 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge pandas 1.4.0 py310hb5077e9_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge partd 1.2.0 pyhd8ed1ab_0 conda-forge pathspec 0.9.0 pyhd8ed1ab_0 conda-forge pexpect 4.8.0 pyh9f0ad1d_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge piff 1.2.0 py310hff52083_1 conda-forge pillow 9.0.1 py310h2f95282_0 conda-forge pip 22.0.3 pyhd8ed1ab_0 conda-forge pixmappy 1.0.0 pyh9f0ad1d_0 conda-forge pizza-cutter-sims 0.1.0 dev_0 platformdirs 2.4.1 pyhd8ed1ab_1 conda-forge pluggy 1.0.0 py310hff52083_2 conda-forge prompt-toolkit 3.0.26 pyha770c72_0 conda-forge psfex 0.4.1 py310h96516ba_3 conda-forge psutil 5.9.0 py310h6acc77f_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge py 1.11.0 pyh6c4a22f_0 conda-forge pybind11 2.9.1 py310h91b1402_0 conda-forge pybind11-global 2.9.1 py310h91b1402_0 conda-forge pycodestyle 2.8.0 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pyerfa 2.0.0.1 py310h96516ba_1 conda-forge pyflakes 2.4.0 pyhd8ed1ab_0 conda-forge pygments 2.11.2 pyhd8ed1ab_0 conda-forge pyopenssl 22.0.0 pyhd8ed1ab_0 conda-forge pyparsing 3.0.7 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 py310hff52083_4 conda-forge pytables 3.7.0 py310hf5df6ce_0 conda-forge pytest 7.0.0 py310hff52083_0 conda-forge python 3.10.2 hc74c709_3_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python_abi 3.10 2_cp310 conda-forge pytz 2021.3 pyhd8ed1ab_0 conda-forge pyyaml 6.0 py310h6acc77f_3 conda-forge readline 8.1 h46c0cb4_0 conda-forge requests 2.27.1 pyhd8ed1ab_0 conda-forge scikit-learn 1.0.2 py310h1246948_0 conda-forge scipy 1.8.0 py310hea5193d_0 conda-forge sep 1.2.0 py310h96516ba_1 conda-forge setuptools 59.8.0 py310hff52083_0 conda-forge setuptools-scm 6.4.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge sqlite 3.37.0 h9cd32fc_0 conda-forge stack_data 0.1.4 pyhd8ed1ab_0 conda-forge tbb 2021.5.0 h4bd325d_0 conda-forge tblib 1.7.0 pyhd8ed1ab_0 conda-forge termcolor 1.1.0 py_2 conda-forge threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge tk 8.6.11 h27826a3_1 conda-forge tomli 2.0.0 pyhd8ed1ab_1 conda-forge toolz 0.11.2 pyhd8ed1ab_0 conda-forge tornado 6.1 py310h6acc77f_2 conda-forge tqdm 4.62.3 pyhd8ed1ab_0 conda-forge traitlets 5.1.1 pyhd8ed1ab_0 conda-forge treecorr 4.2.6 py310h122e73d_1 conda-forge treegp 0.6.0 pyhd8ed1ab_0 conda-forge typed-ast 1.5.2 py310h6acc77f_0 conda-forge typing_extensions 4.0.1 pyha770c72_0 conda-forge tzdata 2021e he74cb21_0 conda-forge uncertainties 3.1.6 pyhd8ed1ab_0 conda-forge unicodedata2 14.0.0 py310h6acc77f_0 conda-forge urllib3 1.26.8 pyhd8ed1ab_1 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xz 5.2.5 h516909a_1 conda-forge yaml 0.2.5 h7f98852_2 conda-forge zict 2.0.0 py_0 conda-forge zipp 3.7.0 pyhd8ed1ab_1 conda-forge zlib 1.2.11 h36c2ea0_1013 conda-forge zstd 1.5.2 ha95c52a_0 conda-forge ```


Details about conda and system ( conda info ):

``` $ conda info $ conda info active environment : pizza-cutter-sims active env location : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs/pizza-cutter-sims shell level : 2 user config file : /u/ki/beckermr/.condarc populated config files : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/.condarc /u/ki/beckermr/.condarc conda version : 4.11.0 conda-build version : not installed python version : 3.9.7.final.0 virtual packages : __linux=2.6.32=0 __glibc=2.12=0 __unix=0=0 __archspec=1=x86_64 base environment : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3 (writable) conda av data dir : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/etc/conda conda av metadata url : None channel URLs : https://conda.anaconda.org/conda-forge/linux-64 https://conda.anaconda.org/conda-forge/noarch https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/pkgs /u/ki/beckermr/.conda/pkgs envs directories : /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs /u/ki/beckermr/.conda/envs platform : linux-64 user-agent : conda/4.11.0 requests/2.26.0 CPython/3.9.7 Linux/2.6.32-754.41.2.el6.x86_64 rhel/6.10 glibc/2.12 UID:GID : 10150:1092 netrc file : /u/ki/beckermr/.netrc offline mode : False ```
beckermr commented 2 years ago

cc @conda-forge/numba @stuartarchibald

beckermr commented 2 years ago

Bump here!

henryiii commented 2 years ago

Wouldn't it not have been able to build, then? https://github.com/conda-forge/numba-feedstock/blob/master/.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml

Is there a test we need to add?

And I assume we'd follow the guide here: https://conda-forge.org/docs/maintainer/knowledge_base.html#using-centos-7

henryiii commented 2 years ago

I don't see a minimum glibc listed here: https://numba.readthedocs.io/en/stable/user/installing.html#compatibility - @esc, perhaps you would know?

beckermr commented 2 years ago

We build in a centos7 container with a centos6 sysroot. If the build looked outside of the sysroot for symbols it would have worked.

esc commented 2 years ago

I don't think we explicitly worry about GLIBC so this isn't marked in the docs. I can check anything on our end if you like. If you can give me more things to try I'd be happy to try them.

henryiii commented 2 years ago

Interesting, does seem like only manylinux2014 (CentOS 7) wheels are shipped. I'd guess the quickest way to verify would be to just try building numba in a centOS 6 container?

beckermr commented 2 years ago

We should check the symbols here:

/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs/pizza-cutter-sims/lib/python3.10/site-packages/numba/_helperlib.cpython-310-x86_64-linux-gnu.so)

It'd be nice to take a census of what is in numba globally too.

stuartarchibald commented 2 years ago

@beckermr where did you get your Numba build from?

beckermr commented 2 years ago

Conda-forge. See the results of conda list above.

beckermr commented 2 years ago

numba 0.55.0 py310h00e6091_0

stuartarchibald commented 2 years ago

numba 0.55.0 py310h00e6091_0

Thanks for confirming, I couldn't see the channel in the list.

jakirkham commented 2 years ago

Going to reopen since the underlying issue is unresolved (though we've worked around the issue in the linked PR for now)

jakirkham commented 2 years ago

We should check the symbols here:

/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /nfs/slac/des/fs1/g/sims/beckermr/mambaforge3/envs/pizza-cutter-sims/lib/python3.10/site-packages/numba/_helperlib.cpython-310-x86_64-linux-gnu.so)

It'd be nice to take a census of what is in numba globally too.

For reference, here is _helperlib.c, which defines mostly a bunch of math operations. Nothing obvious sticks out. So guessing this is more about how it is is getting compiled than anything else

jakirkham commented 2 years ago

(sorry wrong button 🤦‍♂️)

mbargull commented 1 year ago

Conda-forge. See the results of conda list above.

numba 0.55.0 py310h00e6091_0

This is a pkgs/main::numba build (defaults/anaconda built with COS7/glibc 2.17 for a while now). conda-forge::numba builds from the same time frame do not have any glibc>2.12 symbols. I'll remove the added docker_image definition in a cleanup PR.

jakirkham commented 1 year ago

Good catch! Thanks Marcel 🙏