~ruther/guix-local

c2bb342b5ff0ac15d6dc37a9ba8daeb8956237e1 — Josselin Poiret 2 years ago 85ebfcf
gnu: gnumach-headers: Cross-build without relying on x86.

* gnu/packages/hurd.scm (gnumach-headers): Remove configure flags where we
say the builder is running x86.
* gnu/packages/cross-base.scm (cross-gnumach-headers): Work around limitation
of build system, by manually changing the target host_cpu without relying on
--host, because we don't have a working cross-compiler yet.
2 files changed, 19 insertions(+), 10 deletions(-)

M gnu/packages/cross-base.scm
M gnu/packages/hurd.scm
M gnu/packages/cross-base.scm => gnu/packages/cross-base.scm +18 -0
@@ 375,6 375,24 @@ target that libc."
    (inherit gnumach-headers)
    (name (string-append (package-name gnumach-headers)
                         "-cross-" target))
    (arguments
     (substitute-keyword-arguments (package-arguments gnumach-headers)
       ((#:phases phases #~%standard-phases)
        #~(modify-phases #$phases
            ;; Cheat by setting the host_cpu variable manually, since using
            ;; --host= would require a working cross-compiler, which we don't
            ;; have yet.
            (add-after 'unpack 'substitute-host-cpu
              (lambda _
                (substitute* "configure.ac"
                  (("AC_CANONICAL_HOST")
                   #$(string-append
                      "host_cpu="
                      (match target
                        ((? target-x86-32?)
                         "i386")
                        ((? target-x86-64?)
                         "x86_64")))))))))))
    (native-inputs
     (modify-inputs (package-native-inputs gnumach-headers)
       (prepend xgcc xbinutils)))))

M gnu/packages/hurd.scm => gnu/packages/hurd.scm +1 -10
@@ 6,6 6,7 @@
;;; Copyright © 2020, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 75,16 76,6 @@
           (lambda _
             (invoke "make" "install-data")))
         (delete 'build))

       ;; GNU Mach supports only IA32 currently, so cheat so that we can at
       ;; least install its headers.
       ,@(if (%current-target-system)
             '()
             ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00042.html>
             ;; <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00716.html>
             '(#:configure-flags '("--build=i586-pc-gnu"
                                   "--host=i686-linux-gnu")))

       #:tests? #f))
    (native-inputs
     (list autoconf automake texinfo-4))