From 81d17a19c48724368bde8b6d63edb17f2ee4b6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20W=C3=BCrbach?= Date: Sat, 22 Dec 2018 15:12:32 +0100 Subject: [PATCH] Add s390x support to binfmt_misc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johannes Würbach --- pkg/binfmt/Dockerfile | 3 ++- pkg/binfmt/etc/binfmt.d/00_linuxkit.conf | 5 +++++ pkg/binfmt/main.go | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/binfmt/Dockerfile b/pkg/binfmt/Dockerfile index ee00a5354..cafe936a9 100644 --- a/pkg/binfmt/Dockerfile +++ b/pkg/binfmt/Dockerfile @@ -3,7 +3,8 @@ FROM debian@sha256:de3eac83cd481c04c5d6c7344cd7327625a1d8b2540e82a8231b5675cef0a RUN apt-get update && apt-get install -y qemu-user-static && \ mv /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64 && \ mv /usr/bin/qemu-arm-static /usr/bin/qemu-arm && \ - mv /usr/bin/qemu-ppc64le-static /usr/bin/qemu-ppc64le + mv /usr/bin/qemu-ppc64le-static /usr/bin/qemu-ppc64le && \ + mv /usr/bin/qemu-s390x-static /usr/bin/qemu-s390x FROM linuxkit/alpine:3683c9a66cd4da40bd7d6c7da599b2dcd738b559 AS mirror diff --git a/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf b/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf index f0187ab91..a87e9ff00 100644 --- a/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf +++ b/pkg/binfmt/etc/binfmt.d/00_linuxkit.conf @@ -1,3 +1,8 @@ +# Register other architecture binary formats https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html +# Architecture masks and magics can be found here +# https://github.com/qemu/qemu/blob/master/scripts/qemu-binfmt-conf.sh +# Replace ELF with `\x45\x4c\x46` :qemu-aarch64:M:0:\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64:CF :qemu-arm:M:0:\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm:CF :qemu-ppc64le:M:0:\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00:\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00:/usr/bin/qemu-ppc64le:CF +:qemu-s390x:M:0:\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x:CF diff --git a/pkg/binfmt/main.go b/pkg/binfmt/main.go index 4df469a2d..97046edb9 100644 --- a/pkg/binfmt/main.go +++ b/pkg/binfmt/main.go @@ -89,6 +89,10 @@ func main() { if len(line) == 0 { continue } + // ignore comments + if line[0] == '#' { + continue + } err = binfmt(line) if err != nil { log.Fatal(err)