Mark GCC7 and newer as conflicting with rhel6 without binutils (#14706)

When building gcc7 and gcc8 on RHEL6 with Spack and installing it as
a spack-available compiler, OpenBLAS will fail to compile because GCC
generates newer instructions than rhel6's `as` assembler knows about
(e.g. "vpermpd").

Building gcc8 with binutils succeeds, and it generates a GCC that can
then successfully build OpenBLAS. This is also expected to work for
gcc7 on RHEL6.
This commit is contained in:
Seth R. Johnson 2020-02-27 21:56:48 -05:00 committed by GitHub
parent 17fbf78593
commit 09a1f09fd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -193,6 +193,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# Binutils can't build ld on macOS # Binutils can't build ld on macOS
conflicts('+binutils', when='platform=darwin') conflicts('+binutils', when='platform=darwin')
# Newer binutils than RHEL's is required to run `as` on some instructions
# generated by new GCC (see https://github.com/spack/spack/issues/12235)
conflicts('~binutils', when='@7: os=rhel6',
msg='New GCC cannot use system assembler on RHEL6')
if sys.platform == 'darwin': if sys.platform == 'darwin':
# Fix parallel build on APFS filesystem # Fix parallel build on APFS filesystem
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797