fix: cross-compile avm-transpiler for arm64-linux in release builds#20814
Merged
Conversation
alexghr
approved these changes
Feb 24, 2026
358457c to
1ad0886
Compare
## Summary - `zig-arm64-linux` CMake preset was missing `AVM_TRANSPILER_LIB` - `avm-transpiler/bootstrap.sh` had no `arm64-linux` case in `build_cross` This adds `arm64-linux` cross-compilation to avm-transpiler (triggered on release via `semver check`) and wires up the `zig-arm64-linux` preset to the resulting library.
1ad0886 to
cd3a3b2
Compare
Collaborator
Flakey Tests🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
Collaborator
Author
|
/claudebox backport to latest devnet branch |
Collaborator
|
ClaudeBox: backport to latest devnet branch ... workflow run |
Collaborator
Author
|
/claudebox new-session backport to v4 branch |
Collaborator
|
ClaudeBox: new-session backport to v4 branch ... workflow run |
AztecBot
added a commit
that referenced
this pull request
Feb 26, 2026
## Summary - The `bb-cpp-cross-arm64-linux` Makefile target depended on `avm-transpiler-native` instead of a cross-compiled arm64-linux avm-transpiler - This caused `ninja` to fail because `libavm_transpiler.a` was missing at the `aarch64-unknown-linux-gnu` target path - Adds the missing `avm-transpiler-cross-arm64-linux` target and fixes the dependency so the correct cross-compiled library is built before the barretenberg ARM64 Linux link step Follows up on #20814 which added avm-transpiler arm64-linux support to `bootstrap.sh` and `CMakePresets.json`, but the Makefile (introduced later) was never wired up. [ClaudeBox log](http://ci.aztec-labs.com/368dc57b68117599-1)
AztecBot
added a commit
that referenced
this pull request
Feb 26, 2026
## Summary - The `bb-cpp-cross-arm64-linux` Makefile target depended on `avm-transpiler-native` instead of a cross-compiled arm64-linux avm-transpiler - This caused `ninja` to fail because `libavm_transpiler.a` was missing at the `aarch64-unknown-linux-gnu` target path - Adds the missing `avm-transpiler-cross-arm64-linux` target and fixes the dependency so the correct cross-compiled library is built before the barretenberg ARM64 Linux link step Follows up on #20814 which added avm-transpiler arm64-linux support to `bootstrap.sh` and `CMakePresets.json`, but the Makefile (introduced later) was never wired up. [ClaudeBox log](http://ci.aztec-labs.com/368dc57b68117599-1)
Merged
AztecBot
added a commit
that referenced
this pull request
Feb 27, 2026
Summary Makefile: The bb-cpp-cross-arm64-linux target depended on avm-transpiler-native instead of a cross-compiled arm64-linux avm-transpiler, so the cross-compiled libavm_transpiler.a was never built. Adds the missing avm-transpiler-cross-arm64-linux target and fixes the dependency. barretenberg-rs release: The release function would error out if generated Rust bindings (api.rs, generated_types.rs) weren't present, even though it's trivial to generate them. Now generates them on-the-fly instead of failing. Follows up on #20814 which added avm-transpiler arm64-linux support. Co-authored-by: ludamad <adam.domurad@gmail.com>
AztecBot
added a commit
that referenced
this pull request
Feb 27, 2026
Summary Makefile: The bb-cpp-cross-arm64-linux target depended on avm-transpiler-native instead of a cross-compiled arm64-linux avm-transpiler, so the cross-compiled libavm_transpiler.a was never built. Adds the missing avm-transpiler-cross-arm64-linux target and fixes the dependency. barretenberg-rs release: The release function would error out if generated Rust bindings (api.rs, generated_types.rs) weren't present, even though it's trivial to generate them. Now generates them on-the-fly instead of failing. Follows up on #20814 which added avm-transpiler arm64-linux support.
github-merge-queue Bot
pushed a commit
that referenced
this pull request
Feb 27, 2026
Summary Makefile: The bb-cpp-cross-arm64-linux target depended on avm-transpiler-native instead of a cross-compiled arm64-linux avm-transpiler, so the cross-compiled libavm_transpiler.a was never built. Adds the missing avm-transpiler-cross-arm64-linux target and fixes the dependency. barretenberg-rs release: The release function would error out if generated Rust bindings (api.rs, generated_types.rs) weren't present, even though it's trivial to generate them. Now generates them on-the-fly instead of failing. Follows up on #20814 which added avm-transpiler arm64-linux support.
AztecBot
added a commit
that referenced
this pull request
Mar 3, 2026
…20814, #20932) Cherry-picks two fixes from next that enable the AVM transpiler for linux/arm64 release builds: - avm-transpiler/bootstrap.sh: add arm64-linux case to build_cross - CMakePresets.json: wire AVM_TRANSPILER_LIB for zig-arm64-linux preset - Makefile: add avm-transpiler-cross-arm64-linux target, fix dependency - barretenberg-rs: generate bindings on-the-fly in release function - copy_cross.sh: relax arch check for release context Fixes #20793
AztecBot
added a commit
that referenced
this pull request
Mar 3, 2026
4 tasks
AztecBot
added a commit
that referenced
this pull request
Mar 4, 2026
…20932) ## Summary Backports two fixes from `next` that enable the AVM transpiler for `linux/arm64` release builds, resolving [#20793](#20793) — `aztec compile` fails with "AVM Transpiler is not enabled" on `linux/arm64`. **Cherry-picked from:** - #20814 — added `arm64-linux` cross-compile to `avm-transpiler/bootstrap.sh` + wired `AVM_TRANSPILER_LIB` in `CMakePresets.json` - #20932 — fixed Makefile dependency (`bb-cpp-cross-arm64-linux` was depending on `avm-transpiler-native` instead of `avm-transpiler-cross-arm64-linux`), plus `barretenberg-rs` release fix **Root cause:** The `zig-arm64-linux` CMake preset was missing `AVM_TRANSPILER_LIB`, and `avm-transpiler/bootstrap.sh` had no `arm64-linux` case in `build_cross`. The arm64-linux bb binary was compiled without `ENABLE_AVM_TRANSPILER`. **Changes:** - `avm-transpiler/bootstrap.sh` — add `arm64-linux` case to `build_cross` - `barretenberg/cpp/CMakePresets.json` — wire `AVM_TRANSPILER_LIB` for `zig-arm64-linux` preset - `Makefile` — add `avm-transpiler-cross-arm64-linux` target, fix `bb-cpp-cross-arm64-linux` dependency - `barretenberg/rust/bootstrap.sh` — add `release` function with on-the-fly binding generation - `barretenberg/ts/scripts/copy_cross.sh` — relax arch check for release context **Conflict resolution:** `barretenberg/rust/bootstrap.sh` had a minor conflict — the `release` function didn't exist on v4. Resolved by accepting the full function. ## Test plan - [x] Native avm-transpiler build succeeds - [x] Makefile targets verified: `avm-transpiler-cross-arm64-linux`, `bb-cpp-cross-arm64-linux` dependency corrected - [x] CMake preset verified: `zig-arm64-linux` has `AVM_TRANSPILER_LIB` pointing to correct cross-compiled path - [ ] Full cross-compilation validated in release CI Closes #20793 ClaudeBox log: http://ci.aztec-labs.com/596d4a62f30fd2f0-2
johnathan79717
pushed a commit
that referenced
this pull request
Mar 4, 2026
Summary Makefile: The bb-cpp-cross-arm64-linux target depended on avm-transpiler-native instead of a cross-compiled arm64-linux avm-transpiler, so the cross-compiled libavm_transpiler.a was never built. Adds the missing avm-transpiler-cross-arm64-linux target and fixes the dependency. barretenberg-rs release: The release function would error out if generated Rust bindings (api.rs, generated_types.rs) weren't present, even though it's trivial to generate them. Now generates them on-the-fly instead of failing. Follows up on #20814 which added avm-transpiler arm64-linux support.
ludamad
pushed a commit
that referenced
this pull request
Mar 12, 2026
…20932) Backports two fixes from `next` that enable the AVM transpiler for `linux/arm64` release builds, resolving [#20793](#20793) — `aztec compile` fails with "AVM Transpiler is not enabled" on `linux/arm64`. **Cherry-picked from:** - #20814 — added `arm64-linux` cross-compile to `avm-transpiler/bootstrap.sh` + wired `AVM_TRANSPILER_LIB` in `CMakePresets.json` - #20932 — fixed Makefile dependency (`bb-cpp-cross-arm64-linux` was depending on `avm-transpiler-native` instead of `avm-transpiler-cross-arm64-linux`), plus `barretenberg-rs` release fix **Root cause:** The `zig-arm64-linux` CMake preset was missing `AVM_TRANSPILER_LIB`, and `avm-transpiler/bootstrap.sh` had no `arm64-linux` case in `build_cross`. The arm64-linux bb binary was compiled without `ENABLE_AVM_TRANSPILER`. **Changes:** - `avm-transpiler/bootstrap.sh` — add `arm64-linux` case to `build_cross` - `barretenberg/cpp/CMakePresets.json` — wire `AVM_TRANSPILER_LIB` for `zig-arm64-linux` preset - `Makefile` — add `avm-transpiler-cross-arm64-linux` target, fix `bb-cpp-cross-arm64-linux` dependency - `barretenberg/rust/bootstrap.sh` — add `release` function with on-the-fly binding generation - `barretenberg/ts/scripts/copy_cross.sh` — relax arch check for release context **Conflict resolution:** `barretenberg/rust/bootstrap.sh` had a minor conflict — the `release` function didn't exist on v4. Resolved by accepting the full function. - [x] Native avm-transpiler build succeeds - [x] Makefile targets verified: `avm-transpiler-cross-arm64-linux`, `bb-cpp-cross-arm64-linux` dependency corrected - [x] CMake preset verified: `zig-arm64-linux` has `AVM_TRANSPILER_LIB` pointing to correct cross-compiled path - [ ] Full cross-compilation validated in release CI Closes #20793 ClaudeBox log: http://ci.aztec-labs.com/596d4a62f30fd2f0-2
ludamad
pushed a commit
that referenced
this pull request
Mar 12, 2026
…20932) Backports two fixes from `next` that enable the AVM transpiler for `linux/arm64` release builds, resolving [#20793](#20793) — `aztec compile` fails with "AVM Transpiler is not enabled" on `linux/arm64`. **Cherry-picked from:** - #20814 — added `arm64-linux` cross-compile to `avm-transpiler/bootstrap.sh` + wired `AVM_TRANSPILER_LIB` in `CMakePresets.json` - #20932 — fixed Makefile dependency (`bb-cpp-cross-arm64-linux` was depending on `avm-transpiler-native` instead of `avm-transpiler-cross-arm64-linux`), plus `barretenberg-rs` release fix **Root cause:** The `zig-arm64-linux` CMake preset was missing `AVM_TRANSPILER_LIB`, and `avm-transpiler/bootstrap.sh` had no `arm64-linux` case in `build_cross`. The arm64-linux bb binary was compiled without `ENABLE_AVM_TRANSPILER`. **Changes:** - `avm-transpiler/bootstrap.sh` — add `arm64-linux` case to `build_cross` - `barretenberg/cpp/CMakePresets.json` — wire `AVM_TRANSPILER_LIB` for `zig-arm64-linux` preset - `Makefile` — add `avm-transpiler-cross-arm64-linux` target, fix `bb-cpp-cross-arm64-linux` dependency - `barretenberg/rust/bootstrap.sh` — add `release` function with on-the-fly binding generation - `barretenberg/ts/scripts/copy_cross.sh` — relax arch check for release context **Conflict resolution:** `barretenberg/rust/bootstrap.sh` had a minor conflict — the `release` function didn't exist on v4. Resolved by accepting the full function. - [x] Native avm-transpiler build succeeds - [x] Makefile targets verified: `avm-transpiler-cross-arm64-linux`, `bb-cpp-cross-arm64-linux` dependency corrected - [x] CMake preset verified: `zig-arm64-linux` has `AVM_TRANSPILER_LIB` pointing to correct cross-compiled path - [ ] Full cross-compilation validated in release CI Closes #20793 ClaudeBox log: http://ci.aztec-labs.com/596d4a62f30fd2f0-2
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.
Summary
zig-arm64-linuxCMake preset was missingAVM_TRANSPILER_LIBavm-transpiler/bootstrap.shhad noarm64-linuxcase inbuild_crossThis adds
arm64-linuxcross-compilation to avm-transpiler (triggered on release viasemver check) and wires up thezig-arm64-linuxpreset to the resulting library.