gnu: cross-base: Use gexps for 'cross-gcc-arguments'.
* gnu/packages/cross-base.scm (cross-gcc-arguments): Switch to gexps.master
parent
065d766f09
commit
bbb849f11f
|
@ -147,69 +147,69 @@ base compiler and using LIBC (which may be either a libc package or #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
|
||||
;; 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++"
|
||||
#~(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++"
|
||||
|
||||
;; 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))))
|
||||
#$(if libc
|
||||
flags
|
||||
#~(remove (cut string-match "--enable-languages.*" <>)
|
||||
#$flags))))
|
||||
((#:make-flags flags)
|
||||
(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
|
||||
;; the -Bxxx for the startfiles.
|
||||
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
|
||||
,flags))
|
||||
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
|
||||
#$flags))
|
||||
flags))
|
||||
((#:phases phases)
|
||||
`(cross-gcc-build-phases ,target ,phases))))))
|
||||
#~(cross-gcc-build-phases #$target #$phases))))))
|
||||
|
||||
(define (cross-gcc-patches xgcc target)
|
||||
"Return GCC patches needed for XGCC and TARGET."
|
||||
|
|
Reference in New Issue