unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: 62307@debbugs.gnu.org
Cc: "Josselin Poiret" <dev@jpoiret.xyz>, "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#62307] [PATCH core-updates v2 04/20] gnu: cross-base: Factor out cross-mig.
Date: Tue, 28 Mar 2023 16:28:36 +0200	[thread overview]
Message-ID: <20230328142852.26635-5-ludo@gnu.org> (raw)
In-Reply-To: <20230328142852.26635-1-ludo@gnu.org>

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/cross-base.scm (cross-mig): New exported procedure.
(cross-gnumach-headers): New procedure.
(cross-kernel-headers*): Factor them out.
(cross-libc*): Use them there.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/cross-base.scm | 89 ++++++++++++++++++++++---------------
 1 file changed, 54 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index adead3206a..2a7c4d8011 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -46,6 +46,7 @@ (define-module (gnu packages cross-base)
   #:export (cross-binutils
             cross-libc
             cross-gcc
+            cross-mig
             cross-kernel-headers))
 
 (define-syntax %xgcc
@@ -365,6 +366,52 @@ (define* (cross-kernel-headers/deprecated target
                          #:xgcc xgcc
                          #:xbinutils xbinutils))
 
+(define* (cross-gnumach-headers target
+                                #:key
+                                (xgcc (cross-gcc target))
+                                (xbinutils (cross-binutils target)))
+  (package
+    (inherit gnumach-headers)
+    (name (string-append (package-name gnumach-headers)
+                         "-cross-" target))
+    (native-inputs
+     (modify-inputs (package-native-inputs gnumach-headers)
+       (prepend xgcc xbinutils)))))
+
+(define* (cross-mig target
+                    #:key
+                    (xgcc (cross-gcc target))
+                    (xbinutils (cross-binutils target)))
+  "Return a cross-mig for TARGET, where TARGET is a GNU triplet.  Use XGCC as
+the base compiler.  Use XBINUTILS as the associated cross-Binutils."
+  (define xgnumach-headers
+    (cross-gnumach-headers target
+                           #:xgcc xgcc
+                           #:xbinutils xbinutils))
+  (package
+    (inherit mig)
+    (name (string-append "mig-cross"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments mig)
+       ((#:configure-flags flags #~'())
+        #~(list #$(string-append "--target=" target)))
+       ((#:tests? _ #f)
+        #f)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-before 'configure 'set-cross-headers-path
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let* ((mach #+xgnumach-headers)
+                       (cpath (string-append mach "/include")))
+                  (for-each (lambda (variable)
+                              (setenv variable cpath))
+                            '#$%gcc-cross-include-paths))))))))
+    (propagated-inputs
+     (list xgnumach-headers))
+    (native-inputs
+     (modify-inputs (package-native-inputs mig)
+       (prepend xgcc xbinutils)))))
+
 (define* (cross-kernel-headers* target
                                 #:key
                                 (linux-headers linux-libre-headers)
@@ -399,40 +446,11 @@ (define xlinux-headers
                        ("cross-binutils" ,xbinutils)
                        ,@(package-native-inputs linux-headers)))))
 
-  (define xgnumach-headers-name
-    (string-append (package-name gnumach-headers) "-cross-" target))
-
-  (define xgnumach-headers
-    (package
-      (inherit gnumach-headers)
-      (name xgnumach-headers-name)
-      (native-inputs
-       (modify-inputs (package-native-inputs gnumach-headers)
-         (prepend xgcc xbinutils)))))
-
   (define xmig
-    (package
-      (inherit mig)
-      (name (string-append "mig-cross"))
-      (arguments
-       (substitute-keyword-arguments (package-arguments mig)
-         ((#:configure-flags flags #~'())
-          #~(list #$(string-append "--target=" target)))
-         ((#:tests? _ #f)
-          #f)
-         ((#:phases phases #~%standard-phases)
-          #~(modify-phases #$phases
-              (add-before 'configure 'set-cross-headers-path
-                (lambda* (#:key inputs #:allow-other-keys)
-                  (let* ((mach #+(this-package-input xgnumach-headers-name))
-                         (cpath (string-append mach "/include")))
-                    (for-each (lambda (variable)
-                                (setenv variable cpath))
-                              '#$%gcc-cross-include-paths))))))))
-      (propagated-inputs (list xgnumach-headers))
-      (native-inputs
-       (modify-inputs (package-native-inputs mig)
-         (prepend xgcc xbinutils)))))
+    (cross-mig target #:xgcc xgcc #:xbinutils xbinutils))
+
+  (define xgnumach-headers
+    (cross-gnumach-headers target #:xgcc xgcc #:xbinutils xbinutils))
 
   (define xhurd-headers
     (package
@@ -611,8 +629,9 @@ (define* (cross-libc* target
                          ("cross-binutils" ,xbinutils)
                          ,@(if (target-hurd? target)
                                `(("cross-mig"
-                                  ,@(assoc-ref (package-native-inputs xheaders)
-                                               "cross-mig")))
+                                  ,(cross-mig target
+                                              #:xgcc xgcc
+                                              #:xbinutils xbinutils)))
                                '())
                          ,@(package-inputs libc) ;FIXME: static-bash
                          ,@(package-native-inputs libc))))))
-- 
2.39.2





  parent reply	other threads:[~2023-03-28 14:31 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-20 22:07 [bug#62307] [PATCH core-updates 00/15] Update Hurd and fix build failures Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 01/15] gnu: glibc/fix-for-hurd-cross: Add new variant Josselin Poiret via Guix-patches via
2023-03-22 14:54   ` [bug#62307] [PATCH core-updates 00/15] Update Hurd and fix build failures Ludovic Courtès
2023-03-28 14:28     ` [bug#62307] [PATCH core-updates v2 00/20] " Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 01/20] gnu: glibc: Work around broken GNU Mach header detection Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 02/20] gnu: cross-base: Use gexps for 'cross-gcc-arguments' Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 03/20] gnu: gcc@11: Patch libpthread on GNU/Hurd Ludovic Courtès
2023-03-28 14:28       ` Ludovic Courtès [this message]
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 05/20] gnu: cross-base: Add cross arguments to hurd derivatives Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 06/20] gnu: cross-base: Removed useless inputs to xhurd-core-headers Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 07/20] gnu: mig: Update to 1.8+git20220827 Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 08/20] gnu: gnumach: " Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 09/20] gnu: hurd: Update to 3ff7053 Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 10/20] gnu: hurd: Remove useless glibc/hurd-headers input Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 11/20] gnu: gnumach, hurd-headers, hurd: Switch to using cross-mig Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 12/20] gnu: hurd: Update DDE and use libdde_linux26 Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 13/20] gnu: mig/32-bit: Remove Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 14/20] system: hurd: Use shepherd-0.8 in the package list Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 15/20] gnu: linux-pam: Switch to gexps Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 16/20] gnu: linux-pam: Allow compilation on GNU/Hurd Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 17/20] gnu: guile-static: Switch to gexps Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 18/20] gnu: guile: " Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 19/20] gnu: guile-readline: " Ludovic Courtès
2023-03-28 14:28       ` [bug#62307] [PATCH core-updates v2 20/20] gnu: guile: Fix 'posix_spawn' usage for GNU/Hurd Ludovic Courtès
2023-03-28 17:07       ` [bug#62307] [PATCH core-updates v2 00/20] Update Hurd and fix build failures Josselin Poiret via Guix-patches via
2023-03-30 10:48         ` bug#62307: " Ludovic Courtès
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 02/15] gnu-build-system: Sneak fixed glibc when cross-building for Hurd Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 03/15] gcc-11: Patch libstdc++ libpthread issue for Hurd only Josselin Poiret via Guix-patches via
2023-03-22 16:28   ` [bug#62307] [PATCH core-updates 00/15] Update Hurd and fix build failures Ludovic Courtès
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 04/15] cross-base: Factor out cross-mig Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 05/15] cross-base: Add cross arguments to hurd derivatives Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 06/15] cross-base: Removed useless inputs to xhurd-core-headers Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 07/15] mig: Update to 1.8+git20220827 Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 08/15] gnumach: " Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 09/15] hurd: Update to 91a51672ff4cfe1f1a0712b4c542ded3081c825b Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 10/15] hurd: Remove useless glibc/hurd-headers input Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 11/15] gnumach, hurd-headers, hurd: Switch to using cross-mig Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 11/15] gnumach, " Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 12/15] hurd: Update DDE and use libdde_linux26 Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 13/15] mig/32-bit: Remove Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 14/15] system: hurd: Use shepherd-0.8 in the package list Josselin Poiret via Guix-patches via
2023-03-20 22:10 ` [bug#62307] [PATCH core-updates 15/15] system: pam: Only add linux-pam reference if on Linux Josselin Poiret via Guix-patches via
2023-03-22 16:30   ` [bug#62307] [PATCH core-updates 00/15] Update Hurd and fix build failures Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230328142852.26635-5-ludo@gnu.org \
    --to=ludo@gnu.org \
    --cc=62307@debbugs.gnu.org \
    --cc=dev@jpoiret.xyz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).