macOS 11 Big Sur compatibility on Apple Silicon

9 min read Original article β†—
ack πŸ₯‡ adns πŸ₯‡ adwaita-icon-theme aircrack-ng ansible ant Re-check when openjdk works aom πŸ₯‡ Patched for now apache-spark apr-util πŸ₯‡ apr πŸ₯‡ argon2 πŸ₯‡ arpack asciidoc πŸ₯‡ asdf aspell πŸ₯‡ atk augeas πŸ₯‡ autoconf πŸ₯‡ autojump automake πŸ₯‡ aws-elasticbeanstalk πŸ₯‡ aws-iam-authenticator Re-check when go works awscli ⚠️ Build fails with a distutils.errors.DistutilsClassError, see logs.
Possibly related to setuptools: pypa/setuptools#2231 azure-cli πŸ₯‡ bash-completion πŸ₯‡ bash ⚠️ make says, redefinition of 'sys_siglist' with a different type: 'char *[32]' vs 'const char *const [32]'. Logs bat Re-check when rust works bazel Re-check when openjdk@11 works bdw-gc berkeley-db πŸ₯‡ binutils πŸ₯‡ bison πŸ₯‡ blueutil πŸ₯‡ boost πŸ₯‡ Patched for now brotli πŸ₯‡ c-ares πŸ₯‡ cabal-install Re-check when ghc works cairo πŸ₯‡ cargo-c Builds in rust prereleases; will work when a stable Rust with Apple Silicon support ships carthage πŸ₯‡ Patched for now cask Re-check when emacs works ccache πŸ₯‡

Used to work, no longer builds. Logs

Says:

invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
ceres-solver certbot πŸ₯‡ cfitsio πŸ₯‡ cgal Re-check when qt works circleci Re-check when go works clang-format πŸ₯‡ cloc πŸ₯‡ cmake πŸ₯‡ cocoapods ⚠️ Error Unrecognized Mach-O load command: 0x80000034 in ffi_c.bundle colordiff πŸ₯‡ composer πŸ₯‡ consul Re-check when go works coreutils πŸ₯‡ cscope πŸ₯‡ ctags πŸ₯‡ cunit πŸ₯‡ curl πŸ₯‡ curl-openssl πŸ₯‡ cython πŸ₯‡ dav1d πŸ₯‡ daemontools πŸ₯‡ deno Re-check when llvm and rust work dep Re-check when go works dialog πŸ₯‡ Patched for now direnv Re-check when go works dnsmasq πŸ₯‡ docbook-xsl πŸ₯‡ docbook πŸ₯‡ docker Re-check when go works docker-completion πŸ₯‡ docker-machine Re-check when go works doctl Re-check when go works dos2unix πŸ₯‡ doxygen πŸ₯‡ duti πŸ₯‡ Patched for now. PR also submitted upstream. eigen πŸ₯‡ elasticsearch Re-check when gradle and openjdk work elixir Re-check when erlang works emacs Re-check when gnutls works epsilon πŸ₯‡ epstool Re-check when ghostscript works erlang ⚠️ Either we need to backport erlang/otp#2700 or wait for upstream release 23.1.
Same with erlang/otp#2687. exiftool πŸ₯‡ expat πŸ₯‡ fastlane πŸ₯‡ fd Re-check when rust works ffmpeg Re-check when gnutls, libbluray and several other dependencies work fftw Re-check when gcc and open-mpi work fig2dev Re-check when ghostscript and netpbm work figlet πŸ₯‡ findutils πŸ₯‡ fish πŸ₯‡ flac πŸ₯‡ fltk fontconfig πŸ₯‡ Patched for now fontforge freetds πŸ₯‡ freetype πŸ₯‡ freexl ⚠️ Build error: implicitly declaring library function 'printf' Logs frei0r πŸ₯‡ fribidi πŸ₯‡ fswatch fzf gawk πŸ₯‡ gcal πŸ₯‡ gcc ⚠️

@iains has some work in progress on https://github.com/iains/gcc-darwin-arm64 to port the GCC backend to Apple Silicon.

Mind that Apple Silicon support is going to require GCC 11 even in the best case. The first stable release of GCC 11 may come out in mid-2021 or later. If you absolutely require a stable GCC, or any formula that depends on it, you may want to hold off your Apple Silicon Mac purchase decisions until it’s clear if or when GCC will support it.

For limited testing on Apple Silicon, Homebrew may consider shipping an unstable GCC 11 but that’s yet to be decided.

gdal Re-check when expat, freexl, geos, hdf5 and a dozen of other dependencies work gdbm πŸ₯‡ gdb gdk-pixbuf gd πŸ₯‡ geckodriver geos ⚠️ Squeals about duplicate symbol BasicSegmentString in inlines.o vs. libnoding.a. Logs gettext πŸ₯‡ gflags ghc ⚠️ Re-check when Homebrew/homebrew-core#57892 is merged ghc@8.8 ghostscript ⚠️ Re-check when Homebrew/homebrew-core#58493 is merged giflib πŸ₯‡ git ⚠️ Lots of Undefined symbols for architecture arm64. Possibly related to libintl and pcre2. Logs git-flow git-gui git-lfs gitlab-runner gl2ps glew glib-networking glib πŸ₯‡ glog glpk gmp πŸ₯‡ gnu-getopt πŸ₯‡ gnu-sed πŸ₯‡ gnu-tar πŸ₯‡ gnupg Re-check when gnutls works gnuplot gnutls Re-check pending gobject-introspection πŸ₯‡ go ⚠️

Bootstrapped go (x86_64) is killed at build time. Logs

Re-check when upstream 1.16 is released

gpatch πŸ₯‡ gpgme gradle Re-check when openjdk works grafana graphicsmagick graphite2 πŸ₯‡ graphviz Re-check when gts works grep πŸ₯‡ groonga πŸ₯‡ groovy grpc gsettings-desktop-schemas gsl gst-plugins-bad gstreamer gtk+3 gtk+ gtk-mac-integration gts Re-check when netpbm works guile πŸ₯‡ Fixed harfbuzz πŸ₯‡ hdf5 Re-check when gcc works helm Re-check when go works helm@2 Re-check when glide and go work hicolor-icon-theme highlight πŸ₯‡ htop πŸ₯‡ httpd πŸ₯‡ httpie πŸ₯‡ hub Re-check when go works hugo Re-check when go works hwloc πŸ₯‡ icu4c πŸ₯‡ ideviceinstaller πŸ₯‡ ilmbase πŸ₯‡ imagemagick@6 πŸ₯‡ imagemagick Re-check when ghostscript, libheif and libomp work inetutils πŸ₯‡ ios-deploy πŸ₯‡ ios-webkit-debug-proxy πŸ₯‡ iperf3 πŸ₯‡ ipython πŸ₯‡ isl πŸ₯‡ itstool πŸ₯‡ jansson πŸ₯‡ jasper πŸ₯‡ jemalloc πŸ₯‡ jenkins Re-check when openjdk@11 works jenkins-lts Re-check when openjdk@11 works jenv πŸ₯‡ jmeter jpeg πŸ₯‡ jq πŸ₯‡ json-c πŸ₯‡ jupyterlab Re-check when pandoc works kafka Re-check when openjdk (or some other form of Java) and zookeeper work kops kotlin Re-check when openjdk (or some other form of Java) works krb5 πŸ₯‡ Patched for now. Patch submitted to upstream issue tracker. kubectx kubernetes-cli Re-check when go works kustomize lame πŸ₯‡ ldns leptonica πŸ₯‡ libarchive libassuan πŸ₯‡ libass πŸ₯‡ libb2 libbluray Re-check when openjdk (or some other form of Java) works libcbor libcerf libcroco libdap libde265 ⚠️ ARM assembly/macros/directives fail at build time. Re-check needed with the correct triple. Logs libepoxy libevent πŸ₯‡ libev πŸ₯‡ libexif libffi πŸ₯‡ Patched for now, awaiting upstream patches: libffi/libffi#565 libfido2 libgcrypt πŸ₯‡ libgeotiff libgit2 πŸ₯‡ libgpg-error πŸ₯‡ libheif Re-check when libde265 works libiconv πŸ₯‡ libidn2 πŸ₯‡ libidn πŸ₯‡ libilbc πŸ₯‡ libimobiledevice πŸ₯‡ libksba πŸ₯‡ liblqr πŸ₯‡ libmagic πŸ₯‡ libmaxminddb πŸ₯‡ libmetalink πŸ₯‡ libmpc πŸ₯‡ libnet libogg πŸ₯‡ libomp ⚠️ make install fails while trying to make sense of x86_64 assembly for Linux. Logs libp11 libplist πŸ₯‡ libpng πŸ₯‡ libpq πŸ₯‡ libpsl librdkafka libressl librsvg libsamplerate πŸ₯‡ libscrypt πŸ₯‡ libsmi πŸ₯‡ libsndfile πŸ₯‡ libsodium πŸ₯‡ libsoup libsoxr πŸ₯‡ libspatialite libspiro libssh πŸ₯‡ libssh2 πŸ₯‡ libtasn1 πŸ₯‡ libtermkey libtiff πŸ₯‡ libtool πŸ₯‡ libuninameslist libunistring πŸ₯‡ libusb-compat libusbmuxd πŸ₯‡ libusb πŸ₯‡ libuv πŸ₯‡ libvidstab πŸ₯‡ libvirt libvorbis πŸ₯‡ libvpx πŸ₯‡ libvterm libwebsockets libxml2 πŸ₯‡ libxslt libyaml πŸ₯‡ libzip πŸ₯‡ little-cms2 πŸ₯‡ llvm πŸ₯‰ Builds if OpenMP is disabled. Stable builds don't work, but HEAD does and 11.0.0 will be compatible. lua πŸ₯‡ lua@5.1 πŸ₯‡ luajit ⚠️ Fails with 2.0.5 but should work when upstream 2.1.0 is released. luarocks πŸ₯‡ lynx πŸ₯‡ Patched for now lz4 πŸ₯‡ lzo πŸ₯‡ macvim mad ⚠️ Configure error: /bin/ksh ./config.sub -apple-darwin20.0.0 failed Logs make mariadb Re-check when groonga works mas πŸ₯‡ Fixed maven Re-check when openjdk works mbedtls mcrypt mecab πŸ₯‡ mecab-ipadic πŸ₯‡ memcached mercurial πŸ₯‡ meson πŸ₯‡ metis midnight-commander minikube minizip πŸ₯‡ mitmproxy mkcert mkvtoolnix mono mosh mpfr πŸ₯‡ mpv msgpack πŸ₯‡ mtr mujs mutt mysql ⚠️ The build proceeds to completion but mysqld_safe fails with syntax error near unexpected token 'then' in line 831. mysql@5.6 ⚠️ make errors out after building the target event_extra. Logs mysql@5.7 ⚠️ Builds but mysqld_safe fails: syntax error near unexpected token 'then' in line 804. mysql-client πŸ₯‡ nano πŸ₯‡ nasm πŸ₯‡ ncdu ncurses πŸ₯‡ neofetch neovim ⚠️ Upstream PR in progress: neovim/neovim#12624 netcdf netpbm Re-check when subversion works nettle πŸ₯‡ Patched for now nghttp2 πŸ₯‡ nginx πŸ₯‡ ninja πŸ₯‡ nmap πŸ₯‡ Fixed node πŸ₯‡

Patched for now.

See also nodejs/node#34043 and nodejs/TSC#886 for upstream progress.

node@10 node@12 πŸ₯‡ node-build nodebrew npth πŸ₯‡ nspr πŸ₯‡ nss ⚠️ Build fails while loading softokn3. Logs ntfs-3g numpy nvm ocaml Upstream PR merged, see ocaml/ocaml#9699.
4.10 backport in progress, see ocaml/ocaml#10026.
4.10 formula-patches PR: Homebrew/formula-patches#318 octave oniguruma πŸ₯‡ opam open-mpi Re-check when gcc works openblas openconnect opencore-amr opencv openexr πŸ₯‡ openjdk ⚠️ Needs to be ported (logs). See also related JEP draft: MacOS/AArch64 Port openjdk@11 openjpeg πŸ₯‡ openldap πŸ₯‡ openssh openssl aka openssl@1.1 πŸ₯‡

Patched for now.

Works well enough until the upstream fix is released.

openvpn πŸ₯‡ opusfile πŸ₯‡ opus πŸ₯‡ orc p11-kit πŸ₯‡ p7zip πŸ₯‡ packer Re-check when go works pandoc Re-check when cabal-install and ghc work pango πŸ₯‡ Patched for now parallel πŸ₯‡ pcre2 πŸ₯‡ Note: JIT disabled for now. See Homebrew/homebrew-core#57419 pcre πŸ₯‡ Note: JIT disabled for now. See Homebrew/homebrew-core#57410 perl πŸ₯‡ Patched for now php@7.2 ⚠️ Seems more difficult to fix than php. Might want to triage as 🚫. php@7.3 ⚠️ Seems more difficult to fix than php. Might want to triage as 🚫. php πŸ₯‡ Fixed pinentry πŸ₯‡ pipenv πŸ₯‡ pixman πŸ₯‡ pkcs11-helper πŸ₯‡ pkg-config πŸ₯‡ plantuml poppler Re-check when nss and qt work popt πŸ₯‡ portaudio πŸ₯‡ postgis Re-check when gdal, geos, gpp and sfcgal work postgresql πŸ₯‡ postgresql@9.6 postgresql@10 postgresql@11 pre-commit πŸ₯‡ proj πŸ₯‡ protobuf πŸ₯‡ protobuf-c πŸ₯‡ pstoedit pstree πŸ₯‡ pulumi putty πŸ₯‡ py3cairo pyenv ⚠️ Bash crashes due to code signature error when trying to load pyenv-realpath.dylib as a builtin. Log pyenv-virtualenv pygobject3 pyqt python@3.7 ⚠️ Patch python/cpython#21249 fails. Re-check when upstream arm64 support stabilises. python@3.8 πŸ₯‰

Patched for now but brew test fails.

Re-check after Homebrew/homebrew-core#64872 is merged.

python aka python@3.9 πŸ₯‰

brew test currently fails.

Re-check after Homebrew/homebrew-core#64869 is merged.

qemu qhull qrupdate qt ⚠️ Fails running find_sdk.py late in the build. (logs, full make log) rabbitmq Re-check when erlang works rav1e Re-check when cargo-c and rust work rbenv rclone readline πŸ₯‡ redis πŸ₯‡ Patched for now rename ripgrep rsync rtmpdump πŸ₯‡ rubberband ruby-build ruby@2.5 ruby πŸ₯‡ rust ⚠️ Upstream tracking issue: rust-lang/rust#73908 rustup-init s-lang s3cmd sbcl sbt scala scrcpy screenresolution πŸ₯‡ sdl2 sdl πŸ₯‡ sfcgal Re-check when cgal works shared-mime-info πŸ₯‡ shellcheck Re-check when cabal-install, ghc@8.8 and pandoc work sip skaffold snappy πŸ₯‡ socat source-highlight πŸ₯‡ sox Re-check when mad works spandsp πŸ₯‡ speedtest-cli speex πŸ₯‡ sphinx-doc πŸ₯‡ sqlite πŸ₯‡ sqlmap srt ⚠️ Fails with 'GLES/gl.h' file not found during make install. Logs ssh-copy-id sshfs sshpass sshuttle starship stoken subversion πŸ₯‰ Works but brew test fails. Logs. suite-sparse sundials swagger-codegen swiftformat swiftlint πŸ₯‡ swig πŸ₯‡ szip πŸ₯‡ tbb πŸ₯‡ Patched for now tcl-tk telnetd πŸ₯‡ telnet πŸ₯‡ terraform Re-check when go works terragrunt tesseract πŸ₯‡ texinfo πŸ₯‡ tfenv tflint thefuck πŸ₯‡ theora πŸ₯‡ the_silver_searcher tidy-html5 πŸ₯‡ tig tmux πŸ₯‡ tomcat tor πŸ₯‡ tree πŸ₯‡ uchardet unar πŸ₯‡ unbound πŸ₯‡ unibilium unixodbc πŸ₯‡ unrar πŸ₯‡ utf8proc πŸ₯‡ v8 vala Re-check when graphviz works valgrind vapoursynth vault vde vim πŸ₯‡ vips watchman watch webp πŸ₯‡ wget πŸ₯‡ wimlib winetricks wireshark wxmac x264 πŸ₯‡ Patched for now x265 πŸ₯‡ xcodegen ⚠️ Not compatible with Xcode 12.
Re-check with upstream version > 2.17.0 once released. xerces-c xmlto πŸ₯‡ xvid πŸ₯‡ xxhash πŸ₯‡ xz πŸ₯‡ yara πŸ₯‡ yarn πŸ₯‡ yasm πŸ₯‡ Note: doesn’t support ARM targets youtube-dl πŸ₯‡ yq Re-check when go works zeromq πŸ₯‡ zimg πŸ₯‡ zlib πŸ₯‡ zookeeper Re-check when ant works zsh πŸ₯‡ zsh-autosuggestions πŸ₯‡ zsh-completions πŸ₯‡ zsh-syntax-highlighting πŸ₯‡ zstd πŸ₯‡