golang is unavailable for arm64

Bug #1392094 reported by Micheal Waltz
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
docker.io (Ubuntu)
Fix Released
Undecided
Unassigned
golang (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

When trying to build the golang package from source it fails due to know knowing about the instruction set for arm64.

Having this package build for arm64 is particularly useful since it is a dependency on the docker.io package.

mwaltz@zant:/etc$ sudo apt-get build-dep golang
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 119 not upgraded.
mwaltz@zant:/etc$ sudo apt-get -b source golang-go
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'golang-go' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/pkg-golang/golang.git
Need to get 9572 kB of source archives.
Get:1 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe golang 2:1.2.1-2ubuntu1 (dsc) [3053 B]
Get:2 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe golang 2:1.2.1-2ubuntu1 (tar) [9521 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports/ trusty/universe golang 2:1.2.1-2ubuntu1 (diff) [48.3 kB]
Fetched 9572 kB in 60s (158 kB/s)
gpgv: Signature made Thu Mar 20 10:19:54 2014 UTC using RSA key ID A0E7D8C3
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./golang_1.2.1-2ubuntu1.dsc
dpkg-source: info: extracting golang in golang-1.2.1
dpkg-source: info: unpacking golang_1.2.1.orig.tar.gz
dpkg-source: info: unpacking golang_1.2.1-2ubuntu1.debian.tar.gz
dpkg-source: info: applying add-src-pkg-debug-elf-testdata-hello.patch
dpkg-source: info: applying add-tar-xattr-support.patch
dpkg-source: info: applying 016-armhf-elf-header.patch
dpkg-source: info: applying issue28050043_60001_70001.diff
dpkg-source: info: applying issue27650045_40001_50001.diff
dpkg-source: info: applying issue54790044_100001_110001.diff
dpkg-buildpackage: source package golang
dpkg-buildpackage: source version 2:1.2.1-2ubuntu1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by James Page <email address hidden>
dpkg-buildpackage: host architecture arm64
 dpkg-source --before-build golang-1.2.1
 debian/rules clean
debian/rules:179: *** unrecognized build host instruction set arm64!. Stop.
dpkg-buildpackage: error: debian/rules clean gave error exit status 2
Build command 'cd golang-1.2.1 && dpkg-buildpackage -b -uc' failed.
E: Child process failed

Tags: aarch64 arm64
Micheal Waltz (ecliptik)
summary: - golang-go is unavailable for arm64
+ golang is unavailable for arm64
description: updated
Revision history for this message
Dave Cheney (dave-cheney) wrote :

The gc compiler (http://golang.org/) does not support arm64

Changed in golang (Ubuntu):
status: New → Invalid
Revision history for this message
Micheal Waltz (ecliptik) wrote :

Dave, I understand that it currently doesn't have a first-class build, but after looking at the Go discussion forums it appears that there will be an arm64 build in the future,

https://groups.google.com/forum/#!searchin/golang-dev/arm64/golang-dev/A2SDyaNxDxs/zugPL5yDBwIJ
https://groups.google.com/forum/#!searchin/golang-dev/arm64/golang-dev/MLaz62sHUc0/0t6M2lx1imoJ

It looks like there are first-class builds for armv5 and armv7 for Linux on the Go build dashboard, and I would assume as more 64-bit ARM SBSA hardware makes it's way into the market place in the coming months we'll see more demand for architecture support.

Looking at some other go packages it appears they already have arm64 support as well, such as gccgo that you commented on in the golang-devel forums and Canonical contributing support for.

I understand that there isn't an official port yet, but marking as triaged or incomplete I believe is a better category for this since eventually when Go does offer arm64 as an arch the packages will need to be updated to support it.

With the docker.io package depending on golang, and the large uptake of container technology, having this package working on arm64 could open up many possibility for the new architecture in hyperscale environments.

If there is a better way to improve go support for arm64, specifically to enable Docker support, I am interested in hearing about that as well.

Revision history for this message
James Page (james-page) wrote :

Michael

Some work has been done using gccgo to enable architectures that the golang gc complier does not support - however with docker, there will also be enablement work in Docker itself to make it function with anything other than amd64.

Revision history for this message
Matthias Klose (doko) wrote :

docker.io is now built on arm64 for 15.04

Changed in docker.io (Ubuntu):
status: New → Fix Released
Revision history for this message
Tianon Gravi (tianon) wrote :

I'm actually really concerned by this change (speaking as both a Debian maintainer on the package, and as the maintainer of the build scripts upstream). We're actively working upstream on getting proper first-class gccgo compilation support into Docker's build system (https://github.com/docker/docker/issues/9207 for the tracker upstream), but one of the things we've noticed is that just because it doesn't FTBFS doesn't mean it actually works. Have you run it against the upstream integration tests to at least get an initial verification that the daemon works as expected?

Revision history for this message
Tianon Gravi (tianon) wrote :

Even the current patch headers are misleading:

> Description: Add gccgo build support for Power
> This patch is based on one that has been accepted upstream
> in trunk with some minor additions to deal with the way
> that the dh-golang helper works in Debian/Ubuntu.
> Origin: https://github.com/docker/docker/pull/10665

The "Description" claims this patch is actually based on something that exists upstream, but nothing like that patch exists upstream, and the "Origin" linked is a very different patch (and was merged as part of the work towards getting GCCGO upstream).

Revision history for this message
Tianon Gravi (tianon) wrote :

The current patch seems like it comes more from https://github.com/docker/docker/pull/10569 than from the referenced https://github.com/docker/docker/pull/10665, and basically this same diff has been rejected upstream multiple times.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.