Skip to content

fix: cross-compile avm-transpiler for arm64-linux in release builds#20814

Merged
ludamad merged 1 commit into
nextfrom
ab/avm-transpiler-arm64-linux-cross
Feb 24, 2026
Merged

fix: cross-compile avm-transpiler for arm64-linux in release builds#20814
ludamad merged 1 commit into
nextfrom
ab/avm-transpiler-arm64-linux-cross

Conversation

@ludamad

@ludamad ludamad commented Feb 24, 2026

Copy link
Copy Markdown
Collaborator

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.

@ludamad ludamad changed the base branch from merge-train/barretenberg to next February 24, 2026 15:59
@ludamad ludamad added the ci-release-pr Creates a development tag and runs the release suite label Feb 24, 2026
@AztecBot AztecBot removed the ci-release-pr Creates a development tag and runs the release suite label Feb 24, 2026
@ludamad ludamad added this pull request to the merge queue Feb 24, 2026
@ludamad ludamad removed this pull request from the merge queue due to a manual request Feb 24, 2026
@ludamad ludamad added ci-release-pr Creates a development tag and runs the release suite ci-squash-and-merge labels Feb 24, 2026
@ludamad ludamad enabled auto-merge February 24, 2026 17:08
@AztecBot AztecBot removed the ci-release-pr Creates a development tag and runs the release suite label Feb 24, 2026
@AztecBot AztecBot force-pushed the ab/avm-transpiler-arm64-linux-cross branch from 358457c to 1ad0886 Compare February 24, 2026 17:10
## 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.
@AztecBot AztecBot force-pushed the ab/avm-transpiler-arm64-linux-cross branch from 1ad0886 to cd3a3b2 Compare February 24, 2026 17:43
@ludamad ludamad added this pull request to the merge queue Feb 24, 2026
@AztecBot

Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/0e86d01f41d77eea�0e86d01f41d77eea8;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_epochs/epochs_invalidate_block.parallel.test.ts "proposer invalidates previous block with shuffled attestations" (118s) (code: 0) group:e2e-p2p-epoch-flakes

Merged via the queue into next with commit 33f2fbf Feb 24, 2026
18 checks passed
@ludamad ludamad deleted the ab/avm-transpiler-arm64-linux-cross branch February 24, 2026 18:20
@ludamad

ludamad commented Feb 26, 2026

Copy link
Copy Markdown
Collaborator Author

/claudebox backport to latest devnet branch

@AztecBot

Copy link
Copy Markdown
Collaborator

ClaudeBox: backport to latest devnet branch ... workflow run

@ludamad

ludamad commented Feb 26, 2026

Copy link
Copy Markdown
Collaborator Author

/claudebox new-session backport to v4 branch

@AztecBot

Copy link
Copy Markdown
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)
@ludamad ludamad mentioned this pull request Feb 27, 2026
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 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants