conda-forge / nvcc-feedstock

A conda-smithy repository for nvcc.
BSD 3-Clause "New" or "Revised" License
12 stars 23 forks source link

BUG: `nvcc_linux-aarch64 11.8` cannot be installed with `sysroot_linux-aarch64 2.28` #107

Closed h-vetinari closed 2 months ago

h-vetinari commented 2 months ago

On several feedstocks I've seen CUDA on aarch rely on newer glibc symbols than 2.17.

For example, on the pycuda feedstock, this looks like

    from pycuda._driver import *  # noqa
ImportError: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by $PREFIX/lib/python3.10/site-packages/pycuda/../../../libcurand.so.10)

though interestingly it only happens for CUDA 11.8 and not 12.0 (on the faiss feedstock it was the other way around; in any case, it needs quite some gymnastics to override).

However, when doing that for 11.8 (again example is pycuda), I get:

Could not solve for environment specs
The following packages are incompatible
├─ nvcc_linux-aarch64 11.8.*  is installable and it requires
│  └─ sysroot_linux-aarch64 2.17.* , which can be installed;
└─ sysroot_linux-aarch64 2.28.*  is not installable because it conflicts with any installable versions previously reported.

So CUDA 11.8 may require symbols from glibc 2.27, but nvcc cannot be installed with a newer sysroot? It sounds to me like we should either loosen the version-constraint, or build two variants (one with 2.17, one with 2.28).

kkraus14 commented 2 months ago

I believe we need to loosen the version constraint here

h-vetinari commented 2 months ago

Just noticed that #106 fixes this already.