From 2ea2bca1ddb1e3ba9d843ff7544c22925de7f6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 10 Jul 2021 00:20:24 +0200 Subject: [PATCH] services: qemu-binfmt: Preserve argv[0] by default. Previously, argv[0] would be replaced by the absolute file name of the executable. This could cause discrepancies, for example in the Coreutils test suite: . * gnu/services/virtualization.scm ()[flags]: Default to "FP". --- gnu/services/virtualization.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 36e9feb05c..c8adcd06d0 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ryan Moe -;;; Copyright © 2018, 2020 Ludovic Courtès +;;; Copyright © 2018, 2020, 2021 Ludovic Courtès ;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. @@ -561,7 +561,17 @@ potential infinite waits blocking libvirt.")) (family qemu-platform-family) ;string (magic qemu-platform-magic) ;bytevector (mask qemu-platform-mask) ;bytevector - (flags qemu-platform-flags (default "F"))) ;string + + ;; Default flags: + ;; + ;; "F": fix binary. Open the qemu-user binary (statically linked) as soon + ;; as binfmt_misc interpretation is handled. + ;; + ;; "P": preserve argv[0]. QEMU 6.0 detects whether it's started with this + ;; flag and automatically does the right thing. Without this flag, + ;; argv[0] is replaced by the absolute file name of the executable, an + ;; observable difference that can cause discrepancies. + (flags qemu-platform-flags (default "FP"))) ;string (define-syntax bv (lambda (s)