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: newassigned

A comment in the Io portfile explains why the supported archs are set as they are:

# Builds currently fail on apple silicon even in universal mode

I'm not aware of any other situation in which individual ports state in their port info what 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.

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

Note: See TracTickets for help on using tickets.