From a898109522a93b233efa0c26c69b8da511bbff5f Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Wed, 31 Oct 2018 13:39:18 +0100 Subject: [PATCH] fix(docker-aarch64) : cross-compile config (#9798) --- scripts/docker/ubuntu-aarch64/Dockerfile | 46 ++++++++++++++++-------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/scripts/docker/ubuntu-aarch64/Dockerfile b/scripts/docker/ubuntu-aarch64/Dockerfile index cd8320530..53eb325ac 100644 --- a/scripts/docker/ubuntu-aarch64/Dockerfile +++ b/scripts/docker/ubuntu-aarch64/Dockerfile @@ -1,14 +1,30 @@ -FROM ubuntu:14.04 +FROM ubuntu:xenial WORKDIR /build +# install aarch64(armv8) dependencies and tools +RUN dpkg --add-architecture arm64 +RUN echo '# source urls for arm64 \n\ + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial main \n\ + deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial main \n\ + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main \n\ + deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main \n\ + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-security main \n\ + deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ xenial-security main \n # end arm64 section' >> /etc/apt/sources.list &&\ + sed -r 's/deb h/deb \[arch=amd64\] h/g' /etc/apt/sources.list > /tmp/sources-tmp.list && \ + cp /tmp/sources-tmp.list /etc/apt/sources.list&& \ + sed -r 's/deb-src h/deb-src \[arch=amd64\] h/g' /etc/apt/sources.list > /tmp/sources-tmp.list&&cat /etc/apt/sources.list &&\ + cp /tmp/sources-tmp.list /etc/apt/sources.list&& echo "next"&&cat /etc/apt/sources.list + # install tools and dependencies RUN apt-get -y update && \ - apt-get install -y --force-yes --no-install-recommends \ - curl git make g++ gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ - libc6-arm64-cross libc6-dev-arm64-cross wget file ca-certificates \ - binutils-aarch64-linux-gnu cmake3 libudev-dev \ - && \ - apt-get clean + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + curl make cmake file ca-certificates \ + g++ gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ + libc6-dev-arm64-cross binutils-aarch64-linux-gnu \ + libudev-dev libudev-dev:arm64 \ + && \ + apt-get clean # install rustup RUN curl https://sh.rustup.rs -sSf | sh -s -- -y @@ -30,14 +46,14 @@ RUN rustc -vV && cargo -V # build parity ADD . /build/parity RUN cd parity && \ - mkdir -p .cargo && \ - echo '[target.aarch64-unknown-linux-gnu]\n\ - linker = "aarch64-linux-gnu-gcc"\n'\ - >>.cargo/config && \ - cat .cargo/config && \ - cargo build --target aarch64-unknown-linux-gnu --release --verbose && \ - ls /build/parity/target/aarch64-unknown-linux-gnu/release/parity && \ - /usr/bin/aarch64-linux-gnu-strip /build/parity/target/aarch64-unknown-linux-gnu/release/parity + mkdir -p .cargo && \ + echo '[target.aarch64-unknown-linux-gnu]\n\ + linker = "aarch64-linux-gnu-gcc"\n'\ + >>.cargo/config && \ + cat .cargo/config && \ + cargo build --target aarch64-unknown-linux-gnu --release --verbose && \ + ls /build/parity/target/aarch64-unknown-linux-gnu/release/parity && \ + /usr/bin/aarch64-linux-gnu-strip /build/parity/target/aarch64-unknown-linux-gnu/release/parity RUN file /build/parity/target/aarch64-unknown-linux-gnu/release/parity