[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/21: gnu: cross-base: Factor out cross-mig.
From: |
guix-commits |
Subject: |
04/21: gnu: cross-base: Factor out cross-mig. |
Date: |
Thu, 30 Mar 2023 06:47:00 -0400 (EDT) |
civodul pushed a commit to branch core-updates
in repository guix.
commit a16a9c5a7b1f5ecc1b462fb4a5785a2adefba211
Author: Josselin Poiret <dev@jpoiret.xyz>
AuthorDate: Mon Mar 20 23:10:39 2023 +0100
gnu: cross-base: Factor out cross-mig.
* 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 | 87 +++++++++++++++++++++++++++------------------
1 file changed, 53 insertions(+), 34 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 @@
#:export (cross-binutils
cross-libc
cross-gcc
+ cross-mig
cross-kernel-headers))
(define-syntax %xgcc
@@ -365,6 +366,52 @@ target that libc."
#: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 @@ target that libc."
("cross-binutils" ,xbinutils)
,@(package-native-inputs linux-headers)))))
- (define xgnumach-headers-name
- (string-append (package-name gnumach-headers) "-cross-" target))
+ (define xmig
+ (cross-mig target #:xgcc xgcc #:xbinutils xbinutils))
(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-gnumach-headers target #:xgcc xgcc #:xbinutils xbinutils))
(define xhurd-headers
(package
@@ -611,8 +629,9 @@ and the cross tool chain."
("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))))))
- 01/21: gnu: glibc: Work around broken GNU Mach header detection., (continued)
- 01/21: gnu: glibc: Work around broken GNU Mach header detection., guix-commits, 2023/03/30
- 06/21: gnu: cross-base: Removed useless inputs to xhurd-core-headers., guix-commits, 2023/03/30
- 08/21: gnu: gnumach: Update to 1.8+git20220827., guix-commits, 2023/03/30
- 02/21: gnu: cross-base: Use gexps for 'cross-gcc-arguments'., guix-commits, 2023/03/30
- 10/21: gnu: hurd: Remove useless glibc/hurd-headers input., guix-commits, 2023/03/30
- 11/21: gnu: gnumach, hurd-headers, hurd: Switch to using cross-mig., guix-commits, 2023/03/30
- 13/21: gnu: mig/32-bit: Remove., guix-commits, 2023/03/30
- 09/21: gnu: hurd: Update to 3ff7053., guix-commits, 2023/03/30
- 16/21: gnu: linux-pam: Allow compilation on GNU/Hurd., guix-commits, 2023/03/30
- 18/21: gnu: guile: Switch to gexps., guix-commits, 2023/03/30
- 04/21: gnu: cross-base: Factor out cross-mig.,
guix-commits <=
- 14/21: system: hurd: Use shepherd-0.8 in the package list., guix-commits, 2023/03/30
- 15/21: gnu: linux-pam: Switch to gexps., guix-commits, 2023/03/30
- 12/21: gnu: hurd: Update DDE and use libdde_linux26., guix-commits, 2023/03/30
- 17/21: gnu: guile-static: Switch to gexps., guix-commits, 2023/03/30
- 21/21: maint: Re-add IceCat to '%system-packages'., guix-commits, 2023/03/30
- 05/21: gnu: cross-base: Add cross arguments to hurd derivatives., guix-commits, 2023/03/30
- 03/21: gnu: gcc@11: Patch libpthread on GNU/Hurd., guix-commits, 2023/03/30
- 07/21: gnu: mig: Update to 1.8+git20220827., guix-commits, 2023/03/30
- 19/21: gnu: guile-readline: Switch to gexps., guix-commits, 2023/03/30
- 20/21: gnu: guile: Fix 'posix_spawn' usage for GNU/Hurd., guix-commits, 2023/03/30