conda-forge / compilers-feedstock

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

no libc on macos bigsur 11.4 #35

Closed jeremiedbb closed 3 years ago

jeremiedbb commented 3 years ago

usually on macos I can do

from ctypes.util import find_library
find_library("c")

However it returns None on macos big sur. Would it make sense to ship it in the compilers package ?

I found that compilers comes with the llvm libc libllvm*. Do you consider that it should be used instead of glibc anyway ? In that case would it make sense to add a symlink libc.dylib -> libllvm-<verision>.dylib ? If not would it make sense to add a generic un-versioned symlink libllvm.dylib -> libllvm-<verision>.dylib for convenience ?

isuruf commented 3 years ago

Can you please share the information asked in the issue template?

jeremiedbb commented 3 years ago

sure :) The env is created with conda create -n test -c conda-forge python compilers

conda list

# Name                    Version                   Build  Channel
c-compiler                1.2.0                h0d85af4_0    conda-forge
ca-certificates           2021.5.30            h033912b_0    conda-forge
cctools                   949.0.1             hd9211c8_21    conda-forge
cctools_osx-64            949.0.1             h6407bdd_21    conda-forge
certifi                   2021.5.30        py39h6e9494a_0    conda-forge
clang                     11.1.0               h694c41f_1    conda-forge
clang-11                  11.1.0          default_he082bbe_1    conda-forge
clang_osx-64              11.1.0               hb91bd55_2    conda-forge
clangxx                   11.1.0          default_he082bbe_1    conda-forge
clangxx_osx-64            11.1.0               h7e1b574_2    conda-forge
compiler-rt               11.1.0               h654b07c_0    conda-forge
compiler-rt_osx-64        11.1.0               h8c5fa43_0    conda-forge
compilers                 1.2.0                h694c41f_0    conda-forge
cxx-compiler              1.2.0                h940c156_0    conda-forge
fortran-compiler          1.2.0                h6818c3e_0    conda-forge
gfortran_impl_osx-64      9.3.0               h9cc0e5e_22    conda-forge
gfortran_osx-64           9.3.0               h18f7dce_14    conda-forge
gmp                       6.2.1                h2e338ed_0    conda-forge
isl                       0.22.1               hb1e8313_2    conda-forge
ld64                      530                 hd2e7500_21    conda-forge
ld64_osx-64               530                 he8994da_21    conda-forge
ldid                      2.1.2                h7660a38_2    conda-forge
libclang-cpp11.1          11.1.0          default_he082bbe_1    conda-forge
libcxx                    12.0.1               habf9029_0    conda-forge
libffi                    3.3                  h046ec9c_2    conda-forge
libgfortran               5.0.0           9_3_0_h6c81a4c_22    conda-forge
libgfortran-devel_osx-64  9.3.0               h6c81a4c_22    conda-forge
libgfortran5              9.3.0               h6c81a4c_22    conda-forge
libiconv                  1.16                 haf1e3a3_0    conda-forge
libllvm11                 11.1.0               hd011deb_2    conda-forge
llvm-openmp               12.0.1               hda6cdc1_0    conda-forge
llvm-tools                11.1.0               hd011deb_2    conda-forge
mpc                       1.1.0             ha57cd0f_1009    conda-forge
mpfr                      4.0.2                h72d8aaf_1    conda-forge
ncurses                   6.2                  h2e338ed_4    conda-forge
openssl                   1.1.1k               h0d85af4_0    conda-forge
pip                       21.1.3             pyhd8ed1ab_0    conda-forge
python                    3.9.6           hd187cdc_1_cpython    conda-forge
python_abi                3.9                      2_cp39    conda-forge
readline                  8.1                  h05e3726_0    conda-forge
setuptools                49.6.0           py39h6e9494a_3    conda-forge
sqlite                    3.36.0               h23a322b_0    conda-forge
tapi                      1100.0.11            h9ce4665_0    conda-forge
tk                        8.6.10               h0419947_1    conda-forge
tzdata                    2021a                he74cb21_1    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
xz                        5.2.5                haf1e3a3_1    conda-forge
zlib                      1.2.11            h7795811_1010    conda-forge

conda info

     active environment : test
    active env location : /Users/mathisbatoul/opt/miniconda3/envs/test
            shell level : 2
       user config file : /Users/mathisbatoul/.condarc
 populated config files : /Users/mathisbatoul/.condarc
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.9.4.final.0
       virtual packages : __osx=10.16=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/mathisbatoul/opt/miniconda3  (writable)
      conda av data dir : /Users/mathisbatoul/opt/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://conda.anaconda.org/intel/osx-64
                          https://conda.anaconda.org/intel/noarch
                          https://conda.anaconda.org/conda-forge/osx-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/mathisbatoul/opt/miniconda3/pkgs
                          /Users/mathisbatoul/.conda/pkgs
       envs directories : /Users/mathisbatoul/opt/miniconda3/envs
                          /Users/mathisbatoul/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.1 CPython/3.9.4 Darwin/20.5.0 OSX/10.16
                UID:GID : 501:20
             netrc file : /Users/mathisbatoul/.netrc
           offline mode : False
isuruf commented 3 years ago

which python version?

jeremiedbb commented 3 years ago
Python 3.9.6 | packaged by conda-forge | (default, Jul 11 2021, 03:36:15)
[Clang 11.1.0 ] on darwin
isuruf commented 3 years ago

That's strange. python 3.9.6 should correctly report libc.dylib.

Btw, libllvm.dylib is not the libc in macOS. it's /usr/lib/libc.dylib which is proprietary and we don't ship the C library in any platform.

jeremiedbb commented 3 years ago

Hum it was from a messed up environment. It can actually correctly find libc. Sorry about that. I'll close the issue.

I thought libllvm would contain the llvm implementation of the c std lib but I must have mistaken. Thanks for your help.

isuruf commented 3 years ago

I thought libllvm would contain the llvm implementation of the c std lib

There's no LLVM implementation of the c std lib yet. llvm-libc is just a proposal right now. See https://llvm.org/docs/Proposals/LLVMLibC.html