From 7168d98c434af0a35e8c9a05dfb87bb40511a38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Dalleau?= Date: Tue, 15 Jun 2021 11:31:26 +0200 Subject: [PATCH 1/3] Remove libseccomp dependency in runtime-dev-cross-true image It turns out libseccomp is not used for building docker at all. It is only used for building runc (and needs libseccomp > 2.4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Frédéric Dalleau --- Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4d47fe5a43..e2e21e40f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -127,16 +127,12 @@ ARG DEBIAN_FRONTEND # on non-amd64 systems. # Additionally, the crossbuild-amd64 is currently only on debian:buster, so # other architectures cannnot crossbuild amd64. -RUN echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/backports.list RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/apt \ --mount=type=cache,sharing=locked,id=moby-cross-true-aptcache,target=/var/cache/apt \ apt-get update && apt-get install -y --no-install-recommends \ libapparmor-dev:arm64 \ libapparmor-dev:armel \ - libapparmor-dev:armhf \ - libseccomp-dev:arm64/buster-backports \ - libseccomp-dev:armel/buster-backports \ - libseccomp-dev:armhf/buster-backports + libapparmor-dev:armhf FROM runtime-dev-cross-${CROSS} AS runtime-dev From 3a208c0ff9821457f2daec8fd2511c147092f647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Dalleau?= Date: Tue, 15 Jun 2021 10:49:04 +0200 Subject: [PATCH 2/3] Add ppc64le to cross platforms target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit debian uses ppc64el go uses ppc64le the cross compiler is powerpc64le Signed-off-by: Frédéric Dalleau --- Dockerfile | 7 +++++-- hack/make/.binary | 5 +++++ hack/make/cross | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e2e21e40f3..a595eaecd6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -97,12 +97,14 @@ ARG DEBIAN_FRONTEND RUN dpkg --add-architecture arm64 RUN dpkg --add-architecture armel RUN dpkg --add-architecture armhf +RUN dpkg --add-architecture ppc64el RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/apt \ --mount=type=cache,sharing=locked,id=moby-cross-true-aptcache,target=/var/cache/apt \ apt-get update && apt-get install -y --no-install-recommends \ crossbuild-essential-arm64 \ crossbuild-essential-armel \ - crossbuild-essential-armhf + crossbuild-essential-armhf \ + crossbuild-essential-ppc64el FROM cross-${CROSS} as dev-base @@ -132,7 +134,8 @@ RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/ apt-get update && apt-get install -y --no-install-recommends \ libapparmor-dev:arm64 \ libapparmor-dev:armel \ - libapparmor-dev:armhf + libapparmor-dev:armhf \ + libapparmor-dev:ppc64el FROM runtime-dev-cross-${CROSS} AS runtime-dev diff --git a/hack/make/.binary b/hack/make/.binary index 7f11fbb5d0..4ca92cc01b 100644 --- a/hack/make/.binary +++ b/hack/make/.binary @@ -65,6 +65,11 @@ hash_files() { export CC="${CC:-x86_64-linux-gnu-gcc}" export CGO_ENABLED=1 ;; + linux/ppc64le) + export CC="${CC:-powerpc64le-linux-gnu-gcc}" + export CGO_ENABLED=1 + ;; + esac fi diff --git a/hack/make/cross b/hack/make/cross index 32f88b42c9..f4af3ae94b 100644 --- a/hack/make/cross +++ b/hack/make/cross @@ -12,7 +12,7 @@ if [ -x "${DEST}/../binary-daemon/dockerd-${VERSION}" ]; then echo "Created symlinks:" "${DEST}/linux/${arch}/"* fi -DOCKER_CROSSPLATFORMS=${DOCKER_CROSSPLATFORMS:-"linux/amd64 windows/amd64"} +DOCKER_CROSSPLATFORMS=${DOCKER_CROSSPLATFORMS:-"linux/amd64 windows/amd64 linux/ppc64le"} for platform in ${DOCKER_CROSSPLATFORMS}; do ( From e93132e273f38b7adacc824754e2faa738fb6bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Dalleau?= Date: Mon, 14 Jun 2021 11:06:42 +0200 Subject: [PATCH 3/3] Add s390x to cross platforms target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update build script and buid environment for supporting s390x Signed-off-by: Frédéric Dalleau --- Dockerfile | 7 +++++-- hack/make/.binary | 5 ++++- hack/make/cross | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a595eaecd6..c86f65968b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -98,13 +98,15 @@ RUN dpkg --add-architecture arm64 RUN dpkg --add-architecture armel RUN dpkg --add-architecture armhf RUN dpkg --add-architecture ppc64el +RUN dpkg --add-architecture s390x RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/apt \ --mount=type=cache,sharing=locked,id=moby-cross-true-aptcache,target=/var/cache/apt \ apt-get update && apt-get install -y --no-install-recommends \ crossbuild-essential-arm64 \ crossbuild-essential-armel \ crossbuild-essential-armhf \ - crossbuild-essential-ppc64el + crossbuild-essential-ppc64el \ + crossbuild-essential-s390x FROM cross-${CROSS} as dev-base @@ -135,7 +137,8 @@ RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/ libapparmor-dev:arm64 \ libapparmor-dev:armel \ libapparmor-dev:armhf \ - libapparmor-dev:ppc64el + libapparmor-dev:ppc64el \ + libapparmor-dev:s390x FROM runtime-dev-cross-${CROSS} AS runtime-dev diff --git a/hack/make/.binary b/hack/make/.binary index 4ca92cc01b..371af7536b 100644 --- a/hack/make/.binary +++ b/hack/make/.binary @@ -69,7 +69,10 @@ hash_files() { export CC="${CC:-powerpc64le-linux-gnu-gcc}" export CGO_ENABLED=1 ;; - + linux/s390x) + export CC="${CC:-s390x-linux-gnu-gcc}" + export CGO_ENABLED=1 + ;; esac fi diff --git a/hack/make/cross b/hack/make/cross index f4af3ae94b..a20148b1fb 100644 --- a/hack/make/cross +++ b/hack/make/cross @@ -12,7 +12,7 @@ if [ -x "${DEST}/../binary-daemon/dockerd-${VERSION}" ]; then echo "Created symlinks:" "${DEST}/linux/${arch}/"* fi -DOCKER_CROSSPLATFORMS=${DOCKER_CROSSPLATFORMS:-"linux/amd64 windows/amd64 linux/ppc64le"} +DOCKER_CROSSPLATFORMS=${DOCKER_CROSSPLATFORMS:-"linux/amd64 windows/amd64 linux/ppc64le linux/s390x"} for platform in ${DOCKER_CROSSPLATFORMS}; do (