Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build with docker_platform=linux/arm/v6 to support RPi 1 #113

Merged
merged 2 commits into from
Dec 21, 2024

Conversation

probonopd
Copy link
Member

Closes #112

Copy link

Build for testing:
artifacts x86_64
artifacts i686
artifacts armhf
artifacts aarch64
Use at your own risk.

@probonopd probonopd changed the title Try with docker_platform=linux/arm/v6 Build with docker_platform=linux/arm/v6 to support RPi 1 Dec 20, 2024
@probonopd
Copy link
Member Author

Confirmed to fix the issue in #112 (comment) by @mediocregopher. Still to be retested on e.g., a Pi 2 in 32-bit mode, although I would assume that people use aarch64 there.

@TheAssassin
Copy link
Member

As far as I remember, ARMv6 binaries have a significant performance disadvantage on ARMv7, so that would need to be evaluated.

On the other hand, RPi v1 chips are really ancient and distro support is going to end at some point just like with i386.

@TheAssassin
Copy link
Member

See also #112 (comment), I'm not sure that this change makes Debian i386 provide ARMv6 compatible binaries.

@probonopd
Copy link
Member Author

Moreover, iirc everything newer than RPi1 is 64-bit. So the only reason for the 32 bit builds is essentially RPi 1. So better a bit slower than not working at all, I'd say.

Copy link

Build for testing:
artifacts x86_64
artifacts i686
artifacts armhf
artifacts aarch64
Use at your own risk.

@TheAssassin
Copy link
Member

We're not talking just about RPi 1 when talking about 32-bit ARM platforms. RPi 1 is the only ARMv6 platform I know of, though. It's using a chip that is around 20 years old, I think they chose to do so because of integration problems or licensing or so. But yes, the vast majority of boards nowadays uses 64-bit, ARMv8 has been around for a while. Many phones or so for instance are ARMv7 for example. So it makes sense to at least try the 32-bit performance on an ARMv7 platform.

I might look around to see if I can find some. Given the above, though, I'm not sure if this shouldn't be a special build for special needs. There's no point in shipping an ARMv6 compatible runtime if all the payload applications are incompatible, for instance.

@mediocregopher
Copy link

mediocregopher commented Dec 21, 2024

@TheAssassin responding to your comment in the issue: I can confirm that the payload here does work on my RPI 1.

If supporting RP1 isn't a priority I totally understand that, I had just asked to confirm that was the case. I'm already able to package my application using debian and pacman package files, AppImage would be a bonus but it's not a hard requirement for me.

@probonopd
Copy link
Member Author

probonopd commented Dec 21, 2024

I would like to keep support for Raspberry Pi 1. My hypothesis is that it is arguably the most commonly available 32-bit ARM device that people actually own.

@TheAssassin
Copy link
Member

keep

Again: we have not supported ARMv6 for years.

@probonopd
Copy link
Member Author

But always intended to. It was a bug that this PR fixes.

@TheAssassin
Copy link
Member

I would like to see a performance comparison nevertheless. But if you insist, go for it.

@probonopd probonopd merged commit f6c0b18 into main Dec 21, 2024
18 checks passed
@probonopd probonopd deleted the probonopd-patch-1 branch December 21, 2024 15:54
@probonopd
Copy link
Member Author

Let's roll back if anyone ever complains about performance on 32-bit ARM.

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.

Does type2-runtime support armv6l?
3 participants