[DO NOT MERGE] chore: alternative macos bootstrap#19379
Closed
Conversation
f42f308 to
6b35575
Compare
- Add CoreFoundation framework linking for bb/bb-avm on Apple - Re-sign bb/bb-avm binaries post-build to fix adhoc signature issues - Increase gtest_discover_tests timeout on macOS for Gatekeeper checks - Fix bash compatibility (use bash arrays, OSTYPE detection) - Various shell script portability fixes for macOS Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
a5e74e4 to
de6a6af
Compare
Collaborator
TypeScript validationAction required: Please fix the docs examples or update them to match the current API. cc @AztecProtocol/devrel |
Collaborator
Flakey Tests🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
AztecBot
pushed a commit
that referenced
this pull request
Feb 26, 2026
Tweaks and builds upon gregos #19379. You can install dependencies prior to bootstrapping with. ``` ./bootstrap.sh install_deps ``` You can then: ``` ./bootstrap.sh gentle ``` To trigger a makefile build with 1 job at a time, and cmake will target nproc parallelism -2, and a MEMSUSPEND at 1g. Tested on fresh macos 15/26 install + brew. Didn't build on macos 14. Looks hairy, not important.
AztecBot
pushed a commit
that referenced
this pull request
Feb 26, 2026
Tweaks and builds upon gregos #19379. You can install dependencies prior to bootstrapping with. ``` ./bootstrap.sh install_deps ``` You can then: ``` ./bootstrap.sh gentle ``` To trigger a makefile build with 1 job at a time, and cmake will target nproc parallelism -2, and a MEMSUSPEND at 1g. Tested on fresh macos 15/26 install + brew. Didn't build on macos 14. Looks hairy, not important.
charlielye
added a commit
that referenced
this pull request
Mar 5, 2026
Tweaks and builds upon gregos #19379. You can install dependencies prior to bootstrapping with. ``` ./bootstrap.sh install_deps ``` You can then: ``` ./bootstrap.sh gentle ``` To trigger a makefile build with 1 job at a time, and cmake will target nproc parallelism -2, and a MEMSUSPEND at 1g. Tested on fresh macos 15/26 install + brew. Didn't build on macos 14. Looks hairy, not important.
charlielye
added a commit
that referenced
this pull request
Mar 5, 2026
Tweaks and builds upon gregos #19379. You can install dependencies prior to bootstrapping with. ``` ./bootstrap.sh install_deps ``` You can then: ``` ./bootstrap.sh gentle ``` To trigger a makefile build with 1 job at a time, and cmake will target nproc parallelism -2, and a MEMSUSPEND at 1g. Tested on fresh macos 15/26 install + brew. Didn't build on macos 14. Looks hairy, not important. --------- Co-authored-by: Jonathan Hao <jonathan@aztec-labs.com>
Contributor
|
Solved in another pr |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on: #19357, but attempting to minimize conditionals for MacOS. It essentially relies on overriding the FreeBSD bundled utils with GNU's, and correctly configuring the path to have a "seamless" experience.
Also had to add a few more XDG_CACHE_HOME fixes due to GNU parallel setting it wrongly.
Finally, fixed the noir-projects compilation issue that has haunted me forever (not only on Mac, but on my Linux desktop too) due to JSON corruption when processing noir contracts. This particular fix was heavily influenced by Claude, so reviewer beware!
1. Software Installed
Homebrew Packages
brew install bash cmake ninja llvm@20 doxygen coreutils grep gnu-sedClang 20 Symlinks
Created symlinks in ~/bin/ pointing to Homebrew's LLVM 20:
Zig Compiler (0.15.1)
Rust Toolchain
Foundry
Node.js (via nvm)
Node packages
2. Code Changes
2.1 ci3/arch - Architecture Detection Fix
Problem: The script returned "unknown architecture arm64" on macOS.
Change:
2.2 barretenberg/cpp/src/barretenberg/bb/CMakeLists.txt - Code Signing
Problem: The bb binary was killed by macOS (SIGKILL) due to invalid code signature when linked with libavm_transpiler.a.
Change: Added post-build signing step for both bb and bb-avm targets:
2.3 barretenberg/cpp/bootstrap.sh - Version Injection Re-signing
Problem: The inject_version function modifies the binary with dd after building, which invalidates the code signature.
Change: Added re-signing after version injection in the inject_version function:
2.4
Change the shebang in all our scripts to use
#!/usr/bin/env bash. This way MacOS uses the homebrew installed bash version with globstar support.3. Environment Configuration
Add the following to
~/.zshrc(assuming Mac's default shell):