#2692·folly

CI: add macos-26-intel (x86_64) to macOS CI matrix to catch Intel-only regressions

Author: levonkCreated Sep 8, 2026Updated Sep 8, 2026

Summary

Folly's macOS CI (getdeps_mac.yml) only runs on macOS-latest (aarch64 / Apple Silicon). There is no x86_64 macOS CI coverage. This allowed a platform-specific bug (#2690) — an invalid .align 64 assembly directive that only fails on the Apple x86_64 assembler — to ship undetected.

Motivation

The current CI matrix has a gap:

Runner Architecture In CI? Catches x86_64 macOS bugs?
ubuntu-24.04 x86_64 Linux Yes No (GAS accepts .align 64)
macOS-latest aarch64 macOS Yes No (code excluded by #if !defined(__aarch64__))
macos-26-intel x86_64 macOS No Yes

Code paths guarded by #if !defined(__aarch64__) are never compiled on aarch64 runners, so any x86_64-specific assembly, compiler, or linker issue is invisible to the current CI.

macos-26-intel is generally available (GA since February 2026) and supported until ~November 2028. Adding it to the macOS CI matrix would catch x86_64 macOS regressions for the next ~2 years.

Proposed solution

Add macos-26-intel as a second matrix dimension in getdeps_mac.yml:

yaml
strategy:
  matrix:
    os: [macOS-latest, macos-26-intel]
runs-on: ${{ matrix.os }}

The main difference between the two runners is the Homebrew prefix:

  • aarch64: /opt/homebrew
  • x86_64: /usr/local

Use brew --prefix llvm to resolve the LLVM path dynamically instead of hardcoding /opt/homebrew/opt/llvm/bin/clang.

Acceptance criteria

  • getdeps_mac.yml runs on both macOS-latest (aarch64) and macos-26-intel (x86_64)
  • Both matrix jobs build and test folly successfully
  • No hardcoded architecture-specific paths (use brew --prefix or equivalent)

Related

  • #2690 — The .align 64 bug that this CI gap allowed to ship
  • #2691 — PR fixing the .align 64 bug with .balign 64