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: <https://issues.guix.gnu.org/49485>.

* gnu/services/virtualization.scm (<qemu-platform>)[flags]: Default to "FP".
This commit is contained in:
Ludovic Courtès 2021-07-10 00:20:24 +02:00
parent 4ac2e09051
commit 2ea2bca1dd
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 12 additions and 2 deletions

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; 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)