| # Copyright 2019 The Go Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style | |
| # license that can be found in the LICENSE file. | |
| FROM ubuntu:20.04 | |
| ENV DEBIAN_FRONTEND noninteractive | |
| RUN apt-get update && \ | |
| apt-get install --yes \ | |
| gcc gdb curl strace \ | |
| ca-certificates netbase \ | |
| procps lsof psmisc \ | |
| openssh-server \ | |
| patch | |
| # For GOPPC64=power10 support. This hack can be removed once the bootstrap | |
| # minimum reachs go1.20. | |
| # P8 and P9 will use the default bootstrap toolchain downloaded during CI. | |
| ADD p10.patch / | |
| RUN mkdir -p /usr/local && \ | |
| curl --silent -L https://go.dev/dl/go1.17.13.linux-ppc64le.tar.gz --output /go.tar.gz && \ | |
| tar -C /usr/local/ -zxf /go.tar.gz && \ | |
| mv /usr/local/go /usr/local/go-bootstrap && \ | |
| tar -C /usr/local/ -zxf /go.tar.gz && \ | |
| mv /usr/local/go /usr/local/go-tmp && \ | |
| cd /usr/local/go-bootstrap && patch -p1 < /p10.patch && \ | |
| cd /usr/local/go-bootstrap/src && GOROOT_BOOTSTRAP=/usr/local/go-tmp GOOS=linux GOARCH=ppc64le ./bootstrap.bash && \ | |
| /usr/local/go-tmp/bin/go install golang.org/x/build/cmd/genbootstrap@v0.0.0-20221130230848-98eb5685978b && \ | |
| cd /usr/local && /root/go/bin/genbootstrap -v -skip_build go-linux-ppc64le-bootstrap linux-ppc64le && \ | |
| rm -rf /usr/local/go-tmp /usr/local/go-bootstrap /usr/local/go-linux-ppc64le-bootstrap /usr/local/go-linux-ppc64le-bootstrap.tbz && \ | |
| mkdir /usr/local/go-bootstrap && tar -C /usr/local/go-bootstrap -xf /tmp/genbootstrap-*/gobootstrap-linux-ppc64le-go*.tar.gz && \ | |
| rm -rf /usr/local/go-tmp /root/go /root/.cache /p10.patch /go.tar.gz /tmp/* && apt-get remove --yes patch | |
| ENV GOROOT_BOOTSTRAP /usr/local/go-bootstrap | |
| ADD stage0 /usr/local/bin/stage0 | |
| ENV GO_BUILD_KEY_DELETE_AFTER_READ true | |
| ENV GO_BUILD_KEY_PATH /buildkey/gobuildkey | |
| CMD ["/usr/local/bin/stage0"] |