Skip to content

ci: build armv7-gnueabihf with canonical runner - #1320

Draft
ubiratansoares wants to merge 3 commits into
mainfrom
u/canonical-armhf
Draft

ubiratansoares wants to merge 3 commits into
mainfrom
u/canonical-armhf

Conversation

@ubiratansoares

@ubiratansoares ubiratansoares commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Canonical has made more runners available for us, in particular these armv7-linux-gnueabihf ones.

Creating this PR to give them a try and validate the integration. Ignore this PR for now.

@tgross35

Copy link
Copy Markdown
Member

I'm excited for this one!

Comment thread .github/workflows/main.yaml Outdated
@tgross35

Copy link
Copy Markdown
Member

What makes these armv7 runners? https://github.com/rust-lang/compiler-builtins/actions/runs/35132215572/job/104915778763?pr=1320#step:3:21 and https://github.com/rust-lang/compiler-builtins/actions/runs/35132215572/job/104915778763?pr=1320#step:6:168 looks like it's an aarch64 host

@ubiratansoares

Copy link
Copy Markdown
Contributor Author

What makes these armv7 runners?

I was told it and I took it for granted, but let me report this back to Canonical just in case

screenshot-2026-09-16 at 20 20 35

@ubiratansoares

ubiratansoares commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

So, according to what I got from Canonical

the runner itself is a genuine 32-bit armhf build. the ci log ( uname -a = aarch64 ) is just the host kernel reporting its own native architecture as these VMs run an arm64 kernel with AArch32/EL0 support enabled, which lets 32-bit armhf binaries execute natively

In this case, I think we can keep the arm64 host toolchain, cross-link with the armhf gcc, and run the test binaries natively in AArch32 mode, ie with no qemu. That would require adding a few additional setup steps via ci/install-test-deps.sh if I understand the ci harness correctly.

@tgross35 does that make sense to you?

@tgross35

Copy link
Copy Markdown
Member

Makes sense, I’m just surprised that it seems like arm32 isn’t reported anywhere and that rustup decided on an aarch64 host.

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.

2 participants