conda-forge / openblas-feedstock

A conda-smithy repository for openblas.
BSD 3-Clause "New" or "Revised" License
9 stars 38 forks source link

Building against openmp variant still pulls pthread run dependency #137

Open m3vaz opened 2 years ago

m3vaz commented 2 years ago

Solution to issue cannot be found in the documentation.

Issue

When listing openblas in the host/build requirements, it adds a run dependency to libopenblas. If the openmp variant is selected at build-time, the run dependency does not select openmp and still defaults to pthreads.

Installed packages

(base) root@338d4131e42c:/# conda list # (this is the standard contents of the anaconda3 docker + mamba/boa
# packages in environment at /opt/conda:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                  2_kmp_llvm    conda-forge
anyio                     3.5.0            py39hf3d152e_0    conda-forge
attrs                     21.4.0             pyhd8ed1ab_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.11.1             pyha770c72_0    conda-forge
boa                       0.11.0             pyha770c72_0    conda-forge
brotlipy                  0.7.0           py39h27cfd23_1003
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        py39hf3d152e_2    conda-forge
cffi                      1.15.0           py39hd667e15_1
chardet                   4.0.0            py39hf3d152e_3    conda-forge
charset-normalizer        2.0.4              pyhd3eb1b0_0
click                     8.1.3            py39hf3d152e_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
commonmark                0.9.1                      py_0    conda-forge
conda                     4.12.0           py39hf3d152e_0    conda-forge
conda-build               3.21.8           py39hf3d152e_0    conda-forge
conda-content-trust       0.1.1              pyhd3eb1b0_0
conda-package-handling    1.7.3            py39h27cfd23_1
conda-verify              3.1.1           py39hf3d152e_1004    conda-forge
cryptography              36.0.0           py39h9ce1e76_0
dataclasses               0.8                pyhc8e2a94_3    conda-forge
filelock                  3.6.0              pyhd8ed1ab_0    conda-forge
future                    0.18.2           py39hf3d152e_5    conda-forge
glob2                     0.7                        py_0    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
idna                      3.3                pyhd3eb1b0_0
importlib-metadata        4.11.3           py39hf3d152e_1    conda-forge
importlib_resources       5.7.1              pyhd8ed1ab_0    conda-forge
jinja2                    3.1.1              pyhd8ed1ab_0    conda-forge
joblib                    1.1.0              pyhd8ed1ab_0    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonschema                4.4.0              pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.19.3               h3790be6_0    conda-forge
ld_impl_linux-64          2.35.1               h7274673_9
libarchive                3.5.2                hccf745f_1    conda-forge
libcurl                   7.83.0               h7bff187_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libffi                    3.3                  he6710b0_2
libgcc-ng                 11.2.0              h1d223b6_16    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
liblief                   0.11.5               h9c3ff4c_1    conda-forge
libmamba                  0.23.0               hd8a31e3_1    conda-forge
libmambapy                0.23.0           py39hd55135b_1    conda-forge
libnghttp2                1.47.0               h727a467_0    conda-forge
libsolv                   0.7.22               h6239696_0    conda-forge
libssh2                   1.10.0               ha56f1ee_2    conda-forge
libstdcxx-ng              11.2.0              he4da1e4_16    conda-forge
libxml2                   2.9.14               h22db469_0    conda-forge
libzlib                   1.2.11            h166bdaf_1014    conda-forge
llvm-openmp               14.0.3               he0ac6c6_0    conda-forge
lz4-c                     1.9.3                h9c3ff4c_1    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
mamba                     0.23.0           py39hfa8f2c8_1    conda-forge
markupsafe                2.1.1            py39hb9d737c_1    conda-forge
ncurses                   6.3                  h7f8727e_2
openssl                   1.1.1n               h166bdaf_0    conda-forge
patchelf                  0.14.5               h58526e2_0    conda-forge
pip                       21.2.4           py39h06a4308_0
pkginfo                   1.8.2              pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.29             pyha770c72_0    conda-forge
prompt_toolkit            3.0.29               hd8ed1ab_0    conda-forge
psutil                    5.9.0            py39hb9d737c_1    conda-forge
py-lief                   0.11.5           py39he80948d_1    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.3            py39h27cfd23_0
pycparser                 2.21               pyhd3eb1b0_0
pygments                  2.12.0             pyhd8ed1ab_0    conda-forge
pyopenssl                 21.0.0             pyhd3eb1b0_1
pyrsistent                0.18.1           py39hb9d737c_1    conda-forge
pysocks                   1.7.1            py39h06a4308_0
python                    3.9.7                h12debd9_1
python-libarchive-c       4.0              py39hf3d152e_1    conda-forge
python_abi                3.9                      2_cp39    conda-forge
pytz                      2022.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0              py39hb9d737c_4    conda-forge
readline                  8.1.2                h7f8727e_1
reproc                    14.2.3               h7f98852_0    conda-forge
reproc-cpp                14.2.3               h9c3ff4c_0    conda-forge
requests                  2.27.1             pyhd3eb1b0_0
rich                      12.3.0             pyhd8ed1ab_0    conda-forge
ripgrep                   13.0.0               h2f28480_2    conda-forge
ruamel.yaml               0.17.21          py39hb9d737c_1    conda-forge
ruamel.yaml.clib          0.2.6            py39hb9d737c_1    conda-forge
ruamel_yaml               0.15.100         py39h27cfd23_0
setuptools                58.0.4           py39h06a4308_0
six                       1.16.0             pyhd3eb1b0_0
sniffio                   1.2.0            py39hf3d152e_3    conda-forge
soupsieve                 2.3.1              pyhd8ed1ab_0    conda-forge
sqlite                    3.37.0               hc218d9a_0
tk                        8.6.11               h1ccaba5_0
tqdm                      4.62.3             pyhd3eb1b0_1
typing_extensions         4.2.0              pyha770c72_1    conda-forge
tzdata                    2021e                hda174b7_0
urllib3                   1.26.7             pyhd3eb1b0_0
watchgod                  0.8.2              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
wheel                     0.37.1             pyhd3eb1b0_0
xz                        5.2.5                h7b6447c_0
yaml                      0.2.5                h7b6447c_0
yaml-cpp                  0.6.3                he1b5a44_4    conda-forge
zipp                      3.8.0              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11            h166bdaf_1014    conda-forge
zstd                      1.5.2                ha95c52a_0    conda-forge

Environment info

active environment : base
    active env location : /opt/conda
            shell level : 1
       user config file : /root/.condarc
 populated config files : /root/.condarc
          conda version : 4.12.0
    conda-build version : 3.21.8
         python version : 3.9.7.final.0
       virtual packages : __cuda=11.8=0
                          __linux=4.15.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /opt/conda  (writable)
      conda av data dir : /opt/conda/etc/conda
  conda av metadata url : None
           channel URLs : file:///opt/conda/conda-bld/linux-64
                          file:///opt/conda/conda-bld/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/nvidia/linux-64
                          https://conda.anaconda.org/nvidia/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 : /opt/conda/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/conda/envs
                          /root/.conda/envs
               platform : linux-64
             user-agent : conda/4.12.0 requests/2.27.1 CPython/3.9.7 Linux/4.15.0-156-generic debian/11 glibc/2.31
                UID:GID : 0:0
             netrc file : None
           offline mode : False
isuruf commented 2 years ago

Sure, but AFAIK, the library's ABI doesn't change depending on whether a downstream package links to the pthreads or the openmp version. If that's true, then you should pin to pthreads or openmp yourself in run.