Revert 19736 because conflicts are avoided by clingo by default (#26721)

This commit is contained in:
Harmen Stoppels 2021-10-18 08:41:35 +02:00 committed by GitHub
parent 9c7e71df34
commit 33ef7d57c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 87 additions and 90 deletions

View file

@ -5,7 +5,6 @@
import spack.variant import spack.variant
from spack.directives import conflicts, depends_on, variant from spack.directives import conflicts, depends_on, variant
from spack.multimethod import when
from spack.package import PackageBase from spack.package import PackageBase
@ -88,101 +87,101 @@ def cuda_flags(arch_list):
# Linux x86_64 compiler conflicts from here: # Linux x86_64 compiler conflicts from here:
# https://gist.github.com/ax3l/9489132 # https://gist.github.com/ax3l/9489132
with when('^cuda~allow-unsupported-compilers'):
# GCC
# According to
# https://github.com/spack/spack/pull/25054#issuecomment-886531664
# these conflicts are valid independently from the architecture
# minimum supported versions # GCC
conflicts('%gcc@:4', when='+cuda ^cuda@11.0:') # According to
conflicts('%gcc@:5', when='+cuda ^cuda@11.4:') # https://github.com/spack/spack/pull/25054#issuecomment-886531664
# these conflicts are valid independently from the architecture
# maximum supported version # minimum supported versions
# NOTE: conflicts('%gcc@:4', when='+cuda ^cuda@11.0:')
# in order to not constrain future cuda version to old gcc versions, conflicts('%gcc@:5', when='+cuda ^cuda@11.4:')
# it has been decided to use an upper bound for the latest version.
# This implies that the last one in the list has to be updated at
# each release of a new cuda minor version.
conflicts('%gcc@10:', when='+cuda ^cuda@:11.0')
conflicts('%gcc@11:', when='+cuda ^cuda@:11.4')
# https://gist.github.com/ax3l/9489132#gistcomment-3860114 # maximum supported version
conflicts('%gcc@10', when='+cuda ^cuda@:11.4.0') # NOTE:
conflicts('%gcc@5:', when='+cuda ^cuda@:7.5 target=x86_64:') # in order to not constrain future cuda version to old gcc versions,
conflicts('%gcc@6:', when='+cuda ^cuda@:8 target=x86_64:') # it has been decided to use an upper bound for the latest version.
conflicts('%gcc@7:', when='+cuda ^cuda@:9.1 target=x86_64:') # This implies that the last one in the list has to be updated at
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=x86_64:') # each release of a new cuda minor version.
conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89 target=x86_64:') conflicts('%gcc@10:', when='+cuda ^cuda@:11.0')
conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27 target=x86_64:') conflicts('%gcc@11:', when='+cuda ^cuda@:11.4')
conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5 target=x86_64:')
conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8 target=x86_64:')
conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1 target=x86_64:')
conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10 target=x86_64:')
conflicts('%pgi@:17,20:', when='+cuda ^cuda@10.1.105:10.2.89 target=x86_64:')
conflicts('%pgi@:17,21:', when='+cuda ^cuda@11.0.2:11.1.0 target=x86_64:')
conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5 target=x86_64:')
conflicts('%clang@:3.7,4:', when='+cuda ^cuda@8.0:9.0 target=x86_64:')
conflicts('%clang@:3.7,4.1:', when='+cuda ^cuda@9.1 target=x86_64:')
conflicts('%clang@:3.7,5.1:', when='+cuda ^cuda@9.2 target=x86_64:')
conflicts('%clang@:3.7,6.1:', when='+cuda ^cuda@10.0.130 target=x86_64:')
conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105 target=x86_64:')
conflicts('%clang@:3.7,8.1:',
when='+cuda ^cuda@10.1.105:10.1.243 target=x86_64:')
conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89 target=x86_64:')
conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=x86_64:')
conflicts('%clang@10:', when='+cuda ^cuda@:11.0.3 target=x86_64:')
conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=x86_64:')
# x86_64 vs. ppc64le differ according to NVidia docs # https://gist.github.com/ax3l/9489132#gistcomment-3860114
# Linux ppc64le compiler conflicts from Table from the docs below: conflicts('%gcc@10', when='+cuda ^cuda@:11.4.0')
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html conflicts('%gcc@5:', when='+cuda ^cuda@:7.5 target=x86_64:')
# https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html conflicts('%gcc@6:', when='+cuda ^cuda@:8 target=x86_64:')
# https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html conflicts('%gcc@7:', when='+cuda ^cuda@:9.1 target=x86_64:')
# https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=x86_64:')
# https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89 target=x86_64:')
conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27 target=x86_64:')
conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5 target=x86_64:')
conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8 target=x86_64:')
conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1 target=x86_64:')
conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10 target=x86_64:')
conflicts('%pgi@:17,20:', when='+cuda ^cuda@10.1.105:10.2.89 target=x86_64:')
conflicts('%pgi@:17,21:', when='+cuda ^cuda@11.0.2:11.1.0 target=x86_64:')
conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5 target=x86_64:')
conflicts('%clang@:3.7,4:', when='+cuda ^cuda@8.0:9.0 target=x86_64:')
conflicts('%clang@:3.7,4.1:', when='+cuda ^cuda@9.1 target=x86_64:')
conflicts('%clang@:3.7,5.1:', when='+cuda ^cuda@9.2 target=x86_64:')
conflicts('%clang@:3.7,6.1:', when='+cuda ^cuda@10.0.130 target=x86_64:')
conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105 target=x86_64:')
conflicts('%clang@:3.7,8.1:',
when='+cuda ^cuda@10.1.105:10.1.243 target=x86_64:')
conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89 target=x86_64:')
conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=x86_64:')
conflicts('%clang@10:', when='+cuda ^cuda@:11.0.3 target=x86_64:')
conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=x86_64:')
# information prior to CUDA 9 difficult to find # x86_64 vs. ppc64le differ according to NVidia docs
conflicts('%gcc@6:', when='+cuda ^cuda@:9 target=ppc64le:') # Linux ppc64le compiler conflicts from Table from the docs below:
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=ppc64le:') # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243 target=ppc64le:') # https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html
# officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le # https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html
conflicts('%pgi', when='+cuda ^cuda@:8 target=ppc64le:') # https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html
conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185 target=ppc64le:') # https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html
conflicts('%pgi@:17', when='+cuda ^cuda@:10 target=ppc64le:')
conflicts('%clang@4:', when='+cuda ^cuda@:9.0.176 target=ppc64le:')
conflicts('%clang@5:', when='+cuda ^cuda@:9.1 target=ppc64le:')
conflicts('%clang@6:', when='+cuda ^cuda@:9.2 target=ppc64le:')
conflicts('%clang@7:', when='+cuda ^cuda@10.0.130 target=ppc64le:')
conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105 target=ppc64le:')
conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89 target=ppc64le:')
conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=ppc64le:')
conflicts('%clang@10:', when='+cuda ^cuda@:11.0.2 target=ppc64le:')
conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:')
# Intel is mostly relevant for x86_64 Linux, even though it also # information prior to CUDA 9 difficult to find
# exists for Mac OS X. No information prior to CUDA 3.2 or Intel 11.1 conflicts('%gcc@6:', when='+cuda ^cuda@:9 target=ppc64le:')
conflicts('%intel@:11.0', when='+cuda ^cuda@:3.1') conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=ppc64le:')
conflicts('%intel@:12.0', when='+cuda ^cuda@5.5:') conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243 target=ppc64le:')
conflicts('%intel@:13.0', when='+cuda ^cuda@6.0:') # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le
conflicts('%intel@:13.2', when='+cuda ^cuda@6.5:') conflicts('%pgi', when='+cuda ^cuda@:8 target=ppc64le:')
conflicts('%intel@:14.9', when='+cuda ^cuda@7:') conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185 target=ppc64le:')
# Intel 15.x is compatible with CUDA 7 thru current CUDA conflicts('%pgi@:17', when='+cuda ^cuda@:10 target=ppc64le:')
conflicts('%intel@16.0:', when='+cuda ^cuda@:8.0.43') conflicts('%clang@4:', when='+cuda ^cuda@:9.0.176 target=ppc64le:')
conflicts('%intel@17.0:', when='+cuda ^cuda@:8.0.60') conflicts('%clang@5:', when='+cuda ^cuda@:9.1 target=ppc64le:')
conflicts('%intel@18.0:', when='+cuda ^cuda@:9.9') conflicts('%clang@6:', when='+cuda ^cuda@:9.2 target=ppc64le:')
conflicts('%intel@19.0:', when='+cuda ^cuda@:10.0') conflicts('%clang@7:', when='+cuda ^cuda@10.0.130 target=ppc64le:')
conflicts('%intel@19.1:', when='+cuda ^cuda@:10.1') conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105 target=ppc64le:')
conflicts('%intel@19.2:', when='+cuda ^cuda@:11.1.0') conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89 target=ppc64le:')
conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=ppc64le:')
conflicts('%clang@10:', when='+cuda ^cuda@:11.0.2 target=ppc64le:')
conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:')
# XL is mostly relevant for ppc64le Linux # Intel is mostly relevant for x86_64 Linux, even though it also
conflicts('%xl@:12,14:', when='+cuda ^cuda@:9.1') # exists for Mac OS X. No information prior to CUDA 3.2 or Intel 11.1
conflicts('%xl@:12,14:15,17:', when='+cuda ^cuda@9.2') conflicts('%intel@:11.0', when='+cuda ^cuda@:3.1')
conflicts('%xl@:12,17:', when='+cuda ^cuda@:11.1.0') conflicts('%intel@:12.0', when='+cuda ^cuda@5.5:')
conflicts('%intel@:13.0', when='+cuda ^cuda@6.0:')
conflicts('%intel@:13.2', when='+cuda ^cuda@6.5:')
conflicts('%intel@:14.9', when='+cuda ^cuda@7:')
# Intel 15.x is compatible with CUDA 7 thru current CUDA
conflicts('%intel@16.0:', when='+cuda ^cuda@:8.0.43')
conflicts('%intel@17.0:', when='+cuda ^cuda@:8.0.60')
conflicts('%intel@18.0:', when='+cuda ^cuda@:9.9')
conflicts('%intel@19.0:', when='+cuda ^cuda@:10.0')
conflicts('%intel@19.1:', when='+cuda ^cuda@:10.1')
conflicts('%intel@19.2:', when='+cuda ^cuda@:11.1.0')
# Darwin. # XL is mostly relevant for ppc64le Linux
# TODO: add missing conflicts for %apple-clang cuda@:10 conflicts('%xl@:12,14:', when='+cuda ^cuda@:9.1')
conflicts('platform=darwin', when='+cuda ^cuda@11.0.2: ') conflicts('%xl@:12,14:15,17:', when='+cuda ^cuda@9.2')
conflicts('%xl@:12,17:', when='+cuda ^cuda@:11.1.0')
# Darwin.
# TODO: add missing conflicts for %apple-clang cuda@:10
conflicts('platform=darwin', when='+cuda ^cuda@11.0.2: ')
# Make sure cuda_arch can not be used without +cuda # Make sure cuda_arch can not be used without +cuda
for value in cuda_arch_values: for value in cuda_arch_values:

View file

@ -122,8 +122,6 @@ class Cuda(Package):
conflicts('arch=darwin-mojave-x86_64') conflicts('arch=darwin-mojave-x86_64')
variant('dev', default=False, description='Enable development dependencies, i.e to use cuda-gdb') variant('dev', default=False, description='Enable development dependencies, i.e to use cuda-gdb')
variant('allow-unsupported-compilers', default=False,
description='Allow unsupported host compiler and CUDA version combinations')
depends_on('libxml2', when='@10.1.243:') depends_on('libxml2', when='@10.1.243:')
# cuda-gdb needs libncurses.so.5 # cuda-gdb needs libncurses.so.5