conda-forge / cuda-feedstock

A conda-smithy repository for cuda.
BSD 3-Clause "New" or "Revised" License
2 stars 8 forks source link

Migrate CTK packages to `{{ stdlib("c") }}` #26

Closed jakirkham closed 4 months ago

jakirkham commented 5 months ago

The sysroot* syntax used currently by CTK recipes is getting phased out

Sample syntax as seen currently in libcublas:

        - sysroot_{{ target_platform }} 2.17    # [linux]

The recommendation is to move to {{ stdlib("c") }} ( https://github.com/conda-forge/conda-forge.github.io/issues/2102 )

The simplest way to make this change would be to add the following to conda-forge.yml files:

os_version:
  linux_64: cos7
  linux_aarch64: cos7
  linux_ppc64le: cos7

Make the following change to recipe/meta.yaml

-        - sysroot_{{ target_platform }} 2.17    # [linux]
+        - {{ stdlib("c") }}

Then re-render

h-vetinari commented 5 months ago

The simplest way to make this change would be to add the following to conda-forge.yml files:

os_version:
  linux_64: cos7
  linux_aarch64: cos7
  linux_ppc64le: cos7

That change shouldn't be necessary for the stdlib-migration - if it ran fine before without setting os_version, it should work fine after adding replacing sysroot_{{ ... }} with {{ stdlib("c") }} and setting

c_stdlib_version:  # [linux]
 - "2.17"          # [linux]

in recipe/conda_build_config.yaml. The only reason (to my knowledge) where it'd be necessary to override os_version is if a newer glibc is required to actually execute things (e.g. testing the package, as our build deps generally don't require newer symbols so far).

jakirkham commented 5 months ago

As the CTK packages already require 2.17, it seems reasonable to add os_version in this case

Agree that other cases may not need this