Skip to content

Add source-built legacy ARMv6 big-endian CI build#831

Open
demoray wants to merge 5 commits into
mainfrom
bcaswell/add-armv6b-ci
Open

Add source-built legacy ARMv6 big-endian CI build#831
demoray wants to merge 5 commits into
mainfrom
bcaswell/add-armv6b-ci

Conversation

@demoray

@demoray demoray commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds an ARMv6 big-endian build path for legacy BE32/EABI4 Linux devices.

The build now uses a repo script instead of embedding the logic in GitHub Actions. The script builds an armeb-linux-musleabi toolchain from pinned musl-cross-make sources, builds both full and minimal AVML binaries, patches the ELF EABI version to EABI4, and verifies the resulting artifacts.

Key details

  • Builds the cross toolchain from source instead of downloading prebuilt musl.cc artifacts.
  • Uses a custom Rust target spec pinned to ARMv5TE codegen to avoid BE8 instruction encoding.
  • Forces static non-PIE output for old kernels that cannot exec static PIE / ET_DYN.
  • Adds a linker wrapper and musl compatibility shim needed by Rust std and OpenSSL.
  • Verifies each artifact is:
    • big-endian
    • ET_EXEC
    • EABI4
    • no BE8 flag
    • no dynamic interpreter
    • Tag_CPU_arch: v5TE
    • no movw / movt instructions

Validation

  • Ran eng/build-armv6b.sh with a clean source-built toolchain cache.
  • Confirmed both artifacts were produced:
    • target/armeb-unknown-linux-musleabi/release/avml
    • target/armeb-unknown-linux-musleabi/release/avml-minimal

@demoray demoray changed the title Add armv6b CI build Add source-built legacy ARMv6 big-endian CI build Jul 2, 2026
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