Skip to content

Commit

Permalink
Support linux/arm64/v8 for most Ubuntu-based images
Browse files Browse the repository at this point in the history
  • Loading branch information
ianks committed Dec 28, 2024
1 parent 4090bec commit 9a6ad2e
Show file tree
Hide file tree
Showing 29 changed files with 220 additions and 131 deletions.
4 changes: 4 additions & 0 deletions .changes/1597.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "added",
"description": "Add docker platform support for `linux/arm64/v8` target for many Ubuntu-based targets"
}
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ version = 2
# patched, or we migrated to an MSRV of 1.66.0.
ignore = [
"RUSTSEC-2021-0145",
"RUSTSEC-2024-0375"
]

[bans]
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.aarch64-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-aarch64-linux-gnu \
gfortran-aarch64-linux-gnu \
libc6-dev-arm64-cross
ENV CROSS_TOOLCHAIN_PREFIX=aarch64-linux-gnu-
ENV CROSS_SYSROOT=/usr/aarch64-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=arm64 TARGET_TRIPLE=aarch64-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=arm64 /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh aarch64
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=aarch64-linux-gnu-
ENV CROSS_SYSROOT=/usr/aarch64-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner aarch64"
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
13 changes: 6 additions & 7 deletions docker/Dockerfile.arm-unknown-linux-gnueabi
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ RUN /cmake.sh
COPY xargo.sh /
RUN /xargo.sh

FROM cross-base as build
FROM cross-base AS build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-arm-linux-gnueabi \
gfortran-arm-linux-gnueabi \
libc6-dev-armel-cross
ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi

COPY essential.sh /
RUN TARGET_ARCH=armel TARGET_TRIPLE=arm-linux-gnueabi /essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=armel /deny-debian-packages.sh \
Expand All @@ -28,8 +29,6 @@ RUN /qemu.sh arm
COPY qemu-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi
ENV CROSS_TARGET_RUNNER="/qemu-runner arm"
ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
12 changes: 5 additions & 7 deletions docker/Dockerfile.armv5te-unknown-linux-gnueabi
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-arm-linux-gnueabi \
gfortran-arm-linux-gnueabi \
crossbuild-essential-armel \
libc6-dev-armel-cross
ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=armel TARGET_TRIPLE=arm-linux-gnueabi /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=armel /deny-debian-packages.sh \
Expand All @@ -29,8 +29,6 @@ RUN /qemu.sh arm
COPY qemu-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi
ENV CROSS_TARGET_RUNNER="/qemu-runner arm"
ENV CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.armv7-unknown-linux-gnueabi
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,18 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get install --assume-yes --no-install-recommends \
g++-arm-linux-gnueabi \
gfortran-arm-linux-gnueabi \
libc6-dev-armel-cross
ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=armel TARGET_TRIPLE=arm-linux-gnueabi /apt-cross-essential.sh

COPY qemu.sh /
RUN /qemu.sh arm

COPY qemu-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabi-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabi
ENV CROSS_TARGET_RUNNER="/qemu-runner armv7"
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
13 changes: 6 additions & 7 deletions docker/Dockerfile.armv7-unknown-linux-gnueabihf
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ RUN /cmake.sh
COPY xargo.sh /
RUN /xargo.sh

FROM cross-base as build
FROM cross-base AS build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-arm-linux-gnueabihf \
gfortran-arm-linux-gnueabihf \
libc6-dev-armhf-cross
ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabihf-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabihf

COPY essential.sh /
RUN TARGET_ARCH=armhf TARGET_TRIPLE=arm-linux-gnueabihf /essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=armhf /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh armv7
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=arm-linux-gnueabihf-
ENV CROSS_SYSROOT=/usr/arm-linux-gnueabihf
ENV CROSS_TARGET_RUNNER="/linux-runner armv7hf"
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
6 changes: 2 additions & 4 deletions docker/Dockerfile.i586-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-i686-linux-gnu \
gfortran-i686-linux-gnu \
libc6-dev-i386-cross
COPY apt-cross-essential.sh /
RUN TARGET_ARCH=i386 TARGET_TRIPLE=i686-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=i386 /deny-debian-packages.sh \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.i686-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-i686-linux-gnu \
gfortran-i686-linux-gnu \
libc6-dev-i386-cross
ENV CROSS_TOOLCHAIN_PREFIX=i686-linux-gnu-
ENV CROSS_SYSROOT=/usr/i686-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=i386 TARGET_TRIPLE=i686-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=i386 /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh i686
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=i686-linux-gnu-
ENV CROSS_SYSROOT=/usr/i686-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner i686"
ENV CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.mips-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,18 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get install --assume-yes --no-install-recommends \
g++-mips-linux-gnu \
gfortran-mips-linux-gnu \
libc6-dev-mips-cross
ENV CROSS_TOOLCHAIN_PREFIX=mips-linux-gnu-
ENV CROSS_SYSROOT=/usr/mips-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=mips TARGET_TRIPLE=mips-linux-gnu /apt-cross-essential.sh

COPY qemu.sh /
RUN /qemu.sh mips

COPY qemu-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=mips-linux-gnu-
ENV CROSS_SYSROOT=/usr/mips-linux-gnu
ENV CROSS_TARGET_RUNNER="/qemu-runner mips"
ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.mips64-unknown-linux-gnuabi64
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-mips64-linux-gnuabi64 \
gfortran-mips64-linux-gnuabi64 \
libc6-dev-mips64-cross
ENV CROSS_TOOLCHAIN_PREFIX=mips64-linux-gnuabi64-
ENV CROSS_SYSROOT=/usr/mips64-linux-gnuabi64

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=mips64 TARGET_TRIPLE=mips64-linux-gnuabi64 /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=mips64 /deny-debian-packages.sh \
Expand All @@ -28,8 +29,6 @@ RUN /qemu.sh mips64
COPY qemu-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=mips64-linux-gnuabi64-
ENV CROSS_SYSROOT=/usr/mips64-linux-gnuabi64
ENV CROSS_TARGET_RUNNER="/qemu-runner mips64"
ENV CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.mips64el-unknown-linux-gnuabi64
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-mips64el-linux-gnuabi64 \
gfortran-mips64el-linux-gnuabi64 \
libc6-dev-mips64el-cross
ENV CROSS_TOOLCHAIN_PREFIX=mips64el-linux-gnuabi64-
ENV CROSS_SYSROOT=/usr/mips64el-linux-gnuabi64

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=mips64el TARGET_TRIPLE=mips64el-linux-gnuabi64 /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=mips64el /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh mips64el
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=mips64el-linux-gnuabi64-
ENV CROSS_SYSROOT=/usr/mips64el-linux-gnuabi64
ENV CROSS_TARGET_RUNNER="/linux-runner mips64el"
ENV CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_GNUABI64_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.mipsel-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-mipsel-linux-gnu \
gfortran-mipsel-linux-gnu \
libc6-dev-mipsel-cross
ENV CROSS_TOOLCHAIN_PREFIX=mipsel-linux-gnu-
ENV CROSS_SYSROOT=/usr/mipsel-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=mipsel TARGET_TRIPLE=mipsel-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=mipsel /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh mipsel
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=mipsel-linux-gnu-
ENV CROSS_SYSROOT=/usr/mipsel-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner mipsel"
ENV CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.powerpc-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-powerpc-linux-gnu \
gfortran-powerpc-linux-gnu \
libc6-dev-powerpc-cross
ENV CROSS_TOOLCHAIN_PREFIX=powerpc-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=powerpc TARGET_TRIPLE=powerpc-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=powerpc /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh powerpc
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=powerpc-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner powerpc"
ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.powerpc64-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-powerpc64-linux-gnu \
gfortran-powerpc64-linux-gnu \
libc6-dev-ppc64-cross
ENV CROSS_TOOLCHAIN_PREFIX=powerpc64-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc64-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=ppc64 TARGET_TRIPLE=powerpc64-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=ppc64 /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh powerpc64
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=powerpc64-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc64-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner powerpc64"
ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.powerpc64le-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install --assume-yes --no-install-recommends \
g++-powerpc64le-linux-gnu \
gfortran-powerpc64le-linux-gnu \
libc6-dev-ppc64el-cross
ENV CROSS_TOOLCHAIN_PREFIX=powerpc64le-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc64le-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=ppc64el TARGET_TRIPLE=powerpc64le-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=ppc64el /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh powerpc64le
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=powerpc64le-linux-gnu-
ENV CROSS_SYSROOT=/usr/powerpc64le-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner powerpc64le"
ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
11 changes: 5 additions & 6 deletions docker/Dockerfile.riscv64gc-unknown-linux-gnu
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ RUN /xargo.sh

FROM cross-base as build

RUN apt-get update && apt-get install -y --no-install-recommends \
g++-riscv64-linux-gnu \
gfortran-riscv64-linux-gnu \
libc6-dev-riscv64-cross
ENV CROSS_TOOLCHAIN_PREFIX=riscv64-linux-gnu-
ENV CROSS_SYSROOT=/usr/riscv64-linux-gnu

COPY apt-cross-essential.sh /
RUN TARGET_ARCH=riscv64 TARGET_TRIPLE=riscv64-linux-gnu /apt-cross-essential.sh

COPY deny-debian-packages.sh /
RUN TARGET_ARCH=riscv64 /deny-debian-packages.sh \
Expand All @@ -34,8 +35,6 @@ RUN /linux-image.sh riscv64
COPY linux-runner base-runner.sh /
COPY toolchain.cmake /opt/toolchain.cmake

ENV CROSS_TOOLCHAIN_PREFIX=riscv64-linux-gnu-
ENV CROSS_SYSROOT=/usr/riscv64-linux-gnu
ENV CROSS_TARGET_RUNNER="/linux-runner riscv64"
ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
Expand Down
Loading

0 comments on commit 9a6ad2e

Please sign in to comment.