mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 06:18:07 -05:00
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:
parent
065d766f09
commit
bbb849f11f
1 changed files with 52 additions and 52 deletions
|
@ -147,69 +147,69 @@ (define (cross-gcc-arguments target xgcc libc)
|
||||||
,@(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
|
||||||
;; implicitly set to "$gcc_tooldir/sys-root". This does
|
;; implicitly set to "$gcc_tooldir/sys-root". This does
|
||||||
;; not work for us, because --with-native-system-header-dir
|
;; not work for us, because --with-native-system-header-dir
|
||||||
;; is searched for relative to this location. Thus, we set
|
;; is searched for relative to this location. Thus, we set
|
||||||
;; it to "/" so GCC is able to find the target libc headers.
|
;; it to "/" so GCC is able to find the target libc headers.
|
||||||
;; 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++"
|
||||||
|
|
||||||
;; libstdc++ cannot be built at this stage
|
;; libstdc++ cannot be built at this stage
|
||||||
;; ("Link tests are not allowed after
|
;; ("Link tests are not allowed after
|
||||||
;; GCC_NO_EXECUTABLES.").
|
;; GCC_NO_EXECUTABLES.").
|
||||||
"--disable-libstdc++-v3"
|
"--disable-libstdc++-v3"
|
||||||
|
|
||||||
"--disable-threads" ;libgcc, would need libc
|
"--disable-threads" ;libgcc, would need libc
|
||||||
"--disable-libatomic"
|
"--disable-libatomic"
|
||||||
"--disable-libmudflap"
|
"--disable-libmudflap"
|
||||||
"--disable-libgomp"
|
"--disable-libgomp"
|
||||||
"--disable-libmpx"
|
"--disable-libmpx"
|
||||||
"--disable-libssp"
|
"--disable-libssp"
|
||||||
"--disable-libquadmath"
|
"--disable-libquadmath"
|
||||||
"--disable-decimal-float" ;would need libc
|
"--disable-decimal-float" ;would need libc
|
||||||
"--disable-libcilkrts"
|
"--disable-libcilkrts"
|
||||||
|
|
||||||
;; When target is any OS other than 'none' these
|
;; When target is any OS other than 'none' these
|
||||||
;; libraries will fail if there is no libc
|
;; libraries will fail if there is no libc
|
||||||
;; present. See
|
;; present. See
|
||||||
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01311.html>
|
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01311.html>
|
||||||
"--disable-libitm"
|
"--disable-libitm"
|
||||||
"--disable-libvtv"
|
"--disable-libvtv"
|
||||||
"--disable-libsanitizer"
|
"--disable-libsanitizer"
|
||||||
))
|
))
|
||||||
|
|
||||||
;; 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."
|
||||||
|
|
Loading…
Reference in a new issue