guix-commits
[Top][All Lists]
Advanced

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

branch core-updates updated: gnu: Simplify the use of --with-long-double


From: guix-commits
Subject: branch core-updates updated: gnu: Simplify the use of --with-long-double-128.
Date: Thu, 24 Jun 2021 23:46:59 -0400

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

marusich pushed a commit to branch core-updates
in repository guix.

The following commit(s) were added to refs/heads/core-updates by this push:
     new 45dd2b4  gnu: Simplify the use of --with-long-double-128.
45dd2b4 is described below

commit 45dd2b4505095d24e253bd62d74474cad135cf3b
Author: Chris Marusich <cmmarusich@gmail.com>
AuthorDate: Fri Jun 18 11:26:31 2021 -0700

    gnu: Simplify the use of --with-long-double-128.
    
    Fixes <https://bugs.gnu.org/48825>.
    
    In short, this change adds the hard-coded "--with-long-double-128" configure
    option in one place and removes it from two other places.  This changes and
    simplifies the use of this option for various architectures that start with
    the string "powerpc".
    
    * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add a clause for
    targets starting with "powerpc64le-" or "powerpc-" which adds the
    "--with-long-double-128" option.  This causes any package using this 
procedure
    to be built using this new option on these architectures.  In particular, 
this
    affects the gcc package and the gcc-final package, in addition to all the
    other versions of GCC defined in (gnu packages gcc).
    * gnu/packages/commencement.scm (gcc-boot0)[#:configure-flags]: Remove the
    code that adds the "--with-long-double-128" configure option for all
    architectures starting with "powerpc", since it is now redundant on the
    architectures where it is needed. The gcc-boot0 package uses (and adds to) 
the
    gcc package's configure options. This means that the above change in gcc.scm
    is sufficient to ensure that the gcc-boot0 package's configure options will
    include "--with-long-double-128" on powerpc64le and powerpc architectures.
    Additionally, since the option is apparently not required on the big-endian
    powerpc64 architecture, this change also has the nice effect of omitting the
    option in that case.
    * gnu/packages/cross-base.scm (cross-gcc-arguments)[#:configure-flags]: 
Remove
    the code that adds the "--with-long-double-128" configure option for
    powerpc64le, since it is now redundant. The cross-gcc-arguments procedure 
uses
    (and adds to) the configure options of its xgcc argument (a package).  This
    means that regardless of which gcc from gcc.scm is used as the xgcc, the 
above
    change in gcc.scm is sufficient to ensure that the cross-gcc-arguments
    procedure's configure options will include "--with-long-double-128" on the
    powerpc64le and powerpc architectures.
---
 gnu/packages/commencement.scm | 7 -------
 gnu/packages/cross-base.scm   | 6 ------
 gnu/packages/gcc.scm          | 5 +++++
 3 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index d44d1dd..af61512 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2733,13 +2733,6 @@ exec " gcc "/bin/" program
                            "--disable-shared"
                            "--enable-languages=c,c++"
 
-                           ;; On POWER9 (little endian) glibc needs the 128-bit
-                           ;; long double type.  32-bit PPC is affected by the
-                           ;; changes applied for powerpc64le.
-                           ,@(if (string-prefix? "powerpc" (boot-triplet))
-                               '("--with-long-double-128")
-                               '())
-
                            ;; libstdc++ cannot be built at this stage
                            ;; ("Link tests are not allowed after
                            ;; GCC_NO_EXECUTABLES.").
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 926b00c..ced226e 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -153,12 +153,6 @@ base compiler and using LIBC (which may be either a libc 
package or #f.)"
                                "--disable-decimal-float" ;would need libc
                                "--disable-libcilkrts"
 
-                              ,@(if (string-prefix? "powerpc64le-" target)
-                                   ;; On POWER9 (little endian) glibc needs
-                                   ;; the 128-bit long double type.
-                                   '("--with-long-double-128")
-                                   '())
-
                                ;; When target is any OS other than 'none' these
                                ;; libraries will fail if there is no libc
                                ;; present. See
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 24a4b42..c7fcb22 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -79,6 +79,11 @@ where the OS part is overloaded to denote a specific 
ABI---into GCC
          ;; Cilk has been removed from GCC 8 anyway.
          '("--disable-libcilkrts"))
 
+        ;; glibc needs the 128-bit long double type on these architectures.
+        ((or (string-prefix? "powerpc64le-" target)
+             (string-prefix? "powerpc-" target))
+         '("--with-long-double-128"))
+
         (else
          ;; TODO: Add `arm.*-gnueabi', etc.
          '())))



reply via email to

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