Browse code

arm64: Use gccgo as bootstrap for compiling golang

The issue is armv6 released binaries are used as a GOROOT_BOOTSTRAP.
This might work on arm64 platforms that support 32-bit mode.
However not all arm64 platforms support 32-bit mode. 32-bit mode
is optional for ARMv8. So use gccgo as bootstrap.

The build image is bumped to use ubuntu wily.

Signed-off-by: Vijaya Kumar K <vijayak@caviumnetworks.com>

Vijaya Kumar K authored on 2016/02/15 19:11:10
Showing 1 changed files
... ...
@@ -15,7 +15,7 @@
15 15
 # the case. Therefore, you don't have to disable it anymore.
16 16
 #
17 17
 
18
-FROM aarch64/debian:jessie
18
+FROM aarch64/ubuntu:wily
19 19
 
20 20
 # Packaged dependencies
21 21
 RUN apt-get update && apt-get install -y \
... ...
@@ -37,7 +37,7 @@ RUN apt-get update && apt-get install -y \
37 37
 	libc6-dev \
38 38
 	libcap-dev \
39 39
 	libsqlite3-dev \
40
-	libsystemd-journal-dev \
40
+	libsystemd-dev \
41 41
 	mercurial \
42 42
 	net-tools \
43 43
 	parallel \
... ...
@@ -46,6 +46,7 @@ RUN apt-get update && apt-get install -y \
46 46
 	python-mock \
47 47
 	python-pip \
48 48
 	python-websocket \
49
+	gccgo \
49 50
 	--no-install-recommends
50 51
 
51 52
 # Install armhf loader to use armv6 binaries on armv8
... ...
@@ -95,14 +96,11 @@ RUN set -x \
95 95
 # We don't have official binary tarballs for ARM64, eigher for Go or bootstrap,
96 96
 # so we use the official armv6 released binaries as a GOROOT_BOOTSTRAP, and
97 97
 # build Go from source code.
98
-ENV BOOT_STRAP_VERSION 1.6beta1
99 98
 ENV GO_VERSION 1.5.3
100
-RUN mkdir -p /usr/src/go-bootstrap \
101
-	&& curl -fsSL https://storage.googleapis.com/golang/go${BOOT_STRAP_VERSION}.linux-arm6.tar.gz | tar -v -C /usr/src/go-bootstrap -xz --strip-components=1 \
102
-	&& mkdir /usr/src/go \
103
-	&& curl -fsSL https://storage.googleapis.com/golang/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 \
99
+RUN mkdir /usr/src/go && curl -fsSL https://storage.googleapis.com/golang/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 \
104 100
 	&& cd /usr/src/go/src \
105
-	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP=/usr/src/go-bootstrap ./make.bash
101
+	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
102
+
106 103
 ENV PATH /usr/src/go/bin:$PATH
107 104
 ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
108 105