]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
AC_USE_SYSTEM_EXTENSIONS: port to more ISO C TSes
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 15 Sep 2016 17:08:56 +0000 (10:08 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 15 Sep 2016 17:10:14 +0000 (10:10 -0700)
* doc/autoconf.texi (C and Posix Variants): Rename from "Posix
Variants", and document updated behavior.
* lib/autoconf/specific.m4 (AC_USE_SYSTEM_EXTENSIONS): Also define
__STDC_WANT_IEC_60559_ATTRIBS_EXT__,
__STDC_WANT_IEC_60559_DFP_EXT__,
__STDC_WANT_IEC_60559_TYPES_EXT__, and
__STDC_WANT_MATH_SPEC_FUNCS__.  From a suggestion by Joseph Myers in:
http://lists.gnu.org/archive/html/autoconf-patches/2016-09/msg00011.html

NEWS
doc/autoconf.texi
lib/autoconf/specific.m4

diff --git a/NEWS b/NEWS
index 43918bbbd031914a31f1c763f64a53289529df01..a4c53ddf89db9d41c4eae8217a922b6559ca9252 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -59,8 +59,8 @@ GNU Autoconf NEWS - User visible changes.
   YFLAGS to enable these warnings.
 
 - AC_USE_SYSTEM_EXTENSIONS now enables more extensions on HP-UX,
-  macOS, and MINIX, as well as on systems conforming to ISO/IEC TR
-  24731-2:2010, ISO/IEC TS 18661-1:2014, and ISO/IEC TS 18661-4:2015.
+  macOS, and MINIX, as well as on systems conforming to recent
+  ISO/IEC C technical reports and specifications.
 
 - AC_CHECK_DECL and AC_CHECK_DECLS can now report missing declarations for
   functions that are also Clang compiler builtins.
index 4f041bd4ed80a0045a36586e696d1624a855257c..36e193839974280f85f3ed10fef88ed76462aa9c 100644 (file)
@@ -363,7 +363,7 @@ Existing Tests
 * Types::                       Types that might be missing
 * Compilers and Preprocessors::  Checking for compiling programs
 * System Services::             Operating system services
-* Posix Variants::              Special kludges for specific Posix variants
+* C and Posix Variants::        Kludges for C and Posix variants
 * Erlang Libraries::            Checking for the existence of Erlang libraries
 
 Common Behavior
@@ -3838,7 +3838,7 @@ Symbols}, for how to get those symbol definitions into your program.
 * Types::                       Types that might be missing
 * Compilers and Preprocessors::  Checking for compiling programs
 * System Services::             Operating system services
-* Posix Variants::              Special kludges for specific Posix variants
+* C and Posix Variants::        Kludges for C and Posix variants
 * Erlang Libraries::            Checking for the existence of Erlang libraries
 @end menu
 
@@ -8606,29 +8606,16 @@ system.  If so, set the shell variable @code{ac_cv_sys_posix_termios} to
 @samp{yes}.  If not, set the variable to @samp{no}.
 @end defmac
 
-@node Posix Variants
-@section Posix Variants
+@node C and Posix Variants
+@section C and Posix Variants
 
-The following macro makes it possible to use features of Posix that are
-extensions to C, as well as platform extensions not defined by Posix.
+The following macro makes it possible to use C language and library
+extensions defined by the C standards committee, features of Posix that
+are extensions to C, and platform extensions not defined by Posix.
 
 @anchor{AC_USE_SYSTEM_EXTENSIONS}
 @defmac AC_USE_SYSTEM_EXTENSIONS
 @acindex{USE_SYSTEM_EXTENSIONS}
-@cvindex _GNU_SOURCE
-@cvindex _ALL_SOURCE
-@cvindex _DARWIN_C_SOURCE
-@cvindex _MINIX
-@cvindex _NETBSD_SOURCE
-@cvindex _POSIX_1_SOURCE
-@cvindex _POSIX_PTHREAD_SEMANTICS
-@cvindex _POSIX_SOURCE
-@cvindex _TANDEM_SOURCE
-@cvindex _XOPEN_SOURCE
-@cvindex __EXTENSIONS__
-@cvindex __STDC_WANT_IEC_60559_BFP_EXT__
-@cvindex __STDC_WANT_IEC_60559_FUNCS_EXT__
-@cvindex __STDC_WANT_LIB_EXT2__
 If possible, enable
 extensions to C or Posix on hosts that normally disable the extensions,
 typically due to standards-conformance namespace issues.  This should be
@@ -8637,42 +8624,74 @@ preprocessor macros are defined where appropriate:
 
 @table @code
 @item _GNU_SOURCE
+@cvindex _GNU_SOURCE
 Enable extensions on GNU/Linux.
 @item _ALL_SOURCE
+@cvindex _ALL_SOURCE
 Enable extensions for AIX 3, and for Interix.
 @item _DARWIN_C_SOURCE
+@cvindex _DARWIN_C_SOURCE
 Enable extensions for macOS.
 @item _MINIX
+@cvindex _MINIX
 Identify Minix platform.  This particular preprocessor macro is
 obsolescent, and may be removed in a future release of Autoconf.
 @item _NETBSD_SOURCE
+@cvindex _NETBSD_SOURCE
 Enable NetBSD-related extensions for Minix.
 @item _POSIX_1_SOURCE
+@cvindex _POSIX_1_SOURCE
 Enable additional Posix functions for Minix.
 @item _POSIX_PTHREAD_SEMANTICS
+@cvindex _POSIX_PTHREAD_SEMANTICS
 Enable threading extensions on Solaris.
 @item _POSIX_SOURCE
+@cvindex _POSIX_SOURCE
 Enable Posix functions for Minix.
 @item _TANDEM_SOURCE
+@cvindex _TANDEM_SOURCE
 Enable extensions for the HP NonStop platform.
 @item _XOPEN_SOURCE
+@cvindex _XOPEN_SOURCE
 Enable X/Open extensions for HP-UX.
 @item __EXTENSIONS__
+@cvindex __EXTENSIONS__
 Enable general extensions on Solaris.
+@item __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+@cvindex __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+Enable extensions specified by ISO/IEC TS 18661-5:2014.
 @item __STDC_WANT_IEC_60559_BFP_EXT__
+@cvindex __STDC_WANT_IEC_60559_BFP_EXT__
 Enable extensions specified by ISO/IEC TS 18661-1:2014.
+@item __STDC_WANT_IEC_60559_DFP_EXT__
+@cvindex __STDC_WANT_IEC_60559_DFP_EXT__
+Enable extensions specified by ISO/IEC TS 18661-2:2015.
 @item __STDC_WANT_IEC_60559_FUNCS_EXT__
+@cvindex __STDC_WANT_IEC_60559_FUNCS_EXT__
 Enable extensions specified by ISO/IEC TS 18661-4:2015.
+@item __STDC_WANT_IEC_60559_TYPES_EXT__
+@cvindex __STDC_WANT_IEC_60559_TYPES_EXT__
+Enable extensions specified by ISO/IEC TS 18661-3:2015.
 @item __STDC_WANT_LIB_EXT2__
+@cvindex __STDC_WANT_LIB_EXT2__
 Enable extensions specified by ISO/IEC TR 24731-2:2010.
+@item __STDC_WANT_MATH_SPEC_FUNCS__
+@cvindex __STDC_WANT_MATH_SPEC_FUNCS__
+Enable extensions specified by ISO/IEC TR 24747:2009.
 @end table
 
-The macro @code{__STDC_WANT_LIB_EXT1__} is not defined, as C11 Annex K
-is problematic.  See: O'Donell C, Sebor M.
+@cvindex __STDC_WANT_DEC_FP__
+The C preprocessor macro @code{__STDC_WANT_DEC_FP__} is not defined.
+ISO/IEC TR 24732:2009 was superseded by ISO/IEC TS 18661-2:2015.
+
+@cvindex __STDC_WANT_LIB_EXT1__
+The C preprocessor macro @code{__STDC_WANT_LIB_EXT1__} is not defined,
+as C11 Annex K is problematic.  See: O'Donell C, Sebor M.
 @uref{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm, Field
 Experience With Annex K---Bounds Checking Interfaces}.
 
-This macro was introduced in Autoconf 2.60.
+The Autoconf macro @code{AC_USE_SYSTEM_EXTENSIONS} was introduced in
+Autoconf 2.60.
 @end defmac
 
 
index ad77be8dae5fe1ce4d6c9e1c36f98558a3f0772c..db47fbb0bdcf9b22b70bb465c5605102d8104ef7 100644 (file)
@@ -399,18 +399,34 @@ dnl configure.ac when using autoheader 2.62.
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
 #endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
 # undef __STDC_WANT_IEC_60559_BFP_EXT__
 #endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
 #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
 # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
 #endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
 #ifndef __STDC_WANT_LIB_EXT2__
 # undef __STDC_WANT_LIB_EXT2__
 #endif
+/* Enable extensions specified by ISO/IEC TR 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
 /* Enable extensions on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
@@ -440,9 +456,13 @@ dnl configure.ac when using autoheader 2.62.
   AC_DEFINE([_DARWIN_C_SOURCE])
   AC_DEFINE([_GNU_SOURCE])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+  AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
+  AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__])
   AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
+  AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__])
   AC_DEFINE([__STDC_WANT_LIB_EXT2__])
+  AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__])
   AC_DEFINE([_TANDEM_SOURCE])
   AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
     [ac_cv_should_define__xopen_source],