Skip to content

platform.arch != GOARCH #872

@mattspencer-arm

Description

@mattspencer-arm

I would like to make one last plea to the community to consider not deferring definition of the values of platform.arch to GOARCH, but instead hold a canonical list of accepted values within this specification.

The reason is that runtime requirements for an image need not be tied to any runtime capabilities of golang. I can give a concrete example here of ARM's ILP32 ABI which is currently in the process of reviewed by the community for upstreaming.

We currently have no need or desire to add ILP32 capability to golang. The host platform will be running in 64 bit only mode. So there will be no 'arm64ilp32' definition in GOARCH. This does not mean that a container image can't be compiled against the ILP32 ABI, and be run on a platform that has a container engine built in arm64 mode, but also have the runtime capability for ILP32.

We have validated this in the offices here with a docker engine running in LP64/arm64 mode, whist executing a container image compiled against the ILP32 ABI.

The current OCI scheme does not seem to allow for me to define this runtime requirement.

I would therefor like to suggest that the OCI specification holds the canonical list for platform.arch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions