This is the mail archive of the glibc-cvs@sourceware.org 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-826-g6e70d15


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  6e70d156c71ba94e50e857f6459e34943a094bed (commit)
      from  df2806cdb57cb765aca169d17308eb4f0e89369f (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 -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6e70d156c71ba94e50e857f6459e34943a094bed

commit 6e70d156c71ba94e50e857f6459e34943a094bed
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Nov 24 23:33:14 2017 +0000

    Support _Float64x in libm_alias macros.
    
    This patch adds support for libm_alias_ldouble and libm_alias_float128
    to create *f64x function aliases when appropriate.
    
    Making such aliases work for functions defined in assembly sources
    requires adding some semicolons after weak_alias calls in alias macro
    definitions.  For C, semicolons are already present in the macros
    called when required, but a GNU C extension allows excess semicolons
    at file scope in a source file (and glibc already uses this), so it is
    OK to have extra semicolons present in the macro definitions.  For
    assembly sources, making multiple alias macro calls from a single
    macro expansion means there are no newlines between the calls, so an
    explicit separator is needed.  If hppa were to have .S sources in
    libm, a more complicated approach would be needed that used
    ASM_LINE_SEP when building assembly sources but not for C, but right
    now there are no such sources so just using a semicolon (as already
    present unconditionally in some such macro expansions) suffices.
    
    Tested for x86_64, including in conjunction with _Float64x support
    patches.
    
    	* sysdeps/generic/libm-alias-float128.h: Include <bits/floatn.h>.
    	(libm_alias_float128_other_r): If
    	[__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE], define f64x
    	alias.
    	(libm_alias_float128_r): Add semicolon after weak_alias call.
    	* sysdeps/generic/libm-alias-ldouble.h
    	(libm_alias_ldouble_other_r_f128): New macro.
    	(libm_alias_ldouble_other_r_f64x): Likewise.
    	(libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
    	and libm_alias_ldouble_other_r_f64x.
    	(libm_alias_ldouble_r): Add semicolon after weak_alias call.
    	* sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
    	(libm_alias_ldouble_other_r_f128): New macro.
    	(libm_alias_ldouble_other_r_f64x): Likewise.
    	(libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
    	and libm_alias_ldouble_other_r_f64x.

diff --git a/ChangeLog b/ChangeLog
index abcbfe1..2d4c6c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
 2017-11-24  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/generic/libm-alias-float128.h: Include <bits/floatn.h>.
+	(libm_alias_float128_other_r): If
+	[__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE], define f64x
+	alias.
+	(libm_alias_float128_r): Add semicolon after weak_alias call.
+	* sysdeps/generic/libm-alias-ldouble.h
+	(libm_alias_ldouble_other_r_f128): New macro.
+	(libm_alias_ldouble_other_r_f64x): Likewise.
+	(libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
+	and libm_alias_ldouble_other_r_f64x.
+	(libm_alias_ldouble_r): Add semicolon after weak_alias call.
+	* sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+	(libm_alias_ldouble_other_r_f128): New macro.
+	(libm_alias_ldouble_other_r_f64x): Likewise.
+	(libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
+	and libm_alias_ldouble_other_r_f64x.
+
 	* stdlib/strfroml.c: Always include <stdlib.h>.
 	[__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later
 	undefine as macro and define as weak alias.
diff --git a/sysdeps/generic/libm-alias-float128.h b/sysdeps/generic/libm-alias-float128.h
index 8a7ebf3..b739cdf 100644
--- a/sysdeps/generic/libm-alias-float128.h
+++ b/sysdeps/generic/libm-alias-float128.h
@@ -19,12 +19,19 @@
 #ifndef _LIBM_ALIAS_FLOAT128_H
 #define _LIBM_ALIAS_FLOAT128_H
 
+#include <bits/floatn.h>
+
 /* Define _FloatN / _FloatNx aliases (other than that for _Float128)
    for a _Float128 libm function that has internal name FROM ## f128
    ## R and public names TO ## suffix ## R for each suffix of a
    supported _FloatN / _FloatNx floating-point type with the same
    format as _Float128.  */
-#define libm_alias_float128_other_r(from, to, r)
+#if __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
+# define libm_alias_float128_other_r(from, to, r)	\
+  weak_alias (from ## f128 ## r, to ## f64x ## r)
+#else
+# define libm_alias_float128_other_r(from, to, r)
+#endif
 
 /* Likewise, but without the R suffix.  */
 #define libm_alias_float128_other(from, to)	\
@@ -39,7 +46,7 @@
    per format, not per type) or for obsolescent functions not provided
    for _FloatN types.  */
 #define libm_alias_float128_r(from, to, r)		\
-  weak_alias (from ## f128 ## r, to ## f128 ## r)	\
+  weak_alias (from ## f128 ## r, to ## f128 ## r);	\
   libm_alias_float128_other_r (from, to, r)
 
 /* Likewise, but without the R suffix.  */
diff --git a/sysdeps/generic/libm-alias-ldouble.h b/sysdeps/generic/libm-alias-ldouble.h
index 7b9bf9a..0c56801 100644
--- a/sysdeps/generic/libm-alias-ldouble.h
+++ b/sysdeps/generic/libm-alias-ldouble.h
@@ -21,17 +21,28 @@
 
 #include <bits/floatn.h>
 
-/* Define _FloatN / _FloatNx aliases for a long double libm function
-   that has internal name FROM ## l ## R and public names TO ## suffix
-   ## R for each suffix of a supported _FloatN / _FloatNx
-   floating-point type with the same format as long double.  */
 #if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
-# define libm_alias_ldouble_other_r(from, to, r)	\
+# define libm_alias_ldouble_other_r_f128(from, to, r)	\
   weak_alias (from ## l ## r, to ## f128 ## r)
 #else
-# define libm_alias_ldouble_other_r(from, to, r)
+# define libm_alias_ldouble_other_r_f128(from, to, r)
+#endif
+
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# define libm_alias_ldouble_other_r_f64x(from, to, r)	\
+  weak_alias (from ## l ## r, to ## f64x ## r)
+#else
+# define libm_alias_ldouble_other_r_f64x(from, to, r)
 #endif
 
+/* Define _FloatN / _FloatNx aliases for a long double libm function
+   that has internal name FROM ## l ## R and public names TO ## suffix
+   ## R for each suffix of a supported _FloatN / _FloatNx
+   floating-point type with the same format as long double.  */
+#define libm_alias_ldouble_other_r(from, to, r)		\
+  libm_alias_ldouble_other_r_f128 (from, to, r);	\
+  libm_alias_ldouble_other_r_f64x (from, to, r)
+
 /* Likewise, but without the R suffix.  */
 #define libm_alias_ldouble_other(from, to)	\
   libm_alias_ldouble_other_r (from, to, )
@@ -45,7 +56,7 @@
    per format, not per type) or for obsolescent functions not provided
    for _FloatN types.  */
 #define libm_alias_ldouble_r(from, to, r)	\
-  weak_alias (from ## l ## r, to ## l ## r)	\
+  weak_alias (from ## l ## r, to ## l ## r);	\
   libm_alias_ldouble_other_r (from, to, r)
 
 /* Likewise, but without the R suffix.  */
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
index ad31f69..5b48fda 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
@@ -23,17 +23,28 @@
 #include <math_ldbl_opt.h>
 #include <ldbl-compat-choose.h>
 
-/* Define _FloatN / _FloatNx aliases for a long double libm function
-   that has internal name FROM ## l ## R and public names TO ## suffix
-   ## R for each suffix of a supported _FloatN / _FloatNx
-   floating-point type with the same format as long double.  */
 #if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
-# define libm_alias_ldouble_other_r(from, to, r)	\
+# define libm_alias_ldouble_other_r_f128(from, to, r)	\
   weak_alias (from ## l ## r, to ## f128 ## r)
 #else
-# define libm_alias_ldouble_other_r(from, to, r)
+# define libm_alias_ldouble_other_r_f128(from, to, r)
+#endif
+
+#if __HAVE_FLOAT64X_LONG_DOUBLE
+# define libm_alias_ldouble_other_r_f64x(from, to, r)	\
+  weak_alias (from ## l ## r, to ## f64x ## r)
+#else
+# define libm_alias_ldouble_other_r_f64x(from, to, r)
 #endif
 
+/* Define _FloatN / _FloatNx aliases for a long double libm function
+   that has internal name FROM ## l ## R and public names TO ## suffix
+   ## R for each suffix of a supported _FloatN / _FloatNx
+   floating-point type with the same format as long double.  */
+#define libm_alias_ldouble_other_r(from, to, r)		\
+  libm_alias_ldouble_other_r_f128 (from, to, r);	\
+  libm_alias_ldouble_other_r_f64x (from, to, r)
+
 /* Likewise, but without the R suffix.  */
 #define libm_alias_ldouble_other(from, to)	\
   libm_alias_ldouble_other_r (from, to, )

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                     |   17 +++++++++++++++++
 sysdeps/generic/libm-alias-float128.h         |   11 +++++++++--
 sysdeps/generic/libm-alias-ldouble.h          |   25 ++++++++++++++++++-------
 sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h |   23 +++++++++++++++++------
 4 files changed, 61 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
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]