Opened 11 months ago
Last modified 4 months ago
#72585 assigned defect
Io port fails to build for arm64; please support arm64
| Reported by: | kwolcott | Owned by: | markemer (Mark Anderson) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | |
| Keywords: | arm64 | Cc: | |
| Port: | Io |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
sudo port -v -s install Io Error: Cannot install Io for the arch 'x86_64' because Error: its dependency cairo is only installed for the arch 'arm64' Error: and does not have a universal variant. DEBUG: architecture mismatch
The output of port info Io does not state or imply that is only x86-64 platform. I guess that this is what I am asking for (*SIGH*) that it be stated that arm64 is not supported in the output of port info...
Ah, I see now on the GitHub source page that x86-64 is forced, no support for arm64, sad.
Change History (5)
comment:1 Changed 11 months ago by ryandesign (Ryan Carsten Schmidt)
| Description: | modified (diff) |
|---|---|
| Keywords: | arm64 added |
| Owner: | set to markemer |
| Status: | new → assigned |
comment:2 Changed 11 months ago by markemer (Mark Anderson)
The upstream Io language itself is not supported on arm64. It’s sadly also not a simple task to get it working as it’s a compiler. It needs a new backend to build for arm64.
comment:3 Changed 11 months ago by kwolcott
Thank you.
I am now using Io via a Linux Docker container.
It seems strange that they support arm64 on Linux but not MacOS...
I prefer to have arm64 packages exclusively whenevr possible; I really don't want to run x86-64 packages through Rosetta.
Again, thanks for your time and effort.
comment:4 Changed 8 months ago by markemer (Mark Anderson)
Good news, Io just merged a arm64 PR for macs, so I'm gonna revisit this.
comment:5 Changed 4 months ago by kwolcott
Hi;
I was able to build Io from source for arm64, but I did not correctly set the prefix, so stuff got installed in /usr/local. But it is an arm64 build:
file /usr/local/bin/io /usr/local/bin/io: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>
Hopefully soon, the MacPorts Io port will support arm64 (?!!)
Thanks, Ken Wolcott

A comment in the Io portfile explains why the supported archs are set as they are:
I'm not aware of any other situation in which individual ports state in their
port infowhat architectures they support, so I would not favor adding that just for Io.If you want that as a general feature request that MacPorts base should handle for all ports, that's #62715. I explain there why I don't consider it necessary: The user should not care. The x86_64 port should work fine on your arm64 computer. However, me not seeing a need for the feature shouldn't prevent anyone else from implementing it if they feel motivated to do so.
I'm not sure why MacPorts is claiming that cairo does not have a universal variant. It should have one. Its ports page says it has one.
Io doesn't build on Sonoma or Sequoia on x86_64 either. Based on the port version number, I assume it is from 2017. Maybe a newer version is available that would be arm64 compatible and/or fix the build failure with recent compilers. The build logs expired from the buildbot so I scheduled new builds so we can see what the error is.