Skip to content

Repair ARM64 Linux release builds - #14

Merged
isty2e merged 2 commits into
mainfrom
fix/aarch64-release-build
Jul 29, 2026
Merged

Repair ARM64 Linux release builds#14
isty2e merged 2 commits into
mainfrom
fix/aarch64-release-build

Conversation

@isty2e

@isty2e isty2e commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • invoke Linux renameat2 through SYS_renameat2 instead of linking the optional glibc wrapper symbol
  • run the no-replace move contract tests on Linux and macOS in addition to Windows
  • add a focused ARM64 Linux release cross-build workflow for source, dependency, and release-workflow changes
  • upgrade release artifact actions to their Node.js 24 majors

Root cause

The v0.4.0 aarch64-unknown-linux-gnu release job compiled successfully but failed at link time because the cross image's glibc did not export renameat2. Calling the kernel syscall directly preserves RENAME_NOREPLACE semantics without requiring that wrapper symbol.

Compatibility

The public CLI and JSON protocol are unchanged. Linux still fails rather than falling back to a non-atomic check-then-rename when renameat2 is unavailable.

Validation

  • cargo test --locked --bin identedit rename_file_no_replace_ (2 passed on Linux)
  • cargo fmt --check
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo test --locked
  • cargo build --locked --release
  • actionlint across every workflow

The new GitHub-hosted ARM64 Linux job is the acceptance gate for the cross-link failure.

@isty2e
isty2e merged commit a618ac8 into main Jul 29, 2026
5 checks passed
@isty2e
isty2e deleted the fix/aarch64-release-build branch July 29, 2026 04:01
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.

1 participant