gnu: cross-base: Fix some indentation problems.

* gnu/packages/cross-base.scm (cross-binutils): Fix indentation.
(cross-kernel-headers): Align 'inherit' fields
of nested package variables.
(cross-gcc): Fix indentation.
This commit is contained in:
Maxim Cournoyer 2022-12-05 11:55:58 -05:00
parent 234190df00
commit d4c2ea9226
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -76,7 +76,8 @@ (define (cross p target)
(define* (cross-binutils target #:optional (binutils binutils))
"Return a cross-Binutils for TARGET using BINUTILS."
(let ((binutils (package (inherit binutils)
(let ((binutils (package
(inherit binutils)
(arguments
(substitute-keyword-arguments (package-arguments
binutils)
@ -128,71 +129,71 @@ (define (cross-gcc-arguments target xgcc libc)
;; for instance.
(let ((args `(#:strip-binaries? #f
,@(package-arguments xgcc))))
(substitute-keyword-arguments args
((#:configure-flags flags)
`(append (list ,(string-append "--target=" target)
,@(if libc
`( ;; Disable libcilkrts because it is not
(substitute-keyword-arguments args
((#:configure-flags flags)
`(append (list ,(string-append "--target=" target)
,@(if libc
`( ;; Disable libcilkrts because it is not
;; ported to GNU/Hurd.
"--disable-libcilkrts"
;; When building a cross compiler, --with-sysroot is
;; implicitly set to "$gcc_tooldir/sys-root". This does
;; not work for us, because --with-native-system-header-dir
;; is searched for relative to this location. Thus, we set
;; it to "/" so GCC is able to find the target libc headers.
;; This is safe because in practice GCC uses CROSS_CPATH
;; & co to separate target and host libraries.
"--with-sysroot=/")
`( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static"
"--enable-languages=c,c++"
"--disable-libcilkrts"
;; When building a cross compiler, --with-sysroot is
;; implicitly set to "$gcc_tooldir/sys-root". This does
;; not work for us, because --with-native-system-header-dir
;; is searched for relative to this location. Thus, we set
;; it to "/" so GCC is able to find the target libc headers.
;; This is safe because in practice GCC uses CROSS_CPATH
;; & co to separate target and host libraries.
"--with-sysroot=/")
`( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static"
"--enable-languages=c,c++"
;; libstdc++ cannot be built at this stage
;; ("Link tests are not allowed after
;; GCC_NO_EXECUTABLES.").
"--disable-libstdc++-v3"
;; libstdc++ cannot be built at this stage
;; ("Link tests are not allowed after
;; GCC_NO_EXECUTABLES.").
"--disable-libstdc++-v3"
"--disable-threads" ;libgcc, would need libc
"--disable-libatomic"
"--disable-libmudflap"
"--disable-libgomp"
"--disable-libmpx"
"--disable-libssp"
"--disable-libquadmath"
"--disable-decimal-float" ;would need libc
"--disable-libcilkrts"
"--disable-threads" ;libgcc, would need libc
"--disable-libatomic"
"--disable-libmudflap"
"--disable-libgomp"
"--disable-libmpx"
"--disable-libssp"
"--disable-libquadmath"
"--disable-decimal-float" ;would need libc
"--disable-libcilkrts"
;; When target is any OS other than 'none' these
;; libraries will fail if there is no libc
;; present. See
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01311.html>
"--disable-libitm"
"--disable-libvtv"
"--disable-libsanitizer"
;; When target is any OS other than 'none' these
;; libraries will fail if there is no libc
;; present. See
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01311.html>
"--disable-libitm"
"--disable-libvtv"
"--disable-libsanitizer"
))
;; Install cross-built libraries such as libgcc_s.so in
;; the "lib" output.
,@(if libc
`((string-append "--with-toolexeclibdir="
(assoc-ref %outputs "lib")
"/" ,target "/lib"))
'()))
;; Install cross-built libraries such as libgcc_s.so in
;; the "lib" output.
,@(if libc
`((string-append "--with-toolexeclibdir="
(assoc-ref %outputs "lib")
"/" ,target "/lib"))
'()))
,(if libc
flags
`(remove (cut string-match "--enable-languages.*" <>)
,flags))))
((#:make-flags flags)
(if libc
`(let ((libc (assoc-ref %build-inputs "libc")))
;; FLAGS_FOR_TARGET are needed for the target libraries to receive
;; the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
,flags))
flags))
((#:phases phases)
`(cross-gcc-build-phases ,target ,phases))))))
,(if libc
flags
`(remove (cut string-match "--enable-languages.*" <>)
,flags))))
((#:make-flags flags)
(if libc
`(let ((libc (assoc-ref %build-inputs "libc")))
;; FLAGS_FOR_TARGET are needed for the target libraries to receive
;; the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
,flags))
flags))
((#:phases phases)
`(cross-gcc-build-phases ,target ,phases))))))
(define (cross-gcc-patches xgcc target)
"Return GCC patches needed for XGCC and TARGET."
@ -203,7 +204,7 @@ (define (cross-gcc-patches xgcc target)
(append (search-patches "gcc-4.9.3-mingw-gthr-default.patch")
(if (version>=? (package-version xgcc) "7.0")
(search-patches "gcc-7-cross-mingw.patch")
'())))
'())))
(else '())))
(define (cross-gcc-snippet target)
@ -231,13 +232,15 @@ (define* (cross-gcc target
XGCC as the base compiler. Use XBINUTILS as the associated cross-Binutils.
If LIBC is false, then build a GCC that does not target a libc; otherwise,
target that libc."
(package (inherit xgcc)
(package
(inherit xgcc)
(name (string-append "gcc-cross-"
(if libc "" "sans-libc-")
target))
(source
(origin
(inherit (package-source xgcc))
(inherit
(package-source xgcc))
(patches
(append
(origin-patches (package-source xgcc))
@ -304,7 +307,7 @@ (define* (cross-gcc target
`(,@inputs
("libc" ,libc)
("libc:static" ,libc "static")
("xkernel-headers" ;the target headers
("xkernel-headers" ;the target headers
,@(assoc-ref (package-propagated-inputs libc)
"kernel-headers"))))
(else inputs)))))
@ -338,7 +341,8 @@ (define* (cross-kernel-headers target
"Return headers depending on TARGET."
(define xlinux-headers
(package (inherit linux-headers)
(package
(inherit linux-headers)
(name (string-append (package-name linux-headers)
"-cross-" target))
(arguments
@ -364,7 +368,8 @@ (define xlinux-headers
,@(package-native-inputs linux-headers)))))
(define xgnumach-headers
(package (inherit gnumach-headers)
(package
(inherit gnumach-headers)
(name (string-append (package-name gnumach-headers)
"-cross-" target))
@ -373,7 +378,8 @@ (define xgnumach-headers
,@(package-native-inputs gnumach-headers)))))
(define xmig
(package (inherit mig)
(package
(inherit mig)
(name (string-append "mig-cross"))
(arguments
`(#:modules ((guix build gnu-build-system)
@ -396,7 +402,8 @@ (define xmig
,@(package-native-inputs mig)))))
(define xhurd-headers
(package (inherit hurd-headers)
(package
(inherit hurd-headers)
(name (string-append (package-name hurd-headers)
"-cross-" target))
@ -405,8 +412,9 @@ (define xhurd-headers
("cross-mig" ,xmig)
,@(alist-delete "mig"(package-native-inputs hurd-headers))))))
(define xglibc/hurd-headers
(package (inherit glibc/hurd-headers)
(define xglibc/hurd-headers
(package
(inherit glibc/hurd-headers)
(name (string-append (package-name glibc/hurd-headers)
"-cross-" target))
@ -437,15 +445,16 @@ (define xglibc/hurd-headers
,@(alist-delete "mig"(package-native-inputs glibc/hurd-headers))))))
(define xhurd-minimal
(package (inherit hurd-minimal)
(package
(inherit hurd-minimal)
(name (string-append (package-name hurd-minimal)
"-cross-" target))
(arguments
(substitute-keyword-arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
,@(package-arguments hurd-minimal))
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
,@(package-arguments hurd-minimal))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-cross-headers-path
@ -464,7 +473,8 @@ (define xhurd-minimal
,@(alist-delete "mig"(package-native-inputs hurd-minimal))))))
(define xhurd-core-headers
(package (inherit hurd-core-headers)
(package
(inherit hurd-core-headers)
(name (string-append (package-name hurd-core-headers)
"-cross-" target))
@ -551,7 +561,7 @@ (define* (cross-libc target
,@(assoc-ref (package-native-inputs xheaders)
"cross-mig")))
'())
,@(package-inputs libc) ;FIXME: static-bash
,@(package-inputs libc) ;FIXME: static-bash
,@(package-native-inputs libc))))))