Subject: [bug#59085] [PATCH] services: Add x86_64 QEMU target.

From: Leo Nikkilä <[email-masked]>
Date: Mon, 7 Nov 2022 02:09:45 +0200

Greetings,

I was trying to build an x86_64 binary on an aarch64 machine, and noticed that
`qemu-binfmt-service-type' was missing the x86_64 platform definition.

* gnu/services/virtualization.scm (%x86_64): Add variable.
(%qemu-platforms) Add it.
---
 gnu/packages/virtualization.scm | 1 +
 gnu/services/virtualization.scm | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 981e5e0cf3..4c8662f770 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2022 Ekaitz Zarraga <[email-masked]>
 ;;; Copyright © 2022 Arun Isaac <[email-masked]>
 ;;; Copyright © 2022 Zhu Zihao <[email-masked]>
+;;; Copyright © 2022 Leo Nikkilä <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index cb6227403b..b3dc9d2114 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -611,6 +611,13 @@ (define %i386
    (magic (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00"))
    (mask (bv "\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
 
+(define %x86_64
+  (qemu-platform
+   (name "x86_64")
+   (family "i386")
+   (magic (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00"))
+   (mask (bv "\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))))
+
 (define %alpha
   (qemu-platform
    (name "alpha")
@@ -767,7 +774,7 @@ (define %hppa
    (mask (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))))
 
 (define %qemu-platforms
-  (list %i386 %alpha %arm %sparc32plus %ppc %ppc64 %ppc64le %m68k
+  (list %i386 %x86_64 %alpha %arm %sparc32plus %ppc %ppc64 %ppc64le %m68k
         %mips %mipsel %mipsn32 %mipsn32el %mips64 %mips64el
         %riscv32 %riscv64 %sh4 %sh4eb %s390x %aarch64 %hppa))
 
-- 
2.38.0