conda-forge / intel-compiler-repack-feedstock

A conda-smithy repository for intel-compiler-repack.
BSD 3-Clause "New" or "Revised" License
3 stars 7 forks source link

Build failure when using dpcpp compiler and sysroot_linux >=2.28 #31

Closed oleksandr-pavlyk closed 4 weeks ago

oleksandr-pavlyk commented 5 months ago

Solution to issue cannot be found in the documentation.

Issue

Please refer to https://github.com/oleksandr-pavlyk/conda-build-failure-reproducer for the reproducer, and sample output.

The reproducer derives from https://github.com/IntelPython/dpctl.git

The reproducer sets sysroot_linux-64 >=2.28 because Intel oneAPI DPC++ compiler requires GLIBC version 2.28 or newer. Quoting from https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-dpcpp-system-requirements.html:

Supported minimum versions of distributed libraries that the compilers are built on: GCC - 7.5.0, BINUTILS- 2.30, GLIBC-2.28, G++ - 7.5.0.

The reproducer runs into weird error about incompatible component merge:

    ValueError: Incompatible component merge:
      - '*mpich*'
      - 'mpi_mpich_*'

but the root of the problem is that dpcpp_impl_linux-64 pins sysroot_linux-64 to 2.17.*:

dpcpp_impl_linux-64 2024.0.0 hd6dfaa8_49819
-------------------------------------------
file name   : dpcpp_impl_linux-64-2024.0.0-hd6dfaa8_49819.conda
name        : dpcpp_impl_linux-64
version     : 2024.0.0
build       : hd6dfaa8_49819
build number: 49819
size        : 337.4 MB
license     : LicenseRef-Proprietary-Intel-End-User-License-Agreement-for-Developer-Tools
subdir      : linux-64
url         : https://conda.anaconda.org/conda-forge/linux-64/dpcpp_impl_linux-64-2024.0.0-hd6dfaa8_49819.conda
md5         : 61de3d1697746244be94ddb3d90c00ec
timestamp   : 2023-11-17 14:47:28 UTC
dependencies:
  - _openmp_mutex >=4.5
  - dpcpp-cpp-rt 2024.0.0 h59595ed_49819
  - gcc_impl_linux-64
  - gxx_impl_linux-64
  - libgcc-ng >=12
  - libstdcxx-ng >=12
  - libxml2 >=2.11.5,<3.0.0a0
  - libzlib >=1.2.13,<1.3.0a0
  - ocl-icd >=2.3.1,<3.0a0
  - sysroot_linux-64 2.17.*

In fact, replacing sysroot_linux-64 >=2.28 in the reproducer with sysroot_linux-64 >=2.17 resolves this failure.

Please fix this by releasing dpcpp based on sysroot_linux-64 2.28.*

Installed packages

Fresh installation of miniconda3 on Ubuntu 20.04.

Environment info

active environment : None
            shell level : 0
       user config file : /home/opavlyk/.condarc
 populated config files :
          conda version : 23.7.4
    conda-build version : 3.26.1
         python version : 3.9.12.final.0
       virtual packages : __archspec=1=x86_64
                          __glibc=2.31=0
                          __linux=5.15.133.1=0
                          __unix=0=0
       base environment : /home/opavlyk/miniconda3  (writable)
      conda av data dir : /home/opavlyk/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : 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/opavlyk/miniconda3/pkgs
                          /home/opavlyk/.conda/pkgs
       envs directories : /home/opavlyk/miniconda3/envs
                          /home/opavlyk/.conda/envs
               platform : linux-64
             user-agent : conda/23.7.4 requests/2.31.0 CPython/3.9.12 Linux/5.15.133.1-microsoft-standard-WSL2 ubuntu/20.04.6 glibc/2.31
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False
oleksandr-pavlyk commented 5 months ago

A PR to transition to 2.28 is already open: https://github.com/conda-forge/intel-compiler-repack-feedstock/pull/24, but it is gated by progress on https://github.com/conda-forge/conda-forge.github.io/issues/1941

ZzEeKkAa commented 1 month ago

Is it possible to update to something like - sysroot_linux-64 >=2.17.*, so it is possible to use with both versions?