]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Support __STDC_WANT_IEC_60559_FUNCS_EXT__ feature test macro.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 3 Aug 2016 22:21:37 +0000 (22:21 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 3 Aug 2016 22:21:37 +0000 (22:21 +0000)
This patch implements support for the
__STDC_WANT_IEC_60559_FUNCS_EXT__ feature test macro, following the
__GLIBC_USE approach used for other ISO C feature test macros.
Currently this only affects the exp10 functions (which glibc has had
for a long time).

Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).

* 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].

ChangeLog
NEWS
bits/libc-header-start.h
include/features.h
manual/creature.texi
manual/math.texi
math/bits/mathcalls.h

index 954af379c50026d5202c8c38b2e4e753d92ed7f1..ac692dc9e775e75cc1583bae6c8a90c510a5a461 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 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>
diff --git a/NEWS b/NEWS
index 25c771df2ec603a29d130ceb1b14a683d2642f12..fe9ff1c451a3263099f3f49ba781e465c96639de 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,11 @@ Version 2.25
   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>.
index 6a5850526cfaaa7297b625363faa248d94bb057c..ee6a876d8280f52e0f15673fca951f510ca4579d 100644 (file)
 #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
index 554c5c888aa78f43a90cc9ba2432dcf8b54447e7..650d4c5e129518dbec0d6d4eecf9d7ebff7fdfd5 100644 (file)
@@ -26,6 +26,8 @@
    _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;
index 61b17ce22b6d10ca7f57a52b1ee13bae8b601f5c..257f8718b179c9e3392a60fca94ed71e68c289aa 100644 (file)
@@ -182,6 +182,15 @@ are enabled.  Only some of the features from this TS are supported by
 @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
index 5c9f7b9f1c62247e55b5e33e8a3e00fef92bbf5d..d689820c6cc340f37c644f577edc9060d86b314b 100644 (file)
@@ -480,13 +480,13 @@ Mathematically, @code{exp2 (x)} is the same as @code{exp (x * log (2))}.
 @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
@@ -501,7 +501,8 @@ Mathematically, @code{exp2 (x)} is the same as @code{exp (x * log (2))}.
 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
 
index e1c0521ae8bc0e7261f01b67d7d96c6cc2bf2765..951a3d00904ac921928d2105956d65dbbdd93f3c 100644 (file)
@@ -115,9 +115,11 @@ __MATHCALL (log10,, (_Mdouble_ __x));
 __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