[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:
;;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: gnu: cross-base: Don't specify mingw --with-newlib,
guix-commits <=