GNU bug report logs -
#36882
QEMU 4 fails to build for x86_64-linux
Previous Next
Reported by: Leo Famulari <leo <at> famulari.name>
Date: Wed, 31 Jul 2019 20:04:01 UTC
Severity: important
Done: Mathieu Othacehe <m.othacehe <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #52 received at 36882 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
> Yup, turned out patching GCC was too difficult. I'm experimenting a
> filter over inputs passed to set-path-environment-variable in set-paths.
This is also quite tricky, because the "libc" input passed to set-paths
must not be removed from C_INCLUDE_PATH in (gnu packages commencement)
for mes packages.
So, maybe the best option is to patch QEMU directly, as proposed in
the attached patch. WDYT?
Thanks,
Mathieu
[0001-gnu-qemu-minimal-Fix-build.patch (text/x-diff, inline)]
From 6d5dea746ce7b501cdb5ba41c5eff0c9ea7eb0b0 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <m.othacehe <at> gmail.com>
Date: Tue, 3 Mar 2020 12:45:33 +0100
Subject: [PATCH] gnu: qemu-minimal: Fix build.
This fixes <https://issues.guix.info/issue/36882>.
* gnu/packages/virtualization.scm (qemu-minimal)[arguments]: Add a
remove-glibc phase to remove glibc from C_INCLUDE_PATH.
---
gnu/packages/virtualization.scm | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index e16405fc9c..6ab8c3802c 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2018 Sou Bunnbu <iyzsong <at> member.fsf.org>
;;; Copyright © 2018 Julien Lepiller <julien <at> lepiller.eu>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon <at> gmail.com>
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe <at> gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -124,7 +125,7 @@
"1w38hzlw7xp05gcq1nhga7hxvndxy6dfcnzi7q2il8ff110isj6k"))))
(build-system gnu-build-system)
(arguments
- '(;; Running tests in parallel can occasionally lead to failures, like:
+ `(;; Running tests in parallel can occasionally lead to failures, like:
;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
#:parallel-tests? #f
#:configure-flags (list "--enable-usb-redir" "--enable-opengl"
@@ -135,8 +136,28 @@
"--audio-drv-list=alsa,pa,sdl")
;; Make build and test output verbose to facilitate investigation upon failure.
#:make-flags '("V=1")
+ #:modules ((srfi srfi-1)
+ (ice-9 match)
+ ,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
+ ;; Work around https://issues.guix.info/issue/36882. We need to
+ ;; remove glibc from C_INCLUDE_PATH so that the one hardcoded in GCC,
+ ;; at the bottom of GCC include search-path is used.
+ (add-after 'set-paths 'remove-glibc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((filters '("libc"))
+ (input-directories
+ (filter-map (lambda (input)
+ (match input
+ ((name . dir)
+ (and (not (member name filters))
+ dir))))
+ inputs)))
+ (set-path-environment-variable "C_INCLUDE_PATH"
+ '("include")
+ input-directories)
+ #t)))
(replace 'configure
(lambda* (#:key inputs outputs (configure-flags '())
#:allow-other-keys)
--
2.25.1
This bug report was last modified 5 years and 82 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.