conda-forge / ctng-compiler-activation-feedstock

A conda-smithy repository for ctng-compiler-activation.
BSD 3-Clause "New" or "Revised" License
13 stars 22 forks source link

Outdated sysroot_linux-64 (try 2) #123

Closed shuds13 closed 2 weeks ago

shuds13 commented 2 weeks ago

Solution to issue cannot be found in the documentation.

Issue

This feedstock defaults to using an outdated version of sysroot_linux-64, which causes compatibility issues with mpich 4.2.2 as reported in https://github.com/conda-forge/mpich-feedstock/issues/98

Also see https://github.com/Libensemble/libensemble/actions/runs/9862133688/job/27232089090?pr=1344#step:14:110

Steps to reproduce:

conda create -n testmpi mpich gcc_linux-64
export PYTHONNOUSERSITE=1
. activate testmpi
mpicc helloworld_mpi.c

... libmpi.so: undefined reference to `memcpy@GLIBC_2.14'

Installed packages

# packages in environment at /home/shudson/miniconda3/envs/test_gcc_linux_glibc:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
binutils_impl_linux-64    2.40                 ha1999f0_7    conda-forge
binutils_linux-64         2.40                 hb3c18ed_9    conda-forge
gcc_impl_linux-64         13.2.0              h9eb54c0_13    conda-forge
gcc_linux-64              13.2.0               h50dba11_9    conda-forge
kernel-headers_linux-64   2.6.32              he073ed8_17    conda-forge
ld_impl_linux-64          2.40                 hf3520f5_7    conda-forge
libgcc-devel_linux-64     13.2.0             hdb50d1a_113    conda-forge
libgcc-ng                 14.1.0               h77fa898_0    conda-forge
libgfortran-ng            14.1.0               h69a702a_0    conda-forge
libgfortran5              14.1.0               hc5f4f2c_0    conda-forge
libgomp                   14.1.0               h77fa898_0    conda-forge
libsanitizer              13.2.0              h6ddb7a1_13    conda-forge
libstdcxx-ng              14.1.0               hc0a3c3a_0    conda-forge
mpi                       1.0                       mpich    conda-forge
mpich                     4.2.2              h4a7f18d_100    conda-forge
sysroot_linux-64          2.12                he073ed8_17    conda-forge

Environment info

active environment : test_gcc_linux_glibc
    active env location : /home/shudson/miniconda3/envs/test_gcc_linux_glibc
            shell level : 1
       user config file : /home/shudson/.condarc
 populated config files : /home/shudson/.condarc
          conda version : 4.10.3
    conda-build version : not installed
         python version : 3.9.5.final.0
       virtual packages : __linux=5.15.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/shudson/miniconda3  (writable)
      conda av data dir : /home/shudson/miniconda3/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 : /home/shudson/miniconda3/pkgs
                          /home/shudson/.conda/pkgs
       envs directories : /home/shudson/miniconda3/envs
                          /home/shudson/.conda/envs
               platform : linux-64
             user-agent : conda/4.10.3 requests/2.28.2 CPython/3.9.5 Linux/5.15.0-113-generic ubuntu/20.04.6 glibc/2.31
                UID:GID : 1000:1000
             netrc file : /home/shudson/.netrc
           offline mode : False
h-vetinari commented 2 weeks ago

We moved to glibc 2.17 universally across conda-forge per the end of June, so anything below 2.17 is not relevant anymore.

That said, the problem was now solved more generally: if anything depends on a newer glibc than our baseline (so >2.17, as of July 2024), we can handle this with the {{ stdlib("c") }} infrastructure. This will translate to a corresponding __glibc requirement.

If you want this to translate to a constraint on the sysroot_<target> as well, you can join the discussion in https://github.com/conda-forge/linux-sysroot-feedstock/issues/63 (or, barring a global solution like that, you can add the strong_constrains from there to mpich).

isuruf commented 2 weeks ago

This issue should be fixed now

dalcinl commented 2 weeks ago

@h-vetinari @isuruf The MPICH recipe do have {{ stdlib("c") }} in the build section, but there is no sysroot_* dependency at all. What am I missing? Should I add the c_stdlib_version: [2.17] entry to conda_build_config.yaml ?

isuruf commented 2 weeks ago

@dalcinl you don't have to do anything for now. This issue was fixed yesterday.