2016-08-03 Joseph Myers <joseph@codesourcery.com>
+ * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_FUNCS_EXT): New
+ macro.
+ * include/features.h (__STDC_WANT_IEC_60559_FUNCS_EXT__):
+ Document.
+ * manual/creature.texi (__STDC_WANT_IEC_60559_FUNCS_EXT__):
+ Document macro.
+ * manual/math.texi (exp10): Document as ISO from TS 18661-4:2015.
+ (exp10f): Likewise.
+ (exp10l): Likewise.
+ * math/bits/mathcalls.h (exp10): Declare if
+ [__GLIBC_USE (IEC_60559_FUNCS_EXT)], not [__USE_GNU].
+
* manual/arith.texi (nextup): Fix typo in last change.
2016-08-03 Zack Weinberg <zackw@panix.com>
from that TS. Note that most features from that TS are not supported by
the GNU C Library.
+* The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS
+ 18661-4:2015, is supported to enable declarations of functions and macros
+ from that TS. Note that most features from that TS are not supported by
+ the GNU C Library.
+
* The inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated. This
means that in a future release, the macros “major”, “minor”, and “makedev”
will only be available from <sys/sysmacros.h>.
#else
# define __GLIBC_USE_IEC_60559_BFP_EXT 0
#endif
+
+/* ISO/IEC TS 18661-4:2015 defines the
+ __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. */
+#undef __GLIBC_USE_IEC_60559_FUNCS_EXT
+#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1
+#else
+# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
+#endif
_ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
__STDC_WANT_LIB_EXT2__ Extensions to ISO C99 from TR 27431-2:2010.
__STDC_WANT_IEC_60559_BFP_EXT__ Extensions to ISO C11 from TS 18661-1:2014.
+ __STDC_WANT_IEC_60559_FUNCS_EXT__ Extensions to ISO C11 from
+ TS 18661-4:2015.
_POSIX_SOURCE IEEE Std 1003.1.
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
if >=199309L, add IEEE Std 1003.1b-1993;
@theglibc{}.
@end defvr
+@comment (none)
+@comment ISO
+@defvr Macro __STDC_WANT_IEC_60559_FUNCS_EXT__
+If you define this macro, features from ISO/IEC TS 18661-4:2015
+(Floating-point extensions for C: Supplementary functions) are
+enabled. Only some of the features from this TS are supported by
+@theglibc{}.
+@end defvr
+
@comment (none)
@comment GNU
@defvr Macro _GNU_SOURCE
@end deftypefun
@comment math.h
-@comment GNU
+@comment ISO
@deftypefun double exp10 (double @var{x})
@comment math.h
-@comment GNU
+@comment ISO
@deftypefunx float exp10f (float @var{x})
@comment math.h
-@comment GNU
+@comment ISO
@deftypefunx {long double} exp10l (long double @var{x})
@comment math.h
@comment GNU
These functions compute @code{10} raised to the power @var{x}.
Mathematically, @code{exp10 (x)} is the same as @code{exp (x * log (10))}.
-These functions are GNU extensions. The name @code{exp10} is
+The @code{exp10} functions are from TS 18661-4:2015; the @code{pow10}
+names are GNU extensions. The name @code{exp10} is
preferred, since it is analogous to @code{exp} and @code{exp2}.
@end deftypefun
__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
_Mdouble_END_NAMESPACE
-#ifdef __USE_GNU
-/* A function missing in all standards: compute exponent to base ten. */
+#if __GLIBC_USE (IEC_60559_FUNCS_EXT)
+/* Compute exponent to base ten. */
__MATHCALL (exp10,, (_Mdouble_ __x));
+#endif
+#ifdef __USE_GNU
/* Another name occasionally used. */
__MATHCALL (pow10,, (_Mdouble_ __x));
#endif