Repository: spack/spack

Issue:
Installation issue: GCC on BigSur aarch64
### Steps to reproduce the issue

Hi,

I got a new macOS Mini (aarch64 with BigSur).

I am trying to bootstrap Spack on it. After installing Xcode, the following compilers are found:
```yaml
compilers:
- compiler:
    spec: apple-clang@12.0.5
    paths:
      cc: /usr/bin/clang
      cxx: /usr/bin/clang++
      f77: null
      fc: null
    flags: {}
    operating_system: bigsur
    target: aarch64
    modules: []
    environment: {}
    extra_rpaths: []
```

So I need a GFortran or similar to get OpenMPI installed for basic HPC developer stacks.

Running `spack install gcc`fails with:
```
==> Installing gcc-11.2.0-nkmjtouovrvhwal6ced5jnivv73vfru5
==> No binary for gcc-11.2.0-nkmjtouovrvhwal6ced5jnivv73vfru5 found: installing from source
==> Fetching https://mirror.spack.io/_source-cache/archive/d0/d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b.tar.xz
==> Applied patch /Users/axel/src/spack/var/spack/repos/builtin/packages/gcc/darwin/gcc-7.1.0-headerpad.patch
==> Ran patch() for gcc
==> gcc: Executing phase: 'autoreconf'
==> gcc: Executing phase: 'configure'
==> gcc: Executing phase: 'build'
==> Error: ProcessError: Command exited with status 2:
    'make' '-j8' 'V=1'

3 errors found in build log:
     3704    checking for F_SETLKW... yes
     3705    checking for O_CLOEXEC... yes
     3706    checking for AF_UNIX... yes
     3707    checking for AF_INET6... yes
     3708    checking if mkdir takes one argument... no
     3709    *** Configuration aarch64-apple-darwin20.6.0 not supported
  >> 3710    make[2]: *** [configure-stage1-gcc] Error 1
  >> 3711    make[1]: *** [stage1-bubble] Error 2
  >> 3712    make: *** [all] Error 2

See build log for details:
  /var/folders/wy/w22w0mkx67711r3m3t98_g7m0000gn/T/axel/spack-stage/spack-stage-gcc-11.2.0-nkmjtouovrvhwal6ced5jnivv73vfru5/spack-build-out.txt
```

### Information on your system

* **Spack:** 0.16.3-4507-32b5669e8d
* **Python:** 3.9.7
* **Platform:** darwin-bigsur-m1
* **Concretizer:** cling

### Additional information

* [spack-build-01-autoreconf-out.txt](https://github.com/spack/spack/files/7247823/spack-build-01-autoreconf-out.txt)
* [spack-build-02-configure-out.txt](https://github.com/spack/spack/files/7247824/spack-build-02-configure-out.txt)
* [spack-build-03-build-out.txt](https://github.com/spack/spack/files/7247825/spack-build-03-build-out.txt)
* [spack-build-env.txt](https://github.com/spack/spack/files/7247826/spack-build-env.txt)
* [spack-build-out.txt](https://github.com/spack/spack/files/7247827/spack-build-out.txt)
* [spack-configure-args.txt](https://github.com/spack/spack/files/7247828/spack-configure-args.txt)


### General information

- [X] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [X] I have run `spack maintainers <name-of-the-package>` and **@mentioned** any maintainers
- [X] I have uploaded the build log and environment files
- [X] I have searched the issues of this repo and believe this is not a duplicate


Discussion:
Possible that GCC does not support aarch64 Darwin yet?
```
*** Configuration aarch64-apple-darwin20.6.0 not supported
```
Looks like
  https://github.com/iains/gcc-darwin-arm64
will earliest land in GCC 12
  https://gcc.gnu.org/pipermail/gcc/2021-September/237340.html

Resolving patch:
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -225,6 +225,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
     # Binutils can't build ld on macOS
     conflicts('+binutils', when='platform=darwin')
 
+    # aarch64/M1 is supported in GCC 12+
+    conflicts('@:11.99', when='target=aarch64: platform=darwin',
+              msg='Only GCC 12 and newer support macOS M1 (aarch64)')
+
     # 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',


Test patch: