This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26-183-g2376111
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Aug 2017 16:13:36 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26-183-g2376111
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 23761119feea282d2d209a01902e5d92049ea6b6 (commit)
from bba5c930947e2b440b7d1eafdd3c9e7ff2d28978 (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=23761119feea282d2d209a01902e5d92049ea6b6
commit 23761119feea282d2d209a01902e5d92049ea6b6
Author: Joseph Myers <joseph@codesourcery.com>
Date: Fri Aug 25 16:11:13 2017 +0000
Clean up bits/math-finite.h for aliasing types.
This patch cleans up how bits/math-finite.h handles types that are
ABI-aliases of other types.
For such types, no __*_finite functions exist; instead,
bits/math-finite.h must redirect calls to a the functions for a
canonical choice of type for each floating-point format. (For the
actual public interfaces, symbols need exporting for each type, even
those that are ABI-aliases, because of standard requirements that
programs can declare the functions themselves without including
<math.h>, but that does not apply to __*_finite.)
At present, there is a special-case conditional in bits/math-finite.h
on __MATH_DECLARING_LDOUBLE && defined __NO_LONG_DOUBLE_MATH to handle
redirecting long double function calls to double __*_finite. This
patch replaces this by a more general mechanism. math.h, before each
inclusion of bits/math-finite.h, defines _MSUFTO_ as the suffix to use
on the target of redirection, in addition to the existing _MSUF_.
This way, __MATH_DECLARING_LDOUBLE can go away, as can the special
conditional in bits/math-finite.h. With this patch, math.h is now
prepared for the case of supporting float128 functions as aliases of
long double ones on platforms where long double is binary128, with
_MSUFTO_ appropriately defined for that case, and appropriate _MSUFTO_
definitions can easily be included when supporting _Float32 / _Float64
/ _Float32x / _Float64x (which will always be ABI-aliases of another
type when supported).
Tested for x86_64, and did a compilation test for ARM with
build-many-glibcs.py to cover the long double = double case.
* math/math.h (_MSUFTO_): Define and undefine for each inclusion
of <bits/math-finite.h>.
(__MATH_DECLARING_LDOUBLE): Do not define and undefine for each
inclusion of <bits/math-finite.h>.
* math/bits/math-finite.h (__REDIRTO_X): Do not define
conditionally on [__MATH_DECLARING_LDOUBLE && defined
__NO_LONG_DOUBLE_MATH].
(__MATH_REDIRCALL): Use _MSUFTO_ in __REDIRTO call.
(__MATH_REDIRCALL_2): Likewise.
(__MATH_REDIRCALL_INTERNAL): Likewise.
(__REDIRFROM (lgamma, , _MSUF_)): Likewise.
(__REDIRFROM (gamma, , _MSUF_)): Likewise.
(__REDIRFROM (tgamma, , _MSUF_)): Likewise.
diff --git a/ChangeLog b/ChangeLog
index 9a06c8f..101a943 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2017-08-25 Joseph Myers <joseph@codesourcery.com>
+ * math/math.h (_MSUFTO_): Define and undefine for each inclusion
+ of <bits/math-finite.h>.
+ (__MATH_DECLARING_LDOUBLE): Do not define and undefine for each
+ inclusion of <bits/math-finite.h>.
+ * math/bits/math-finite.h (__REDIRTO_X): Do not define
+ conditionally on [__MATH_DECLARING_LDOUBLE && defined
+ __NO_LONG_DOUBLE_MATH].
+ (__MATH_REDIRCALL): Use _MSUFTO_ in __REDIRTO call.
+ (__MATH_REDIRCALL_2): Likewise.
+ (__MATH_REDIRCALL_INTERNAL): Likewise.
+ (__REDIRFROM (lgamma, , _MSUF_)): Likewise.
+ (__REDIRFROM (gamma, , _MSUF_)): Likewise.
+ (__REDIRFROM (tgamma, , _MSUF_)): Likewise.
+
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-power5.S:
Remove file.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-ppc32.S:
diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h
index b07ce31..4c82958 100644
--- a/math/bits/math-finite.h
+++ b/math/bits/math-finite.h
@@ -24,15 +24,8 @@
function ## suffix ## reentrant
#define __REDIRFROM(...) __REDIRFROM_X(__VA_ARGS__)
-/* Redirect long double versions of the functions to the corresponding
- double version if __NO_LONG_DOUBLE_MATH is defined. */
-#if __MATH_DECLARING_LDOUBLE && defined __NO_LONG_DOUBLE_MATH
-# define __REDIRTO_X(function, reentrant, suffix) \
- __ ## function ## reentrant ## _finite
-#else
-# define __REDIRTO_X(function, reentrant, suffix) \
+#define __REDIRTO_X(function, reentrant, suffix) \
__ ## function ## suffix ## reentrant ## _finite
-#endif
#define __REDIRTO(...) __REDIRTO_X(__VA_ARGS__)
#define __MATH_REDIRCALL_X(from, args, to) \
@@ -40,17 +33,17 @@
#define __MATH_REDIRCALL(function, reentrant, args) \
__MATH_REDIRCALL_X \
(__REDIRFROM (function, reentrant, _MSUF_), args, \
- __REDIRTO (function, reentrant, _MSUF_))
+ __REDIRTO (function, reentrant, _MSUFTO_))
#define __MATH_REDIRCALL_2(from, reentrant, args, to) \
__MATH_REDIRCALL_X \
(__REDIRFROM (from, reentrant, _MSUF_), args, \
- __REDIRTO (to, reentrant, _MSUF_))
+ __REDIRTO (to, reentrant, _MSUFTO_))
#define __MATH_REDIRCALL_INTERNAL(function, reentrant, args) \
__MATH_REDIRCALL_X \
(__REDIRFROM (__CONCAT (__, function), \
__CONCAT (reentrant, _finite), _MSUF_), \
- args, __REDIRTO (function, _r, _MSUF_))
+ args, __REDIRTO (function, _r, _MSUFTO_))
/* acos. */
@@ -139,10 +132,10 @@ __extern_always_inline _Mdouble_
__NTH (__REDIRFROM (lgamma, , _MSUF_) (_Mdouble_ __d))
{
# if defined __USE_MISC || defined __USE_XOPEN
- return __REDIRTO (lgamma, _r, _MSUF_) (__d, &signgam);
+ return __REDIRTO (lgamma, _r, _MSUFTO_) (__d, &signgam);
# else
int __local_signgam = 0;
- return __REDIRTO (lgamma, _r, _MSUF_) (__d, &__local_signgam);
+ return __REDIRTO (lgamma, _r, _MSUFTO_) (__d, &__local_signgam);
# endif
}
#endif
@@ -153,7 +146,7 @@ __NTH (__REDIRFROM (lgamma, , _MSUF_) (_Mdouble_ __d))
__extern_always_inline _Mdouble_
__NTH (__REDIRFROM (gamma, , _MSUF_) (_Mdouble_ __d))
{
- return __REDIRTO (lgamma, _r, _MSUF_) (__d, &signgam);
+ return __REDIRTO (lgamma, _r, _MSUFTO_) (__d, &signgam);
}
#endif
@@ -200,7 +193,7 @@ __extern_always_inline _Mdouble_
__NTH (__REDIRFROM (tgamma, , _MSUF_) (_Mdouble_ __d))
{
int __local_signgam = 0;
- _Mdouble_ __res = __REDIRTO (gamma, _r, _MSUF_) (__d, &__local_signgam);
+ _Mdouble_ __res = __REDIRTO (gamma, _r, _MSUFTO_) (__d, &__local_signgam);
return __local_signgam < 0 ? -__res : __res;
}
#endif
diff --git a/math/math.h b/math/math.h
index 5acbe88..9162bee 100644
--- a/math/math.h
+++ b/math/math.h
@@ -618,15 +618,15 @@ iszero (__T __val)
/* Include bits/math-finite.h for double. */
# define _Mdouble_ double
# define __MATH_DECLARING_DOUBLE 1
-# define __MATH_DECLARING_LDOUBLE 0
# define __MATH_DECLARING_FLOATN 0
# define _MSUF_
+# define _MSUFTO_
# include <bits/math-finite.h>
# undef _Mdouble_
# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_LDOUBLE
# undef __MATH_DECLARING_FLOATN
# undef _MSUF_
+# undef _MSUFTO_
/* When __USE_ISOC99 is defined, include math-finite for float and
long double, as well. */
@@ -635,29 +635,33 @@ iszero (__T __val)
/* Include bits/math-finite.h for float. */
# define _Mdouble_ float
# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_LDOUBLE 0
# define __MATH_DECLARING_FLOATN 0
# define _MSUF_ f
+# define _MSUFTO_ f
# include <bits/math-finite.h>
# undef _Mdouble_
# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_LDOUBLE
# undef __MATH_DECLARING_FLOATN
# undef _MSUF_
+# undef _MSUFTO_
/* Include bits/math-finite.h for long double. */
# ifdef __MATH_DECLARE_LDOUBLE
# define _Mdouble_ long double
# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_LDOUBLE 1
# define __MATH_DECLARING_FLOATN 0
# define _MSUF_ l
+# ifdef __NO_LONG_DOUBLE_MATH
+# define _MSUFTO_
+# else
+# define _MSUFTO_ l
+# endif
# include <bits/math-finite.h>
# undef _Mdouble_
# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_LDOUBLE
# undef __MATH_DECLARING_FLOATN
# undef _MSUF_
+# undef _MSUFTO_
# endif
# endif /* __USE_ISOC99. */
@@ -667,15 +671,19 @@ iszero (__T __val)
&& __GLIBC_USE (IEC_60559_TYPES_EXT)
# define _Mdouble_ _Float128
# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_LDOUBLE 0
# define __MATH_DECLARING_FLOATN 1
# define _MSUF_ f128
+# if __HAVE_DISTINCT_FLOAT128
+# define _MSUFTO_ f128
+# else
+# define _MSUFTO_ l
+# endif
# include <bits/math-finite.h>
# undef _Mdouble_
# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_LDOUBLE
# undef __MATH_DECLARING_FLOATN
# undef _MSUF_
+# undef _MSUFTO_
# endif
#endif /* __FINITE_MATH_ONLY__ > 0. */
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 14 ++++++++++++++
math/bits/math-finite.h | 23 ++++++++---------------
math/math.h | 24 ++++++++++++++++--------
3 files changed, 38 insertions(+), 23 deletions(-)
hooks/post-receive
--
GNU C Library master sources