Add/remove conflicts for Apple silicon (M1/aarch64) (#28850)
* go: remove broken bootstrapping for macos aarch64 * qt: mark apple silicon conflict * trilinos: remove apple silicon conflict * Apply review suggestions * python: add apple silicon conflict for 2.7
This commit is contained in:
parent
e886a61a6c
commit
f33770553f
@ -35,6 +35,9 @@ class GoBootstrap(Package):
|
|||||||
|
|
||||||
depends_on('git', type=('build', 'link', 'run'))
|
depends_on('git', type=('build', 'link', 'run'))
|
||||||
|
|
||||||
|
conflicts('target=aarch64:', when='platform=darwin',
|
||||||
|
msg='Go bootstrap is too old for Apple Silicon')
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
if self.spec.satisfies('@:1.4.3'):
|
if self.spec.satisfies('@:1.4.3'):
|
||||||
# NOTE: Older versions of Go attempt to download external files that have
|
# NOTE: Older versions of Go attempt to download external files that have
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import platform
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
@ -128,11 +127,6 @@ class Go(Package):
|
|||||||
provides('golang')
|
provides('golang')
|
||||||
|
|
||||||
depends_on('git', type=('build', 'link', 'run'))
|
depends_on('git', type=('build', 'link', 'run'))
|
||||||
# TODO: Make non-c self-hosting compilers feasible without backflips
|
|
||||||
# should be a dep on external go compiler
|
|
||||||
if platform.machine() == 'aarch64':
|
|
||||||
depends_on('gcc languages=go', type='build')
|
|
||||||
else:
|
|
||||||
depends_on('go-bootstrap', type='build')
|
depends_on('go-bootstrap', type='build')
|
||||||
|
|
||||||
# https://github.com/golang/go/issues/17545
|
# https://github.com/golang/go/issues/17545
|
||||||
|
@ -253,6 +253,9 @@ class Python(AutotoolsPackage):
|
|||||||
|
|
||||||
conflicts('%nvhpc')
|
conflicts('%nvhpc')
|
||||||
|
|
||||||
|
conflicts('@:2.7', when='platform=darwin target=aarch64:',
|
||||||
|
msg='Python 2.7 is too old for Apple Silicon')
|
||||||
|
|
||||||
# Used to cache various attributes that are expensive to compute
|
# Used to cache various attributes that are expensive to compute
|
||||||
_config_vars = {}
|
_config_vars = {}
|
||||||
|
|
||||||
|
@ -255,6 +255,8 @@ class Qt(Package):
|
|||||||
else:
|
else:
|
||||||
conflicts('platform=darwin', when='@:4.8.6',
|
conflicts('platform=darwin', when='@:4.8.6',
|
||||||
msg="QT 4 for macOS is only patched for 4.8.7")
|
msg="QT 4 for macOS is only patched for 4.8.7")
|
||||||
|
conflicts('target=aarch64:', when='@:5.15.3',
|
||||||
|
msg='Apple Silicon requires a very new version of qt')
|
||||||
|
|
||||||
use_xcode = True
|
use_xcode = True
|
||||||
|
|
||||||
@ -267,7 +269,7 @@ class Qt(Package):
|
|||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
# URL keeps getting more complicated with every release
|
# URL keeps getting more complicated with every release
|
||||||
url = self.list_url.replace('http:', 'https:')
|
url = self.list_url
|
||||||
|
|
||||||
if version < Version('5.12') and version.up_to(2) != Version('5.9'):
|
if version < Version('5.12') and version.up_to(2) != Version('5.9'):
|
||||||
# As of 28 April 2021:
|
# As of 28 April 2021:
|
||||||
@ -721,6 +723,12 @@ def configure(self, spec, prefix):
|
|||||||
'-no-alsa',
|
'-no-alsa',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
if spec.satisfies('platform=darwin target=aarch64:'):
|
||||||
|
# https://www.qt.io/blog/qt-on-apple-silicon
|
||||||
|
# Not currently working for qt@5
|
||||||
|
config_args.extend(['-device-option',
|
||||||
|
'QMAKE_APPLE_DEVICE_ARCHS=arm64'])
|
||||||
|
|
||||||
configure(*config_args)
|
configure(*config_args)
|
||||||
|
|
||||||
def build(self, spec, prefix):
|
def build(self, spec, prefix):
|
||||||
|
@ -294,9 +294,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
conflicts('+stokhos', when='%xl')
|
conflicts('+stokhos', when='%xl')
|
||||||
conflicts('+stokhos', when='%xl_r')
|
conflicts('+stokhos', when='%xl_r')
|
||||||
|
|
||||||
# Fortran mangling fails on Apple M1 (see spack/spack#25900)
|
|
||||||
conflicts('@:13.0.1 +fortran', when='target=m1')
|
|
||||||
|
|
||||||
# ###################### Dependencies ##########################
|
# ###################### Dependencies ##########################
|
||||||
|
|
||||||
depends_on('adios2', when='+adios2')
|
depends_on('adios2', when='+adios2')
|
||||||
|
Loading…
Reference in New Issue
Block a user