diff options
Diffstat (limited to 'gnu/packages/cross-base.scm')
-rw-r--r-- | gnu/packages/cross-base.scm | 43 |
1 files changed, 15 insertions, 28 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 78cbf871ac..66412b9e92 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -42,7 +42,6 @@ #:export (cross-binutils cross-libc cross-gcc - cross-newlib? cross-kernel-headers)) (define-syntax %xgcc @@ -101,7 +100,16 @@ "ath9k-htc-firmware-binutils.patch"))) ((target-mingw? target) (package-with-extra-patches - binutils + (package-with-extra-configure-variable + ;; mingw binutils does not work correctly when configured + ;; with `--enable-compressed-debug-sections`. An error + ;; like the following will occur whenever you try to link: + ;; + ;; x86_64-w64-mingw32-ld: final link failed: bad value + ;; + ;; TODO: This seems like a deeper problem that warrants + ;; deeper investigation. + binutils "--enable-compressed-debug-sections" "no") (search-patches "binutils-mingw-w64-timestamp.patch" "binutils-mingw-w64-deterministic.patch"))) (else binutils)) @@ -168,10 +176,6 @@ base compiler and using LIBC (which may be either a libc package or #f.)" `((string-append "--with-toolexeclibdir=" (assoc-ref %outputs "lib") "/" ,target "/lib")) - '()) - ;; For a newlib (non-glibc) target - ,@(if (cross-newlib? target) - '("--with-newlib") '())) ,(if libc @@ -480,10 +484,11 @@ target that libc." (xheaders (cross-kernel-headers target))) "Return LIBC cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS and the cross tool chain." - (if (cross-newlib? target libc) - (native-libc target libc - #:xgcc xgcc - #:xbinutils xbinutils) + (if (target-mingw? target) + (let ((machine (substring target 0 (string-index target #\-)))) + (make-mingw-w64 machine + #:xgcc xgcc + #:xbinutils xbinutils)) (package (inherit libc) (name (string-append "glibc-cross-" target)) @@ -544,24 +549,6 @@ and the cross tool chain." ,@(package-inputs libc) ;FIXME: static-bash ,@(package-native-inputs libc)))))) -(define* (native-libc target - #:optional - (libc glibc) - #:key - xgcc - xbinutils) - (if (target-mingw? target) - (let ((machine (substring target 0 (string-index target #\-)))) - (make-mingw-w64 machine - #:xgcc xgcc - #:xbinutils xbinutils)) - libc)) - -(define* (cross-newlib? target - #:optional - (libc glibc)) - (not (eq? (native-libc target libc) libc))) - ;;; Concrete cross tool chains are instantiated like this: ;; |