This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26.9000-725-g4e2dff6

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6 (commit)
      from  a1c7cd3c72e5002739161ba35c90944b3ad05c9f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------;a=commitdiff;h=4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6

commit 4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6
Author: Joseph Myers <>
Date:   Mon Nov 6 13:26:15 2017 +0000

    Do not declare _Float128 support for powerpc64le -mlong-double-64 (bug 22402).
    The powerpc bits/floatn.h declares _Float128 support to be present
    when the compiler supports it for powerpc64le.  However, in the case
    where -mlong-double-64 is used, __MATH_TG does not actually support
    _Float128; it only supports _Float128 in the distinct-long-double
    This shows up as a build failure when building glibc mainline with GCC
    mainline, given the recently added sanity check in math.h for
    configurations supported by __MATH_TG, as the compat code for
    -mlong-double-64 fails to build.  However, the bug was logically
    present before that change (including in 2.26), just less visible.
    This patch fixes the build failure by declaring _Float128 to be
    unsupported in that case.  (Of course this can't actually stop users
    calling the type-generic macros with _Float128 arguments with
    -mlong-double-64, just as they could be called with other unsupported
    types on other platforms, but perhaps makes it less likely by making
    all the type-specific _Float128 interfaces invisible in that case.)
    Tested compilation for powerpc64le with
    	[BZ #22402]
    	* sysdeps/powerpc/bits/floatn.h: Include <bits/long-double.h>.
    	[__NO_LONG_DOUBLE_MATH] (__HAVE_FLOAT128): Define to 0.

diff --git a/ChangeLog b/ChangeLog
index f6f3ebf..acd573c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-06  Joseph Myers  <>
+	[BZ #22402]
+	* sysdeps/powerpc/bits/floatn.h: Include <bits/long-double.h>.
+	[__NO_LONG_DOUBLE_MATH] (__HAVE_FLOAT128): Define to 0.
 2017-11-04  Mike FABIAN  <>
 	* localedata/locales/tpi_PG (LC_TIME): Fix wrong d_fmt, / needs
diff --git a/sysdeps/powerpc/bits/floatn.h b/sysdeps/powerpc/bits/floatn.h
index 44a9434..a293bfc 100644
--- a/sysdeps/powerpc/bits/floatn.h
+++ b/sysdeps/powerpc/bits/floatn.h
@@ -20,12 +20,13 @@
 #define _BITS_FLOATN_H
 #include <features.h>
+#include <bits/long-double.h>
 /* Defined to 1 if the current compiler invocation provides a
    floating-point type with the IEEE 754 binary128 format, and this glibc
    includes corresponding *f128 interfaces for it.  */
 #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
-    && defined __FLOAT128__
+    && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
 # define __HAVE_FLOAT128 1
 # define __HAVE_FLOAT128 0


Summary of changes:
 ChangeLog                     |    6 ++++++
 sysdeps/powerpc/bits/floatn.h |    3 ++-
 2 files changed, 8 insertions(+), 1 deletions(-)

GNU C Library master sources

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]