Archived
1
0
Fork 0

gnu: cross-base: Use gexps for 'cross-gcc-arguments'.

* gnu/packages/cross-base.scm (cross-gcc-arguments): Switch to gexps.
This commit is contained in:
Ludovic Courtès 2023-03-26 21:35:03 +02:00
parent 065d766f09
commit bbb849f11f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -147,9 +147,9 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
,@(package-arguments xgcc)))) ,@(package-arguments xgcc))))
(substitute-keyword-arguments args (substitute-keyword-arguments args
((#:configure-flags flags) ((#:configure-flags flags)
`(append (list ,(string-append "--target=" target) #~(append (list #$(string-append "--target=" target)
,@(if libc #$@(if libc
`( ;; Disable libcilkrts because it is not #~( ;; Disable libcilkrts because it is not
;; ported to GNU/Hurd. ;; ported to GNU/Hurd.
"--disable-libcilkrts" "--disable-libcilkrts"
;; When building a cross compiler, --with-sysroot is ;; When building a cross compiler, --with-sysroot is
@ -160,7 +160,7 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
;; This is safe because in practice GCC uses CROSS_CPATH ;; This is safe because in practice GCC uses CROSS_CPATH
;; & co to separate target and host libraries. ;; & co to separate target and host libraries.
"--with-sysroot=/") "--with-sysroot=/")
`( ;; Disable features not needed at this stage. #~( ;; Disable features not needed at this stage.
"--disable-shared" "--enable-static" "--disable-shared" "--enable-static"
"--enable-languages=c,c++" "--enable-languages=c,c++"
@ -190,26 +190,26 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
;; Install cross-built libraries such as libgcc_s.so in ;; Install cross-built libraries such as libgcc_s.so in
;; the "lib" output. ;; the "lib" output.
,@(if libc #$@(if libc
`((string-append "--with-toolexeclibdir=" #~((string-append "--with-toolexeclibdir="
(assoc-ref %outputs "lib") (assoc-ref %outputs "lib")
"/" ,target "/lib")) "/" #$target "/lib"))
'())) #~()))
,(if libc #$(if libc
flags flags
`(remove (cut string-match "--enable-languages.*" <>) #~(remove (cut string-match "--enable-languages.*" <>)
,flags)))) #$flags))))
((#:make-flags flags) ((#:make-flags flags)
(if libc (if libc
`(let ((libc (assoc-ref %build-inputs "libc"))) #~(let ((libc (assoc-ref %build-inputs "libc")))
;; FLAGS_FOR_TARGET are needed for the target libraries to receive ;; FLAGS_FOR_TARGET are needed for the target libraries to receive
;; the -Bxxx for the startfiles. ;; the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib") (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
,flags)) #$flags))
flags)) flags))
((#:phases phases) ((#:phases phases)
`(cross-gcc-build-phases ,target ,phases)))))) #~(cross-gcc-build-phases #$target #$phases))))))
(define (cross-gcc-patches xgcc target) (define (cross-gcc-patches xgcc target)
"Return GCC patches needed for XGCC and TARGET." "Return GCC patches needed for XGCC and TARGET."