guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: gnu: cross-base: Don't specify mingw --with-newli


From: guix-commits
Subject: branch master updated: gnu: cross-base: Don't specify mingw --with-newlib
Date: Wed, 16 Mar 2022 22:15:15 -0400

This is an automated email from the git hooks/post-receive script.

carl pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new 34e9eae68c gnu: cross-base: Don't specify mingw --with-newlib
34e9eae68c is described below

commit 34e9eae68c9583acce5abc4100add3d88932a5ae
Author: Carl Dong <contact@carldong.me>
AuthorDate: Tue Mar 1 11:35:17 2022 -0500

    gnu: cross-base: Don't specify mingw --with-newlib
    
    Previous to this commit, we added a --with-newlib configure flag to
    cross-gcc when cross-newlib?, but cross-newlib? is true only when
    target-mingw?.
    
    It turns out that specifying --with-newlib disables the
    GLIBCXX_CROSSCONFIG check, which is used to detect
    _GLIBCXX_HAVE__WFOPEN, which is required in C++17 std::filesystem for
    mingw-w64 systems.
    
    Additional context: In gnu/packages/embedded.scm, --with-newlib is
    specified explicitly when we're actually using newlib, which seems like
    the correct way of handling it.
    
    Situation in other distros:
    - Debian's gcc-mingw-w64 doesn't specify --with-newlib
    - Fedora's mingw64-gcc-c++ explicitly specifies --without-newlib
    
    Chesterton's fence: Chatting with janneke, who originally added this
    mechanism, reveals that this flag is not only no longer required, but
    also that removing it doesn't break his guile-mingw builds. See IRC logs
    of #guix for 2022-02-15.
    
    * gnu/packages/cross-base.scm (cross-gcc-arguments): Don't check for and
    specify --with-newlib.
    (cross-libc): Check for mingw and use mingw-w64 directly.
    (cross-newlib?): Remove, unexport.
    (native-libc): Remove.
---
 gnu/packages/cross-base.scm | 32 +++++---------------------------
 1 file changed, 5 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 529144d127..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
@@ -177,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
@@ -489,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))
@@ -553,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:
 ;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]